Linux基礎——Bind DNS服務 Part0
DNS簡介
域名系統(英語:Domain Name System,縮寫:DNS)是網際網路的一項服務。它作為將域名和IP地址相互對映的一個分散式資料庫,能夠使人更方便地訪問網際網路。DNS使用TCP和UDP埠53。
在域名系統的層次結構中,各種域名都隸屬於域名系統根域的下級。域名的第一級是頂級域,它包括通用頂級域,例如.com、.net和.org;以及國家和地區頂級域,例如.us、.cn和.tk。頂級域名下一層是二級域名,一級一級地往下。
FQDN意為完全合格域名(Fully Qualified Domain Name),它指定了所有的域名級別,包括頂級域與根域。它不含歧義,只有一種解釋方式。根域沒有命名,所以一般為空,但在有的情況下它會表示成一個. 例如 www.google.com. (FQDN)。
DNS查詢過程
DNS查詢過程分為兩種,遞迴查詢與迭代查詢。現實中一般合用遞迴與迭代查詢。
遞迴查詢
查詢過程如下:
迭代查詢
查詢過程如下
實際應用
DNS記錄
DNS記錄包含了:
- SOA記錄
- NS記錄
- A記錄
- AAAA記錄
- MX記錄
- SRV記錄
- PTR記錄
- CNAME記錄
- TXT記錄
SOA記錄
SOA記錄通常在叢集中進行配置,它配置了區域傳送相關的數值,它包含了區域負責人的電子郵件地址和主要DNS伺服器的名稱,每個區域都有SOA記錄。
它的結構如下圖:
$TTL 86400
@ IN SOA ns.icann.org. noc.dns.icann.org. (
2020080302 ;Serial
7200 ;Refresh
3600 ;Retry
1209600 ;Expire
3600 ;Negative response caching TTL
)
Serial為該區域的序列號,用於在從伺服器獲取主伺服器SOA記錄時區別區域資料的新舊,從而決定啟用區域傳送。
Refresh為從伺服器查詢主伺服器SOA記錄來檢測伺服器更改的間隔秒數。
Retry為如果主伺服器沒有響應,從伺服器重新向主伺服器請求SOA記錄的秒數,必須小於Refresh。
Expire為如果主伺服器沒有響應,從伺服器停止響應該區域請求的秒數,該值必須大於Refresh與Retry的總和。
TTL為快取的生存時間。
NS記錄
它指示那個DNS伺服器對該域具有權威性(即哪個DNS伺服器包含了實際的DNS記錄)。以讓客戶端進行訪問。
NS記錄不能指向CNAME記錄。
A記錄
將域名對映到IP地址的記錄。
AAAA記錄
將域名對映到IPV6地址的記錄。
MX記錄
指定郵件伺服器負責接收該區域的電子郵件,它包含有優先順序,優先順序值越低則越優先。相同優先順序則是負載均衡。
SRV記錄
用於指定服務的位置,部分網路協議需要網路支援SRV。
SRV記錄一般為如下形式:
_service._proto.name. TTL class SRV priority weight port target.
- service:服務的名稱。
- proto:服務所需要的傳輸協議。一般為TCP或UDP。
- name:記錄有效的域名,以點結尾。
- TTL:DNS快取生存時間。
- class:DNS型別欄位(一般為IN)。
- priority:主機優先順序,值越低越優先。
- weight:相同優先順序的相對權重,值越高越有可能被選中。
- port:需要在該伺服器上找到伺服器的TCP或UDP埠
- target:提供服務的機器的FQDN,以點結尾。
PTR記錄
用於將IP地址對映到域名,IPV4的反向解析使用特殊域in-addr.arpa並需要將所在域的IP以正向解析相反的形式新增上去。
例如我需要查詢8.8.4.4的域名,則查詢4.4.8.8.in-addr.arpa這個域。
CNAME記錄
指定了一個域名作為另一個域名的別名,CNAME記錄只能指向域名,不能指向IP地址。
TXT記錄
用於將文字與主機相關聯。在查詢該記錄是可以顯示指定文字。
區域型別
Bind軟體中包含的常用區域型別有:
- Master
- Hint
- Slave
- Forward
- Stub
Master(主要區域)
表示伺服器擁有該區域資料的主副本,能改為其提供權威答案
Slave(輔助區域)
該區域為主區域的複製品,Masters列表包含了一個或多個IP地址,從伺服器則會向Masters列表中發出區域傳送的申請。
Stub(存根區域)
存根區域像一個輔助區域,但它只儲存NS記錄。
Forward(轉發區域)
這個區域將會將所有查詢轉發到其他伺服器。如果需要全域性轉發,則還是需要在全域性設定中配置全域性轉發器。
Hint(根區域)
Bind9中包含了根伺服器的列表,當伺服器啟動時將自動查詢根伺服器並獲得最新的根伺服器列表。