在DNS域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,所以通过搭建从服务器可以减轻主服务器的负载压力,还可以提升用户的查询的效率。

实验环境:

系统:Redhat6.5

IP: 主DNS 192.168.10.50 从DNS 192.168.10.10

以正向解析实验为案例

第1步:主从DNS服务器都安装bind软件,提供named服务

yum install bind -y   #yum安装bind

第2步:配置主DNS服务器

  • 编辑主DNS服务器的主配置文件(/etc/named.conf)
vim /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"; allow-query {
any;** }; #允许使用DNS服务的地址 recursion yes;

  • 编辑主DNS服务器的区域配置文件-添加正向“benet.com”区域(/etc/named.rfc1912.zones)
vim /etc/named.rfc1912.zones

zone "benet.com" IN {
#正向“benet.com”区域 type master; #主区域 file "benet.com.local"; #正向区域数据文件 ** allow-transfer { 192.168.10.10; };**
#允许从服务器下载正向区域数据

  • 编辑主DNS服务器的区域数据文件(/var/named/benet.com.zone)
cd  /var/named
cp -p named.localhost benet.com.local #创建区域数据文件,保留文件的属性
vim /var/named/benet.com.local
 $TTL 1D
@       IN SOA  benet.com. admin.benet.com. ( #域名、域名管理员的邮箱(不要用@符号)
                                        0       ; serial         #更新序列号
                                        1D      ; refresh        #更新时间
                                        1H      ; retry          #重试延时
                                        1W      ; expire         #失效时间
                                        3H )    ; minimum        #无效解析记录的缓存时间
        NS      benet.com.        #域名服务器记录
        A       192.168.10.50    #服务器IPv4地址
        AAAA    ::1                   #服务器IPv6地址
bbs  IN A       192.168.10.45    #正向解析记录bbs.benet.com.
  • 启动named服务
service named start

-关闭iptables防火墙,方便从服务器可以下载主服务器的数据文件

service iptables stop

第3步:配置从DNS服务器

  • 编辑从DNS服务器的主配置文件(/etc/named.conf)
vim /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" allow-query {
any;
};
#允许使用DNS服务的地址 recursion yes;

  • 编辑从DNS服务器的区域配置文件-添加正向“benet.com”区域(/etc/named.rfc1912.zones)
vim /etc/named.rfc1912.zones

zone "benet.com" IN {
#正向“benet.com”区域 type ** slave**;
#类型为从区域 file "slaves/benet.com.local";
#下载的区域数据文件保存到slaves/目录下 masters { 192.168.10.50; };
#指定主服务器的IP地址

  • 启动named服务
service named start
  • 查看区域数据文件是否下载到/var/named/slaves/目录下
[root@RedHat6-1 ~]#  ls -l /var/named/
总用量 4
-rw-r--r--. 1 named named 329 3月  20 04:07 benet.com.local
[root@RedHat6-1 ~]# cat benet.com.local                            
$ORIGIN .
$TTL 86400	; 1 day
benet.com		IN SOA	benet.com. admin.benet.com. (
   			0          ; serial
   			86400      ; refresh (1 day)
   			3600       ; retry (1 hour)
   			604800     ; expire (1 week)
   			10800      ; minimum (3 hours)
   			)
   		NS	benet.com.
   		A	192.168.10.50
   		AAAA	::1
$ORIGIN benet.com.
bbs			A	192.168.10.45
  • 关闭iptables防火墙,方便客户端访问DNS服务器
service iptables stop

第4步:用Redhat7的Linux主机测试主从DNS服务器解析结果

在DNS配置文件(/etc/resolv.conf)添加nameserver参数指定DNS服务器IP地址,用nslookup命令进行域名正向解析。

vim /etc/resolv.conf
 nameserver 192.168.10.50  #指定DNS服务器IP地址是主DNS服务器IP地址
[root@RedHat7-1 ~]# nslookup bbs.benet.com
Server:		192.168.10.50               #主DNS服务器解析域名
Address:	192.168.10.50#53

Name:	bbs.benet.com
Address: 192.168.10.45
vim /etc/resolv.conf
 nameserver 192.168.10.10  #指定DNS服务器IP地址是从DNS服务器IP地址
[root@RedHat7-1 ~]# nslookup bbs.benet.com
Server:		192.168.10.10             #从DNS服务器解析域名
Address:	192.168.10.10#53

Name:	bbs.benet.com
Address: 192.168.10.45