DNS服務器【Linux-shell】

DNS服務器


DNS服務器是經常使用網絡服務之一,當用戶利用計算機訪問互聯網以前,一個重要步驟是須要指定所要使用的DNS服務器,它把用戶所請求的互聯網地址中的主機名解析成爲IP地址。
    # http://www.example.com/index.html----->www.example.com:主機名;example.com:域名;index.html:www.example.com主機上的文件。
    DNS即域名系統。對於計算機網絡中的一臺主機來講,它每每並不是一個孤立的存在而是屬於某個主機的集合,這個主機的集合就可稱爲域。爲了標識不一樣的主機集合,有必要賦予他們名字,便是域名的由來。正如現實世界中的許多事物均可以組織成爲一個具備樹狀結構的系統同樣,一樣能夠對互聯網上的每一個域賦予一個特定的域名,並將這些域名組織成爲具備樹狀結構的系統,該系統即:域名系統。

    BIND軟件(互聯網中使用最爲普遍的DNS服務器軟件)的安裝:
    rpm -qa | grep bind #檢查是否已經安裝BIND軟件
    sudo yum install bind #若先前未安裝,則開始安裝
    sudo yum install bind-chroot #增強BIND服務器安全性的軟件
    #bind-chroot----->訪問文件系統默認限制在/var/named/chroot目錄中。如,/etc/named.conf---->即/var/named/chroot/etc/named.conf

    tail /etc/sysconfig/named #bind-chroot設置文件

    mount #查看綁定的目錄
    ----------------------------------------------------------------------------------------------------------------------------------
    守護進程named:
    sudo service named start #啓動BIND的守護進程
    #cat /var/log/messages #查看日誌
    netstat -lnp | grep named #查看named進程監聽的端口
    #端口:
    # 53端口:提供主機名查詢服務的端口;
    # 953端口:DNS服務器監聽該端口並接受傳送過來的控制命令,是爲了管理員能利用(rndc)程序遠程控制DNS服務器而開放的端口。

    iptables -L INPUT
    --------------------------------------------------------------------------------------------------------------------------------
    測試命令:【dig,nslookup,host等】

    dig 【@DNS服務器】 【主機名/域名】 【查詢類型選項】:查詢DNS服務器並獲取相關結果  #【@DNS服務器】經過【@IP地址指定】
        查詢類型選項:
            -t:後加資源記錄類型參數,指定所要查詢的資源記錄類型。
            -x:後加IP地址參數,用於反向查詢(即:以IP地址查詢對應主機名)
    #dig @208.67.222.222 www.kernel.org #208.67.222.222--免費公衆服務器
    ---------------------------------------------------------------------------
    區與區文件:
        爲了更有效地管理DNS,可將DNS的樹狀結構按區來劃分,由被受權的管理者負責管理一個區中的域名。區能夠包含一個或多個域,一種常見的簡化情形是將單獨的一個域看做是一個區。
        BIND軟件經過區文件來記錄一個區中主機名與IP地址之間的映射關係。由主機名解析獲得IP地址的過程被稱爲正向解析,反之根據IP地址解析獲得主機名便稱爲反向解析,正向解析和反向解析結果分別記錄在正向區文件和反向區文件。
    每一個DNS服務器在/var/named目錄中存放了關於一個名爲named.ca文件,它指出了根區服務器的IP地址------>DNS服務器在遇到本身沒法解析的查詢要求時,將查詢要求轉發給根區的服務器。獲取最新named.ca------>http://wwww.internic.net/domain/named.root
    cd /car/named
    cat named.ca
    -----------------------------------------------------------------------------------------------------------------
    資源記錄:
    各字段:
    1)Name名字:表示這條記錄屬於更名字所指定的擁有者。
    2)TTL記錄的生存期:表示當客戶端持有該記錄的(單位秒)時間超過了記錄的生存期時,應該丟棄該記錄並從新查詢。
    3)記錄種類:表示記錄所屬的名字空間,該字段通常記爲IN,表示Internet
    4)記錄類型:記錄數據所存儲的信息類型,如下標誌:
        A:IPv4地址
        AAAA:IPv6地址
        NS:DNS服務器的主機名
        SOA:受權信息的起始標誌,
        MX:郵件服務器的主機名
        CNAME:關於名字字段的另外一個表示,別名。
        PTR:在反向區文件中,即後面的記錄數據爲IP地址所對應的主機名。
    5)記錄數據:IP地址、DNS服務器主機名等信息。


    域名---->用FQDN徹底限定域名錶示(在資源記錄中)

    NS類型的資源記錄:
    dig -t NS  kernel.org

![](http://i.imgur.com/IxBgf5u.png)  

    dig -t A ns41.constellix.net   #查詢 ns41.constellix.net對應的IP

![](http://i.imgur.com/xcA6xRs.png)

     dig @96.45.81.1   www.kernel.org

![](http://i.imgur.com/9DH9pV3.png)

    SOA:查詢受權信息
    dig -t SOA kernel.org
    #受權信息包括:DNS主服務器的主機名,域管理員的電子郵件地址,序列號,更新時間,重試時間,過時時間,緩存時間。
    -------------------------------------------------------------------------------------------------------
    正向區文件與反向區文件:
        均保存在/var/named目錄中,爲便於辨認,可按"named.域名"的格式命名正向區文件,而按"named.IP網段"的格式來命名反向區文件。這兩種區文件的內容實際是一組資源記錄,區文件以;分號作註釋,必須包含SOA類型的資源記錄,可在開始處設置生存期等默認值。利用/var/named目錄中的區文件模板的named.empty文件建立區文件。

    正向區文件實例:【named.example.com】----->
    $TTL   86400
    @   IN  SOA dns.example.com.    root.example.com.(
        1;序列號
        28800;更新時間
        14400;重試時間 
        3600000;過時時間
        96400;資源記錄的生存期
    )
    @   IN  NS  dns.example.com.
    dns.example.com.    IN  A   192.168.126.128
    ftp                 IN  A   192.168.126.130


    反向區文件實例:【named.192.168.126】------------->
    $TTL   86400
    @   IN  SOA dns.example.com.    root.example.com.(
        1;序列號
        28800;更新時間
        14400;重試時間 
        3600000;過時時間
        96400;資源記錄的生存期
    )
    @   IN  NS  dns.example.com.
    128 IN  PTR dns.example.com.    
    130 IN  PTR ftp.example.com

    設置關於域example.com的zone語句。named.con文件加入:---->                 
    zone "example.com" IN{
        type master;
        file "named.example.com";
    };
    zone "126.168.192.in-addr.arpa" IN{
    type master;
    file "named.192.168.126";
    };

補充:

以上主要說的是在RHEL6.0(紅帽發行版)系統上的。
如下的是在Ubuntu上:【ubuntu下bind服務器安裝過程】【hugwww-ubuntu12.04下安裝配置bind9 dns服務器】
附上參考連接所提供的方法後的操做結果圖:










html