项目环境:

一台linux ip:192.168.1.1  一台linux ip:192.168.1.100    一台linux ip:192.168.1.200

项目需求:

1:搭建总部DNS服务器IP192.168.1.100,实现解析sw.com域名

2:搭建上海分公司子域DNS服务器ip192.168.1.200,实现解析sh.sw.com,同时可以解析总部的域名

3:在总部DNS服务器上实现DNS分离解析,把非总部查询分离到上海DNS服务器上

实现步骤:

1:在总部和上海DNS服务器上安装程序包,启动服务,设置为开机启动,备份主配置文件

见本博客DNS文章,这里不做累述

2:编辑总部DNS主配置文件

[root@bak1 etc]# vim named.conf

 

...
 15         listen-on port 53 { 192.168.1.100; };     //监听总部DNS服务器ip的53端口
 ...
 21         allow-transfer  { 192.168.1.200; };        //允许上海DNS服务器传输
 ...
 27         allow-query     { any; };                  //允许所有查询
 28         allow-query-cache { any; };                //允许所有缓存查询
 ...
 36 view sw.com {                                      //定义分离解析名
 37         match-clients      { 192.168.1.1; };       //指定当192.168.1.1访问时分离(实际工作中这里依据ip库写)
 38         match-destinations { any; };
 39         recursion yes;
 40         include "/etc/named.rfc1912.zones";     //当192.168.1.1访问时依据此副文件操作
 41 };
 42 view sh.sw.com {                                    //定义上海分离解析名   下略
 43         match-clients      { any; };
 44         match-destinations { any; };
 45         recursion yes;
 46         include "/etc/named.rfc1913.zones";
 47 };


3:编辑总部DNS副文件

[root@bak1 etc]# cp -p  named.rfc1912.zones named.rfc1913.zones          //复制一个上海副文件

[root@bak1 etc]# vim named.rfc1912.zones

 

...
 51 zone "sw.com" IN {                                    //宣告正向解析域名
 52         type master;                                  //指定主DNS类型
 53         file "sw.com.zone";                           //指定正向数据库文件名
 54 };
[root@bak1 etc]# vim named.rfc1913.zones
 ...
 51 zone "sw.com" IN {                          //宣告正向解析域名,准备分配到上海解析   
 52         type master;                                   //指定主DNS类型
 53         file "sh.sw.com.zone";                         //指定上海正向数据库文件名
 54 };


4:编辑总部正向数据库文件

[root@bak1 named]# cp -p sw.com.zone sh.sw.com.zone        //复制一个上海数据库文件

[root@bak1 named]# vim sw.com.zone                                    //编辑总部数据库文件

  1 $TTL    86400                                                 //DNS缓存生存时间
  2 @               IN SOA  bak1       root (                                        
  3                                         2014062403      ; serial (d. adams)  //序列号
  4                                         3H              ; refresh
  5                                         15M             ; retry
  6                                         1W              ; expiry
  7                                         1D )            ; minimum
  8 
  9                 IN NS           bak1.sw.com.       //当前域的域名服务器为bak1.sw.com
 10 sh.sw.com.              IN NS           dns1.sh.sw.com.    //子域的域名服务器
 11 bak1            IN A            192.168.1.100              //域名服务器的A记录
 12 dns1.sh         IN A            192.168.1.200              //子域域名服务器的A记录
 13 www             IN A            202.106.0.20              //www主机的a记录
[root@bak1 named]# vim sh.sw.com.zone                        //编辑上海数据库文件
 ...
 13 www.sw.com.     IN A      8.8.8.8    //上同总部数据库,只在最后加上海www.sw.com的解析


5:编辑上海DNS主配置文件

[root@bak2 etc]# vim named.conf 

 

...
 15         listen-on port 53 { 192.168.1.200; };       //监听上海DNS服务器ip的53端口
 ...
 21         allow-transfer  { none; };                   //不允许其他DNS服务器传输
 22         forwarders { 192.168.1.100;};               //查询转发给总部DNS服务器
 ...
 27         allow-query     { any; };                   //允许所有查询
 28         allow-query-cache { any; };                  //允许所有缓存查询
 ...


6:编辑上海副文件

[root@bak2 etc]# vim named.rfc1912.zones

 ...
 51 zone "sh.sw.com" IN {
 52         type master;
 53         file "sh.sw.com.zone";
 54 };


7:编辑上海数据库文件

[root@bak2 named]# vim sh.sw.com.zone 

 ...
  9                 IN NS           dns1.sh.sw.com.
 10 dns1            IN A            192.168.1.200
 11 bbs             IN A            10.0.0.1                   //子域定义一个bbs主机


8重启named服务

[root@bak1 named]# service named restart

[root@bak2 named]# service named restart

9:测试

[root@192.168.1.1 ~]# host www.sw.com 192.168.1.100             //用总部ip测试,解析到了总部主机地址

www.sw.com has address 202.106.0.20

[root@bak2 named]# host www.sw.com 192.168.1.100          //用其他ip测试,解析到了上海主机地址

www.sw.com has address 8.8.8.8

[root@bak2 named]# host www.sw.com 192.168.1.200          //上海DNS服务器可以转发到总部DNS解析

www.sw.com has address 8.8.8.8

[root@localhost ~]# host bbs.sh.sw.com 192.168.1.200       //子域DNS可以解析域名

bbs.sh.sw.com has address 10.0.0.1

[root@localhost ~]# host bbs.sh.sw.com 192.168.1.100      //总部的父域也可以解析域名

bbs.sh.sw.com has address 10.0.0.1

总结:通过此项目可以实现DNS的授权管理,避免了公司总部DNS条目频繁增减。各个分公司可以灵活增减主机解析。通过配置分离解析(视图)可以把DNS解析分配到离客户访问最近的地区,实现DNS加速。