项目环境:
一台linux ip:192.168.1.1 一台linux ip:192.168.1.100 一台linux ip:192.168.1.200
项目需求:
1:搭建总部DNS服务器IP为192.168.1.100,实现解析sw.com域名
2:搭建上海分公司子域DNS服务器ip为192.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:测试
[[email protected] ~]# 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加速。