在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