DNS服務器

   1.DNS定義:    它是一個將域名和IP相互映射的分佈式數據庫。有了DNS服務器,我們只需要記錄一個網站的域名即可訪問,而再也不需要記憶那一串長長的IP地址了。

        協議:DNS

        端口:    UDP:53                TCP:53

實現:BIND(Berkeley Internet Name Domain), PowerDNS, dnsmasq

         

                  FQDN --> IP: 正向解析

          IP --> FQDN:反向解析

     2.DNS的結構:

   wKioL1S4uPzAarxvAAGLwJJ7v2I329.jpg

3.FQDN(Full Qualified Domain Name)

    安全合格域名,按照中國人的習慣是從大到小寫,但老外習慣從小往大了寫,就像寫信一樣,自底向上,所以一個FQDN應該是"www.qq.com."


4.DNS查詢方式

1.遞歸查詢(recursion)(一步一步往上請求進行查詢,)

   客戶端只發出一次請求,要求對方給出最終結果。如果客戶端要查找的內容直接在服務器上得到結果,剛給出的答案是一個權威答案,否則就是一個參考答案。

2. 迭代查詢(iteration)(你告訴我下一個要去找的地址,,我去找下一個,,直到找到。)

   客戶端發出一次請求,服務器替代客戶端一次次的去請求以獲得最終答案,所以迭代查詢是服務器代爲其查詢,因此,客戶端指向的DNS服務器,一定是允許給本地主機做遞歸的。


一般情況下客戶端和local DNS服務是遞歸查詢,DNS和local DNS之間是迭代查詢的。


5.資源記錄(Resource Record)

SOA:Start Of Authority,      起始授權 一個區域有且只有一個  (劃分這塊區域是我的)

NS:Name Server,                      指定負責給定區域的名稱服務器

MX:Mail eXchanger:                   郵件交換器

A:Address, FQDN-->IP                 列出特定主機名的 IP 地址

PTR: PoiTeR, IP --> FQDN              指針記錄

AAAA: Address, FQDN --> IPv6           IPv6 的地址記錄

CNAME: Canonical Name,               別名記錄


6.  DNS服務器類型

    主DNS服務器:負責莫區域解析的服務器,對區域的所有更新都有通過此服務器進行。

    從DNS服務器: 負責某區域解析,但不負責更新操作。

    dns緩存文件

  

    1、區域數據文件有版本號(序列號) : serial number
    2、刷新時間(同步檢查週期):refresh
    3、重試時間(重試周期):retry, 重試時間要小於刷新時間
    4、過期時間(失效時長):expire, 如果超過過期時間主服務器仍然沒有恢復,則從服務器也停止解析

    5、否定應答的TTL值:在查找不到記錄的情況下,無法緩存,下次請求還會繼續去請求服務器,因此需要設置TTL值來限制客戶端的再次無意義請求

    協調過程:
        從服務器在間隔達到refresh指定的時長後發起同步請求至主服務器;主服務器響應serial。
        從服務器與本地的serial進行比較;如果主服務器serial大於本。
        意味着主服務器區域數據文件更新了,因此進行同步操作。

  8.  資源記錄的格式:

      Name     [ttl]    IN    RRtype    Value


  SOA:
       name:區域名稱,可使用@替代
       value:
           第一段:
               主DNS服務器的FQDN,也可以是當前區域的名稱
               當前區域的管理員郵箱
                   @用於表示當前區域的名字,所以郵箱地址不能出現@符號
           第二段:
               (主從服務器協調屬性定義及否定應答的TTL值)

       eg:
           ibm.com.  60  IN  SOA  ibm.com.  ns.ibm.com. (
                2015011601 ;serial number
                 1H             刷新時間
                 5M             重試時間
                 7D             過期時間
                 1D             否定答案
                  )

注意:SOA後面ns.ibm.com.中最後面那個.一定不能省略,如果省略,系統會默認給補上你的區域名稱。

 
        一個區域數據文件可以有多個NS記錄
        name: 區域名稱,可使用@替代
        value:dns服務器的FQDN

        eg:
            @   IN   NS   ns1.ibm.com.
            @   IN   NS   ns2.ibm.com.
               
        提示:
            1、相鄰資源記錄的name相同時,後面的可省略
            2、任何一個value中指定的FQDN,在其域的正向解析文件中應該有對應的A記錄


         一個區域數據文件可以有多個MX記錄
        name: 區域名稱,可以使用@替代
        value:郵件服務器的FQDN
            在value之前需要有優先級的設定(0-99, 數字越小優先級越高)

        eg:
            @   IN  MX  10  mail1.ibm.org.
                IN  MX  20  mail2.ibm.org.

    
        應用於正向區域文件
        name: FQDN
        value: IP

        eg:
            www.ibm.org.   IN  A   1.1.1.1

        泛域名解析:
            *   IN  A   1.1.1.1

 
        反向區域文件
        負責IP——>FQDN的解析,只能定義在反向區域數據文件中,反向區域名稱爲逆向網絡地址加.in-addr.arpa.後綴組成。
        
       name:IP,逆向的主機地址,如:93.251.16.172.in-addr.arpa.
       value:FQDN,這裏的FQDN不需要有A記錄,反向區域中不能出現A記錄和MX
        eg:
            1   IN  PTR     www.ibm.com.

 
        name: 別名
        value:正式名字

        eg:
            web  IN  CNAME  www.ibm.com.

    

二、DNS的安裝

   DNS是同時監聽TCP與UDP協議的53號端口的,它的協議是DNS,軟件名稱是BIND(當然也有其它的)、進程名是named,這裏就詳細介紹以BIND方式安裝DNS服務

1、安裝bind,最好提前裝好yum源,省得解決依賴關係。

1
[root@nmshuishui ~]# yum -y install bind

2、啓動服務,檢查是否已經監聽53號端口

[root@xiaoxiao ~]# service named start

Starting named:                                            [  OK  ]

[root@xiaoxiao ~]# ss -antu

Netid  State      Recv-Q Send-Q    Local Address:Port      Peer Address:Port 

udp    UNCONN     0      0                     *:647                  *:*     

udp    UNCONN     0      0             127.0.0.1:53                   *:*     

udp    UNCONN     0      0                     *:69                   *:*     

udp    UNCONN     0      0                     *:847                  *:*     

udp    UNCONN     0      0                   ::1:53                  :::*     

tcp    LISTEN     0      3                   ::1:53                  :::*     

tcp    LISTEN     0      3             127.0.0.1:53                   *:*     

tcp    LISTEN     0      128                  :::22                  :::*     

tcp    LISTEN     0      128                   *:22                   *:*     

tcp    LISTEN     0      128                 ::1:953                 :::*     

tcp    LISTEN     0      128           127.0.0.1:953                  *:*     

tcp    LISTEN     0      100                 ::1:25                  :::*     

tcp    LISTEN     0      100           127.0.0.1:25                   *:*     

tcp    LISTEN     0      128           127.0.0.1:6010                 *:*     

tcp    LISTEN     0      128                 ::1:6010                :::*     

tcp    ESTAB      0      0       192.168.211.128:22       192.168.211.1:63421 

[root@xiaoxiao ~]# 


3、配置DNS

1)修改主配置文件

   現在DNS雖然已經啓動成功,但還不能提供正常的解析服務,因爲還沒有創建區域數據庫文件。

   主配置文件:定義區域,在/etc/named.conf

   區域數據文件:區域數據文件其實就是區域文件數據庫,裏面定義資源記錄,它是一個純文本文件,只能包含資源記錄或宏定義。

//

// named.conf

//

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver (as a localhost DNS resolver only).

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//


options {

//      listen-on port 53 { 127.0.0.1; };    不註釋只監聽本機

//      listen-on-v6 port 53 { ::1; };         ipv6不需要

        directory       "/var/named";         定義數據庫的默認目錄。

//      dump-file       "/var/named/data/cache_dump.db";    

//        statistics-file "/var/named/data/named_stats.txt";

        memstatistics-file "/var/named/data/named_mem_stats.txt";

        allow-query     { localhost; };

        recursion yes;                           准許遞歸。

      allow-query     { localhost; };

        recursion yes;


//      dnssec-enable yes;

//      dnssec-validation yes;                 dns安全機制暫且不需要。

//      dnssec-lookaside auto;


        /* Path to ISC DLV key */

//      bindkeys-file "/etc/named.iscdlv.key";


//      managed-keys-directory "/var/named/dynamic";

};


logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};


zone "." IN {

        type hint;

        file "named.ca";

};


include "/etc/named.rfc1912.zones";                   定義區域的文件。               

//include "/etc/named.root.key";


修改完主配置文件後,再重啓下named,這時它就會監聽服務器的22號端口了。

]# service named restart

Stopping named: .                                          [  OK  ]

Starting named:                                            [  OK  ]

[root@xiaoxiao ~]# ss -antu

Netid  State      Recv-Q Send-Q    Local Address:Port      Peer Address:Port 

udp    UNCONN     0      0                     *:647                  *:*     

udp    UNCONN     0      0       192.168.211.128:53                   *:*     

udp    UNCONN     0      0             127.0.0.1:53                   *:*     

udp    UNCONN     0      0                     *:69                   *:*     

udp    UNCONN     0      0                     *:847                  *:*     

tcp    LISTEN     0      3       192.168.211.128:53                   *:*     

tcp    LISTEN     0      3             127.0.0.1:53                   *:*     

tcp    LISTEN     0      128                  :::22                  :::*     

tcp    LISTEN     0      128                   *:22                   *:*     

tcp    LISTEN     0      128                 ::1:953                 :::*     

tcp    LISTEN     0      128           127.0.0.1:953                  *:*     

tcp    LISTEN     0      100                 ::1:25                  :::*     

tcp    LISTEN     0      100           127.0.0.1:25                   *:*     

tcp    LISTEN     0      128           127.0.0.1:6010                 *:*     

tcp    LISTEN     0      128                 ::1:6010                :::*     

tcp    ESTAB      0      452     192.168.211.128:22       192.168.211.1:63421 

tcp    TIME-WAIT  0      0             127.0.0.1:48767        127.0.0.1:953   

[root@xiaoxiao ~]# 

2)創建正向區域

   DNS服務器有四種類型:主DNS服務器,從DNS服務器,緩存名稱服務器,轉發服務器

   因爲這裏新建的是第一臺DNS服務器,所以DNS服務器類型爲主DNS服務器,使用file指定數據文件,以;號結尾。

在:vim /etc/named.rfc1912.zones 下創建xiaoxiao.com域。  

zone"xiaoxiao.com" IN {

     type master;                       類型爲主服務器

     file "xiaoxiao.com.zone;"          區域數據的路徑,(var/named/xiaoxiao.com.zone )

                                           是在/etc/named.conf中定義的。

};

在/var/named/下創建正向區域文件數據庫,命令爲shuishui.com.zone,並填寫資源記錄

$TTL 600

@       IN      SOA     dns.xiaoxiao.com.       dnsadmin.xiaoxiao.com.(

      2015011601

       1H

       5M

       3D

       12H


        )


        IN      NS      dns

        IN      MX  10  mail

dns     IN      A       192.168.211.128

mail    IN      A       192.168.211.10

www     IN      A       192.168.211.11

ftp     IN      CNAME   www

修改配置文件及區域後需要執行的6個步驟

[root@xiaoxiao named]# chown root:named xiaoxiao.com.zone     1.修改屬主屬組

[root@xiaoxiao named]# chmod 640 xiaoxiao.com.zone            2.修改權限

[root@xiaoxiao named]# named-checkconf                        3.檢查配置文件   

[root@xiaoxiao named]# named-checkzone xiaoxiao.com xiaoxiao.com.zone 

zone xiaoxiao.com/IN: loaded serial 2015011601                4.檢查區域文件

OK

[root@xiaoxiao named]# service named restart                  5.重啓服務器

Stopping named: .                                          [  OK  ]

Starting named:                                            [  OK  ]

[root@xiaoxiao named]# tail /var/log/messages                  6.查看日誌文件

Jan 17 00:47:21 xiaoxiao named[1856]: command channel listening on 127.0.0.1#953

Jan 17 00:47:21 xiaoxiao named[1856]: command channel listening on ::1#953

Jan 17 00:47:21 xiaoxiao named[1856]: zone 0.in-addr.arpa/IN: loaded serial 0

Jan 17 00:47:21 xiaoxiao named[1856]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0

Jan 17 00:47:21 xiaoxiao named[1856]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0

Jan 17 00:47:21 xiaoxiao named[1856]: zone xiaoxiao.com/IN: loaded serial 2015011601

Jan 17 00:47:21 xiaoxiao named[1856]: zone localhost.localdomain/IN: loaded serial 0

Jan 17 00:47:21 xiaoxiao named[1856]: zone localhost/IN: loaded serial 0

Jan 17 00:47:21 xiaoxiao named[1856]: managed-keys-zone ./IN: loaded serial 18

Jan 17 00:47:21 xiaoxiao named[1856]: running            正常啓動

[root@xiaoxiao named]# 

測試正向區域解析

   使用dig進行測試,-t選項指定類型,@指定使用哪臺主機去解釋,如果不使用@的話,默認會使用/etc/resolv.conf 下指定的DNS服務器進行解析。

[root@xiaoxiao named]# dig -t A www.xiaoxiao.com @192.168.211.128


; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> -t A www.xiaoxiao.com @192.168.211.128

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3428

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

           aa說明是權威答案,說明此主機名在192.168.211.128上有A記錄沒有經過迭代。

;; QUESTION SECTION:

;www.xiaoxiao.com. IN A


;; ANSWER SECTION:

www.xiaoxiao.com. 600 IN A 192.168.211.11     解析成功得到ip地址


;; AUTHORITY SECTION:

xiaoxiao.com. 600 IN NS dns.xiaoxiao.com.


;; ADDITIONAL SECTION:

dns.xiaoxiao.com. 600 IN A 192.168.211.128


;; Query time: 1 msec

;; SERVER: 192.168.211.128#53(192.168.211.128)

;; WHEN: Sat Jan 17 00:53:14 2015

;; MSG SIZE  rcvd: 84


[root@xiaoxiao named]# 

3)創建反向區域

   1直接定義在xiaoxiao.com這個區域下就可以了,當然也是主服務器類型,使用file指定區域數據文件,要以;號結尾

vim /etc/named.rfc1912.zones

zone"211.168.192.in-addr.arpa" IN {


           type master;

           file "192.168.211.zone";


}

2在/var/named/下創建反向區域文件數據庫,命令爲172.16.251.zone,並填寫資源記錄

$TTL 600

@       IN      SOA     dns.xiaoxiao.com.       dnsadmin.xiaoxiao.com.(

        2015011601

        1H

        5M

        3D

        12H


)


        IN      NS      dns.xiaoxiao.com.

128     IN      PTR     dns.xiaoxiao.com.

10      IN      PTR     mail.xiaoxiao.com.

11      IN      PTR     www.xiaoxiao.com.

3 修改配置文件及區域後需要執行的6個步驟

     和以上六步驟相同,不在累贅。

4 測試反向區域解析

   使用dig進行測試,-t選項指定類型,@指定使用哪臺主機去解釋,如果不使用@的話,默認會使用/etc/resolv.conf 下指定的DNS服務器進行解析

[root@xiaoxiao named]# dig -x 192.168.211.11 @192.168.211.128


; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> -x 192.168.211.11 @192.168.211.128

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33643

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1


;; QUESTION SECTION:

;11.211.168.192.in-addr.arpa. IN PTR


;; ANSWER SECTION:

11.211.168.192.in-addr.arpa. 600 IN PTR www.xiaoxiao.com.   反解析成功。


;; AUTHORITY SECTION:

211.168.192.in-addr.arpa. 600 IN NS dns.xiaoxiao.com.


;; ADDITIONAL SECTION:

dns.xiaoxiao.com. 600 IN A 192.168.211.128


;; Query time: 0 msec

;; SERVER: 192.168.211.128#53(192.168.211.128)

;; WHEN: Sat Jan 17 01:37:27 2015

;; MSG SIZE  rcvd: 109


[root@xiaoxiao named]# 

三、DNS主從同步

1、向區域中添加從服務器的關鍵兩步:

   1)、在上級獲得授權

   2)、在區域數據文件中爲從服務器添加一條NS記錄和對應的A或PTR記錄。

2、向從區域中添加區域,但不需要自己創建數據文件,因爲要從主DNS服務器上做區域傳送,爲了安全,要放在/var/named/slaves目錄下,這也是系統專門爲從服務器準備的存放區域數據文件的路徑。

zone"xiaoxiao.com" IN {

     type master;

     masters{ 192.168.211.12; };         指定主服務器

     file "slaves/xiaoxiao.com.zone";       指定區域文件路徑


};


zone "211.168.192.in-addr.arpa" IN {


           type master;

           masters{ 192.168.211.128;};     設定反向區域

           file "192.168.211.zone";

};










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