一、相关包与环境
bind-libs.x86_64 #提供库文件
bind-utils.x86_64 #提供工具包
bind.x86_64 #提供主程序包
实验环境:
192.168.147.129 主DNS服务器
192.168.147.131 从DNS服务器,一般是两个从服务器,这里只搭建了一个
192.168.147.128 DNS测试服务器
二、先搭建主DNS 服务器
之前的博客里有详细介绍如何搭建主DNS服务器,这里不再赘述。
安装bind包,并启动
[root@centos7 named]# yum install bind -y
[root@centos7 named]# systemctl start named
编辑主配置文件
[root@centos7 named]# vim /etc/named.conf
options {
listen-on port 53 { localhost; };//改为localhost,表示监听在本机的所有端口上
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost;any; };//加any参数,表示所有主机都可以查询
allow-transfer {192.168.147.131; };//允许从服务器的IP抓取、传输区域数据库的数据
recursion yes;
dnssec-enable no;
dnssec-validation no;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
编辑/etc/named.rfc1912.zones文件,在里面定义magedu.com域。
[root@centos7 named]# cat /etc/named.rfc1912.zones
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
//allow-update { 192.168.147/24; };
};
在/var/named目录下生成并编辑解析库文件magedu.com.zone
[root@centos7 named]# cat /var/named/magedu.com.zone
$TTL 1D
magedu.com. IN SOA ns.magedu.com. nsadmin.magedu.com. (
2 ; serial //序列号主DNS服务器修改时,得手动更新序列号,这样从服务器才能同步
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns.magedu.com.
NS ns2.magedu.com. //定义从DNS服务器
www CNAME websrv
ns2 A 192.168.147.131//从DNS服务器解析出IP
websrv A 192.168.147.128
websrv A 192.168.147.129
ns A 192.168.147.129
@ MX 10 mailsrv1
@ MX 20 mailsrv2
mailsrv1 A 192.168.147.129
mailsrv2 A 192.168.147.131
完成之后重新加载或重启一下服务即可。
[root@centos7 named]# systemctl restart named
三、搭建从DNS 服务器
由于前面几步和主服务器没啥区别这里简单讲一下。这里是以下要注意的几点:
1、应该为一台独立的名称服务器
2、主服务器的区域解析库文件中必须有一条NS记录指向从服务器
3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中
4、主服务器得允许从服务器作区域传送
5、主从服务器时间应该同步,可通过ntp进行;
6、bind程序的版本应该保持一致;否则,应该从高,主低
从服务器向主服务器同步时间
[root@centos7 ~]# ntpdate 192.168.147.129
27 Jun 16:26:10 ntpdate[4430]: adjust time server 192.168.147.129 offset -0.341613 sec
编辑 /etc/named.conf
[root@centos7 ~]# vim /etc/named.conf
options {
//listen-on port 53 { 127.0.0.1; };//把这行注释掉,也可以改为localhost
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
//allow-query { localhost; };把这行注释掉,也可以改为any
allow-transfer { none; };//从服务器不允许被抓取数据
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
编辑/etc/named.rfc1912.zones文件,在里面定义magedu.com域
zone "magedu.com" IN {
type slave;
masters { 192.168.147.129; };
file "slaves/magedu.com.zone";
};
配置完成后重启服务即可
[root@centos7 named]# systemctl restart named
四、测试
我们使用dig命令指定向从服务器查询magedu.com
[root@centos6 ~]# dig www.magedu.com @192.168.147.131
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.magedu.com @192.168.147.131
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8288
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.magedu.com. IN A
;; ANSWER SECTION:
www.magedu.com. 86400 IN CNAME websrv.magedu.com.
websrv.magedu.com. 86400 IN A 192.168.147.129
websrv.magedu.com. 86400 IN A 192.168.147.128
;; AUTHORITY SECTION:
magedu.com. 86400 IN NS ns.magedu.com.
magedu.com. 86400 IN NS ns2.magedu.com.
;; ADDITIONAL SECTION:
ns.magedu.com. 86400 IN A 192.168.147.129
ns2.magedu.com. 86400 IN A 192.168.147.131
;; Query time: 1 msec
;; SERVER: 192.168.147.131#53(192.168.147.131)
;; WHEN: Thu Jun 27 16:35:43 2019
;; MSG SIZE rcvd: 152
使用ll /var/named/slaves命令可以看到从服务器已经从主服务器拉取了数据
[root@centos7 slaves]# ll
total 4
-rw-r--r-- 1 named named 547 Jun 27 16:28 magedu.com.zone