BIND <DNS初識>

在互聯網中IP纔是物理節點的標識,通過IP去訪問互聯網上的資源(IP36bit的二進制,41610進制數字組成),而通常有意義的字符組合成域名更符合人意,便於記憶,所以需要一種將域名映射成IP的機制,在互聯網的早期,使用Host文件完成這份工作,但隨着互聯網的高速發展,需要維護的host文件太過龐大,而推出DNS服務 (Domain Name Service )用於解析域名與IP.

 

DNS域名類型:

1)         組織域,用於某些類型組織的域名,例如com(商業機構),gov(政府部門),edu(教育)

2)         地區域,用於某些地勢的域名,例如cn(中國),jp(日本),hk(香港)

3)         反向域,反向解析的域名,例如 1.16.172.in-addr.arpa

 

DNS Domain Space , 域名空間

域名空間爲一顆邏輯的倒置樹,最頂層爲 根域 ”.” , 下面爲頂級域 ,再下面爲二級域,三級域... ,分層的好處在於減少DNS服務器的壓力.

當進行域名查詢時也是自上而下,先找根域->頂級域->二級域所負責的DNS服務器,由該服務器給出答案

image.png

 

DNS查詢類型:

遞歸查詢:一次查詢必須要有迴應,通常是PC機向DNS服務器發出的查詢UDP/53

迭代查詢:需要進行多次查詢,因爲每次DNS服務器給的都是參考答案 TCP/53,通常爲DNS服務器向根域去查詢.

 

DNS Server 迴應類型:

         肯定回答:找到了域名,有結果,則是肯定回答

         否定回答:沒有找到域名,則是無結果,也需要緩存,減少查詢壓力

         權威回答:查詢的結果爲負責該域名區域的NAME Server的回覆則是權威回答

         非權威回答:查詢的結果爲DNS Server的緩存結果,則爲非權威回答

 

DNS解析類型:

正向解析: 域名(FQDN) -> IP

反向解析:IP->域名(FQDN),通常是基於網段做反向解析

注意:正向解析與反向解析爲兩顆完全不相同的解析樹.

 

DNS服務器角色類型:

DNS服務器,維護所負責區域的域名解析的服務器,需要上級域授權.

DNS服務器,也稱爲輔助DNS,用於提供備份和分擔主DNS的壓力,不需要管理員維護解析庫,使用區域同步機制同步主DNS的解析庫.

緩存DNS服務器,沒有要負責解析的區域,解析庫中沒有區域(除了localhost),所有的解析都去找根域” ,將解析後的結果緩存至本地.

轉發器服務器,定義不屬於本地負責的區域轉發至哪一臺DNS解析,而不去找 根域 ,或則定義所有的區域轉發至哪一臺DNS解析.這就是遞歸查詢了,所以被轉發需要支持遞歸.

 

DNS客戶端的查詢過程:

1.       假設Client請求www.163.com的域名,首先ClIent查自己的Host文件(/etc/hosts)看是否有定義,若有則直接返回結果。

2.       Client查詢自己的本地緩存,看是否有過之前的解析記錄。

3.       Client/etc/resolve.conf中定義的DNS服務器發出遞歸查詢,只發一次查詢,等待DNS Server的回答。

4.       DNS Server 查詢自己的DNS緩存看是否有過之前的查詢記錄緩存。

5.       DNS Server 13根域服務器查詢域名www.163.com. ,根域發現該域名在自己的子域.com下,所以根服務器返回負責 ”com.”域的NS記錄與A記錄

6.       DNS Server根據根域服務器返回的NSA記錄,找到 負責解析 “con.” 域的服務器併發出請求,查詢www.163.com域名,負責解析.com域的DNS服務器發現163.com域是自己的子域,返回163.com. 區域的NS記錄與A記錄

7.       DNS Server根據.com域返回的NSA記錄,找到該區域負責解析的DNS服務器併發出請求,該區域DNS服務器查找自己的解析庫檢查是否存在www主機,返回結果

8.       這就是迭代查詢的過程,DNS Server進行多次查詢,收到的都是參考答案,如果還有三級域,則繼續迭代查詢。

 

                 image.png

 

解析庫:

         解析庫由多條資源記錄(Resource Record)組成,通過這些RR記錄IP與域名之間的關係,並且標明該資源的類型、用途。

         1   A:地址記錄(Address),返回域名指向的IP地址。

2 NS:域名服務器記錄(Name Server),返回保存下一級域名信息的服務器地址。該記錄只能設置爲域名,不能設置爲IP地址。

3  MX:郵件記錄(Mail eXchange),返回接收電子郵件的服務器地址。

4 CNAME:規範名稱記錄(Canonical Name),返回另一個域名,即當前查詢的域名是另一個域名的跳轉,詳見下文。

5 PTR:逆向查詢記錄(Pointer Record),只用於從IP地址查詢域名,詳見下文。

6 SOA :開始授權記錄(Star of  Authority),定義該域的主DNS服務器,必須位於首部。

        

         解析庫在/etc/named.conf /etc/named.rfc1912.zones中定義,存放於/var/named/

 

解析庫的語法格式:

 

Name    IN          type              value

 

                   @     表示爲當前區域名稱,所以郵箱中的@ ’ . ’ 表示

                   若多條記錄的name名稱相同,則後續name可省略

        

SOA記錄:

         Name : 爲當前區域的FQDN

         Value : 由主DNS ServerNS記錄、管理員郵箱、區域傳送選項 多部分組成

例如:

@              IN    SOA           ns1.huying.com.      admin.huying.com. (

201801 ;  同步序列號

1H    ;刷新時間

30M ;重試時間

1D     ;過期時間,主DNS多久之後還爲回覆,從DNS也放棄解析

                            1D     ;否定答案的緩存時間

         )

 

 

  

         NS記錄:

                   Name : 當前區域的名稱

                   Value :  負責該區域的DNS Server FQDN

                            NS記錄需要有對應的A記錄解析該DNS Server FQDN

                            例如:

@              IN              NS              ns1.huying.com.

                   IN              NS              ns2.huying.com.

ns1.huying.com.                 IN             A             192.168.1.1

ns2.huying.com.                 IN             A             192.168.1.2

         MX記錄:

                   Name:  當前區域的名稱

                   Value:  priority  當前區域接受郵件服務器的FQDN

                            Priority    當前區域的多個時,越低越優先處理

例如:

huying.com.        IN            MX         10             mx1.huying.com.

                              IN            MX         20             mx2.huying.com.

mx1.huying.com.               IN            A               192.168.1.1

mx2.huying.com.              IN             A               192.168.1.2

 

A記錄:

                   Name: FQDN

                   Value: IP

                   例如

ns1.huying.com.      IN          A             172.16.1.1

ns2.huying.com.      IN          A             172.16.1.2

         CNAME記錄:

                   Name:  別名的FQDN

                   value:   正名的FQDN

                   例如

web.huying.com           IN             CNAME         www.huying.com

         PTR記錄:

                   name:  Network_Address.in-addr.arpa

                   value:  FQDN

                   例如

1.16.172.in-addr.arpa         IN           PTR               www.huying.com.

 

DNS測試工具:dig,host,nslookup,query…   

         這些工具在bind-utils RPM包中都有提供

         dig

                  dig    -t  querry_type    name  @server                            #-查詢指定類型的記錄

                                     -t                表示查詢的類型

                                     name        爲需要查詢的域名

                                     @Server  使用哪個DNS服務器進行解析

                   dig     -x   ip_addr                                                                 #根據IP地址進行反向解析

                   dig    -t   AXFR   name                                                              #測試全量區域傳送

                   dig    +trace  name                                                                #對解析過程進行跟蹤

                   dig    +[no]recurse          name                                          #使用遞歸或者非遞歸解析    

         host

                   host   -t    type   name  Server                                         #指定類型解析

         nslookup

                   …


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