文章目录
安装 DNS 程序
两个服务器都要装
[root@localhost ~]# yum -y install bind
作为依赖被升级:
bind-libs.x86_64 32:9.11.4-16.P2.el7_8.6
bind-libs-lite.x86_64 32:9.11.4-16.P2.el7_8.6
bind-license.noarch 32:9.11.4-16.P2.el7_8.6
bind-utils.x86_64 32:9.11.4-16.P2.el7_8.6
dhclient.x86_64 12:4.2.5-79.el7.centos
dhcp-common.x86_64 12:4.2.5-79.el7.centos
dhcp-libs.x86_64 12:4.2.5-79.el7.centos
查看bind 安装位置以及配置文件
[root@localhost ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf 主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones 区域配置文件
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost 区域数据配置文件
/var/named/named.loopback
为方便观察,给主从服务器改个名吧
主域名服务器配置
编辑主配置文件
[root@zhu ~]# vi /etc/named.conf
options {
listen-on port 53 { any; }; #更改监听端口 any
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; #允许 any 进行查询
编辑区域配置文件
[root@zhu ~]# vi /etc/named.rfc1912.zones
zone "DNS.com" IN {
type master;
file "DNS.com.zone";
allow-transfer { 20.0.0.135; };
};
编辑区域数据配置文件
首先根据你给的 文件名 ,从模板中复制一个出来
[root@zhu ~]# cd /var/named/
[root@zhu named]# cp -p named.localhost DNS.com.zone #保留源文件的权限
[root@zhu named]# ll
总用量 20
drwxrwx---. 2 named named 6 6月 1 23:26 data
-rw-r-----. 1 root named 152 6月 21 2007 DNS.com.zone
drwxrwx---. 2 named named 6 6月 1 23:26 dynamic
-rw-r-----. 1 root named 2253 4月 5 2018 named.ca
-rw-r-----. 1 root named 152 12月 15 2009 named.empty
-rw-r-----. 1 root named 152 6月 21 2007 named.localhost
-rw-r-----. 1 root named 168 12月 15 2009 named.loopback
drwxrwx---. 2 named named 6 6月 1 23:26 slaves
对其进行修改
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www IN A 20.0.0.66
zhu IN CNAME www
验证解析
在本机上对其进行解析验证,验证成功的,接下来就开始着手从服务器
[root@zhu named]# echo "nameserver 20.0.0.132" > /etc/resolv.conf
[root@zhu named]# systemctl start named
[root@zhu named]# host www.DNS.com
www.DNS.com has address 20.0.0.66
从服务器配置
可以查看到作为从服务器用的 /var/slaves ,但是里面是空的
[root@cong ~]# cd /var/named/
[root@cong named]# ll
总用量 16
drwxrwx---. 2 named named 6 7月 7 10:14 data
drwxrwx---. 2 named named 6 7月 7 10:14 dynamic
-rw-r-----. 1 root named 2253 7月 7 10:14 named.ca
-rw-r-----. 1 root named 152 7月 7 10:14 named.empty
-rw-r-----. 1 root named 152 7月 7 10:14 named.localhost
-rw-r-----. 1 root named 168 7月 7 10:14 named.loopback
drwxrwx---. 2 named named 6 7月 7 10:14 slaves
[root@cong named]# cd slaves/
[root@cong slaves]# ll
总用量 0
编辑主配置文件
主配置文件嗝 主服务器的基本一样
[root@cong slaves]# vi /etc/named.conf
options {
listen-on port 53 { any; };
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
编辑区域配置文件
[root@cong slaves]# vi /etc/named.rfc1912.zones
zone "DNS.com" IN {
type slaves;
file "slaves/DNS.com.zone";
masters { 20.0.0.132; };
};
重启两台服务的DNS服务
发现从服务器重启失败
[root@zhu named]# systemctl restart named
[root@cong slaves]# systemctl restart named
Job for named.service failed because the control process exited with error code.
See "systemctl status named.service" and "journalctl -xe" for details.
服务器重启失败,查错
我重启的过程中,从服务器重启失败,我可以使用 named-checkconf 命令,查看哪里的命令配置错了
[root@cong slaves]# named-checkconf
/etc/named.rfc1912.zones:18: 'slaves' unexpected
显示 区域配置文件的 第十八行 报错,进入该配置文件,进行修改
17 zone "DNS.com" IN {
18 type slaves; #这边拼写错误,改了就好 ,正确拼写方法 slave
19 file "slaves/DNS.com.zone";
20 masters { 20.0.0.132; };
21 };
再次重启,发现可以重启了
[root@cong named]# systemctl restart named
[root@cong named]# cd slaves/
[root@cong slaves]# ll
总用量 4
-rw-r--r--. 1 named named 308 7月 8 23:12 DNS.com.zone
也可以解析了
[root@cong slaves]# echo "nameserver 20.0.0.132" > /etc/resolv.conf
[root@cong slaves]# host www.DNS.com
www.DNS.com has address 20.0.0.66
[root@cong slaves]#
主从服务器 自动同步
在主服务器的区域数据配置文件里增加一条
$TTL 1D
@ IN SOA DNS.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS DNS.com.
A 127.0.0.1
AAAA ::1
www IN A 20.0.0.223 #从 66 改成 223
zhu IN CNAME www
sy IN CNAME WWW
然后两台服务器重启服务
发现从服务器不能解析了
[root@cong slaves]# host www.DNS.com
;; connection timed out; no servers could be reached
那么就要解决这个问题!
修改主服务器的 区域配置文件
注:若只想通知制定的从服务器 则在区域配置文件中 添加这行命令 also-notify { 20.0.0.135; };
zone "DNS.com" IN {
type master;
file "DNS.com.zone";
notify yes; #通知 yes 大概意思是通知全部从服务器
allow-transfer { 20.0.0.135; };
再次重启服务
从DNS服务器就可以正常解析了
[root@cong slaves]# host www.DNS.com
www.DNS.com has address 20.0.0.223