服务器信息

IP 域名 角色
172.16.1.12 server1.dns.com 主DNS
172.16.1.13 server2.dns.com 备DNS
172.16.1.14 Client

当前dns服务器采用主备方式部署

主DNS配置

安装bind软件

1
[root@Server1-DNS ~]# yum -y install bind

修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
[root@Server1-DNS ~]# vi /etc/named.conf
options {
listen-on port 53 { 172.16.1.12; };
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; };

allow-query:允许任何客户机可以访问dns服务

修改区域文件

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@Server1-DNS ~]# vi /etc/named.rfc1912.zones
zone "dns.com" IN {
type master;
file "dns.com.zone";
allow-update { 172.16.1.13; }; # 备机IP
};

zone "1.16.172.in-addr.arpa" IN {
type master;
file "172.16.1.arpa";
allow-update { 172.16.1.13; };
};

拷贝模板文件

1
2
3
[root@Server1-DNS ~]# cd /var/named/
[root@Server1-DNS named]#cp named.localhost dns.com.zone
[root@Server1-DNS named]#cp named.localhost 172.16.1.arpa

修改正向解析文件

1
2
3
4
5
6
7
8
9
10
11
12
13
$TTL 1D
@ IN SOA @ dns.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
server1 A 172.16.1.12
server2 A 172.16.1.13

0 ; serial :本行前面的数字表示配置文件的修改版本,格式是修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上。
1D ; refresh:定义的是以为单位的刷新频率即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的 。
1H ;retry :上面的这个值是规定了以小时为单位的重试的时间间隔,即当从服务试图在主服务器上查询更新时,而连接失败了,则这个值规定了从服务多长时间后再试 。
1W ;expiry :失效时间,以周为单位,超过该时间仍无法更新地址数据库,则不再尝试。
3H);minimum:无效地址解析记录的默认时间,以小时为单位,上面这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记录。

修改反向解析文件

1
2
3
4
5
6
7
8
9
10
11
12
13
$TTL 1D
@ IN SOA @ dns.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
12 PTR server1.dns.com.
13 PTR server2.dns.com.

12和13是服务器地址的最后一位

校验配置文件

1
2
3
4
[root@Server1-DNS ~]# named-checkconf /etc/named.conf
[root@Server1-DNS ~]# named-checkconf /etc/named.rfc1912.zones
[root@Server1-DNS ~]# named-checkzone dns.com /var/named/dns.com.zone
[root@Server1-DNS ~]# named-checkzone dns.com /var/named/172.16.1.arpa

输出OK代表配置文件没问题

启动服务

1
systemctl start named

放行防火墙

1
2
3
4
firewall-cmd --add-port=53/tcp --permanent
firewall-cmd --add-port=53/udp --permanent
firewall-cmd --reload
setenforce 0

备DNS

安装bind软件

1
[root@Server1-DNS ~]# yum -y install bind

修改配置文件

1
2
3
4
5
6
7
8
9
10
[root@Server2-DNS ~]# vi /etc/named.conf
options {
listen-on port 53 { 172.16.1.13; };
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 { any; };

修改区域文件

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@Server2-DNS ~]# vi /etc/named.rfc1912.zones
zone "dns.com" IN {
type slave;
file "slaves/dns.com.zone";
masters { 172.16.1.12; };
};

zone "1.16.172.in-addr.arpa" IN {
type slave;
file "slaves/172.16.1.zrpa";
masters { 172.16.1.12; };
};

不用修改解析文件,会自动从主DNS服务器中拉去文件

启动服务

1
systemctl start named

放行防火墙

1
2
3
4
firewall-cmd --add-port=53/tcp --permanent
firewall-cmd --add-port=53/udp --permanent
firewall-cmd --reload
setenforce 0

进去salves从解析目录中查看解析文件

1
2
3
[root@Server2-DNS ~]# cd /var/named/slaves
[root@Server2-DNS slaves]# ls
172.16.1.zrpa dns.com.zone

客户端

指向DNS服务器

1
2
3
nmcli connection modify ens33 ipv4.dns 172.16.1.12
nmcli connection modify ens33 ipv4.method manual
nmcli connection up ens33

正向解析

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@bogon ~]# nslookup server1.dns.com
Server: 172.16.1.12
Address: 172.16.1.12#53

Name: server1.dns.com
Address: 172.16.1.12

[root@bogon ~]# nslookup server2.dns.com
Server: 172.16.1.12
Address: 172.16.1.12#53

Name: server2.dns.com
Address: 172.16.1.13

反向解析

1
2
3
4
5
6
7
8
9
10
11
12
[root@bogon ~]# nslookup 172.16.1.12
Server: 172.16.1.12
Address: 172.16.1.12#53

12.1.16.172.in-addr.arpa name = server1.dns.com.

[root@bogon ~]# nslookup 172.16.1.13
Server: 172.16.1.12
Address: 172.16.1.12#53

13.1.16.172.in-addr.arpa name = server2.dns.com.