幾年前第一次接觸到活動目錄的時候,正是領(lǐng)導要求部署活動目錄的時候。雖然當時手頭上有幾本書,但是時間緊迫沒有來得及仔細研究。邊看著幫助邊運行dcpromo就開始活動目錄的部署了,相信不少人和我當年差不多,稀里糊涂的就開始當起了活動目錄的管理員。對于DNS,因為安裝會提示自動部署,相信很多人都不會在這方面下很多功夫(包括我原來也是)。我為此付出了不少代價--因為不懂DNS所以遇到DNS的問題不知如何解決。我通過對論壇上的帖子和參考書的閱讀,加上自己經(jīng)驗的總結(jié)得出一些操作方面的結(jié)論和總結(jié)。希望對大家能有所幫助。
有過DNS域部署經(jīng)驗的朋友都能感覺到,活動目錄的DNS、DHCP和WINS(用的不多了)和NetBios是息息相關(guān)的。也是很容易混淆的。所以很麻煩,通常我們開始部署AD的時候是在一個小公司里,大約有幾十臺電腦的局域網(wǎng)。人員流動不是很頻繁,所以的電腦也差不多的天天都開。很少有電腦會換地方,我們?nèi)际褂肈NS的默認配置就可以很少會出問題。但這樣的地方我們不能待一輩子,我們來到一個相對復雜的網(wǎng)絡(luò)環(huán)境時,意識到自己缺乏對DNS的起碼常識,怎么辦? 為了在遇到難題時能正確表述自己的問題(否則別人想幫你都沒辦法,除了UP我們更重要的是說清楚自己的問題和聽明白高手的意思)那么和我一樣從基礎(chǔ)開始吧。
什么樣的DNS系統(tǒng)是一個比較完美的系統(tǒng)呢?DNS服務(wù)器的連續(xù)性能提供出色的性能,減少WAN的通信,安全性也必須得到保障。我們先從概念開始。
1.DNS和活動目錄關(guān)系
DNS定義“命名空間”(名字空間)---微軟把例如“contoso.com”的東東叫命名空間,這個空間內(nèi)的主機儲存在一個“區(qū)域文件”(zone file)里---主要是一種映射的關(guān)系(中學數(shù)學就有映射的概念)
活動目錄的域(domain)“存儲域和域中的對象”,把用戶、租計算機帳戶記錄組注冊表的SAM里。---當然域不止這些內(nèi)容。
DNS和域的結(jié)合--完全合格域名(FQDN):例如srv1.contoso.com--說明了srv1主機位于contoso.com這個域里面。
注意:
DNS的結(jié)構(gòu)中,域com.的末尾是有一個句點.的。DNS解析器是從左到右解析FDQN(看看上面FDQN的例子)的,最后到“.”結(jié)束。因為windows的DNS會自動在末尾添加“.”所以我們很容易忘了它的存在,在我們檢測DNS(尤其是命令行方式)加上末尾的這個.正因為根域上有這個點,所以我們在林根的DNS上設(shè)置轉(zhuǎn)發(fā)的時候會發(fā)現(xiàn)那個轉(zhuǎn)發(fā)器的選現(xiàn)是灰的,不讓你設(shè)置,因為.認為自己是根了,沒必要轉(zhuǎn)發(fā)。所以解決的方法是刪掉這個點,才能轉(zhuǎn)發(fā)(刪掉后就不會灰色可以選擇轉(zhuǎn)發(fā)了)。
如果沒有行政方面的要求你完全可以在域里使用例如devil.coco的域名稱,不一定非要.net或者.com.即使父域叫contoso.com,子域也可以叫devil.coco。
當一個企業(yè)在做DNS規(guī)劃時要注意。當企業(yè)外部服務(wù)(例如網(wǎng)站)需要在internet上注冊名稱(例如,公司.com)。如果企業(yè)內(nèi)部使用活動目錄,那么要使內(nèi)外部使用不同的名字或者內(nèi)部的活動目錄使用外部名稱的一個子域。例如:“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)生問題。尤其當涉及網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT) 并且外部 IP 地址處于內(nèi)部客戶端夠不到的范圍中時就會有麻煩了(了解NAT 的 人應該知道,如果客戶端不配置可以正確解析外部地址的DNS是無法訪問相關(guān)網(wǎng)站的.)。
DNS和活動目錄使用各自不同的數(shù)據(jù)庫解析名字。關(guān)于這一點我覺得對于實際操作意義不大所以不說了有興趣的看看上面提到的那個帖子。
2.hosts文件
很多帖子里都有人回復說,看看那個hosts文件有沒有問題,或者說修改那個hosts文件里的什么地方(例如屏蔽QQ)。這是為什么?
hosts存在的目的:減少DNS服務(wù)器的工作量,如果客戶端查找的一個主機名在hosts文件里有記錄(說明不久前訪問過),那么客戶端就不必找DNS服務(wù)器了直接就知道了該主機的IP。我們可以用記事本打開hosts文件。找不到?一般在這里C:\WINDOWS\system32\drivers\etc 這里除了hosts還有好幾個文件,也能用記事本打開。都是和TCP/IP相關(guān)的,詳細我就不說了跟DNS關(guān)系不大。
TTL(生存時間),DNS記錄必須有TTL,Hosts中得緩存超過了ttl就將被刪除,否則DNS得改變將無法在hosts文件中體現(xiàn)。
我們需要一個具體的例子:
有天,客戶發(fā)現(xiàn)srv1.contoso.com主機無法訪問了,我們查看DNS表,發(fā)現(xiàn)確實沒有相關(guān)A記錄了。我們手動添加了記錄,但是客戶還是抱怨無法訪問該主機――因為客戶端的緩存里里,還是認為該主機無法訪問。這時我們就必須在客戶的電腦上運行ipconfig/ flushdns 來清除緩存信息。是的,服務(wù)器也有緩存。服務(wù)器清理緩存的命令是dnscmd /clearcache
3.主DNS服務(wù)器和輔助名稱服務(wù)器
這個概念在論壇上也無數(shù)次的被提起,我覺得還是有必要說明一下的。照例我不會用很專業(yè)的詞匯,需要考MCSE的朋友不要看我寫的東西。
我是這樣認為的,DNS服務(wù)器把所有資源記錄到一個文件中(zone file)。只有“主DNS服務(wù)器”能對該文件進行寫操作(能修改DNS記錄),輔助DNS服務(wù)器從主DNS服務(wù)器(或者其他輔助DNS服務(wù)器)那里獲得該文件的拷貝(默認24小時得不到拷貝的話,輔助DNS服務(wù)器就將失效)。
除此之外還有一種“僅緩存名稱服務(wù)器”(caching-only name server),它上面僅保存緩存的查詢結(jié)果(從輔助DNS服務(wù)器那里獲得),以便使客戶端盡快獲得查詢信息。
這種機制讓人想起NT時代的主域控制器和備份域控制器――當然這是一種脆弱的機制。微軟為了能多湊合一些時間,允許任何運行DNS的DC都能被設(shè)置為它所在域的主DNS服務(wù)器。
有過DNS域部署經(jīng)驗的朋友都能感覺到,活動目錄的DNS、DHCP和WINS(用的不多了)和NetBios是息息相關(guān)的。也是很容易混淆的。所以很麻煩,通常我們開始部署AD的時候是在一個小公司里,大約有幾十臺電腦的局域網(wǎng)。人員流動不是很頻繁,所以的電腦也差不多的天天都開。很少有電腦會換地方,我們?nèi)际褂肈NS的默認配置就可以很少會出問題。但這樣的地方我們不能待一輩子,我們來到一個相對復雜的網(wǎng)絡(luò)環(huán)境時,意識到自己缺乏對DNS的起碼常識,怎么辦? 為了在遇到難題時能正確表述自己的問題(否則別人想幫你都沒辦法,除了UP我們更重要的是說清楚自己的問題和聽明白高手的意思)那么和我一樣從基礎(chǔ)開始吧。
什么樣的DNS系統(tǒng)是一個比較完美的系統(tǒng)呢?DNS服務(wù)器的連續(xù)性能提供出色的性能,減少WAN的通信,安全性也必須得到保障。我們先從概念開始。
1.DNS和活動目錄關(guān)系
DNS定義“命名空間”(名字空間)---微軟把例如“contoso.com”的東東叫命名空間,這個空間內(nèi)的主機儲存在一個“區(qū)域文件”(zone file)里---主要是一種映射的關(guān)系(中學數(shù)學就有映射的概念)
活動目錄的域(domain)“存儲域和域中的對象”,把用戶、租計算機帳戶記錄組注冊表的SAM里。---當然域不止這些內(nèi)容。
DNS和域的結(jié)合--完全合格域名(FQDN):例如srv1.contoso.com--說明了srv1主機位于contoso.com這個域里面。
注意:
DNS的結(jié)構(gòu)中,域com.的末尾是有一個句點.的。DNS解析器是從左到右解析FDQN(看看上面FDQN的例子)的,最后到“.”結(jié)束。因為windows的DNS會自動在末尾添加“.”所以我們很容易忘了它的存在,在我們檢測DNS(尤其是命令行方式)加上末尾的這個.正因為根域上有這個點,所以我們在林根的DNS上設(shè)置轉(zhuǎn)發(fā)的時候會發(fā)現(xiàn)那個轉(zhuǎn)發(fā)器的選現(xiàn)是灰的,不讓你設(shè)置,因為.認為自己是根了,沒必要轉(zhuǎn)發(fā)。所以解決的方法是刪掉這個點,才能轉(zhuǎn)發(fā)(刪掉后就不會灰色可以選擇轉(zhuǎn)發(fā)了)。
如果沒有行政方面的要求你完全可以在域里使用例如devil.coco的域名稱,不一定非要.net或者.com.即使父域叫contoso.com,子域也可以叫devil.coco。
當一個企業(yè)在做DNS規(guī)劃時要注意。當企業(yè)外部服務(wù)(例如網(wǎng)站)需要在internet上注冊名稱(例如,公司.com)。如果企業(yè)內(nèi)部使用活動目錄,那么要使內(nèi)外部使用不同的名字或者內(nèi)部的活動目錄使用外部名稱的一個子域。例如:“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)生問題。尤其當涉及網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT) 并且外部 IP 地址處于內(nèi)部客戶端夠不到的范圍中時就會有麻煩了(了解NAT 的 人應該知道,如果客戶端不配置可以正確解析外部地址的DNS是無法訪問相關(guān)網(wǎng)站的.)。
DNS和活動目錄使用各自不同的數(shù)據(jù)庫解析名字。關(guān)于這一點我覺得對于實際操作意義不大所以不說了有興趣的看看上面提到的那個帖子。
2.hosts文件
很多帖子里都有人回復說,看看那個hosts文件有沒有問題,或者說修改那個hosts文件里的什么地方(例如屏蔽QQ)。這是為什么?
hosts存在的目的:減少DNS服務(wù)器的工作量,如果客戶端查找的一個主機名在hosts文件里有記錄(說明不久前訪問過),那么客戶端就不必找DNS服務(wù)器了直接就知道了該主機的IP。我們可以用記事本打開hosts文件。找不到?一般在這里C:\WINDOWS\system32\drivers\etc 這里除了hosts還有好幾個文件,也能用記事本打開。都是和TCP/IP相關(guān)的,詳細我就不說了跟DNS關(guān)系不大。
TTL(生存時間),DNS記錄必須有TTL,Hosts中得緩存超過了ttl就將被刪除,否則DNS得改變將無法在hosts文件中體現(xiàn)。
我們需要一個具體的例子:
有天,客戶發(fā)現(xiàn)srv1.contoso.com主機無法訪問了,我們查看DNS表,發(fā)現(xiàn)確實沒有相關(guān)A記錄了。我們手動添加了記錄,但是客戶還是抱怨無法訪問該主機――因為客戶端的緩存里里,還是認為該主機無法訪問。這時我們就必須在客戶的電腦上運行ipconfig/ flushdns 來清除緩存信息。是的,服務(wù)器也有緩存。服務(wù)器清理緩存的命令是dnscmd /clearcache
3.主DNS服務(wù)器和輔助名稱服務(wù)器
這個概念在論壇上也無數(shù)次的被提起,我覺得還是有必要說明一下的。照例我不會用很專業(yè)的詞匯,需要考MCSE的朋友不要看我寫的東西。
我是這樣認為的,DNS服務(wù)器把所有資源記錄到一個文件中(zone file)。只有“主DNS服務(wù)器”能對該文件進行寫操作(能修改DNS記錄),輔助DNS服務(wù)器從主DNS服務(wù)器(或者其他輔助DNS服務(wù)器)那里獲得該文件的拷貝(默認24小時得不到拷貝的話,輔助DNS服務(wù)器就將失效)。
除此之外還有一種“僅緩存名稱服務(wù)器”(caching-only name server),它上面僅保存緩存的查詢結(jié)果(從輔助DNS服務(wù)器那里獲得),以便使客戶端盡快獲得查詢信息。
這種機制讓人想起NT時代的主域控制器和備份域控制器――當然這是一種脆弱的機制。微軟為了能多湊合一些時間,允許任何運行DNS的DC都能被設(shè)置為它所在域的主DNS服務(wù)器。