模擬智能DNS實驗


wKiom1nfEpXQXGy9AACDDhmEfts579.png

一:實驗準備:

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章