站長資訊網
        最全最豐富的資訊網站

        Linux下搭建主從DNS服務器并實現智能解析

        1. TLD:Top Level Domain 頂級域名

        組織域:.com, .net, .org, .gov, .edu, .mil
        國家域:.iq, .tw, .hk, .jp, .cn, …

        2. 域名分級

        Linux下搭建主從DNS服務器并實現智能解析

        根域名: .
        頂級域名:.com .edu .gov .int .net .cn .us .jp ……..
        二級域名:baidu.com microsoft.com jd.com qq.com aliyun.com edu.cn
        三級域名:map.baidu.com nankai.edu.cn
        四級域名:www.nankai.edu.cn cs.nankai.edu.cn

        3. DNS查詢類型

        DNS查詢類型分為遞歸查詢和迭代查詢;
        遞歸查詢的意思是找了誰誰就一定要給出答案。那么允許遞歸的意思就是幫忙去找位置,如A對B允許遞歸,那么B詢問A時,A就去幫忙找答案;
        迭代查詢的意思是如果A不允許對B遞歸,那么A就會告訴B的下一層域的地址讓B自己去找,如果迭代查詢最終得出了答案,那一定是權威答案;
        Linux下搭建主從DNS服務器并實現智能解析

        4. DNS名稱解析方式

        正向解析: hostname —> IP
        訪問示例:

        A客戶端請求www.linuxidc.com --> 由DNS服務器完成(1、查詢本地緩存記錄和hosts文件,如果有直接返回,2、向root"."發起查詢查詢,查詢.com的NS記錄返回其.com的NS服務器))--->再向.com的NS服務器查詢"linuxidc.com"域的NS服務器,并返回其結果值---->根據linuxidc的NS服務器記錄地址,---> NS服務器查詢其所對應的www主機所對應的IP地址,并返回給服務器。    正向解析的層級如下:  .  com  linuxidc  www    由于緩存是多層次緩存的,所以真正的查詢可能并沒有那么多步驟,上圖的步驟是完全沒有所需緩存的查詢情況。假如某主機曾經向DNS服務器提交了www.linuxidc.com的查詢,那么在DNS服務器上除了緩存了www.linuxidc.com的記錄,還緩存了".com"和"linuxidc.com"的記錄,如果再有主機向該DNS服務器提交ftp.linuxidc.com的查詢,那么將跳過"."和".com"的查詢過程直接向linuxidc.com發出查詢請求。

        反向解析: IP —> hostname
        訪問示例:

        A客戶端想查詢IP地址4.2.3.1反解記錄 ---> 由DNS發起請求查詢"."域,由"."返回其ip-addr.arpa的NS記錄,--> 服務器查詢ip-addr.arpa的NS服務器,由NS服務器返回"1"區域的NS服務器地址,并將結果返回到服務器--->服務器查詢"1"區域中的記錄,由"1"區域返回"2"區域中的NS記錄--->服務器向"2"區域查詢"3"區域,由2區域返回3區域中的NS記錄--->服務器再讓3區域中的NS記錄,3區域查詢并返回4的主機所對應的主機地址。    反向解析的層級如下:  .  ip-addr.arpa  1  2  3  4 

        5. 反向解析的作用

        DNS服務器里面有兩個區域,即“正向查找區域”和“反向查找區域”,正向查找區域就是通常所說的域名解析,反向查找區域即是IP反向解析,它得到作用是通過查找IP地址的PTR記錄來得到該IP地址指向的域名。要成功得到域名就必須有該IP地址的PTR記錄。PTR及記錄是郵件交換記錄的一種,郵件交換記錄中有A記錄和PTR記錄,A記錄解析名字到地址,PTR記錄解析地址到名字。
        反向域名解析系統(Reverse DNS)的功能確保適當的郵件交換記錄是生效的。反向域名解析與通常的正向域名解析相反,提供IP地址到域名的對應。IP反向解析主要應用到郵件服務器中來阻攔垃圾郵件。多數垃圾郵件發送者使用動態分配或者沒有注冊域名的IP地址來發送垃圾郵件,以避免追蹤,使用域名反向解析后,就可以大大降低垃圾郵件的數量。
        比如用xxx@name.com這個郵箱給kasum@lwork.com發一封信,lwork郵件服務器接到這封信會查看這封信的信頭文件,這封信的信頭文件會顯示這封信是由哪個IP地址發出來的。然后根據這個IP地址進行反向解析,如果反向解析到這個IP對應的域名是name.com就接收這封郵件,如果反向解析這個IP沒有對應到name.com,那么就拒絕這封郵件。
        由于在域名系統中,一個IP地址可以對應多個域名,因此從IP出發去找域名,理論上應該遍歷整個域名樹,但是這在internet上是不現實的。為了完成逆向域名解析,系統提供一個特別域,該特別域稱為逆向解析域in-addr.arpa.這樣欲解析的IP地址就會被表達城一種像域名一樣的可顯示串形式,后綴以逆向解析域域名“in-addr.arpa”結尾。

        測試反解(Windows方法)

        C:UsersAdministrator>nslookup -qt=ptr 111.204.53.64  服務器:  xd-cache-1.bjtelecom.net  Address:  219.141.136.10  非權威應答:  64.53.204.111.in-addr.arpa      name = mail.ybjt.net    [c:~]$ nslookup -qt=ptr 123.59.246.200  非權威應答:  服務器:  xd-cache-1.bjtelecom.net  Address:  219.141.136.10  200.246.59.123.in-addr.arpa name = mail.ehousechina.com

        測試反解(Linux方法)

        [Allen@master ~]$ dig -x 123.59.246.200 | grep -A1 "ANSWER SECTION"  ;; ANSWER SECTION:  200.246.59.123.in-addr.arpa. 21599 IN   PTR mail.ehousechina.com.  [Allen@master ~]$ dig -x 111.204.53.64 | grep -A1 "ANSWER SECTION"  ;; ANSWER SECTION:  64.53.204.111.in-addr.arpa. 37  IN  PTR mail.ybjt.net.

        6. 權威答案與非權威答案

        • 權威答案:直接負責這個域的NS服務器返回的答案;
        • 非權威答案:服務器不負責這個域,只是因為之前解析過,所以緩存中有,返回緩存中的答案;將這種答案叫做非權威答案是因為,上級DNS可能隨時會更新,而所查詢的DNS服務器本地緩存不一定及時更新了,所以這時客戶端得到的答案可能是無效的;

        7. 主/從DNS服務器

        • 主DNS服務器:維護所負責解析的域的數據庫的服務器;讀寫操作均可進行;主服務器的數據會不斷發生改變;
        • 從DNS服務器:從主DNS服務器那里或其它的從DNS服務器那里“復制”一份解析庫;但只能進行讀操作不能修改;從服務器的數據庫要隨時同步主服務器的數據;

        8. 主/從之間的同步方式

        在主DNS服務器上定義數據庫的序號,當要改變數據庫時,手動將序號增加,從DNS服務器每隔一段時間去同步時,根據這個序號判斷是否更新自己的數據庫(如果主DNS服務器的序號大,就要更新數據);
        配置文件中要需要定義一下幾個計時器:

        • 刷新時間間隔refresh:表示從服務器多長時間去同步一次;
        • 重試時間間隔retry:表示同步不到時等待多長時間以后再嘗試同步,重試時間要短于刷新時間;
        • 過期時長expire:表示從服務器始終聯系不到主服務器時,多久之后放棄從主服務器同步數據;停止提供服務;
        • negative answer ttl: 否定答案的緩存時長;

        假如在刷新時間為5分鐘,從服務器剛刷新完數據庫,過1分鐘后,主服務器就更新了數據庫,那么在后面的4分鐘之內,從服務器與主服務器的數據庫是不同步的,如果在這段時間主服務器掛了,從服務器將沒辦法得到數據,也沒辦法向客戶端提供最新數據服務,所以用刷新時間解決數據庫更新同步是不完美的;

        9. 主實時的通知從更新數據

        主服務器數據庫有變化,會立即通知從服務器更新數據庫;這樣數據庫同步就有了兩種叫法:一種站在從服務器角度是拉取,一種是站在主服務器角度描述推送;

        10. 區域傳送

        當主服務器數據庫量很大,有上萬個域名解析,從服務器來來取數據庫時,主服務器數據庫只更新了一條信息,從服務器則不用把整個數據庫同步一遍,而只需同步變化的數據即可;當從服務器是新數據庫時才同步整個數據庫;這個同步的過程也叫區域傳送,有兩種方式,一種是全量傳送axfr,一種是增量傳送ixfr;

        11. 創建主/從DNS,實現智能解析實驗

        11.1. 基礎信息說明

        • 二級域名:linuxidc.com、linuxmi.com
        • linuxidc.com主DNS服務器:10.207.51.40:master.linuxidc.com
        • linuxidc.com從DNS服務器:10.207.51.30; 10.207.51.31:slave.linuxidc.com
        • linuxmi.com主DNS服務器:10.207.51.32:master.linuxmi.com
        • web服務器:10.207.51.41:www.linuxidc.com—>www.a.linuxmi.com
        • web服務器:10.207.51.42:www.linuxidc.com—>www.b.linuxmi.com
        • client1:10.207.51.61
        • client2:10.207.51.81

        實現效果:當client1訪問www.linuxidc.com時解析到10.207.51.41;當client2訪問www.linuxidc.com是解析到10.207.51.42;

        11.2. 配置主DNS服務器

        [root@master ~]# yum install -y bind

        11.2.1. 修改主配置文件

        [root@master ~]# vim /etc/named.conf        ##區域配置保持默認即可  options {      listen-on port 53 { 10.207.51.40; };      allow-query     { any; };      forward first;      forwarders { 10.207.51.32; };      recursion yes;      allow-recursion { 10.0.0.0/8;172.16.0.0/15;192.168.0.0/16; };      dnssec-enable no;      dnssec-validation no;      forward first;      forwarders { 8.8.8.8; };        //zone "." IN {      //  type hint;      //  file "named.ca";      //};    [root@master ~]# vim /etc/named.rfc1912.zones  acl client1 { 10.207.51.61;10.207.51.30; };  acl client2 { 10.207.51.81;10.207.51.31; };    view "client1" {      match-clients { "client1"; };        zone "." IN {          type hint;          file "named.ca";      };        zone "linuxidc.com" IN {          type master;          file "linuxidc.com.zone.c1";          allow-transfer  { 10.207.51.30; };          allow-update { none; };      };        zone "51.207.10.in-addr.arpa" IN {          type master;          file "10.207.51.zone.c1";          allow-transfer  { 10.207.51.30; };          allow-update { none; };      };            zone "linuxmi.com" IN {              type forward;              forward only;              forwarders { 10.207.51.32; };          };  };    view "client2" {      match-clients { "client2"; };        zone "." IN {          type hint;          file "named.ca";      };        zone "linuxidc.com" IN {          type master;          file "linuxidc.com.zone.c2";          allow-transfer  { 10.207.51.31; };          allow-update { none; };      };        zone "51.207.10.in-addr.arpa" IN {          type master;          file "10.207.51.zone.c2";          allow-transfer  { 10.207.51.31; };          allow-update { none; };      };            zone "linuxmi.com" IN {              type forward;              forward only;              forwarders { 10.207.51.32; };          };  };

        11.2.2. 創建zonefile

        [root@master ~]# vim /var/named/linuxidc.com.zone.c1   $TTL    3600  $ORIGIN linuxidc.com.  @   IN  SOA master.linuxidc.com.    admin.linuxidc.com. ( 2018111601 1H 30M 5H 1H )      IN  NS  master      IN  NS  slave  master  IN  A   10.207.51.40  slave   IN  A   10.207.51.31  www     IN  CNAME   www.a.linuxmi.com.    [root@master ~]# vim /var/named/linuxidc.com.zone.c2  $TTL    3600  $ORIGIN linuxidc.com.  @   IN  SOA master.linuxidc.com.    admin.linuxidc.com. ( 2018111601 1H 30M 5H 1H )      IN  NS  master      IN  NS  slave  master  IN  A   10.207.51.40  slave   IN  A   10.207.51.31  www     IN  CNAME   www.b.linuxmi.com.    [root@master ~]# vim /var/named/10.207.51.zone.c1   $TTL    3600  $ORIGIN 51.207.10.in-addr.arpa.  @   IN  SOA master.linuxidc.com.    admin.linuxidc.com. ( 2018111601 1H 30M 5H 1H )      IN  NS  master.linuxidc.com.      IN  NS  slave.linuxidc.com.  40  IN  PTR master.linuxidc.com.  31  IN  PTR slave.linuxidc.com.  41  IN  PTR www.linuxidc.com.    [root@master ~]# vim /var/named/10.207.51.zone.c2  $TTL    3600  $ORIGIN 51.207.10.in-addr.arpa.  @   IN  SOA master.linuxidc.com.    admin.linuxidc.com. ( 2018111601 1H 30M 5H 1H )      IN  NS  master.linuxidc.com.      IN  NS  slave.linuxidc.com.  40  IN  PTR master.linuxidc.com.  31  IN  PTR slave.linuxidc.com.  42  IN  PTR www.linuxidc.com.

        11.2.3. 修改權限

        [root@master ~]# cd /var/named/  [root@master named]# chown :named linuxidc.com.zone.c1 linuxidc.com.zone.c2 10.207.51.zone.c1 10.207.51.zone.c2   [root@master named]# chmod 640 linuxidc.com.zone.c1 linuxidc.com.zone.c2 10.207.51.zone.c1 10.207.51.zone.c2

        11.2.4. 啟動服務

        [root@master named]# systemctl start named  [root@master named]# ss -antu | grep "<53"  udp    UNCONN     0      0      10.207.51.40:53                    *:*                    tcp    LISTEN     0      10     10.207.51.40:53                    *:*             

        11.3. 配置備DNS服務器

        [root@slave ~]# yum install -y bind

        10.3.1. 修改主配置文件

        [root@slave ~]# vim /etc/named.conf        ##區域配置保持默認即可  options {      listen-on port 53 { 10.207.51.31; };      allow-query     { any; };      forward first;      forwarders { 10.207.51.32; };      recursion yes;      allow-recursion { 10.0.0.0/8;172.16.0.0/8;192.168.0.0/8; };      dnssec-enable no;      dnssec-validation no;      forward first;      forwarders { 8.8.8.8; };        //zone "." IN {      //  type hint;      //  file "named.ca";      //};      [root@slave ~]# vim /etc/named.rfc1912.zones  acl client1 { 10.207.51.61; };  acl client2 { 10.207.51.81; };    view "client1" {      match-clients { "client1"; };        zone "linuxidc.com" IN {          type slave;          file "slaves/linuxidc.com.zone.c1";          masters { 10.207.51.40; };          transfer-source 10.207.51.31;      };            zone "51.207.10.in-addr.arpa" IN {          type slave;          file "slaves/10.207.51.zone.c1";          masters { 10.207.51.40; };          transfer-source 10.207.51.31;      };        zone "linuxmi.com" IN {          type forward;          forward only;          forwarders { 10.207.51.32; };      };  };      view "client2" {      match-clients { "client2"; };        zone "." IN {              type hint;              file "named.ca";      };        zone "linuxidc.com" IN {          type slave;          file "slaves/linuxidc.com.zone.c2";          masters { 10.207.51.40; };          transfer-source 10.207.51.31;      };            zone "51.207.10.in-addr.arpa" IN {          type slave;          file "slaves/10.207.51.zone.c2";          masters { 10.207.51.40; };          transfer-source 10.207.51.31;      };        zone "linuxmi.com" IN {          type forward;          forward only;          forwarders { 10.207.51.32; };      };  };

        11.3.2. 修改權限

        [root@slave ~]# cd /var/named/  [root@slave named]# chown named:named slaves  [root@slave named]# chmod 770 slaves

        11.3.3. 啟動服務

        [root@slave ~]# systemctl start named  [root@slaves ~]# ss -antu | grep "<53"  udp    UNCONN     0      0      10.207.51.31:53                    *:*                    tcp    LISTEN     0      10     10.207.51.30:53                    *:*                  

        11.4. 測試效果

        [root@client ~]# dig -b 10.207.51.61 www.linuxidc.com @10.207.51.40    ; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> -b 10.207.51.61 www.linuxidc.com @10.207.51.40  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18485  ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2    ;; OPT PSEUDOSECTION:  ; EDNS: version: 0, flags:; udp: 4096  ;; QUESTION SECTION:  ;www.linuxidc.com.          IN  A    ;; ANSWER SECTION:  www.linuxidc.com.       3600    IN  CNAME   www.a.linuxmi.com.  www.a.linuxmi.com.  3600    IN  A   10.207.51.41    ##測試主DNS,客戶端10.207.51.61解析www.linuxidc.com,IP地址為10.207.51.41,解析成功;    ;; AUTHORITY SECTION:  linuxmi.com.        3600    IN  NS  master.linuxmi.com.    ;; ADDITIONAL SECTION:  master.linuxmi.com. 3600    IN  A   10.207.51.32    ;; Query time: 5 msec  ;; SERVER: 10.207.51.40#53(10.207.51.40)  ;; WHEN: Fri Nov 16 18:28:07 CST 2018  ;; MSG SIZE  rcvd: 122            [root@client ~]# dig -b 10.207.51.81 www.linuxidc.com @10.207.51.40     ; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> -b 10.207.51.81 www.linuxidc.com @10.207.51.40  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21173  ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2    ;; OPT PSEUDOSECTION:  ; EDNS: version: 0, flags:; udp: 4096  ;; QUESTION SECTION:  ;www.linuxidc.com.          IN  A    ;; ANSWER SECTION:  www.linuxidc.com.       3600    IN  CNAME   www.b.linuxmi.com.  www.b.linuxmi.com.  3600    IN  A   10.207.51.42    ##測試主DNS,客戶端10.207.51.81解析www.linuxidc.com,IP地址為10.207.51.42,解析成功;    ;; AUTHORITY SECTION:  linuxmi.com.        3600    IN  NS  master.linuxmi.com.    ;; ADDITIONAL SECTION:  master.linuxmi.com. 3600    IN  A   10.207.51.32    ;; Query time: 5 msec  ;; SERVER: 10.207.51.40#53(10.207.51.40)  ;; WHEN: Fri Nov 16 18:28:32 CST 2018  ;; MSG SIZE  rcvd: 122            [root@client ~]# dig -b 10.207.51.61 www.linuxidc.com @10.207.51.31    ; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> -b 10.207.51.61 www.linuxidc.com @10.207.51.31  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36254  ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2    ;; OPT PSEUDOSECTION:  ; EDNS: version: 0, flags:; udp: 4096  ;; QUESTION SECTION:  ;www.linuxidc.com.          IN  A    ;; ANSWER SECTION:  www.linuxidc.com.       3600    IN  CNAME   www.a.linuxmi.com.  www.a.linuxmi.com.  3600    IN  A   10.207.51.41    ##測試從DNS,客戶端10.207.51.61解析www.linuxidc.com,IP地址為10.207.51.41,解析成功;    ;; AUTHORITY SECTION:  linuxmi.com.        3600    IN  NS  master.linuxmi.com.    ;; ADDITIONAL SECTION:  master.linuxmi.com. 3600    IN  A   10.207.51.32    ;; Query time: 1 msec  ;; SERVER: 10.207.51.31#53(10.207.51.31)  ;; WHEN: Sun Nov 18 20:40:35 CST 2018  ;; MSG SIZE  rcvd: 122            [root@client ~]# dig -b 10.207.51.81 www.linuxidc.com @10.207.51.31    ; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> -b 10.207.51.81 www.linuxidc.com @10.207.51.31  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4116  ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2    ;; OPT PSEUDOSECTION:  ; EDNS: version: 0, flags:; udp: 4096  ;; QUESTION SECTION:  ;www.linuxidc.com.          IN  A    ;; ANSWER SECTION:  www.linuxidc.com.       3600    IN  CNAME   www.b.linuxmi.com.  www.b.linuxmi.com.  2921    IN  A   10.207.51.42    ##測試從DNS,客戶端10.207.51.81解析www.linuxidc.com,IP地址為10.207.51.42,解析成功;    ;; AUTHORITY SECTION:  linuxmi.com.        2921    IN  NS  master.linuxmi.com.    ;; ADDITIONAL SECTION:  master.linuxmi.com. 2921    IN  A   10.207.51.32    ;; Query time: 0 msec  ;; SERVER: 10.207.51.31#53(10.207.51.31)  ;; WHEN: Sun Nov 18 20:40:50 CST 2018  ;; MSG SIZE  rcvd: 122
        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品天天影视久久综合网| 亚洲精品电影网| 国产欧美日韩综合精品一区二区| 精品国产一级在线观看 | 亚洲人成亚洲精品| 精品人妻码一区二区三区| 午夜精品久久久久久| 国产欧美日韩精品专区| 精品三级在线观看| 日本aⅴ精品中文字幕| 亚洲国产成人精品女人久久久| 国产三级精品三级在专区| 四虎成人欧美精品在永久在线 | 日韩精品视频一区二区三区| 亚洲精品高清在线| 亚洲精品无码久久久久AV麻豆| 精品人妻V?出轨中文字幕| 中文字幕一区二区精品区| 国产办公室秘书无码精品99| 香蕉久久夜色精品升级完成| 亚洲中文字幕久久精品无码喷水| 欧美精品一区二区在线精品| 久久精品成人免费观看97| 精品人妻V?出轨中文字幕| 黄床大片免费30分钟国产精品| 国产精品亚洲mnbav网站| 欧美精品一区二区三区在线| 日韩精品成人一区二区三区| 老司机69精品成免费视频| 国产亚洲精品va在线| 国产精品影音先锋| 久久伊人精品青青草原高清| 久久91精品久久91综合| 热99re久久国超精品首页 | 亚洲精品线路一在线观看| 亚洲精品国产综合久久一线| 无码国内精品久久人妻麻豆按摩 | 精品无码一区二区三区亚洲桃色| 久久精品国产亚洲AV麻豆网站| 久久er99热精品一区二区| 国产精品国产三级国产普通话|