bind搭建內網DNS伺服器架構(主從、子域授權、DNS轉發器)

實驗目的

  1. 模擬企業DNS服務架構伺服器及原理

實驗環境準備

實驗架構圖

DNS服務架構

實驗設備

  1. DNS伺服器4台
    • 主伺服器master(centos8):IP_192.168.100.30,
    • 從伺服器slave(rocky8):192.168.100.31
    • 子域伺服器hn1(rocky8):192.168.100.36
    • 其他域伺服器local(rocky8):192.168.100.12,用途:用於測試伺服器轉發
  2. 客戶端PC機2台
    • PC1(win10):IP_192.168.100.1、DNS:[192.168.100.30、192.168.100.31]
    • PC2(win10):IP_192.168.100.3、DNS:[192.168.100.12]
  3. 關閉SELinux、關閉防火牆、並時間同步

搭建內網DNS伺服器配置步驟

四台dns伺服器master、slave、hn1、loca安裝及通用配置

  1. 安裝bind軟體和工具

    #centos/rocky安裝
    yum -y install bind bind-utils  
    #Ubuntu安裝
    apt -y install bind9 bind9utils
    
  2. 主配置文件進行通用配置:/etc/named.conf

    vim /etc/named.conf
    
    #注釋掉掉下列兩行,禁用listen-on:named服務埠可以讓其他主機訪問,禁用allow-query:允許任何人解析DNS服務記錄
    #listen-on port 53 { 127.0.0.1; };
    #allow-query { localhost; };
    
  3. 檢驗配置文件是否正常

    #無資訊顯示配置文件正常
    named-checkconf
    
  4. 設置開機啟動,並運行bind服務

    systemctl enable --now named
    
  5. 驗證DNS埠服務是否正常

    #DNS服務埠為udp/tcp:53埠、tcp:953埠
    ss -utnlp|grep named
    

主(master)DNS伺服器搭建配置及驗證

  1. master:配置DNS地址指向自身,並重啟網卡服務

    vim /etc/sysconfig/network-scripts/ifcfg-ens32
    #修改配置文件執行生效
    nmcli connection reload
    #網路介面的啟用
    nmcli connection up ens32
    #驗證DNS是否生效
    cat /etc/resolv.conf
    

    image-20220827041717685

    image-20220827042126393

  2. master:配置主配置文件:/var/named/tyjz.net.zone

    #1、同屬性複製配置模板文件named.localhos,修改文件名為:tyjz.net.zone
    cp -a /var/named/named.localhost /var/named/tyjz.net.zone
    #2、配置tyjz.net.zone文件
    [03:44:18 root@centos8_30 ~]#vim /var/named/tyjz.net.zone
    
      1 $TTL 1D
      2 @               IN      SOA     master 1024320609.qq.com ( 20220839 1H 10M 1D 6H  )
      3                          NS     master
      4 master                    A     192.168.100.30
      5 www                       A     192.168.100.31
    
    

    image-20220827040124743

  3. master:配置主配置文件: /etc/named.rfc1912.zones

    #1、編輯vim /etc/named.rfc1912.zones,增加下列配置參數
    zone "tyjz.net" IN {
             type master;
             file "tyjz.net.zone";
    };
    

    image-20220827040922467

  4. master:檢驗主配置文件,並重載主配置文件和區域解析庫文件

    #2、檢驗主配置文件
    named-checkconf
    named-checkzone tyjz.net.zone /var/named/tyjz.net.zone
    #2、重載主配置文件和區域解析庫文件
    rndc reload
    

    image-20220827041333082

  5. PC1上驗證master伺服器是否正常解析域名

    • PC1網路配置截圖

    image-20220827042722366

  • PC1:驗證ping www.tyjz.net 是否正常解析IP地址

    image-20220827043127271

  • PC1:驗證通過瀏覽器訪問 www.tyjz.net(備註:已在100.31伺服器安裝httpd服務)

    image-20220827043330906

從(slave)DNS伺服器搭建配置

  1. slave:配置DNS地址指向自身和主域名伺服器,並重啟網卡服務

    vim /etc/sysconfig/network-scripts/ifcfg-ens32
    #修改配置文件執行生效
    nmcli connection reload
    #網路介面的啟用
    nmcli connection up ens32
    #驗證DNS是否生效
    cat /etc/resolv.conf
    

    image-20220827043728483

    image-20220827043814714

  2. master:配置主配置文件:/var/named/tyjz.net.zone

    #增加slave的NS記錄和A記錄,並修改版本序列號
    [04:44:58 root@centos8_30 ~]#vim /var/named/tyjz.net.zone
    
      1 $TTL 1D
      2 @               IN      SOA     master 1024320609.qq.com ( 20220840 1H 10M 1D 6H  )
      3                          NS     master
      4                          NS     slave
      5 master                    A     192.168.100.30
      6 slave                     A     192.168.100.31
      7 www                       A     192.168.100.31
    
    

    image-20220827045344850

  3. master:檢驗主配置文件,並重載主配置文件和區域解析庫文件

    #2、檢驗主配置文件
    named-checkconf
    named-checkzone tyjz.net.zone /var/named/tyjz.net.zone
    #2、重載主配置文件和區域解析庫文件
    rndc reload
    

    image-20220827045903944

  4. slave:配置主配置文件: /etc/named.rfc1912.zones

    #1、編輯vim /etc/named.rfc1912.zones,增加下列配置參數
    zone "tyjz.net" IN {
         type slave;
         masters {192.168.100.30;};
         file "slaves/tyjz.net.zone";
    };
    

    image-20220827050110408

  5. slave:檢驗主配置文件,並重載主配置文件和區域解析庫文件

    #2、檢驗主配置文件
    named-checkconf
    #2、重載主配置文件和區域解析庫文件
    rndc reload
    #重載主配置文件後slav伺服器會自動向master伺服器拉取主配置文件:/var/named/slaves/tyjz.net.zone
    

    image-20220827052554398

  6. 驗證slave伺服器是否可以解析域名

    • PC1網路配置截圖,DNS指向192.168.100.31

      image-20220827053244139

    • 對master伺服器進行斷網處理

      image-20220827053340153

    • PC1:驗證ping www.tyjz.net 是否正常解析IP地址

      image-20220827053430169

    • PC1:驗證通過瀏覽器訪問 www.tyjz.net(備註:已在100.31伺服器安裝httpd服務)

      image-20220827053504581

子域(hn)DNS伺服器搭建配置

  1. hn1:配置DNS地址指向自身和主域名伺服器,並重啟網卡服務

    vim /etc/sysconfig/network-scripts/ifcfg-ens160
    nmcli connection reload
    #網路介面的啟用
    nmcli connection up ens32
    #驗證DNS是否生效
    cat /etc/resolv.conf
    

    image-20220827130812092

    image-20220827130957187

  2. master:配置主配置文件:/var/named/tyjz.net.zone

    #添加hn1子域的NS記錄和A記錄,並增加版本序列號
    [13:10:34 root@centos8_30 ~]#vim /var/named/tyjz.net.zone
    
      1 $TTL 1D
      2 @               IN      SOA     master 1024320609.qq.com ( 20220842 1H 10M 1D 6H  )
      3                          NS     master
      4                          NS     slave
      5 hn                       NS     hndns
      6 master                    A     192.168.100.30
      7 slave                     A     192.168.100.31
      8 hndns                     A     192.168.100.36
      9 www                       A     192.168.100.31
    

    image-20220827131153145

  3. master:配置主配置文件:/etc/named.conf

    #這兩項默認啟用安全模式設置為no
    dnssec-enable no;
    dnssec-validation no;
    

    image-20220827133722933

  4. hn:配置子域配置文件:/var/named/hn.tyjz.net.zone

    #1、同屬性複製配置模板文件named.localhost ,修改文件名為:hn.tyjz.net.zone
    cp -a /var/named/named.localhost /var/named/hn.tyjz.net
    #2、配置hn.tyjz.net.zone文件
    [13:38:36 root@rocky8_36 ~]#vim /var/named/hn.tyjz.net
    
      1 $TTL 1D
      2 @               IN      SOA     master 1024320609.qq.com ( 20220842 1H 10M 1D 6H  )
      3                          NS     master
      4 master                    A     192.168.100.36
      5 www                       A     192.168.100.10
    

    image-20220827134747513

  5. hn:配置子域主配置文件: /etc/named.rfc1912.zones

    #1、編輯vim /etc/named.rfc1912.zones,增加下列配置參數
    zone "hn.tyjz.net" IN {
             type master;
             file "hn.tyjz.net.zone";
    };
    

    image-20220827135048267

  6. hn:檢驗子域主配置文件,並重載主配置文件和區域解析庫文件

    #2、檢驗主配置文件
    named-checkconf
    named-checkzone hn.tyjz.net.zone /var/named/hn.tyjz.net.zone
    #2、重載主配置文件和區域解析庫文件
    rndc reload
    
  7. 驗證hn伺服器是否可以解析域名

    • PC1網路配置截圖,DNS指向192.168.100.30

      image-20220827140934885

    • PC1:驗證ping www.tyjz.net 是否正常解析IP地址

      image-20220827141050989

    • PC1:驗證通過瀏覽器訪問 www.tyjz.net(備註:已在100.10伺服器安裝httpd服務)

      image-20220827141127919

    • 斷開master伺服器網路,再進行驗證是否能解析 www.tyjz.net域名

      image-20220827141435747

      image-20220827141759271

      結果能夠正常解決,已驗證結果不符,其原因可能為Windows自帶帶緩,因此需刷新Windows快取

      image-20220827142033713

      image-20220827142116886

DNS 轉發

  1. 實驗前說明

    • 簡要說明

      利用DNS轉發,可以將用戶的DNS請求,轉發至指定的DNS服務,而非默認的根DNS伺服器,並將指定
      伺服器查詢的返回結果進行快取,提高效率。
      
    • 注意

      1. 被轉發的伺服器需要能夠為請求者做遞歸,否則轉發請求不予進行

      2. 在/etc/named.conf的全局配置塊中,關閉dnssec功能

        dnssec-enable no;
        dnssec-validation no;
        
    • 轉發格式

      • 全局轉發

        Options {
        forward first|only;
        forwarders { ip;};
        };
        
      • 特定區域轉發

        zone "ZONE_NAME" IN {
        type forward;
        forward first|only;
        forwarders { ip;};
        };
        
      • 選項說明

        first:先轉發至指定DNS伺服器,如果無法解析查詢請求,則本伺服器再去根伺服器查詢
        only: 先轉發至指定DNS伺服器,如果無法解析查詢請求,則本伺服器將不再去根伺服器查
        
    • 實驗環境說明

      1、快取伺服器:local伺服器
      2、主伺服器:master伺服器
      3、客戶端:PC2,DNS:192.168.100.12
      4、實驗說明:先轉發至指定DNS伺服器,如果無法解析查詢請求,則本伺服器將不再去根伺服器查詢
      
  2. master:主伺服器主配置文件配置

    • /var/named/tyjz.net.zone

      image-20220827171311793

    • /etc/named.rfc1912.zones

      image-20220827171437207

    • /etc/named.conf

      image-20220827171700292

  3. local伺服器:配置:DNS指向自身:127.0.0.1

    vim /etc/sysconfig/network-scripts/ifcfg-ens160
    nmcli connection reload
    #網路介面的啟用
    nmcli connection up ens160
    #驗證DNS是否生效
    cat /etc/resolv.conf
    

    image-20220827172240747

    image-20220827172312695

  4. local伺服器:配置主配置文件:/var/named/tyjz.local.zone

    #1、同屬性複製配置模板文件named.localhos,修改文件名為:tyjz.local.zone
    cp -a /var/named/named.localhost /var/named/tyjz.local.zone
    #2、配置tyjz.net.zone文件
    [17:27:39 root@rocky8_12 ~]#vim /var/named/tyjz.local.zone
    
      1 $TTL 1D
      2 @               IN      SOA     master 1024320609.qq.com ( 20220842 1H 10M 1D 6H  )
      3                          NS     master
      4 master                    A     192.168.100.12
      5 www                       A     192.168.100.10
    

    image-20220828011256654

  5. local伺服器:配置主配置文件:/var/named/tyjz.local.zone

    #1、編輯vim /etc/named.rfc1912.zones,增加下列配置參數
    zone "tyjz.local" IN {
             type master;
             file "tyjz.local.zone";
    };
    

    image-20220828014149509

  6. local伺服器:配置主配置文件:/var/named/tyjz.local.zone

    #1、編輯vim /etc/named.rfc1912.zones,增加下列前2行記錄以及2行關閉dnsec功能記錄
    forward only;
    forwarders { 192.168.100.30;};
    #關閉dnsec功能
    dnssec-enable no;
    dnssec-validation no;
    

    image-20220828014248118

  7. local伺服器:檢驗主配置文件,並重載主配置文件和區域解析庫文件

    #2、檢驗主配置文件
    named-checkconf
    named-checkzone tyjz.local.zone /var/named/tyjz.local.zone
    #2、重載主配置文件和區域解析庫文件
    rndc reload
    

    image-20220828014519559

  8. PC2,驗證local伺服器域名轉髮結果

    • PC2 DNS指向local伺服器

      image-20220828012845397

    • PC2 nslookup和ping master主伺服器域名:www.tyjz.net ,驗證local伺服器是否轉發master伺服器解析域名

      image-20220828020244128

    • 為了驗證轉發特性,禁用master伺服器網路,驗證local伺服器在only模式下,轉發到master伺服器無法解析查詢請求,則local伺服器將不再去根伺服器查。

      image-20220828020439493

      master伺服器網路未斷網前

      image-20220828021649361

      master伺服器斷網後

    • 為了驗證轉發特性,禁用master伺服器網路,驗證local伺服器在frist模式下,轉發到master伺服器無法解析查詢請求,則local伺服器將去根伺服器查。

      image-20220828022008381

      master伺服器已禁用網路

      image-20220828022424467

DNS伺服器其他功能配置

CNAME別名配置,輪詢訪問IP地址,實現負載均衡(master伺服器測試為例)

  1. 實驗前說明

    • CNAME記錄格式

      name: 別名的FQDN
      value: 真正名字的FQDN
      
    • 實驗環境

      1、實驗伺服器:master伺服器
      2、別名(name):www,真正域名(value):websrc
      3、別名對應的3個IP:192.168.100.10、192.168.100.30、192.168.100.31
      
  2. master:配置主配置文件:

    #增加master的別名CNAME記錄和主機A記錄,並增加版本序列號
    [14:31:38 root@centos8_30 ~]#vim /var/named/tyjz.net.zone
    
      1 $TTL 1D
      2 @               IN      SOA     master 1024320609.qq.com ( 20220842 1H 10M 1D 6H  )
      3                          NS     master
      4                          NS     slave
      5 hn                       NS     hndns
      6 www                     CNAME   websrc
      7 master                    A     192.168.100.30
      8 slave                     A     192.168.100.31
      9 hndns                     A     192.168.100.36
     10 hndns                     A     192.168.100.36
     11 websrc                    A     192.168.100.30
     12 websrc                    A     192.168.100.31
     13 websrc                    A     192.168.100.10
    

    image-20220827143730063

  3. 通過PC1驗證master解析別名

    image-20220827140934885

    image-20220827144310352

  4. 通過PC1 ping www.tyjz.net,驗證是否輪番IP地址

    image-20220827150009155

反向解析區域。

  1. 實驗前說明

    • 簡要說明

      反向區域:即將IP反向解析為FQDN(全稱域名)
      區域名稱:網路地址反寫.in-addr.arpa.
      
    1. 配置文件格式

      172.16.100. --> 100.16.172.in-addr.arpa.
      
    • 使用環境說明

      1、測試伺服器:master伺服器
      2、域名解析網段:192.168.100.0
      解析的ip地址: 192.168.100.10、192.168.100.30、192.168.100.31
      
    • 區域定義格式

      zone "ZONE_NAME" IN {
      type {master|slave|forward};
      file "網路地址.zone"
      };
      
  2. master:配置主配置文件:/var/named/192.168.100.zone,

     #1、同屬性複製配置模板文件named.localhos,修改文件名為:192.168.100.zone
    cp -a /var/named/named.localhost /var/named/tyjz.net.zone
     #2、增加master的PTR記錄和主機A記錄,測並增加版本序列號
    vim /var/named/192.168.100.zone 
    
      1 $TTL 1D
      2 @               IN      SOA     master 1024320609.qq.com ( 20220826 3H 10M 1D 6H  )
      3                          NS     master
      4 master                    A     192.168.100.30
      5 31                      PTR     www.oa.tyjz.net.
      6 30                      PTR     www.ems.tyjz.net.
      7 10                      PTR     www.hn.tyjz.net.
    
    

    image-20220827151546777

  3. master:配置主配置文件:/etc/named.rfc1912.zones

    #編輯vim /etc/named.rfc1912.zones,增加下列配置參數
    zone "100.168.192.in-addr.arpa" IN {
            type master;
            file "192.168.100.zone";
    };
    
    

    image-20220827152325413

  4. master:檢驗主配置文件,並重載主配置文件和區域解析庫文件

    #2、檢驗主配置文件
    named-checkconf
    named-checkzone 192.168.100.zone /var/named/192.168.100.zone
    #2、重載主配置文件和區域解析庫文件
    rndc reload
    
  5. PC1:驗證master伺服器反向解析IP地址結果

    image-20220827153005631