您的位置:首页 > 其它

模拟智能DNS实验

2017-10-12 14:58 218 查看



一:实验准备:
1、智能DNS底层是基于acl控制的,由view将定义好的acl与区域数据库相连接
2、相关内容:
acl:把一个或多个地址归并为一个集合,并通过一个统一的名称调用
view:视图,一个bind服务器可定义多个view,每个view中可定义一个或多个zone;每个view用来匹配一组客户端
注意:一旦启用了view,所有的zone都只能定义在view中;客户端请求到达时,是自上而下检查每个view所服务的客户端列表
3、准备两台虚拟机,DNS服务器端ip:192.168.242.248;172.17.250.107; DNS客户端ip:192.168.242.202;172.17.250.106;
[root@localhost /var/named]# cat /etc/resolv.conf       #服务器的DNS指向自己  #客户端的DNS不做限制
; generated by /usr/sbin/dhclient-script
search magedu.com
nameserver 172.17.250.107
[root@localhost /var/named]#
4、实验目的:根据acl定义的网段,访问相应的区域数据库文件,模拟现实网络中,根据地区区域号就近访问该地区的DNS服务器
二:实验步骤:
1、创建数据库文件:
[root@Centos6 /var/named]# vim /var/named/sjj.com.zone.beijing  #beijing的数据库文件
$TTL 1D
@       IN SOA  dns1 mail.sjj.com. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
NS      dns1        #NS后面接的是DNS服务器名字,配合A将名字解析出相应的服务器ip
dns1         A       172.17.250.107         #服务器ip
www         CNAME       websrv1
websrv1        A       172.17.6.6   #此处的ip是随意定义的

[root@Centos6 /var/named]# vim /var/named/sjj.com.zone.shanghai    #shanghai的数据库文件
$TTL 1D
@       IN SOA  dns1 mail.sjj.com. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
NS      dns1
dns1        A       192.168.242.248
www        CNAME       websrv2
websrv2       A       192.168.12.1
2、在/etc/named.conf中创建acl
[root@Centos6 /var/named]# vim /etc/named.conf       #在options前加入以下代码
acl beijingnet {
172.17.0.0/16;
};
acl shanghainet {
192.168.242.0/24;
};
3、在/etc/named.conf中创建view
[root@Centos6 /var/named]# vim /etc/named.conf      #在logging{}下面的区域信息中加入以下代码
view beijingview {
match-clients { beijingnet; };
zone "sjj.com" {     #此处与第二个view用了两种方法,这种方法不需要再改/etc/named.rfc1912.zones
type master;
file "sjj.com.zone.beijing";
};

zone "." IN {
type hint;
file "named.ca";
};
};
view shanghaiview {
match-clients { shanghainet; };
include "/etc/named.rfc1912.zones"; # 此处的写法,需要去/etc/named.rfc1912.zones里定义
zone "." IN {
type hint;
file "named.ca";
};
};
4、根据第三步中,shanghaiview里的include "/etc/named.rfc1912.zones.shanghai";所以需要在"/etc/named.rfc1912.zones"文件里定义如下代码:
[root@Centos6 /var/named]# vim /etc/named.rfc1912.zones
zone "sjj.com" IN {
type master;
file "sjj.com.zone.shanghai";
};
5、写完配置文件和区域数据库文件后,可以检查一下,是否有语法错误
[root@Centos6 /var/named]# named-checkconf   # 检查配置文件/etc/named.conf文件
[root@Centos6 /var/named]# named-checkzone sjj.com /var/named/sjj.com.zone.shanghai  #检查数据库文件
zone sjj.com/IN: loaded serial 0
OK
[root@Centos6 /var/named]# named-checkzone sjj.com /var/named/sjj.com.zone.beijing
zone sjj.com/IN: loaded serial 0
OK
[root@Centos6 /var/named]#
[root@Centos6 /var/named]# rndc flush    #清空缓存
[root@Centos6 /var/named]# rndc reload    #重新加载
server reload successful
[root@Centos6 /var/named]#
6、看一下named服务是否开启,若出现如下所示显示关闭,则开启。
[root@Centos6 /var/named]# service named status
rndc: connect failed: 127.0.0.1#953: connection refused
named is stopped                     #显示服务关闭
[root@Centos6 /var/named]#
[root@Centos6 /var/named]# service named start     #开启服务
Starting named:                                            [  OK  ]
[root@Centos6 /var/named]# service named status    #查询服务状态
version: 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6
CPUs found: 1
worker threads: 1
number of zones: 38
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
named (pid  5359) is running...                 #运行
[root@Centos6 /var/named]#
看一下防火墙是否开启,可以直接执行iptables -F将其关闭(若本来已关闭,也无妨),也可以看一下SElinux是否关闭---》getenforce,若结果不是“Permissive”,则用---》setenforce 0将其关闭(也可做可不做,但做了不会有负面影响)
三:实验测试:
1、在客户端主机上用两个ip分别测试
[root@Centos6 /var/named]# dig www.sjj.com @192.168.242.248   #用192.168.242.0网段的服务端ip测试
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.sjj.com @192.168.242.248
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4756
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.sjj.com.                   IN      A
;; ANSWER SECTION:
www.sjj.com.            86400   IN      CNAME   websrv2.sjj.com.
websrv2.sjj.com.        86400   IN      A       192.168.12.1
;; AUTHORITY SECTION:
sjj.com.                86400   IN      NS      dns1.sjj.com.
;; ADDITIONAL SECTION:
dns1.sjj.com.           86400   IN      A       192.168.242.248
;; Query time: 2 msec
;; SERVER: 192.168.242.248#53(192.168.242.248)
;; WHEN: Thu Oct 12 11:54:25 2017
;; MSG SIZE  rcvd: 102
[root@Centos6 /var/named]#
[root@Centos6 /var/named]# dig www.sjj.com @172.17.250.107   #用172.17.0.0网段的服务端ip测试

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.sjj.com @172.17.250.107
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9394
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.sjj.com.                   IN      A

;; ANSWER SECTION:
www.sjj.com.            86400   IN      CNAME   websrv1.sjj.com.
websrv1.sjj.com.        86400   IN      A       172.17.6.6

;; AUTHORITY SECTION:
sjj.com.                86400   IN      NS      dns1.sjj.com.

;; ADDITIONAL SECTION:
dns1.sjj.com.           86400   IN      A       172.17.250.107

;; Query time: 3 msec
;; SERVER: 172.17.250.107#53(172.17.250.107)
;; WHEN: Thu Oct 12 11:56:24 2017
;; MSG SIZE  rcvd: 102

[root@Centos6 /var/named]#
2、可以在服务器端自己检测一下:
[root@localhost ~]# dig             #先直接dig www.sjj.com
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> www.sjj.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26146
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.sjj.com.                   IN      A
;; ANSWER SECTION:
www.sjj.com.            86400   IN      CNAME   websrv1.sjj.com.
websrv1.sjj.com.        86400   IN      A       172.17.1.1   #默认走的是172。17.0.0网络
;; AUTHORITY SECTION:
sjj.com.                86400   IN      NS      dns1.sjj.com.
;; ADDITIONAL SECTION:
dns1.sjj.com.           86400   IN      A       172.17.250.107
;; Query time: 2 msec
;; SERVER: 172.17.250.107#53(172.17.250.107)
;; WHEN: Fri Oct 13 12:27:50 CST 2017
;; MSG SIZE  rcvd: 113
[root@localhost ~]# dig www.sjj.com @192.168.242.248   # 所以可以再用192.168.242.0网络段的ip测
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> www.sjj.com @192.168.242.248
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32378
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.sjj.com.                   IN      A
;; ANSWER SECTION:
www.sjj.com.            86400   IN      CNAME   websrv2.sjj.com.
websrv2.sjj.com.        86400   IN      A       192.168.1.1
;; AUTHORITY SECTION:
sjj.com.                86400   IN      NS      dns1.sjj.com.
;; ADDITIONAL SECTION:
dns1.sjj.com.           86400   IN      A       192.168.242.248
;; Query time: 1 msec
;; SERVER: 192.168.242.248#53(192.168.242.248)
;; WHEN: Fri Oct 13 12:28:02 CST 2017
;; MSG SIZE  rcvd: 113
[root@localhost ~]#
四:实验总结:
试验其实不难,但是还是不是太顺利,从昨天晚上到今天上午,一直处于测试阶段

1、检查文件觉得没有问题,可是就是dig不出结果,然后就将bind包删除重新安装,重新配置文件,但结果仍然是不行,就问了下同学,我本来在每个数据库文件里设置了两个dns,他给我删的剩一个,检查检查防火墙、SElinux、从客户端ping服务器。。。。然后dig时可以通过192.168.242.0网段的ip测试,但是172.17.0.0网段的不行,然后就用服务器端去ping客户端,结果发现,ping 172.17.250.106时卡住了,过了大概有几秒左右,就通了,然后这时在客户端去dig www.sjj.com @172.17.250.107就出结果了,就这样尝试了几次,发现,服务器ping客户机通时,测试出结果,不通时出不了结果;

2、我忘记NS后面放的是服务器的名字,所以相对应的其下的名字对应解析出的ip必须是服务器的ip(如下图所示,192.168.242.248是本次实验中服务器的ip地址),而我刚开始是胡乱写的一个ip,所以在测试dig时找不到服务器,故而不能解析出服务器上的记录。
NS      dns1
dns1        A       192.168.242.248
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dns 智能 dig