码迷,mamicode.com
首页 > 其他好文 > 详细

模拟智能DNS实验

时间:2017-10-12 22:57:34      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:dns   dig   智能   


技术分享

一:实验准备:

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


本文出自 “13162997” 博客,请务必保留此出处http://13172997.blog.51cto.com/13162997/1971713

模拟智能DNS实验

标签:dns   dig   智能   

原文地址:http://13172997.blog.51cto.com/13162997/1971713

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!