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