BIND <DNS初識>
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根據根域服務器返回的NS、A記錄,找到 負責解析 “con.” 域的服務器並發出請求,查詢www.163.com域名,負責解析.com域的DNS服務器發現163.com域是自己的子域,返回163.com. 區域的NS記錄與A記錄
7. DNS Server根據.com域返回的NS、A記錄,找到該區域負責解析的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 Server的NS記錄、管理員郵箱、區域傳送選項 多部分組成
例如:
@ 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初識>