2 資源記錄;將DNS域名映射到特定類型的資源信息,以便在名稱注冊和解析時使用。
3 DNS服務器;提供存儲和應答資源記錄的名稱查詢服務。
4 DNS客戶端;用來查詢DNS服務,將域名解析為查詢中指定的資源記錄。
一個服務器所負責管轄的(或有權限的)范圍叫做區(zone)。每個區設置相應的權限域名服務器(authentication name server),用來保存該區中的所有主機的域名到IP地址的映射。
DNS服務器管轄是以“區”為單位。區是DNS服務器實際管轄的范圍。區可能小於等於域,但不可能大於域。
樹狀結構的DNS域名服務器
域名解析過程:
遞歸查詢:即一級一級地找。主機向本地域名服務器的查詢一般都采用遞歸查詢。
如果主機所詢問的本地域名服務器不知道被查詢的域名的IP地址,那麼本地域名服務器就以DNS客戶的身份,向其他根域名服務器繼續發出查詢請求報文,而不是讓該主機進行下一步查詢。遞歸查詢返回的結果或者是所要查詢的IP地址,或者是報錯。
迭代查詢:一個一個地找。本地域名服務器向根域名服務器的查詢通常采用迭代查詢。
當根域名服務器收到本地域名服務器發出的迭代查詢請求後,要麼給出所要查詢的IP地址,要麼告訴本地域名服務器下一步該向哪個域名服務器進行後續的查詢,然後讓本地域名服務器進行後續的查詢(而不是替本地域名服務器進行後續查詢)。即告訴你怎麼查,而不是替你去查。
為提高DNS查詢效率,減輕根域名服務器的負荷和減少因特網上DNS查詢報文數量,在域名服務器中廣泛使用了高速緩存(或高速緩存服務器),用來存放最近查詢過的域名以及從何處獲得域名映射信息的記錄。
本地域名服務器采用迭代查詢
本地域名服務器采用遞歸查詢
DNS資源記錄類型: ——摘自《鳥哥的linux私房菜》
$TTL :當有外部 DNS 服務器對你的 DNS 的這個領域進行查詢時,這一筆記錄會放置在對方 DNS 服務器內幾秒鐘的意思。
$ORIGIN:這個設定值可以重新指定 zone 的定義。在預設的情況下, 這個正反解數據庫檔案中的 zone 是由 /etc/named.conf 所指定的,就是 zone 那個參數的功能。 不過,這個 zone 是可以改的,就是用 $ORIGIN 來修訂就是了。通常這個設定值不會用到的。
@:這個符號代表 zone 的意思! 以上面的 named.local 來說, 這個檔案由 /etc/named.conf 定義出 zone 為 localhost. ,因此在本檔案的 @ 就代表 localhost. !
. :這個點 (.) 很重要!因為他代表一個完整主機名稱 (FQDN) 而不是僅有 hostname 而已。舉例來說,如果你在本設定檔上面規范一個主機名稱為 www 時,那部主機的 FQDN 為 www.localhost. 如果你寫出 www.localhost 時,由於末了沒有那個小數點,則 zone 會主動加入該主機名稱, 所以最終的 FQDN 會變成 www.localhost.localhost. !
SOA:Start of Authority 的意思。 這個標志代表著 master/slave 相關的認證、授權資料。 不論你的 DNS 系統有沒有設定 master/slave 的架構,都需要含有這個設定才好。 SOA 後面共帶有三個參數,所以該行為:
[zone] IN SOA [主機名] [管理員 email] ([五組更新時間參數])
每個設定項目你可以這樣看:
主機名:就是 master DNS 的主機名稱,通常填寫本身主機名即可。還是要注意那個小數點的存在與否!非常重要!
管理員 email:本來應該是 "root@localhost." 的,不過因為 @ 已經被作為特殊代號 (zone), 所以就用小數點來取代,因此 email 就成為 "root.localhost." 。
(五組數字):這五個數字分別代表 serial, refresh, retry, expire, ttl。
至於那五個數字的意義是這樣的:
1 Serial:只是一個序號,但這個序號可被用來作為 slave 與 master 更新的依據。 舉例來說, master 序號為 100 但 slave 序號為 90 時,那麼這個 zone file 的資料就會被傳送到 slave 來更新了。 由於這個序號代表新舊資料,通常我們建議你可以利用日期來設定!舉例來說,上面的資料是在 2006/10/20 所寫的第一次,所以用 2006102001 作為序號代表!
2 Refresh:除了根據 Serial 來判斷新舊之外,我們可以利用這個 refresh(更新) 命令 slave 多久進行一次主動更新;
3 Retry:如果到了 Refresh 的時間,但是 slave 卻無法連接到 master 時, 那麼在多久之後,slave 會再次的主動嘗試與主機連線;
4 Expire:如果 slave 一直無法與 master 連接上,那麼經過多久的時間之後, 則命令 slave 不要再連接 master 了! 也就是說,此時我們假設 master DNS 可能遇到重大問題而無法上線,則等待系統管理員處理完畢後, 再重新來到 slave DNS 重新啟動 bind 吧!
5 Minimun:這個就有點象是 TTL !
NS:就是 name server 的縮寫,這個標志的參數是:[zone] IN NS [主機名稱]
注意, NS 後面接的一定是主機名稱!代表的意思是說:“這個 zone 的查詢請向後面這部主機要求”的意思。 所以,如果你這個 zone 有兩部以上的 DNS 服務器負責時,那就必需要寫兩個 NS 了!而 NS 後面接的主機名稱必需要有 IP 的對應啊!因此就需要 A 這個標志了!
A:是正解的符號,參數是:[hostname] IN A [IP]
意思是說該部主機的 IP 對應之意!也是最常用的一個標志了!
MX:就是 Mail eXchanger(MX) 的簡寫,他的參數是這樣寫的:
fw IN A 192.168.0.254 [root@station39 named]# chown :named a.com.zone 下面通過配置一個主域名服務器來說明DNS配置過程: 主配置文件: options { directory "/var/named"; //**數據文件存放位置 allow-notify { 192.168.0.127; } ; querylog 1 ; //** 啟用日志功能 1 開啟 0 關閉 version "None of your business !" //** 禁止查詢版本號 listen-on { 192.168.0.39 ; }; //**指定監聽的地址 allow-recursion { 192.168.0.0/24; }; //**只給某個網段遞歸查詢,也可以使用ACL allow-query { 192.168.0.0/24; }; //**只允許誰來查詢 }; zone "." IN { type hint ; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; }; zone "a.com" IN { type master; file "a.com.zone"; allow-transfer { 192.168.0.127; }; //** 允許區域傳送 }; zone "0.168.192.in-addr.arpa" IN { type master; file "0.168.192.zone" ; allow-transfer { 192.168.0.127;}; }; 正向區域解析文件 [root@station39 named]# vim a.com.zone $TTL 86400 $ORIGIN a.com. @ IN SOA a.com. root ( 100 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns IN NS ns2 IN MX 5 mail ns IN A 192.168.0.39 ns2 IN A 192.168.0.127 mail IN A 192.168.0.39 www IN A 192.168.0.1 www IN A 192.168.0.254 bbs IN CNAME www ftp IN A 192.168.0.254 fw IN A 192.168.0.254 [root@station39 named]# chown :named a.com.zone 反向區域解析文件: $TTL 86400 @ IN SOA a.com. root ( 100 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns.a.com. 39 IN PTR ns.a.com. 39 IN PTR mail.a.com. 1 IN PTR www.a.com. 254 IN PTR www.a.com. 254 IN PTR ftp.a.com. 254 IN PTR fw.a.com. 從域名服務器:192.168.0.127 主配置文件: options { directory "/var/named"; //**數據文件存放位置 }; zone "." IN { type hint ; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; }; zone "a.com" IN { type slave; file "slaves/a.com.zone"; masters { 192.168.0.39 ; }; }; zone "0.168.192.in-addr.arpa" IN { type slave ; file "0.168.192.zone" ; masters { 192.168.0.39; }; }; 子域授權 在主域名服務器正向區域文件中添加一條記錄 cs.a.com. IN NS ns.cs.a.com. ns.cs.a.com. IN A 192.168.0.161 在子域名服務器中設置主配置文件: options { directory "/var/named"; //**數據文件存放位置 }; zone "." IN { type hint ; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; }; zone "cs.a.com" IN { type master; file "cs.a.com.zone"; }; /var/named添加正向區域文件cs.a.com.zone $TTL 86400 $ORIGIN cs.a.com. @ IN SOA cs.a.com. root ( 100 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns IN NS ns2 IN MX 5 mail ns IN A 192.168.0.3 ns2 IN A 192.168.0.15 mail IN A 192.168.0.37 www IN A 192.168.0.74 www IN A 192.168.0.25 bbs IN CNAME www ftp IN A 192.168.0.25 fw IN A 192.168.0.25 PS :父域可以解析子域,子域要想解析父域就要轉發。 修改子域主配置文件,添加: zone "a.com" IN { type forward forwarders { 192.168.0. 39 ; }; }; 查詢服務器版本號: [root@station39 ~]# dig txt chaos version.bin @127.0.0.1 View:視圖,將用戶來源分成不同的類別,當屬於某一類用戶的時候解析成A結果,當屬於另一類用戶的時候解析成B結果。 PS:只要聲明一個view,那麼所有的zone都必須在view中建立。 在主配置文件中添加: view "localhost" { matche-clients { 127.0.0.0/8 ; }; zone "." IN { type hint ; file "named.ca"; }; zone "localhost" IN {
type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; }; }; view "internal" { match-clients { 192.168.0.0/24; }; zone "a.com" IN { type msater; file "a.com.int.zone"; }; zone "0.168.192.in-addr.arpa" IN { type master ; file "0.168.192.zone" ; }; }; view "external" { match-clients { 192.168.10.0/24; }; zone "a.com" IN { type master; file "a.com.ext.zone"; }; zone "10.168.192.in-addr.arpa" IN { type master ; file "10.168.192.zone" ; }; }; 再編輯對應的區域文件即可! 本文出自 “諸葛草廬” 博客,請務必保留此出處http://lyp0909.blog.51cto.com/508999/521616