1. 程式人生 > >BIND <DNS初識>

BIND <DNS初識>

DNS BIND 叠代 遞歸

在互聯網中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服務器,由該服務器給出答案

技術分享圖片

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進行多次查詢,收到的都是參考答案,如果還有三級域,則繼續叠代查詢。

技術分享圖片

解析庫:

解析庫由多條資源記錄(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


BIND <DNS初識>