linux中dns服务器主从配置教程

bind版本:bind-9.9.5

主:192.169.1.100
从:192.169.1.101

tar zxvf bind-9.9.5.tar.gz
cd bind-9.9.5
./configure --prefix=/usr/local/named --enable-epoll --enable-threads --enable-ipv6 --disable-openssl-version-check --enable-backtrace --enable-symtable
make && make install

开始配置bind,接下来的过程是让rndc来管理bind

创建 rndc.conf文件,用bind自带程序生成
进入/usr/local/named/etc,将rndc.conf及named.conf生成

cd /usr/local/named
/usr/local/named/sbin/rndc-confgen >/usr/local/named/etc/rndc.conf

把rndc.conf 中的key信息输出到 named.conf 中
cd etc/
tail -10 rndc.conf | head -9 | sed -e s/# //g > named.conf

##rndc.conf与named.conf的key值必须完全一样,而且并不需要生成rndc.key

vi named.conf 在后面添加
options {
directory "/usr/local/named/etc";
version "Guess ";
allow-transfer { 192.169.1.101; };
pid-file "/var/run/named.pid";
recursion no;
notify explicit;
also-notify {
192.169.1.101;
};
};

zone "." {
type hint;
file "named.ca";
};

zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};

// RFC 3152
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
type master;
file "localhost-v6.rev";
};

// RFC 1886 -- deprecated
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
type master;
file "localhost-v6.rev";
};

zone "wangzhe.me" {
type master;
file "wangzhe.me.zone";
};

将根服务器的信息导入到/usr/local/named/etc/named.ca文件中
dig -t NS .>/usr/local/named/var/named/named.ca

启动bind来测试是否安装成功了
/usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf &

加-gc参数,可以显示出启动日志,以便排错

如果运行结果最后一行显示Running
表明安装并启动成功。

测试rndc命令
[root@ns1 etc]# /usr/local/named/sbin/rndc status
version: 9.9.5 (Guess )
CPUs found: 8
worker threads: 8
UDP listeners per interface: 8
number of zones: 13
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

把named 添加到启动项,随操作系统一起启动。
echo "/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf&" >> /etc/rc.local

#############从dns配置
编译安装、生成rndc.conf及named.conf 和主库操作一样

vi named.conf 在后面添加
options {
version "Guess ";
allow-transfer { none; };
directory "/usr/local/named/etc";
dump-file "/usr/local/named/var/cache_dump.db";
statistics-file "/usr/local/named/var/named_stats.txt";
memstatistics-file "/usr/local/named/var/named_mem_stats.txt";
allow-query { any; };
recursion no;

dnssec-enable no;
dnssec-validation no;
};

logging {
channel default_debug {
file "named.run";
severity dynamic;
};
};

zone "." IN {
type hint;
file "named.ca";
};

zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};

zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};

zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};

zone "wangzhe.me" {
type slave;
file "slaves/wangzhe.me.zone";
masters { 192.168.1.100; };
};

注意:
如果需要允许外部对此dns进行查询,还需要named.conf里面options添加一条

allow-query { any; };

具体样式是
options {
allow-query { any; };
directory "/usr/local/named/var/named";
};

启动bind来测试是否安装成功了

/usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf &

加-gc参数,可以显示出启动日志,以便排错

如果运行结果最后一行显示Running
表明安装并启动成功。成功会自动同步数据

测试rndc命令
[root@ns1 etc]# /usr/local/named/sbin/rndc status
version: 9.9.5 (Guess )
CPUs found: 8
worker threads: 8
UDP listeners per interface: 8
number of zones: 13
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

把named 添加到启动项,随操作系统一起启动。
echo "/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf&" >> /etc/rc.local

主意:
从域名服务器成功获取到主域名服务器的区域文件,两者的文件类型并不一致,如下:
主区域的文件类型:chinadaily.com.cn.zone: ASCII text
从区域文件的类型:chinadaily.com.cn.zone: data

bind9默认就是这么设计的,主的zone用text文件,从的zone用data文件(bind官方说法是raw格式),所以从的zone文件里直接查看都是乱码,
若想检查从的zone配置文件可以这样子来:
sbin/named-compilezone -s relative -f raw -F text -o - abc.com etc/cnc/abc.com.zone

最后一行是ok的话就说明这个zone文件没问题。
-f用来指明从的zone的格式(一共2种:text和raw,乱码的那个就是raw格式的)
-F用来指明转换后输出的格式
-o用来指明转换完了输出到哪个文件里,紧跟的-表示转换完了直接在标准输出显示
-s用来指定输出样式(2种:full---方便脚本处理的样式;relative---方便人手工处理或者阅读的样式)

还有官网说之所以这么设计是因为data比text处理起来效率要高。

时间: 2024-08-31 03:34:02

linux中dns服务器主从配置教程的相关文章

Linux中VPS 服务器安全设置教程

在开通了 Linux 系统的 VPS 或服务器后,我们有必要做一些基本的安全设置. 一.关闭 SSH 密码登陆 首先,你需要有自己的 SSH Key,如果你使用 Windows 系统,可以用 Putty 下的 PUTTYGEN.EXE 生成私匙和公匙. 第一步,运行 PUTTYGEN.EXE 一般,我们选择默认的 RSA 加密即可,默认的 1024 位加密足够用,如果要保险点,可以选择 2048 或 4096 位加密,如图红圈处: 第二步,点击 Generate ,然后鼠标随意在空白处移动 等进

Redis数据库在linux中安装及主从配置

Redis是一个开源.支持网络.基于内存.键值对存储数据库.与其他非关系型数据库主要不同在于,Redis中值的类型不仅限于字符串(Strings),还支持如下抽象数据类型:(列表)Lists.(集合)Sets.(有序集合)Sorted sets .(哈希)Hashes.Redis 通过 RDB.AOF 两种方式来实现数据的持久化. 安装Redis Redis 源码包保存路径 /usr/local/src Redis 软件安装路径 /usr/local/redis 编译 Redis 前先安装 tc

linux中Shadowsocks-Go Mu 安装配置教程

安装前配置 还是老样子,那就是各种支持库的安装.   Debian apt-get update apt-get install -y redis-server git CentOS yum install -y redis-server git 安装GO环境 Ubuntu/Debian – 安装配置Golang           安装教程:https://www.bxl.me/9531.html CentOS 6 – 安装配置Go语言                   安装教程:https

Linux中ClusterShell安装与配置教程

ClusterShell的安装与配置 ClusterShell的安装很Easy,如果使用APT或YUM包管理方式的话,基本就是一条命令的事儿,我就不说了,这里说一下如何从源代码安装,需要在源代码目录执行如下命令:  代码如下 复制代码 shell> python setup.py install 为了使用的方便,还需要拷贝配置文件到指定目录:  代码如下 复制代码 shell> mkdir /etc/clustershell shell> cp conf/* /etc/clustersh

linux中srs流媒体服务器安装配置教程

流媒体服务器,用过red5和crtmp,srs red5安装简单,性能一般,集群配置无文档,用户量大的话,就不要用了. crtmp安装简单,性能良好,集群配置简单,但是配置集群时需要指定从服务器的rtmp的流地址,做点播还是比较合适的,做直播不是很合适了. srs安装简单,性能良好,集群配置简单,多样化,可惜没有连接池,所以要自己做了个请求的统一入口. 1,srs下载 http://ossrs.net/srs.release/releases/index.html 选择正式发形版 2,安装 #

linux中rsync同步安装配置教程

rsync是类unix系统下的数据镜像备份工具--remote sync.是一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH.rsync主机同步. 通过搭建rsync服务端和客户端,可轻松解决开发中遇到的测试环境与生产环境的文件同步问题,且同步过程完全自动化,避免了人工上传文件容易出现的错传或漏传现象. 下面我们一起来看一下设置的过程. 生产环境主机(rsync服务端)设置 1.配置rsyncd.conf文件 vi /etc/rsyncd.conf 设置如下

Linux下DNS服务器搭建详解

Linux下DNS服务器搭建详解 简介: DNS服务器的作用就是就好比生活中的电话簿.114查号台一样,为各种网络程序找到对应目标主机的IP地址或对应的主机域名. DNS系统的作用: 正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的) 反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时.) 根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色: 缓存域名服务器 也称为 唯高速缓存服务器 通过向其他域名服务器查询获得域名->IP地址记录 将域

阿里云Linux下FTP服务器搭配配置

  阿里云服务器是国内目前 最好的一个云服务器了,不过价格方面也比较贵了,下面我们来给各位介绍在阿里云Linux下FTP服务器搭配配置了,大概方法 与linux下搭配ftp服务器区别不大,只是一些小细节了. 一.aliyun Linux(Redhat)安装vsftp软件 1.更新yum源 首先需要更新系统的yum源,便捷工具下载地址:update_source.zip.这里需要注意的是,目前文件无法传输,所以想要运行 update_source.sh 只能用文本打开,复制粘贴到阿里云服务器系统运

nginx搭建https服务器的配置教程

nginx搭建https服务器的配置教程 首先确保机器上安装了openssl和openssl-devel #yum install openssl #yum install openssl-devel 然后就是自己颁发证书给自己 #cd /usr/local/nginx/conf #openssl genrsa -des3 -out server.key 1024 #openssl req -new -key server.key -out server.csr #openssl rsa -in