使用bind構建本地簡易dns服務器


    本篇博客主要介紹如何在linux上構建簡易dns服務器,內容涵蓋本地dns解析,主從dns服務器區域傳送、rndc的使用以及如何在主域中添加子域


說明:

    本實驗操作均在VMware10上實現,需要準備三臺虛擬機(Redhat Enterprise Linux 5.8),一臺作爲主dns服務器,一臺作爲從dns服務器使用,另一臺作爲子域dns服務器,當然也可以通過克隆的方式克隆主dns服務器虛擬機並重新配置IP即可。作者將主dns服務器端IP設爲:192.168.134.2,從dns服務器端的IP設爲:192.168.134.22,子域dns服務器的IP設爲:192.168.134.8。根據個人設定不同,需要修改相應配置文件中的設置。


實現:


1、安裝bind97(主從dns服務器都需要安裝)

說明:系統上已經安裝了bind,需先卸載相關軟件包

bind97安裝後的部分文件介紹:

        /etc/named.conf: 主配置文件(權限640)

            options: 全局選項,定義bind軟件的工作屬性:監聽設置 (選項:“值”)

                directory: 指明數據文件目錄

            logging: 定義如何生成和保存日誌

            zone: 定義區域

            include: 包含其它路徑下的配置文件

        /usr/sbin/

            named-checkconf: 檢查配置文件是否有語法錯誤

            named-checkzone:區域配置文件是否有語法錯誤

            named-compilezone:編譯zone

        /var/named/:區域數據文件存放路徑

            named.ca:13個根節點服務器的地址(A-M),可使用bind97-utils手動生成

                

            named.localhost: 主機名正向解析數據文件

            named.loopback: 主機名反向解析數據文件


    bind list all bind*
    yum remove bind
    yum remove bind-libs
    yum -y install bind97-utils
    yum -y install bind97-libs
    yum -y install bind97
    rpm -ql bind97   # 查看bind97安裝後生成的文件列表
    cp /etc/named.conf /etc/named.conf.orig # 備份主配置文件


2、配置主dns服務器

    1、修改主配置文件

    說明:

    directory "/var/named":數據文件存放路徑

    allow-recursion:定義允許遞歸查詢的IP範圍

    type hint:指明域類型

    file "named.ca":指定域數據文件存放路徑(使用的是相對路徑 == /etc/named/named.ca)

    allow-transfer { none; }:定義允許指定IP的服務器進行區域傳送,一般指定爲從服務器IP

    vim /etc/named.conf
    # 修改主配置文件爲:
        options {
                directory "/var/named";
                allow-recursion { 192.168.134.0/24; };
        };
    
        zone "." IN {
                type hint;
                file "named.ca";
        };
    
        zone "localhost" IN {
                type master;
                file "named.localhost";
                allow-transfer { none; };
        };
    
        zone "0.0.127.in-addr.arpa" IN {
                type master;
                file "named.loopback";
                allow-transfer { none; };
        };
    
        zone "tb.com" IN {
                type master;
                file "tb.com.zone";
                allow-transfer { 192.168.134.22; };
        };
    
        zone "134.168.192.in-addr.arpa" IN {
                type master;
                file "192.168.134.zone";
                allow-transfer { 192.168.134.22; };
        };


    2、新建對應的區域數據文件

    說明:

        @:在DNS文件中表示域名

        SOA: 起始授權記錄

        NS:dns服務器記錄

        MX:郵件記錄

        A: IPv4地址正向解析記錄

        CNAME: 別名記錄

        PTR: 反向域名解析記錄

    

    cd /var/named
    vim tb.com.zone
    # 編輯資源記錄如下
        $TTL 600
    
        @       IN      SOA     ns1.tb.com.     admin.tb.com. (
                                2016052801
                                1H  
                                5M  
                                2D  
                                1H )
                IN      NS      ns1 
                IN      NS      ns2 
                IN      MX  10  mail
        ns1     IN      A       192.168.134.2
        ns2     IN      A       192.168.134.22
        www     IN      A       192.168.134.3
        mail    IN      A       192.168.134.4
        ftp     IN      CNAME   www 
        tb.com  IN      A       192.168.134.3
    vim 192.168.134.zone
    # 編輯資源記錄如下
        $TTL 600
    
        @       IN      SOA     ns1.tb.com.     admin.tb.com. (
                                2016052801
                                1H  
                                5M  
                                2D  
                                1H )
                IN      NS      ns1.tb.com.
                IN      NS      ns2.tb.com.
        3       IN      PTR     www.tb.com.
        4       IN      PTR     mail.tb.com.
    # 修改數據文件的屬主、屬組以及權限
    chown root:named tb.com.zone
    chmod 640 tb.com.zone
    chown root:named 192.168.134.zone
    chmod root:named 192.168.134.zone


    3、修改dns配置

    vim /etc/resolv.conf
    # 添加如下記錄並將其它nameserver記錄暫時註釋 
        nameserver 192.168.134.2


    4、啓用服務

        service named start


    5、至此,主dns服務器的配置就完成了,先使用dig測試

    dig簡要說明:

        dig -t NS tb.com @192.168.134.2

            -t: 指定資源記錄類型

            tb.com:查詢對象

            @IP:指定使用指定的dns服務器進行查詢

    作者測試結果:

wKioL1dLyweg9QpWAAHuH5vT0_c445.jpg-wh_50

wKioL1dLy2iirDz5AAJv0fx_4bg578.jpg-wh_50


3、配置從dns服務器

    1、編輯主配置文件

    vim /etc/named.conf
    # 編輯配置文件如下,與主dns服務器的區別在於type slave
        options {
                directory  "/var/named";
                
        };
    
        zone "." IN {
                type hint;
                file "named.ca";
        };
    
        zone "localhost" IN {
                type master;
                file "named.localhost";
                allow-transfer { none; };
        };
    
        zone "0.0.127.in-addr.arpa" IN {
                type master;
                file "named.loopback";
                allow-transfer { none; };
        };
    
        zone "tb.com" IN {
                type slave;
                file "slaves/tb.com.zone";
                masters { 192.168.134.2; };
                allow-transfer { none; };
        };
    
        zone "134.168.192.in-addr.arpa" IN {
                type slave;
                file "slaves/192.168.134.zone";
                masters { 192.168.134.2; };
                allow-transfer { none; };
        };


    2、至此,從dns服務器配置已完成,啓用服務

        service named start


    3、測試主從dns服務器完全區域傳送

    作者測試結果

wKioL1dLy5LQYKi_AAMkswCfU6Y983.jpg-wh_50

    

4、給dns服務器添加遠程域名服務器控制器(rndc)

1)、實現本地rndc控制,本操作在主dns服務器中完成

    1、生成rndc配置文件

    rndc-confgen > /etc/rndc.conf
    vim /etc/rndc.conf
    # 複製所需內容追加至/etc/named.conf文件中
    # 所需複製內容如下:
        # Use with the following in named.conf, adjusting the allow list as needed:
        # key "rndc-key" {
        #       algorithm hmac-md5;
        #       secret "qMdLUBIveV7aEDn87esq5g==";
        # };
        # 
        # controls {
        #       inet 127.0.0.1 port 953
        #               allow { 127.0.0.1; } keys { "rndc-key"; };
        # };
        # End of named.conf
        >.,$-1w >> /etc/named.conf


    2、編輯主配置文件

    vim /etc/named.conf
    # 去除rndc文件註釋
    # 即修改追加內容爲:
        # Use with the following in named.conf, adjusting the allow list as needed:
        key "rndc-key" {
                algorithm hmac-md5;
                secret "qMdLUBIveV7aEDn87esq5g==";
        };
    
        controls {
                inet 127.0.0.1 port 953
                        allow { 127.0.0.1; } keys { "rndc-key"; };
        };

    

    3、測試本地rndc控制

    說明:rndc -c /etc/rndc.conf status

        -c: 指定rndc的配置文件

        status: 查看狀態信息

        (rndc命令的使用可使用rndc -h查看)

 

        rm -f /etc/rndc.key # 刪除bind啓用後自動生成的rndc.key

        service named restart

        rndc -c /etc/rndc.conf status

    作者測試結果:

wKioL1dLy9TSmWIAAAEPCMxvMdQ807.jpg-wh_50


1)、實現遠程rndc控制

    1、修改主dns服務器中的主配置文件

    vim /etc/named.conf
    # 修改內容如下:
    controls {
            inet 192.168.134.2 port 953 
                    allow { 192.168.134.22; } keys { "rndc-key"; };
    };


    2、複製主dns服務器中的rndc配置文件至從dns服務器中(主dns服務器中執行)

    注意:在複製時需要注意避免文件覆蓋問題,這裏複製配置文件至/root目錄下

        scp /etc/rndc.conf 192.168.134.22:/root/

    3、在從dns服務器中修改rndc配置文件

    vim rndc.conf
    # 修改默認服務器IP:
  
        options {
             default-key "rndc-key";
             default-server 192.168.134.2;
             default-port 953;
        };

    

    4、測試遠程rndc控制

    作者測試結果: 

wKioL1dLzALQJhkoAAE3Ri7SC8U011.jpg-wh_50


5、往主域中添加子域

說明:當前主域爲tb.com.,當前目的是在主域中添加子域fin.tb.com.;

   以下內容是基於上述操作實現後的補充內容,基本操作與上述相同,因此部分內容省略

    1、修改主域數據文件,爲子域授權

    vim /var/named/tb.com.zone
    # 添加授權記錄並修改序列號(序列號+1):
        fin     IN      NS      ns1.fin
        ns1.fin IN      A       192.168.134.8


    2、在反向域中添加資源記錄

    vim 192.168.134.zone 
    # 添加以下記錄(序列號+1):
                IN      NS      ns1.fin.tb.com.


    3、重啓主域dns服務器

    server named restart


     4、啓用並配置子域主機,這裏設置子域主機IP爲:192.168.134.8

    vim /etc/named.conf
    # 此時當前主機域爲fin.tb.com,並設置子域訪問主域時採用轉發域的形式訪問
    # 主要變動內容如下:
        zone "fin.tb.com" IN {
                type master;
                file "fin.tb.com.zone";
        };
    
        zone "tb.com" IN {
                type forward;
                forward first;
                forwarders { 192.168.134.2; };
        };
    vim /var/named/fin.tb.com.zone
    # 添加數據文件
    # 編輯內容如下:
    $TTL 600
    
    @       IN      SOA     ns1.fin.tb.com. admin.fin.tb.com. (
                            2016052801
                            1H
                            5M
                            2D
                            1H )
            IN      NS      ns1
            IN      MX  10  mail
    ns1     IN      A       192.168.134.8
    www     IN      A       192.168.134.10
    mail    IN      A       192.168.134.9

     修改記錄文件的屬主、屬組及權限

    cd /var/named/
    chown root:named fin.tb.com.zone
    chmod 640 fin.tb.com.zone
    service named start


    5、子域測試

    

wKioL1dMCh6Cfy_KAAC9Zsi8lao120.jpg-wh_50


    好了,以上就是bind相關的部分操作,缺漏處還望指出


    


    


   

    



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