幾年前第一次接觸到活動目錄的時(shí)候,正是領(lǐng)導(dǎo)要求部署活動目錄的時(shí)候。雖然當(dāng)時(shí)手頭上有幾本書,但是時(shí)間緊迫沒有來得及仔細(xì)研究。邊看著幫助邊運(yùn)行dcpromo就開始活動目錄的部署了,相信不少人和我當(dāng)年差不多,稀里糊涂的就開始當(dāng)起了活動目錄的管理員。對于DNS,因?yàn)榘惭b會提示自動部署,相信很多人都不會在這方面下很多功夫(包括我原來也是)。我為此付出了不少代價(jià)--因?yàn)椴欢瓺NS所以遇到DNS的問題不知如何解決。我有保存論壇上感興趣帖子的習(xí)慣(顯然直接另存是保存不下來的),我保存有關(guān)DNS問題的帖子數(shù)量,占各種問題的第三位(我也很吃驚)。
但是論壇上也沒有很系統(tǒng)的關(guān)于DNS的總結(jié)(這畢竟是一個(gè)可以寫成一本書的很大的方面)。我通過對自己收藏的帖子和參考書的閱讀,加上自己經(jīng)驗(yàn)的總結(jié)得出一些操作方面的結(jié)論和總結(jié)。希望對大家能有所幫助,因?yàn)槲也簧瞄LDNS(在論壇上我也很少給朋友解決DNS問題),所以我想肯定有我寫錯(cuò)的地方,我希望斑竹們能幫忙校正(我臉皮厚)。我的真正目的是通過這篇文章認(rèn)識到我在DNS方面都存在哪些誤解(我還是挺有私心的)。
閑話少說,書歸正傳。
有過DNS域部署經(jīng)驗(yàn)的朋友都能感覺到,活動目錄的DNS、DHCP和WINS(用的不多了)和NetBios是息息相關(guān)的。也是很容易混淆的。所以很麻煩,通常我們開始部署AD的時(shí)候是在一個(gè)小公司里,大約有幾十臺電腦的局域網(wǎng)。人員流動不是很頻繁,所以的電腦也差不多的天天都開。很少有電腦會換地方,我們?nèi)际褂肈NS的默認(rèn)配置就可以很少會出問題。但這樣的地方我們不能待一輩子,我們來到一個(gè)相對復(fù)雜的網(wǎng)絡(luò)環(huán)境時(shí),意識到自己缺乏對DNS的起碼常識,怎么辦?為了在遇到難題時(shí)能正確表述自己的問題(否則別人想幫你都沒辦法,除了UP我們更重要的是說清楚自己的問題和聽明白高手的意思)那么和我一樣從基礎(chǔ)開始吧。
什么樣的DNS系統(tǒng)是一個(gè)比較完美的系統(tǒng)呢?DNS服務(wù)器的連續(xù)性能提供出色的性能,減少WAN的通信,安全性也必須得到保障。
我們先從概念開始
1。DNS和活動目錄關(guān)系
DNS定義“命名空間”(名字空間)---微軟把例如“contoso.com”的東東叫命名空間,這個(gè)空間內(nèi)的主機(jī)儲存在一個(gè)“區(qū)域文件”(zonefile)里---主要是一種映射的關(guān)系(中學(xué)數(shù)學(xué)就有映射的概念)
活動目錄的域(domain)“存儲域和域中的對象”,把用戶、租計(jì)算機(jī)帳戶記錄組注冊表的SAM里。---當(dāng)然域不止這些內(nèi)容。
DNS和域的結(jié)合--完全合格域名(FQDN):例如srv1.contoso.com--說明了srv1主機(jī)位于contoso.com這個(gè)域里面。
注意:
DNS的結(jié)構(gòu)中,頂級域com.的末尾是有一個(gè)句點(diǎn)”.”的。DNS解析器是從左到右解析FDQN(看看上面FDQN的例子)的,最后到“.”結(jié)束。因?yàn)閣indows的DNS會自動在末尾添加“.”所以我們很容易忘了它的存在,在我們檢測DNS(尤其是命令行方式)最好加上末尾的這個(gè)”.”正因?yàn)楦蛏嫌羞@個(gè)點(diǎn),所以我們在林根的DNS上設(shè)置轉(zhuǎn)發(fā)的時(shí)候會發(fā)現(xiàn)那個(gè)轉(zhuǎn)發(fā)器的選現(xiàn)是灰的,不讓你設(shè)置,因?yàn)椤?”認(rèn)為自己是根了,沒必要轉(zhuǎn)發(fā)。所以解決的方法是刪掉這個(gè)點(diǎn),才能轉(zhuǎn)發(fā)(刪掉后就不會灰色可以選擇轉(zhuǎn)發(fā)了)。
如果沒有行政方面的要求你完全可以在域里使用例如devil.coco的域名稱,不一定非要.net或者.com.即使父域叫contoso.com,子域也可以叫devil.coco。
當(dāng)一個(gè)企業(yè)在做DNS規(guī)劃時(shí)要注意。當(dāng)企業(yè)外部服務(wù)(例如網(wǎng)站)需要在internet上注冊名稱(例如,公司.com)。如果企業(yè)內(nèi)部使用活動目錄,那么要使內(nèi)外部使用不同的名字或者內(nèi)部的活動目錄使用外部名稱的一個(gè)子域。例如:“contoso.com”,作為企業(yè)在internet上的網(wǎng)站,使用www.contoso.com域名。內(nèi)部的域可以使用contoso.net或者corp.contoso.com作為DNS名。如果不這么做將有可能使內(nèi)部和外部名稱空間出現(xiàn)重疊??蛻舳说顷懹蚧蛟L問internet都將可能產(chǎn)生問題。尤其當(dāng)涉及網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)并且外部IP地址處于內(nèi)部客戶端夠不到的范圍中時(shí)就會有麻煩了(了解NAT的人應(yīng)該知道,如果客戶端不配置可以正確解析外部地址的DNS是無法訪問相關(guān)網(wǎng)站的.)。
DNS和活動目錄使用各自不同的數(shù)據(jù)庫解析名字。關(guān)于這一點(diǎn)我覺得對于實(shí)際操作意義不大所以不說了有興趣的看看上面提到的那個(gè)帖子。
2。hosts文件
很多帖子里都有人回復(fù)說,看看那個(gè)hosts文件有沒有問題,或者說修改那個(gè)hosts文件里的什么地方(例如屏蔽QQ)。這是為什么?
hosts存在的目的:減少DNS服務(wù)器的工作量,如果客戶端查找的一個(gè)主機(jī)名在hosts文件里有記錄(說明不久前訪問過),那么客戶端就不必找DNS服務(wù)器了直接就知道了該主機(jī)的IP。我們可以用記事本打開hosts文件。找不到?一般在這里C:\WINDOWS\system32\drivers\etc這里除了hosts還有好幾個(gè)文件,也能用記事本打開。都是和TCP/IP相關(guān)的,詳細(xì)我就不說了跟DNS關(guān)系不大。
TTL(生存時(shí)間),DNS記錄必須有TTL,Hosts中得緩存超過了ttl就將被刪除,否則DNS得改變將無法在hosts文件中體現(xiàn)。
我們需要一個(gè)具體的例子:
有天,客戶發(fā)現(xiàn)srv1.contoso.com主機(jī)無法訪問了,我們查看DNS表,發(fā)現(xiàn)確實(shí)沒有相關(guān)A記錄了。我們手動添加了記錄,但是客戶還是抱怨無法訪問該主機(jī)――因?yàn)榭蛻舳说木彺胬锢?,還是認(rèn)為該主機(jī)無法訪問。這時(shí)我們就必須在客戶的電腦上運(yùn)行ipconfig/flushdns來清除緩存信息。是的,服務(wù)器也有緩存。服務(wù)器清理緩存的命令是dnscmd/clearcache
3.主DNS服務(wù)器和輔助名稱服務(wù)器
這個(gè)概念在論壇上也無數(shù)次的被提起,我覺得還是有必要說明一下的。照例我不會用很專業(yè)的詞匯,需要考MCSE的朋友最好不要看我寫的東西。
我是這樣認(rèn)為的,DNS服務(wù)器把所有資源記錄到一個(gè)文件中(zonefile)。只有“主DNS服務(wù)器”能對該文件進(jìn)行寫操作(能修改DNS記錄),輔助DNS服務(wù)器從主DNS服務(wù)器(或者其他輔助DNS服務(wù)器)那里獲得該文件的拷貝(默認(rèn)24小時(shí)得不到拷貝的話,輔助DNS服務(wù)器就將失效)。
除此之外還有一種“僅緩存名稱服務(wù)器”(caching-onlynameserver),它上面僅保存緩存的查詢結(jié)果(從輔助DNS服務(wù)器那里獲得),以便使客戶端盡快獲得查詢信息。
這種機(jī)制讓人想起NT時(shí)代的主域控制器和備份域控制器――當(dāng)然這是一種脆弱的機(jī)制。微軟為了能多湊合一些時(shí)間,允許任何運(yùn)行DNS的DC都能被設(shè)置為它所在域的主DNS服務(wù)器。
4.權(quán)威性應(yīng)答與非權(quán)威性應(yīng)答
按照我的理解,如果DNS服務(wù)器在自己的區(qū)域文件里找到了客戶端需要查詢的記錄,就會返回一個(gè)權(quán)威性應(yīng)答。―――例如客戶端要查找srv1.contoso.com主機(jī)的IP地址。在contoso.com的DC(也就是DNS服務(wù)器)上查找該主機(jī)的“A記錄”,我們找到了。就把記錄內(nèi)容通過DNS應(yīng)答的方式發(fā)還給客戶端,這就是一個(gè)權(quán)威性應(yīng)答。――當(dāng)然實(shí)際的查詢方式比較復(fù)雜遠(yuǎn)沒有我說的這么簡單。
此外,如果DNS服務(wù)器最近被查找過該主機(jī)(可能其他客戶端也查找過)記錄,就會在緩存里找到記錄應(yīng)答客戶端――當(dāng)然上一種方法快。
如果該DC服務(wù)器找不到srv1.contoso.com主機(jī)的A記錄,就會返回(RecordNotFound)應(yīng)答――同樣也是權(quán)威性應(yīng)答
如果接到DNS查詢請求的服務(wù)器不是contoso.com的DC(Dns服務(wù)器),那么有3種方法處理該請求:
首先,查詢其他DNS服務(wù)器直到找到,然后此服務(wù)器將找到的內(nèi)容返回給客戶端――非權(quán)威性應(yīng)答
其次,推薦客戶端到上一級DNS服務(wù)器找。―――非權(quán)威性應(yīng)答。
最后,如果原來被別人訪問過,本地有該緩存,那么用緩存里的數(shù)據(jù)回答―――非權(quán)威性應(yīng)答。
說到這里就要講清楚,為什么會出現(xiàn)3種方法,為什么有的時(shí)候DNS服務(wù)器要努力幫客戶端查尋有的時(shí)候又只是打發(fā)到上層就不管了?
因?yàn)樵诳蛻舳瞬樵兊恼埱罄锩姘粋€(gè)“搜索類型”(Searchtype)的東東,一共有兩種狀態(tài):
(1)遞歸查詢(Recursive),要求DNS服務(wù)器一定要救人救到底送佛送上西。反正我就賴上你了,你得給我查到。
(2)迭代查詢(Iterative),你(DNS服務(wù)器)如果找不到可以給我介紹到另一個(gè)DNS服務(wù)器那里去找――這種方式的客戶端就文明多了――自然DNS服務(wù)器的壓力就減輕了。
默認(rèn)情況是遞歸查詢的,我們可以在DNS服務(wù)器參數(shù)配置禁用(高級選項(xiàng))。
當(dāng)DNS服務(wù)器被客戶端要求遞歸查詢而去查詢其他DNS服務(wù)器時(shí),默認(rèn)是迭代查詢的。
5.Netbios解析和DNS解析
對于兩者的概念我不想多做說明了,值得注意得是他們的查詢步驟。
假定我們啟用了Netbios解析,windows客戶端會按照下面的步驟進(jìn)行解析(默認(rèn)B節(jié)點(diǎn)配置可以修改為H節(jié)點(diǎn))
(1)Netbios緩存
(2)Wins查詢
(3)Lmhosts文件(看看hosts的目錄)
(4)廣播
(5)hosts文件
(6)DNS
我們舉個(gè)例子,如果我們在客戶端ping一下srv1.contoso.com主機(jī)。我們通常的做法是運(yùn)行cmd。輸入pingsrv1回車。這時(shí)發(fā)生了什么?
首先,客戶端會把計(jì)算機(jī)的DNS后綴附在名稱上發(fā)送到DNS服務(wù)器。
如果名字里有“.”存在,但是末尾并沒有“.”結(jié)束,系統(tǒng)會自動追加末尾“.”,如果這樣查詢也失敗了,就會向上面那樣追加DNS后綴再試。
如果添加DNS后綴也無法獲得主機(jī)記錄,那么系統(tǒng)就會追加事先為“接口”配置好得備用DNS后綴(仔細(xì)看看本地連接的屬性)。
不明白為什么要選擇“在域成員身份變化時(shí),更改主DNS后綴”的朋友,和經(jīng)常問“為啥我ping完整的名字才能ping通”的朋友有必要仔細(xì)研究一下。
我覺得有關(guān)DNS的問題范圍太大,短時(shí)間很難總結(jié)完。今天累了,下次繼續(xù)總結(jié)。有問題可以問,我說錯(cuò)了的趕快指出來。明天還要上班接下來只能業(yè)余時(shí)間來補(bǔ)充了,爭取一周時(shí)間完成DNS的總結(jié),自己也全當(dāng)復(fù)習(xí)了,也希望能幫到昨天說“這也算是回答”的朋友。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。