域和域區
理解域和域區的差別需要費一點精力
DNS域名樹的分支是為域名所用的
而葉子則用於主機
在域名樹中
子域和主機是樹中所有在它們上層的域的成員
域區在邏輯上覆蓋了DNS樹型結構的一部分
以確定每個DNS服務器支持的名字(子域名和主機名)
DNS服務器的域區決定了它所覆蓋的樹的分支
樹的區域
以及有多少它所授權的域
圖
中有一個服務器的授權域區包括mkt和sales兩個域
一個DNS服務器也可以在一個域區中只有一個域
圖
中的eng就是一個域區只有一個域的例子
盡管它還有兩個子域
因為Windows
中的域區用於控制相鄰的分支
也就要求mkt和sales域位於不同的域區中
這與一般的域區規則稍有不同
由於DNS服務器之間的交互操作和DNS服務器及DNS客戶機之間的交互操作決定了必須有域區和委托授權
域區規定了名字是在哪裡存放的(即哪個DNS服務器具有這些名字)
而委托授權則決定客戶機和服務器應從哪條路徑與其他DNS服務器通信
一個域區包含的記錄可以是單個域的記錄
一個域記錄的一部分
一個或幾個子域的記錄或者是父域和子域記錄的組合
對於一類特殊的用來進行從地址到名字解析的反向地址域區
更是常有多個域的記錄
反向地址域區將在第
章中描述
域區向DNS服務器提供了它所管理的名字
而委托授權則告訴DNS服務器當一個查詢是在其域區以外時到哪裡去查找
域區和委托授權都不決定哪個DNS服務器是域記錄授權的最初來源
哪些服務器只是備份
需指定一個服務器為主服務器並給予它這種授權
並指定一個服務器為輔服務器以作為主服務器的備份
主DNS服務器
如前所述
主DNS服務器(即SOA)負責域中名字的授權
關於那個域的名字的所有信息都要從這個服務器獲得
當一個主DNS服務器啟動時
它從它所運行主機的本地數據文件(或者活動目錄)中取得域區數據
一個DNS服務器可以同時是一個或幾個域的主服務器
也可以同時既是一個域的主服務器
又是另一個域的輔服務器
第
章將更詳細地解釋DNS服務器的類型
但現在至少應認識到域和域區不存在主或輔的問題
只有DNS服務器才有主或輔的概念
主DNS服務器才是一個域的名字的授權來源
如果要配置一個機構的域的層次結構
最好首先為整個域配置一個主域名服務器
DNS服務器管理的域區應包含所有的域名
也許還應為子域配置一個或幾個服務器
如果要為機構的各個部門建立子域
則每個子域應有一個主DNS服務器
如果服務器不包含這個域的所有記錄
則必須指定一個子域授權(例如
被分為
等等)
通過子域的選擇提高了用戶的靈活性
同時
因為每個子域都有一個授權的啟動
所以潛在地增加了負載
因此
每次做出改變時
必須進入指定的主服務器
MS關於
域區
項的使用有時是令人費解的
在實現時應注意使用方式
輔DNS服務器
輔DNS服務器從主服務器獲得數據
當一個輔DNS服務器啟動時
它首先從主服務器處獲得域區數據
並將自己的版本號和主服務器的版本號進行比較
如果覺得必要
輔服務器就進行域區數據的替換
用主服務器的數據覆蓋原來的數據
輔服務器能和主服務器通信是因為輔服務器的名字連同SOA和NS資源記錄一起保存在它的文件裡
輔服務器僅用一個NS記錄來表示
並且它不承擔SOA的責任
只有主服務器才有權承擔
當然
如果輔服務器仍然沒有域區數據
它需要在它的啟動文件建立時使用指示來定位主服務器以獲得域區數據
和主DNS服務器相似
輔服務器也是授權查找域名的地方
其差別在於主服務器是其他需要輸入域區文件的服務器的初始域名來源
而輔服務器則不是傳遞域區數據的來源
輔服務器的存在只是為了備份並提供查詢服務
從主DNS服務器向輔DNS服務器傳送數據
對域
域區
委托授權有所了解後
可以轉向討論DNS的分布式數據庫模型
域區文件本質上是DNS名字的數據庫列表
主服務器擁有它自己的各個域的源域區文件
子域域名服務器可以有主服務器的功能
可有效地將一個大的域名列表劃分為幾個較小的部分
成為幾個域區文件
如果一個大型機構在建立其域名服務器時只使用一個域
而沒有劃分為幾個子域
則域區文件將非常大
這樣一個很大的無層次名字空間還會有另一個問題
一個不再劃分的DNS分支不能支持兩個同樣的主機名
如果不對域進行劃分
一個大機關就會遇到像ARPAnet決定建立DNS體系結構時所曾遇到的問題
然而
同樣大的機構可以把它的域名空間分成幾個子域
但仍然只用一個域區文件
如圖
所示
這只能解決兩個問題中的一個
對域進行劃分可以因域區文件變小並容易管理而改善性能
一個域名服務器不應該解析龐大的域區文件
雖然還受其他因素影響
但一般來說域區文件越小
從域名服務器得到的響應就越快
但子域也會帶來一定的問題
即數據問題
委托授權解決了父域和子域的協調
但一個輔服務器又如何從數據源—它的主服務器—來獲得數據?回答是通過傳送主服務器的域區文件
這也被稱作域區傳送(zonetransfer)
域區傳送可以是部分的也可以是完全的
主要取決於需求和最近一次全傳送耗費的時間
把大的域區文件分成幾個小文件也可提高域區傳送的效率
這也是為什麼要避免大而平面化的域名空間的重要原因之一
當一個主服務器啟動時
它只需要對名字查詢請求做出響應
當一個輔服務器啟動時
它就要查看主服務器的授權數據
並得到一個路徑和文件名
以便當收到副本時保存為本地的備份
這由服務器的啟動信息提供
在第
章中將會提到
如果輔服務器是第一次啟動或者有人清除了它的數據目錄
則輔服務器就向主服務器發出請求以得到域區文件的副本
域區傳送操作很像Windows(NT或
)的文件復制
或者是Windows在域名服務器之間的WINS數據復制
當輔服務器得到了主服務器域區文件的副本後
它也能對名字查詢提供授權的應答
如果主服務器的域區文件有所改變或更新
輔服務器將如何處理?在授權開始資源記錄(SOARR)中包含的若干信息字段可指示輔服務器相隔多久檢查主服務器的變化
這些字段設置了超期時限和刷新頻率
SOA資源記錄也有一個版本號或序列號
關於SOA資源記錄的更多信息
請見第
章
輔服務器將定期地向主服務器查詢它所需刷新的域區文件
具體的就是檢查序列號是否有變化
序列號是一種遞增的指示數據庫版本的數字
如果序列號有所變化
輔服務器就知道域區數據有了變化
就會啟動新的副本傳遞(可能是部分的
也可能是完全的傳送)
部分傳送是在RFC
中定義的一種逐漸遞增的傳送
即僅是被改變的部分而不是整個域區文件被傳送
只有當序列號增大後輔服務器才會進行域區文件傳送
如果序列號因為某種原因而減少
則輔服務器將認為它的域區文件副本是最新的
並將繼續使用直到期滿
如果因某種原因序列號變為
則輔服務器的本地域區文件將被刪除
輔服務器就將啟動一次傳輸
從主服務器傳送完整的新的域區數據文件
但是無論在哪種情況下
都是從它的主服務器獲得它的數據
Windows
DNS服務器和BIND
還有一種
通告
選項
以啟動輔服務器的更新
這就是說
主服務器可以通知輔服務器數據已變化
以便加速傳送新信息
通告
選項還可以提高安全性
因為是由主服務器啟動域區文件的傳送
主服務器的管理員提供了應通知的輔服務器列表
而列表中的輔服務器只限於那些已經授權的服務器
將啟動數據傳送從輔服務器轉為主服務器
有助於防止域區文件被非法竊走
這是一系列使用
通告
選項來提高傳送效率的令人信服的原因
然而
一些BIND
服務器在從Windows
DNS接收到這樣的傳送時會丟棄自己的所有數據
所以
當計劃用這種方式使用BIND輔服務器時
應采用BIND
希望DNS查詢在全局范圍內都能得到迅速處理的機構應該在不同的地理位置上配置DNS服務器
也許可以把部分域區數據放在其他合作機構的服務器上
這樣可以提供較好的本地查詢性能
而配置的冗余有助於在Internet連接不正常時繼續工作
在有故障時
即使目的主機不能接通
輔DNS服務器仍然可以進行名字解析
對於如發送郵件這樣的服務
這是很有用的
因為如果在發送郵件時可以解析主機名
但不能啟動一次郵件發送過程
則只需將郵件在發送隊列中繼續排隊
稍後再發送
而發送郵件時如果連主機名都不能解析
則只能退回郵件並給出
主機未知
錯誤
Windows
把域區數據集成到活動目錄中作為第三類域區
從而逐漸模糊了標准主輔服務器之間的區別
集成後
仍然可以有標准輔服務器
但也可能有多個同等的使用活動目錄進行復制的輔服務器
這在第
章中將會提到
那裡將討論一些有關活動目錄技術的DNS問題
本章關於域名空間和域名服務器的討論就到這裡
其余部分將集中於客戶機
客戶機的查詢和DNS服務器是如何協作工作的
From:http://tw.wingwit.com/Article/Common/201311/5354.html