DNS服务器之二:BIND反向解析和主从复制

DNS服务器之二:BIND反向解析和主从复制
2013年08月18日 Linux管理 ⁄ 共 5870字 暂无评论 ⁄ 被围观 11,992 views+

在《DNS服务器之一:DNS简介及BIND安装与基本配置》一文中,介绍了DNS服务器BIND98的安装和基本配置,实现了最基本的域名解析功能,今天我们来实现如下功能:

  • DNS反向解析
  • DNS主从复制

试验环境:

  • 主DNS服务器:ns.toxingwang.com IP:192.168.8.101
  • 从DNS服务器:ns2.toxingwang.com IP:192.168.8.100

一、反向解析

反向解析是实现IP到FQDN的解析。实现方法如下:

1.1 配置named.conf,添加反向解析区域配置:

打开named.conf,添加如下内容:

zone “8.168.192.in-addr.arpa” IN {            ##反向解析区域的格式,IP反向及in-addr.arpa是必须的
type master;
file “named.192.168.8”;
};

1.2 配置数据文件,实现反向解析:

进入named数据文件目录,复制原来正向解析区域的数据文件为反向解析数据文件:

[root@ns ~]# cd /var/named/

[root@ns named]# cp -p named.toxingwang.com named.192.168.8

编辑named.192.168.8:

$TTL 1H
@ IN SOA ns.toxingwang.com. admin.toxingwang.com. (
2013081701 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@    IN NS ns.toxingwang.com.    ##注意,这条是必须的
101 IN PTR ns.toxingwang.com.
100 IN PTR www.toxingwang.com.
3 IN PTR mail.toxingwang.com.

测试配置是否存在语法错误:

[root@ns named]# named-checkconf
[root@ns named]# named-checkzone “8.168.192.in-addr.arpa” named.192.168.8
zone 8.168.192.in-addr.arpa/IN: loaded serial 2013081701
OK

测试无误后重启服务生效:

[root@ns named]# service named restart
停止 named:. [确定]
启动 named: [确定]

1.3 测试反向解析:

bind_nslookup测试反向解析

从上面测试可以看出,反向解析已经正常生效。

二、主从复制

2.1 主DNS服务器配置:

配置named.conf,增加区域传输配置:

options {
listen-on port 53 { 192.168.8.101; };
allow-query { 192.168.8.0/24; };
directory “/var/named”;
notify yes;             ##允许在主DNS服务器变更时,主动通知从DNS服务器更新
};

zone “.” IN {
type hint;
file “named.ca”;
##跟区域无需定义传输规则,定义反而会报错
};

zone “toxingwang.com” IN {
type master;
file “named.toxingwang.com”;
allow-transfer { 192.168.8.100; };  ##允许本区域传输至特定的从DNS服务器
};

zone “localhost” IN {
type master;
file “named.localhost”;
allow-transfer { none; };  ##不传输本地区域
};
zone “8.168.192.in-addr.arpa” IN {
type master;
file “named.192.168.8”;
allow-transfer { 192.168.8.100; };  ##允许本区域传输至特定的从DNS服务器
};

修改区域数据文件,增加从DNS服务器的解析,包括NS、A、PTR等记录。

配置正向解析区域:

[root@ns named]# vi named.toxingwang.com

$TTL 1H
@ IN SOA ns.toxingwang.com. admin.toxingwang.com. (
2013081702 ; serial    ##注意,当主DNS修改DNS解析时,需增加本序号
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.toxingwang.com.
IN NS ns2.toxingwang.com.              ##增加从DNS服务器到NS记录
IN MX 10 mail.toxingwang.com.
ns IN A 192.168.8.101
ns2 IN A 192.168.8.100                     ##增加从DNS服务器的A记录
www IN A 192.168.8.100
mail IN A 192.168.8.3
www2 IN CNAME www.toxingwang.com.

配置反向解析区域:

$TTL 1H
@ IN SOA ns.toxingwang.com. admin.toxingwang.com. (
2013081702 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns.toxingwang.com.
@ IN NS ns2.toxingwang.com.    ##增加NS记录
101 IN PTR ns.toxingwang.com.
100 IN PTR ns2.toxingwang.com.   ##增加反向解析记录
100 IN PTR www.toxingwang.com.
3 IN PTR mail.toxingwang.com.

重启服务生效:

[root@ns named]# service named restart
停止 named: [确定]
启动 named: [确定]

2.2 从DNS服务器配置:

从DNS服务器的安装与主DNS服务器安装过程相同,这里不再做介绍,而是直接讲解配置过程:

named.conf区域定义配置:

zone “.” IN {
type hint;
file “named.ca”;
};

zone “toxingwang.com” IN {
type slave;         ##区域类型
file “slaves/named.toxingwang.com”;  ##数据文件路径
masters { 192.168.8.101; };      ##主DNS服务器地址
allow-transfer { none; };
};

zone “localhost” IN {
type master;
file “named.localhost”;
allow-transfer { none; };
};
zone “8.168.192.in-addr.arpa” IN {
type slave;    ##类型为slave
file “slaves/named.192.168.8”;   ##数据文件路径
masters { 192.168.8.101; };  ##主DNS服务器地址
allow-transfer { none; };
};

检查配置是否有误:

[root@ns2 ~]# named-checkconf   ##没有提示表示没有语法错误

从DNS服务器数据文件是直接从主DNS服务器复制而来,因此不需要配置数据文件。

重启named服务生效:

[root@ns2 ~]# service named restart
停止 named:. [确定]
启动 named: [确定]

2.3 检查主从复制结果:

查看从DNS服务器数据文件是否生成:

[root@ns2 ~]# cd /var/named/slaves/
[root@ns2 slaves]# ls
named.192.168.8 named.toxingwang.com
##可以看到数据文件已经自动生成

查看从DNS服务器数据文件内容:

[root@ns2 slaves]# cat named.toxingwang.com
$ORIGIN .
$TTL 3600 ; 1 hour
toxingwang.com IN SOA ns.toxingwang.com. admin.toxingwang.com. (
2013081701 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS ns.toxingwang.com.
NS ns2.toxingwang.com.
MX 10 mail.toxingwang.com.
$ORIGIN toxingwang.com.
mail A 192.168.8.3
ns A 192.168.8.101
ns2 A 192.168.8.100
www A 192.168.8.100
www2 CNAME www

[root@ns2 slaves]# cat named.192.168.8
$ORIGIN .
$TTL 3600 ; 1 hour
8.168.192.in-addr.arpa IN SOA ns.toxingwang.com. admin.toxingwang.com. (
2013081701 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS ns.toxingwang.com.
NS ns2.toxingwang.com.
$ORIGIN 8.168.192.in-addr.arpa.
100 PTR ns2.toxingwang.com.
PTR www.toxingwang.com.
101 PTR ns.toxingwang.com.
3 PTR mail.toxingwang.com.

从自动生成的数据文件中,我们学到一些配置技巧,如宏的定义和使用:$ORIGIN  $TTL

查看主DNS服务器日志:

 [root@ns named]# tail /var/log/messages

Aug 17 06:51:09 ns named[1886]: managed-keys-zone ./IN: loaded serial 0
Aug 17 06:51:09 ns named[1886]: running
Aug 17 06:51:09 ns named[1886]: zone toxingwang.com/IN: sending notifies (serial 2013081701)
Aug 17 06:51:09 ns named[1886]: zone 8.168.192.in-addr.arpa/IN: sending notifies (serial 2013081701)
Aug 17 06:51:09 ns named[1886]: client 192.168.8.100#49937: transfer of ‘8.168.192.in-addr.arpa/IN’: AXFR-style IXFR started
Aug 17 06:51:09 ns named[1886]: client 192.168.8.100#49937: transfer of ‘8.168.192.in-addr.arpa/IN’: AXFR-style IXFR ended
Aug 17 06:57:05 ns named[1886]: client 192.168.8.100#51933: transfer of ‘8.168.192.in-addr.arpa/IN’: AXFR started
Aug 17 06:57:05 ns named[1886]: client 192.168.8.100#51933: transfer of ‘8.168.192.in-addr.arpa/IN’: AXFR ended
Aug 17 06:57:06 ns named[1886]: client 192.168.8.100#47153: transfer of ‘toxingwang.com/IN’: AXFR started
Aug 17 06:57:06 ns named[1886]: client 192.168.8.100#47153: transfer of ‘toxingwang.com/IN’: AXFR ended

客户端测试从DNS服务器解析情况:

dns主从复制1

修改主DNS中的解析,测试从服务器复制情况:

[root@ns named]# vi named.toxingwang.com

$TTL 1H
@ IN SOA ns.toxingwang.com. admin.toxingwang.com. (
2013081702 ; serial  ##修改序号
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.toxingwang.com.
IN NS ns2.toxingwang.com.
IN MX 10 mail.toxingwang.com.
ns IN A 192.168.8.101
ns2 IN A 192.168.8.100
www IN A 192.168.8.2   ##修改www主机解析
mail IN A 192.168.8.3
www2 IN CNAME www.toxingwang.com.
blog IN A 192.168.8.4   ##增加blog主机解析

主DNS服务器重新加载数据文件生效:

[root@ns named]# service named reload
重新载入named:        [确定]

查看主DNS服务器日志:

Aug 17 07:12:00 ns named[1886]: reloading configuration succeeded
Aug 17 07:12:00 ns named[1886]: reloading zones succeeded
Aug 17 07:12:00 ns named[1886]: zone toxingwang.com/IN: loaded serial 2013081703
Aug 17 07:12:00 ns named[1886]: zone toxingwang.com/IN: sending notifies (serial 2013081703)
Aug 17 07:12:00 ns named[1886]: client 192.168.8.100#38052: transfer of ‘toxingwang.com/IN’: AXFR-style IXFR started
Aug 17 07:12:00 ns named[1886]: client 192.168.8.100#38052: transfer of ‘toxingwang.com/IN’: AXFR-style IXFR ended

客户端测试:

dns主从复制2

 

通过测试,可以看出从DNS是可以正常工作的。