目标:

1.成功搭建主从DNS服务器,实现正向反向解析

2.主DNS服务器只允许从DNS服务器的区域传送的请求,而从DNS服务器不能进行区域传送

3.域名解析请求的转发

4.acl和view的使用


Master DNS Server:192.168.0.22

Slave DNS Server:192.168.0.23

解析的域为 flyence.com


一.  搭建主DNS服务器

1. 安装bind

yum install bind –y


2. 启动named服务

Service named start


3.修改主配置文件/etc/named.conf,将下列3行注释

//      listen-on port 53 { 127.0.0.1; };
//      listen-on-v6 port 53 { ::1; };
//      allow-query     { localhost; };


4. 编辑/etc/named.rfc1912.zones,建立正向解析区域

zone "flyence.com" IN {
         type master;
          file "flyence.com";
};


5.建立/var/named/flyence.com文件

$TTL 600
@   IN  SOA dns.flyence.com.    admin.flyence.com. (
        2014032301   ; serial
        2H           ; refresh (2 hours)
        10M          ; retry (10 minutes)
        7D           ; expire (1 week)
        2H           ; minimum (2 hours)
)
    IN  NS  dns
    IN  NS  dns2     ;辅助DNS服务器的IP地址
    IN  MX 10   mail
dns IN  A   192.168.0.22
dns2    IN  A   192.168.0.23
mail    IN  A   192.168.0.100
www     IN  A   192.168.0.101
www     IN  A   192.168.0.102
music   IN  CNAME   www


6.修改/var/named/flyence.com文件属性

chmod 640 /var/named/flyence.com
chown :named /var/named/flyence.com


7. 编辑/etc/named.rfc1912.zones,建立反向解析区域

zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.0";
};


8. 创建/var/named/192.168.0

$TTL 600
@   IN  SOA dns.flyence.com.    admin.flyence.com. (
        2014032301
        2H
        10M
        7D
        2H
)
    IN  NS  dns.flyence.com.
    IN  NS  dns2.flyence.com.
22  IN  PTR dns.flyence.com.
23  IN  PTR dns2.flyence.com.
100 IN  PTR mail.flyence.com.
101 IN  PTR www.flyence.com.
102 IN  PTR www.flyence.com.


9. 修改/var/named/192.168.0文件属性

chmod 640 /var/named/192.168.0
chown :named /var/named/192.168.0


10. 重新载入配置文件并测试

rndc reload


11. 测试

DNS主辅服务器的搭建及acl和view的使用_DNS


DNS主辅服务器的搭建及acl和view的使用_view_02


二. 搭建辅助DNS服务器

1. 安装bind

yum install bind –y


2. 启动named服务

Service named start


3.修改主配置文件/etc/named.conf,将下列3行注释

//     listen-on port 53 { 127.0.0.1; };
//     listen-on-v6 port 53 { ::1; };
//     allow-query     { localhost; };


4. 编辑/etc/named.rfc1912.zones,建立正向及反向解析区域

zone "flyence.com" IN {
         type slave;
         file "slave/flyence.com";
         masters {  192.168.0.22;  };
};
zone "0.168.192.in-addr.arpa" IN {
        type slave;
        file "slave/192.168.0";
    masters {  192.168.0.22;  };
};


5.重新读取主DNS服务器配置文件

rndc reload


6.测试

DNS主辅服务器的搭建及acl和view的使用_DNS_03


DNS主辅服务器的搭建及acl和view的使用_主辅_04


三. 配置allow-transfer

1. 主DNS只允许从DNS服务器的区域传送请求

在/etc/named.rfc1912.zones

zone "flyence.com" IN {
        type master;
        file "flyence.com";
        allow-transfer { 192.168.0.23; };
};
zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.0";
        allow-transfer { 192.168.0.23; };
};


2.测试,从本机请求完全区域传送

DNS主辅服务器的搭建及acl和view的使用_view_05


3. 辅助DNS服务器不允许任何人的区域传送请求

zone "flyence.com." IN {
        type slave;
        file "slaves/flyence.com";
        masters{ 192.168.0.22; };
        allow-transfer{ none; };
};
zone "0.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/192.168.0";
        masters{ 192.168.0.22; };
        allow-transfer{ none; };
};


4.测试,从本机请求完全区域传送

DNS主辅服务器的搭建及acl和view的使用_主辅_06


四. 域名解析请求的转发


当前在辅助DNS服务器向主DNS服务器请求解析“baidu.com.”的时候,是不能得到结果的

DNS主辅服务器的搭建及acl和view的使用_主辅_07


首先要保证转发请求的服务器必须为请求者提供递归查询,默认是开启的。

查看/etc/named.conf中的options选项中应该有一项是

recursion yes;

没有的话就加上。


1. 在主DNS服务器的/etc/named.conf中的options中加上两行

forwarders { 192.168.0.1; };
forward only;

注意在这里forwarders中的IP因人而异,是你要将请求转发至的服务器


2. 建立解析域zone=,可以建立在/etc/named.conf或在/etc/named.rfc1912.zones里。这次实验将它建立在/etc/named.conf中。

zone "baidu.com." IN {
       type forward;
       forwarders{ 192.168.0.1; };
       forward only;
};


3. 重读配置文件,并在辅助DNS服务器上测试。

rndc reload

DNS主辅服务器的搭建及acl和view的使用_view_08


五. 使用acl访问控制

在第三步中,对allow-transfer进行了设定,在这里可以使用acl来进行组设定


1. 在/etc/named.conf的最上方添加acl

acl allowaxfr {
    192.168.0.22;
    192.168.0.23;
};


2. 在/etc/named.rfc1912.zones中修改allow-transfer

zone "flyence.com" IN {
        type master;
        file "flyence.com";
        allow-transfer { allowaxfr; };
};

在反向解析中也这样修改。


3. 重读配置文件并测试

这次允许本机和辅助DNS进行完全传送

DNS主辅服务器的搭建及acl和view的使用_主辅_09


六. 使用view实现智能DNS解析

当使用view时,所有区域都必须在view中,包括根。则在/etc/named.conf中的根域必须搬到到/etc/named.rfc1912.zones中。


具体的用法

view VIEW_NAME {
    match-clients{ .. };
    zone ".." IN {
        ...
    };
}


192.168.0.23/32请求mail.flyence.com的IP时,显示192.168.0.100

其他所有主机请求mail.flyence.com的IP时,显示192.168.0.200


1. 将/etc/named.conf中的根域移动到/etc/named.rfc1912.zones中,并使用view

view "view1" {
    match-clients{ 192.168.0.23/32; };
    zone "." IN {
        type hint;
        file "named.ca";
    };
    zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
    };
    zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
    };
    zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.a    rpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
    };
    zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
    };
    zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
    };
    zone "flyence.com" IN {
        type master;
        file "flyence.com";
    };
    zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.0";
    };
};
view "view2" {
    match-clients{ any; };
    zone "flyence.com" IN {
        type master;
        file "flyence2.com";
    };
};


2. 复制/var/named/flyence.com为/var/named/flyence2.com,并将mx的A记录改为192.168.0.200

cp /var/named/flyence.com /var/named/flyence2.com


3. 修改/var/named/flyence2.com的权限和属组

chmod 640 /var/named/flyence2.com
chown :named /var/named/flyence2.com


4. 重读配置文件并进行测试

rndc reload

在192.168.0.23上

DNS主辅服务器的搭建及acl和view的使用_view_10

在192.168.2.134上测试

DNS主辅服务器的搭建及acl和view的使用_DNS_11