Linux实现内容分发的主备模式的智能DNS

BIND实现智能DNS的原理是通过view的方式,首先判断客户请求的来源,然后返回不同的IP

规划:为za.com域进行智能解析

分2个网段,192.168.1.0/24网段的请求解析到192.168.1.100主机上, 其它网段解析到172.16.1.100主机,这里172.16.1.100模拟外网。

这和一般公司的模式很接近,为公司内部提供内部私网地址的解析,避免路由器性能浪费。为外部提供公网地址的解析。

ns服务器的IP地址为192.168.1.251和172.16.1.251

ns从服务器的IP地址为192.168.1.252和172.16.1.252

 

一、安装配置主DNS服务器

# yum install bind-chroot bind-utils –y #安装bind-chroot和bind-utils

在 (/usr/share/doc/bind-9.9.4/)这个目录下有我们BIND配置文件的模板,将其拷贝到其伪根目录下即可:

cp /usr/share/doc/bind-9.9.4/sample/etc/* /var/named/chroot/etc
cp -a /usr/share/doc/bind-9.9.4/sample/var/* /var/named/chroot/var

建立要使用的配置文件,然后进行修改

# vim /etc/named.conf

#首先定义控制列表,这里定义了内网的网段 

 

acl innet {  

        127.0.0.0/8;  

        192.168.1.0/24;  

}; 

 

#全局配置,精简一点,只配置数据文件目录位置 

 

options {  

        directory       "/var/named";  

}; 

 

#创建内网用户的view 

 

view in {  

        match-clients      { innet; };            #定义用户为控制列表中所定义的  

        recursion yes;  #允许内网用户进行递归查询 

 

#下面是定义根区域和本地区域的正反解析 

 

        zone "." IN {                

                type hint;  

                file "named.ca";  

        }       

 

        zone "localhost" IN {  

                type master;  

                file "localhost.zone";  

        } 

 

        zone "0.0.127.in-addr.arpa" IN {  

                type master;  

                file "named.local";  

        } 

 

#定义内部网络用户解析 

 

        zone "za.com" IN {  

                type master;  

                file "za.com.in";  

                allow-transfer { none; }; #不允许区域传送  

                allow-update { none; }; #不允许更新  

        }  

#定义内部网络反向解析

  

  zone "0.168.192.in-addr.arpa" IN
  {
    type master;
    file "za.com.in.resv";
  };

}; 

 

#定义外部网络用户解析 

 

view out {  

        match-clients      { any; }; #允许所有用户(这里之所以允许所有用户,

                                      是因为bind对配置文件是从上往下读取解析的,

                                      匹配不到上面view所定义的acl,

                                      才会到这个view中来)  

        recursion no;  #不允许外部网络用户进行递归查询(我们不是免费的公共dns) 

 

        zone "za.com" IN {  

                type master;  

                file "za.com.out";  

                allow-transfer { none; };  

                allow-update { none; };  

        } 

   zone "1.16.172.in-addr.arpa" IN
  {
    type master;
    file "za.com.out.resv";
  };

}; 

 

# named-checkconf  #配置完成后注意检查配置文件的语法错误

至此就配置好了主配置文件,接下来创建区域数据文件

# cd /var/named/

# vim za.com.in #创建内部网络客户解析区域文件及反向解析文件

#这里就随便建立几个记录了 

 #正向解析

$TTL 1D
@ IN SOA @ admin.za.com.(
2017010101
1D
1H
1W
3H )
IN NS dns.za.com.

dns IN A 172.16.1.251
www IN A 172.16.1.100

 #反向解析

 

$TTL 86400
@ IN SOA @ admin.za.com.(
2017010101
1D
1H
1W
3H )
IN NS dns.za.com.
251 IN PTR dns.za.com.
100 IN PTR www.za.com.

 

 

 #创建外部网络客户解析区域文件及反向解析文件

#正向解析

$TTL 1D
@ IN SOA dns.za.com. admin.za.com.(
2017010101
1D
1H
1W
3H )
@ IN NS dns.za.com.
@ IN MX 10 mail.za.com.

dns IN A 192.168.1.251
www IN A 192.168.1.100

 

#反向解析

 

$TTL 86400
@ IN SOA @ admin.za.com.(
2017010101
1D
1H
1W
3H )
IN NS dns.za.com.
251 IN PTR dns.za.com.
100 IN PTR www.za.com.

 

 

至此所有配置都已经完成

检查下配置有无出错

①命令 named-checkconf 可以查看BIND的主配置文件的错误:

 

named-checkconf /var/named/chroot/etc/named.conf

 

②命令 named-checkzone 可以查看zone配置文件的错误:

 

 named-checkzone cnblogs.com.zone /var/named/chroot/var/named/za.com.in 

检查无错误后启动服务

systemctl start named-chroot

systemctl start named

打开防火墙的53及953端口:

firewall-cmd --zone=public --add-port=53/tcp --permanent

firewall-cmd --zone=public --add-port=953/tcp --permanent

firewall-cmd --zone=public --add-port=53/udp --permanent

firewall-cmd --reload

 

二 、设置从DNS服务器

重复第一个步骤,给从DNS服务器安装bind-chroot软件,然后设置开机启动并将它开启。做好后,就修改从DNS服务器的主配置文件/etc/named.conf。从DNS的主配置文件与主DNS的基本相同,因此直接把配置复制过去就行,但zone语句需要进行修改。如下所示,从DNS的named.conf配置文件中的zone语句:

 

zone "za.com" IN {

       type slave;                                    //指明本服务器是这个域的从DNS服务器

       file "slaves/za.com.in";              //从DNS的zone配置文件一定要放置在工作目录下的slaves目录中

       masters { 172.16.1.251; };                         //指定这个域的主DNS服务器的IP

};

 

与主DNS不同的是,从DNS上的zone配置文件不需要手动建立,它会通过同步自动建立。因此,从DNS上的配置文件这样就设置好了。

 

posted @ 2017-03-01 13:43  TK-D小跆风  阅读(460)  评论(0编辑  收藏  举报