1. 程式人生 > 其它 >DNS之五----實現智慧DNS

DNS之五----實現智慧DNS

DNS之五----實現智慧DNS

智慧DNS

架構圖:

環境準備:

主DNS伺服器:192.168.34.101(模擬北京地址)、172.18.0.7(模擬上海地址)
客戶端:192.168.34.102

1、建立三個DNS伺服器城市域的配置檔案

1.1 建立北京域

(1) 在主DNS伺服器上建立三個區域庫檔案,分別為北京、上海、深圳,複製過程中,注意保留屬性

[root@ansiblenamed]#vim /var/named/baidu.com.zone.bj
 
$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2
shenzhen  NS    dns3
dns1    A   192.168.34.101
dns2    A   192.168.34.103
dns3    A   192.168.34.102
 
www    CNAME    webs
webs   A      6.6.6.6 # 北京域名

(2)複製過程中注意保留檔案原有屬性:

[root@ansiblenamed]#cp -p  baidu.com.zone.bj baidu.com.zone.sh

1.2 建立上海域

建立上海資料庫檔案:

[root@ansiblenamed]#vim baidu.com.zone.sh
 
$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2
shenzhen  NS    dns3
dns1    A   192.168.34.101
dns2    A   192.168.34.103
dns3    A   192.168.34.102
 
www    CNAME    webs
webs   A      7.7.7.7  # 上海域名

1.3 建立深圳域

建立深圳資料庫檔案:

[root@ansiblenamed]#cp -p  baidu.com.zone.sh baidu.com.zone.sz
[root@ansiblenamed]#vim baidu.com.zone.sz
 
$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2
shenzhen  NS    dns3
dns1    A   192.168.34.101
dns2    A   192.168.34.103
dns3    A   192.168.34.102
 
www    CNAME    webs
webs   A      8.8.8.8  # 深圳域名

2、定義ACL,指定區域和地址段,並啟用view功能

在/etc/named.conf配置檔案中修改

[root@ansiblenamed]#vim /etc/named.conf
acl beijingnet {
        192.168.34.0/24;  # 北京訪問網段
};
acl shanghainet {
        172.18.0.0/16;  # 上海訪問網段
};
acl shenzhennet {
        any;    # 含義是剩餘其他的網段都可以訪問
};
 
 
 
view view_beijing {
        match-clients {beijingnet;};  # 定義三個北京區域
        include "/etc/named.rfc1912.zones";    
};
 
view view_shanghai {
        match-clients {shanghainet;};  # 定義上海區域
        include "/etc/named.rfc1912.zones.shanghai";    
};
 
view view_shenzhen {
        match-clients {shenzhennet;};  # 定義深圳區域
        include "/etc/named.rfc1912.zones.shenzhen";    
};

3、定義rfc1912.zones配置檔案,與named.conf配置檔案關聯

(1)我們定義三個/etc/named.rfc1912.zones 配置檔案:

# vim /etc/named/rfc1912.zones
zone "." IN {    # 在最上面建立此ca關係,複製了此四行,目的是為了與/etc/named.conf配置檔案關聯
        type hint;
        file "named.ca";
};
 
 
zone  "baidu.com" {
        type master;
        file "baidu.com.zone";  # 原有的主DNS伺服器配置檔案
};

(2)將第一個定義好的配置檔案複製一份,用來定義bj、shanghai、shenzhen的配置檔案,複製時,注意屬性:

# cp -p /etc/named.rfc1912.zones  /etc/named.rfc1912.zones.shanghai
# cp -p /etc/named.rfc1912.zones  /etc/named.rfc1912.zones.shenzhen
# cp -p /etc/named.rfc1912.zones  /etc/named.rfc1912.zones.bj

(3)然後修改bj的配置檔案:

# vim /etc/named.rfc1912.zones.bj
zone  "baidu.com" {
        type master;
        file "baidu.com.zone";  # 原有的主DNS伺服器配置檔案
};

(4)然後修改shanghai的配置檔案:

[root@ansiblenamed]#vim /etc/named.rfc1912.zones.shanghai
zone  "baidu.com" {
        type master;
        file "baidu.com.zone.sh";  # 建立上海域
};

(5)修改shenzhen的配置檔案:

[root@ansiblenamed]#vim /etc/named.rfc1912.zones.shenzhen
zone  "baidu.com" {
        type master;
        file "baidu.com.zone.sz";  # 建立深圳域
};

4、驗證效果:

開始驗證不同網址對應的不同區域:

  • 192.168.34.0/24網段是北京區域
  • 127.18.0.0/16是上海區域
  • 其他地址是屬於深圳區域

北京效果:

在主機B上dig,獲取的的結果是6.6.6.6,返回的就是北京的IP地址資訊

[root@centos6~]#dig www.baidu.com   #在B主機上dig,此時B主機上的IP地址預設是192.168.34.105,是北京的網址
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26005
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
 
;; QUESTION SECTION:
;www.baidu.com.         IN  A
 
;; ANSWER SECTION:
<strong>www.baidu.com.      86400   IN  CNAME   webs.baidu.com.
webs.baidu.com.     86400   IN  A   6.6.6.6</strong>
 
;; AUTHORITY SECTION:
baidu.com.      86400   IN  NS  dns1.baidu.com.
baidu.com.      86400   IN  NS  dns2.baidu.com.
 
;; ADDITIONAL SECTION:
dns1.baidu.com.     86400   IN  A   192.168.34.101
dns2.baidu.com.     86400   IN  A   192.168.34.103
 
;; Query time: 1 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Thu Nov  7 23:33:05 2019
;; MSG SIZE  rcvd: 136

上海效果:

在主機B上dig www.baidu.com @172.18.0.7,輸入對方的IP地址,會從本機去訪問對方,從而獲取當前的區域資訊:

得知 7.7.7.7,返回上海區域資訊

[root@centos6network-scripts]#dig www.baidu.com @172.18.0.7
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com @172.18.0.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31631
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
 
;; QUESTION SECTION:
;www.baidu.com.         IN  A
 
;; ANSWER SECTION:
<strong>www.baidu.com.      86400   IN  CNAME   webs.baidu.com.
webs.baidu.com.     86400   IN  A   7.7.7.7</strong>
 
;; AUTHORITY SECTION:
baidu.com.      86400   IN  NS  dns1.baidu.com.
baidu.com.      86400   IN  NS  dns2.baidu.com.
 
;; ADDITIONAL SECTION:
dns1.baidu.com.     86400   IN  A   192.168.34.101
dns2.baidu.com.     86400   IN  A   192.168.34.103
 
;; Query time: 3 msec
;; SERVER: 172.18.0.7#53(172.18.0.7)
;; WHEN: Thu Nov  7 23:41:20 2019
;; MSG SIZE  rcvd: 136

深圳效果:

在配置相關資料的主機A上dig一個其他的IP地址,得到最終得到8.8.8.8的IP地址,返回的的是深圳的地址

[root@ansiblenetwork-scripts]#dig www.baidu.com @127.0.0.1
 
; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> www.baidu.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22706
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.         IN  A
 
;; ANSWER SECTION:
www.baidu.com.      86400   IN  CNAME   webs.baidu.com.
webs.baidu.com.     86400   IN  A   8.8.8.8
 
;; AUTHORITY SECTION:
baidu.com.      86400   IN  NS  dns2.baidu.com.
baidu.com.      86400   IN  NS  dns1.baidu.com.
 
;; ADDITIONAL SECTION:
dns1.baidu.com.     86400   IN  A   192.168.34.101
dns2.baidu.com.     86400   IN  A   192.168.34.103
 
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Nov 07 23:46:12 CST 2019
;; MSG SIZE  rcvd: 147

轉載至https://www.cnblogs.com/struggle-1216/p/12582297.html