對(duì)于所有基于Windows系統(tǒng)的網(wǎng)絡(luò)來說,DNS都屬于最重要的服務(wù)之一。在沒有DNS支持的情況下,活動(dòng)目錄就不能正常工作,并且它使用到的功能也比任何其它類型的網(wǎng)絡(luò)都多。因此,在DNS出現(xiàn)問題時(shí)盡快解決就成為一項(xiàng)非常關(guān)鍵的工作。幸運(yùn)的是,在通常情況下這一過程是比較容易的。在本文中,作者就列出了自己最喜歡的十項(xiàng)DNS故障排除" title="故障排除">故障排除技術(shù)。
1:對(duì)網(wǎng)絡(luò)連接" title="網(wǎng)絡(luò)連接">網(wǎng)絡(luò)連接情況進(jìn)行驗(yàn)證
當(dāng)發(fā)現(xiàn)DNS服務(wù)出現(xiàn)問題時(shí),應(yīng)該做的第一件事情就是對(duì)DNS服務(wù)器的網(wǎng)絡(luò)連接情況進(jìn)行驗(yàn)證。畢竟,如果實(shí)際問題僅僅是一塊網(wǎng)卡出現(xiàn)了故障,耗費(fèi)在從頭開始對(duì)設(shè)備進(jìn)行全面檢查的大量時(shí)間就可以都省下來了。
對(duì)連接情況進(jìn)行驗(yàn)證的最簡(jiǎn)單方法就是登錄到DNS服務(wù)器上,并利用ping命令檢查與其它機(jī)器的連接狀態(tài)。還應(yīng)該做的就是,嘗試?yán)秒S機(jī)機(jī)器來ping連接DNS服務(wù)器。請(qǐng)務(wù)必牢記,只有在防火墻的配置里容許網(wǎng)際消息控制協(xié)議(ICMP)數(shù)據(jù)包通過的情況下,ping命令才能發(fā)揮作用。
2:確定問題波及的范圍
在確定基本連接正常的情況下,下一步要做的工作就是確定問題波及的范圍。實(shí)際情況是互聯(lián)網(wǎng)名稱解析服務(wù)失敗,還是本地名稱解析服務(wù)失敗呢?對(duì)于不同的問題來說,采取的解決方法也是有很大區(qū)別的。舉例來說,如果本地名稱解析服務(wù)正常,而互聯(lián)網(wǎng)名稱解析服務(wù)失敗的話,問題可能就是出在互聯(lián)網(wǎng)服務(wù)供應(yīng)商的DNS服務(wù)器上。
3:確認(rèn)是否所有用戶都受到影響
接下來要考慮的另一件事情就是是否網(wǎng)絡(luò)上的所有用戶都受到了影響,或者是僅僅限于部分用戶。如果確認(rèn)只有部分用戶受到影響的話,請(qǐng)對(duì)這些用戶所在的網(wǎng)絡(luò)段位置進(jìn)行檢查,確認(rèn)他們是否屬于同一范圍。如果答案是確定的話,問題可能與路由器故障或動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)配置錯(cuò)誤有關(guān)。
4:確認(rèn)DNS服務(wù)器上是否運(yùn)行了負(fù)載均衡" title="負(fù)載均衡">負(fù)載均衡處理技術(shù)
某些情況中,公司對(duì)網(wǎng)絡(luò)服務(wù)器" title="網(wǎng)絡(luò)服務(wù)器">網(wǎng)絡(luò)服務(wù)器資源的極大需求會(huì)導(dǎo)致DNS服務(wù)器被分散到多臺(tái)相同的網(wǎng)絡(luò)服務(wù)器上利用DNS輪循技術(shù)實(shí)現(xiàn)工作量的負(fù)載平衡技術(shù)被投入使用。該技術(shù)中存在的一個(gè)典型問題就是,在其中一臺(tái)服務(wù)器已經(jīng)宕機(jī)的情況下,DNS服務(wù)器不會(huì)了解到實(shí)際情況發(fā)生了變化。因此,盡管其中的一臺(tái)服務(wù)器已經(jīng)處于脫機(jī)狀態(tài),但輸入流量依然被平均分配給循環(huán)中的所有服務(wù)器。由此導(dǎo)致的結(jié)果就是負(fù)載平衡資源在連接間歇性方面出現(xiàn)問題。
5:對(duì)DNS服務(wù)器轉(zhuǎn)發(fā)器進(jìn)行檢查
如果已經(jīng)確認(rèn)本地名稱解析服務(wù)運(yùn)行正常,但互聯(lián)網(wǎng)名稱解析服務(wù)無法工作的話,下面要檢查的就是DNS服務(wù)器是否在使用轉(zhuǎn)發(fā)器。盡管很多DNS服務(wù)器都利用根提示來提供互聯(lián)網(wǎng)名稱解析服務(wù),但也有一些使用轉(zhuǎn)發(fā)器連接到互聯(lián)網(wǎng)服務(wù)供應(yīng)商的DNS服務(wù)器上。如果互聯(lián)網(wǎng)服務(wù)供應(yīng)商的DNS服務(wù)器出現(xiàn)了問題,在解析器緩存中條目過期的情況下,互聯(lián)網(wǎng)名稱解析服務(wù)將失敗。如果確認(rèn)DNS服務(wù)器沒有使用轉(zhuǎn)發(fā)器,還可以嘗試一下對(duì)服務(wù)器進(jìn)行ping檢測(cè),以了解它是否在線。可能需要做的還包括致電互聯(lián)網(wǎng)服務(wù)供應(yīng)商,來了解那里是否存在任何DNS方面的問題,并確保在轉(zhuǎn)發(fā)器中使用的網(wǎng)絡(luò)IP地址仍然屬于有效的。
6:嘗試?yán)靡慌_(tái)主機(jī)進(jìn)行ping測(cè)試
如果本地網(wǎng)絡(luò)中的名稱解析服務(wù)出現(xiàn)問題,就應(yīng)該選擇嘗試對(duì)網(wǎng)絡(luò)中的其它服務(wù)器進(jìn)行ping測(cè)試。首先,可以利用服務(wù)器的網(wǎng)絡(luò)IP地址進(jìn)行ping測(cè)試。這樣的話,就可以確認(rèn)該服務(wù)器是否依然可以連接。接下來,要做的就是利用計(jì)算機(jī)名稱和服務(wù)器的完全合格域名進(jìn)行ping測(cè)試。
如果網(wǎng)絡(luò)IP地址可以通過ping測(cè)試,但域名無法通過的話,就應(yīng)該對(duì)DNS服務(wù)器進(jìn)行檢查,以確保主機(jī)(A)記錄的存在。如果沒有主機(jī)(A)記錄的話,DNS服務(wù)器將無法解析主機(jī)的名稱。
7:使用NSLookup查詢域名命令
對(duì)于排除DNS故障來說,最方便的工具之一就是NSLookup查詢域名命令。它可以在Windows命令提示符窗口中使用。只要輸入NSLookup加上需要測(cè)試名稱解析服務(wù)的主機(jī)名稱,Windows就可以返回DNS服務(wù)器的網(wǎng)絡(luò)IP地址和解析名稱(盡管在通常情況下,DNS服務(wù)器名稱顯示的是為未知)。它也可以提供指定主機(jī)的完全合格域名和網(wǎng)絡(luò)IP地址。
對(duì)于兩件事情來說,NSLOOKUP命令非常有用。首先,它可以容許對(duì)名稱解析服務(wù)是否正常進(jìn)行驗(yàn)證。其次,如果名稱解析服務(wù)無法正常工作,它可以幫助確認(rèn)使用的服務(wù)器是哪一臺(tái)。請(qǐng)務(wù)必牢記,Nslookup的查詢結(jié)果中只列出它最初連接到的DNS服務(wù)器。如果名稱解析請(qǐng)求被轉(zhuǎn)發(fā)到其它DNS服務(wù)器的話,這些服務(wù)器是不會(huì)被列出的。
8:嘗試使用一臺(tái)備用DNS服務(wù)器
大多數(shù)公司都擁有至少兩臺(tái)DNS服務(wù)器。如果主DNS服務(wù)器出現(xiàn)了問題,請(qǐng)嘗試使用備用DNS服務(wù)器。如果在切換DNS服務(wù)器后,名稱解析服務(wù)可以正常工作,就可以確認(rèn)該問題確實(shí)是涉及到DNS服務(wù)器,而不是一些外部因素。
9:掃描病毒
大約一星期前,有人向我求助。他們的網(wǎng)絡(luò)中出現(xiàn)了問題,現(xiàn)象是每當(dāng)試圖訪問特定網(wǎng)站的時(shí)間,就會(huì)被重定向到一家惡意站點(diǎn)上。我最早的懷疑是DNS中毒攻擊,但在發(fā)現(xiàn)實(shí)際情況是只有一臺(tái)計(jì)算機(jī)受到影響后,這種可能性被排除了。
最后,我發(fā)現(xiàn)問題是一種病毒占據(jù)了TCP/IP" title="TCP/IP">TCP/IP協(xié)議棧,對(duì)所有名稱解析請(qǐng)求進(jìn)行攔截。盡管這一問題在最初看起來似乎是DNS的問題,但實(shí)際上病毒需要承擔(dān)最終的責(zé)任。
10:重新啟動(dòng)DNS服務(wù)器
我知道這種措施看上去很象陳詞濫調(diào),但當(dāng)所有解決方案都沒有成功的時(shí)間,選擇重新啟動(dòng)DNS服務(wù)器也是一條出路。在這么多年的工作經(jīng)歷中,我見到多起由于未知原因?qū)е旅Q解析服務(wù)失敗,但在重新啟動(dòng)DNS服務(wù)器后一切就正常的情況。
同樣,我遇到過至少兩起消費(fèi)級(jí)路由器出現(xiàn)停止轉(zhuǎn)發(fā)DNS請(qǐng)求而其它類型流量依然正常的情況。在其中一起案例中,重新啟動(dòng)路由器就可以解決該問題。而在另一起案例中,就必須更換路由器。據(jù)分析,該路由器可能是在前一天發(fā)生的停電事故中損壞。