1. 程式人生 > >DNS基礎與bind的安裝

DNS基礎與bind的安裝

Linux學習

DNS: domain name server 協議(C/S 53/UDP 53/TCP); 應用層協議; BIND bekerley internet name domain -> ISC TCP:面向連接的協議 UDP:無連接的協議 本地名稱解析文件:hosts(主機有限時候可用) /etc/hosts %WINDOWS%/system32/drivers/etc/hosts

DNS的樹狀結構(namespace)
技術分享圖片

Top:
    com    cn    net     org    int    mil    gov……

    三類: 組織域,國家域(.cn  .hk  .tw ),反向域
查找順序:
    自頂向下
    但是互聯網上的任何一臺主機都不會去依次查找主機,會先去找dns服務器,這臺服務器去替
    客戶端主機查找。
查詢類型:
    一臺客戶端主機僅發送一次請求就獲得最終結果的稱為遞歸查詢;
    服務器主機多次發出查詢請求獲取最終結果的稱為叠代查詢
名稱服務器:負責解析本域內的名稱的主機(ns)
    根服務器:異地多活;13組服務器
解析類型:
    Name --> IP
    Ip <-- Name

    註意:正反向解析是兩個不同的名稱空間,是兩棵不同的解析樹;

DNS服務器類型
    主DNS
        維護所負責解析的域內解析庫服務器,由管理員維護
    輔助DNS
            從DNS服務器要從主DNS或者其他從DNS服務器那裏復制(區域傳送)一份解析庫;
            序列號,解析庫的版本號,前提任何時候主服務器解析庫內容發生變化,其序列號遞增
            刷新時間:從服務器從主服務器請求同步解析庫的時間間隔,
            重試時間:從服務器請求同步失敗時候再試的時間間隔
                重試時間小於刷新時間
            “通知”機制:主服務器在發生改變之後會主動通知從服務器進行同步
        過期時長:從服務器始終聯系不到主服務器時候,多久放棄從服務器角色,停止提供服務
        區域傳送:
            全量傳送:傳送整個解析庫
            增量傳送:傳遞解析庫變化的那份內容

    緩存DNS         不負責解析任何域,不註冊任何域名,但是它可以幫助本地主機解析域名,做緩存
    轉發器

DNS:domain
        正向:FQDN--> IP
        反向:IP-->FQDN 
        正向反向各個都需要一個解析庫負責本地的正向 反向解析
            正向區域
            反向區域
        FQDN: 完全合格域名(full qualified name)
                www.magedu.com.(點不能被省略)
一次完整的查詢請求經過的流程
          Client --> hosts file --> dns service 
        Local cache --> DNS server(recursion) --> server cache --> iteration(叠代) -->
        解析答案:
            肯定答案:正確解析了請求的結果
            否定答案:請求條目不存在等原因導致無法返回結果。

            權威答案:負責該域的服務器直接給出的答案
            非權威答案:非負責該域的服務器給出的答案
資源記錄:resource record, RR
    記錄類型:A,AAAA(ipv6),PTR,SOA,NS,CNAME,MX

    SOA: start authority;起始授權記錄,一個區域解析庫有且只能有一個SOA記錄,必須為解析庫的第一條記錄
    A:inernet address 作用:FQDN-->IP
    AAAA:FQDN -->ipv6
    PTR:pointTER IP--> FQDN
    NS:name server :專門用於標明當前區域的DNS服務器
    CNAME:canonical name: 別名記錄
    MX:mail exchanger 郵件交換器

    資源記錄定義的格式
        語法:name     [TTL]   IN  Rr_type value 
        註意:
            (1)TTL可以從全局繼承
            (2)@可以用於引用當前區域的名字
            (3)同一個名字可以通過多條記錄來定義多個不同的值;此時DNS服務器會輪詢方式響應
            (4)同一個值有多個不同的定義名字;通過多個不同的名字指向同一個值進行定義;此僅僅表示
                通過多個不同的名字可以找到同一個主機而已
        SOA
            Name:當前區域的名字 例如:Douma.com
            value:有多部分組成
                (1)當前區域的主DNS服務器的FQDN,也可以使用當前區域的名字
                (2)當前區域管理員的郵箱地址,但是地址中不能使用@符號,一般用.替換,
                    例如:linuxedu.magedu.com;
                  (3)(主從服務協調屬性的定義以及否定的答案的統一TTL)
                Ps:
                    Magedu.com  86400   IN  SOA ns.Douma.com.   nsadmin.Douma.com.
                                2015042201  序列號
                        2H  刷新時間
                        10M 重試時間
                        1W  過期時間
                        1D  否定答案的TTL值
                )
        NS 
            Name : 當前區域的名字
            value:   當前區域的某DNS服務器的名字 ps: ns.Douma.com.;
                註意:一個區域可以有多個NS記錄
                ps:
                    Douma.com   IN  NS  ns1.Douma.com.
                    Douma.com   IN  NS  ns2.Douma.com.

                註意:
                    (1)相鄰的兩個資源記錄的name相同時,後續可以省略
                    (2)對NS記錄而言,任何一個ns記錄後面的FQDN,都應該在後面有一個A記錄

        MX記錄
            name:當前區域的名字
            value:當前區域的某郵件服務器(smtp服務器)的主機名
                一個區域內,NS記錄可以有多個;但是每個記錄的value之前應該有一個數字(0-99),
                表示此服務器的優先級;數字越小,優先級越高。
                例如:
                douma.com.  IN  MX  10  mx1.Douma.com.
                    IN  MX  20  mx2.Douma.com.
                註意:
                    (1)對MX記錄而言,任何一個MX記錄後面的FQDN,都應該在後面有一個A記錄
        A:
            name:某主機的FQDN,例如:www.Douma.com.
            value:主機名對應主機的IP地址
            例如:
                www.Douma.com.  IN  A   1.1.1.1
                www.Douma.com.  IN  A   1.1.1.2

                mx1.douma.com.  IN  A   1.1.1.3
                mx2.douma.com.  IN  A   1.1.1.3
            註意:
                *.douma.com.    IN  A   1.1.1.4
                douma.com.  IN  A   1.1.1.4

                避免用戶寫錯名稱時候給錯誤答案,可以通過泛域名解析至特定地址;

        AAAA:
            name:FQDN
            value:IPV6
        PTR:
            name:IP 有特定格式,把IP地址反過來寫,1.2.3.4;要寫成4.3.2.1; 
                    有特定後綴: in-addr.arpa. 完整寫法為:4.3.2.1.in-addr.arpa.
            value: FQDN
            例如:
                4.3.2.1.in-addr.arpa.   IN  PTR www.Douma.com.
                若1.2.3為網絡地址,則可以簡寫為
                    4   IN  PTR www.Douma.com.

                註意:網絡地址以及後綴可以省略,但是主機地址仍然需要反著寫;

        CNAME
            name:別名的FQDN
            value:正式名字的FQDN
                例如
                    web.Douma.com.  IN  CNAME   www.Douma.com.

        BIND:
            RR類型: A   PTR   NS   MX    CNAME  SOA  AAAA
            子域授權:每個域的名稱服務器都是由其上級名稱服務器在解析庫進行授權
                類似根域授權tld:
                    .com.   IN  NS  ns1.com.
                    .com.   IN  NS  ns2.com.
                    ns1.com.    IN  A   2.2.2.1
                    ns2.com.    IN  A   2.2.2.2
                Douma.com.在.com的名稱服務器上,解析庫中添加資源記錄
                    Douma.com.  IN  NS  ns1.Douma.com.
                    Douma.com   IN  NS  ns2.Douma.com.
                    Douma.com.  IN  NS  ns3.Douma.com.
                    ns1.Douma.com.  IN  A   3.3.3.1
                    ns2.Douma.com.  IN  A   3.3.3.2
                    ns3.Douma.com.  IN  A   3.3.3.3

                    Glue record :粘合記錄
                域名註冊:
                    代理商;萬網,新網;godaddy
                    註冊完成之後,想自己用專用服務器來解析?
                    (1)管理後臺,把NS記錄指向的服務器名稱,和A記錄指向的服務器地址;

                BIND安裝配置:
                    dns服務,程序包名bind ,程序名named
                    程序包:
                        bind-libs
                        bind-utils(提供了4個測試工具dig nslookup nsupdate host)
                        bind

                        bind-chroot /var/named/chroot/

                BIND
                    服務腳本:/etc/rc.d/init.d/named
                    主配置文件: /etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
                    解析庫文件:/etc/named/ZONE_NAME
                        註意:
                            (1)一臺物理服務器可以同時為多個區域提供解析;
                            (2)必須要有根區域文件;named.ca
                            (3)應該有兩個甚至更多實現localhost和本地回環地址的解析庫;
                                named.localhost /  named.loopback

                    Rndc: remote name domain controller ,默認與bind安裝在同一主機,
                        且只能通過127.0.0.1來連接named進程;提供輔助性的管理功能;953/tcp

                BIND的安裝:
                    yum install -y bind
                                    rndc
                    rndc --> rndc (953/tcp)
                    rndc COMMAND
                        reload :重新載入主配置文件和區域解析庫文件
                        reload zone 重載區域解析庫文件
                        retransfer zone 手動啟動區域傳送過程,而不管序列是否增加
                        notify zone 重新對區域傳送發通知
                        reconfig 重載主配置文件
                        querylog 開啟或者關閉查詢日誌(會直接寫入磁盤 磁盤壓力大)
                        status 查看狀態
                        trace [num]遞增調試等級(直接調到多少等級)

DNS基礎與bind的安裝