如何測試TCP/IP協議棧來修復網絡連接故障
在我們修復Windows網絡連接時,要確保本地TCP/IP棧沒有問題。本文將一步步地指導您進行本地主機連接DNS服務器和默認網關服務器的能力測試,并介紹如何測試主機名解析。
在“檢查IP配置”中,我闡述了如何確定哪個IP地址是我們的系統使用的主地址。接下來,我們會驗證IP地址配置是正常工作的,以及本地TCP/IP堆棧沒有問題。
首先,我們需要執行的測試是PING本地主機地址。有幾種不同的方法可以實現這個步驟。其中一個是輸入下面的命令:
PING LOCALHOST
當我們輸入這個命令時,Windows將PING地址127.0.0.1。不管我們的機器的地址是什么,Windows總會使用127.0.0.1作為本地主機地址。因此,對于上面所列出來的命令,另外一個替代的命令是:
Ping 127.0.0.1
輸入這個命令時,我們應該可以查看到一個成功的PING,如同使用其它的PING命令一樣。我們可以看到圖A所顯示的例子。
PING本地主機地址對診斷遠程主機連接問題沒有什么作用。然而,它卻可以允許我們確認我們的本地TCP/IP 棧運行是否正確。當我們PING本地主機地址時接收到目的主機無法到達的錯誤信息時,這往往意味著TCP/IP的配置是不正確的,或者本地TCP/IP棧的某個部分出錯了。
依據我的個人經驗,我們通常可以通過刪除計算機的TCP/IP協議來處理這個問題,然后重新設置。
PING默認網關
在本系列的前面的部分文章中,我提到有幾種不同的TCP/IP配置部分需要文檔化,它們是故障修復過程所必需的。其中有默認網關的IP地址和主DNS服務器的信息。
假設我們嘗試連接的是遠程網絡或者在企業網絡的不同分片上的主機,那么我們下一步需要嘗試的是PING默認網關。我們可以簡單地通過在PING命令后添加默認網關的IP地址來完成。比如,如圖B,請注意我的TCP/IP配置列出了我的默認網關地址是147.100.100.100。然后,我會直接PING這個地址。這就驗證了本地機器可以連接到默認網關。同時,它也告訴我們本地網絡的連接工作正常,至少在IP地址層上是正常的。
PING DNS服務器
目前,我們已經確定在本地計算機和默認網關之間的IP層連接是正常的。然而,這并不保證主機名被解析到正確的IP地址。在這一系列的文章的***部分“使用PING命令來修復網絡連接故障”中,我已經探討了如何使用目的主機的正式域名和PING命令來驗證DNS服務器是否正常工作。還有幾種其它的方法我們可以用來簡單地測試DNS名字解析。
其中一個是,我們可以PING DNS服務器的IP地址,如圖C所示。這并不保證名字解析是正確工作的,但是它肯定可以驗證本地機器能夠連接到DNS服務器上。
另外一個方法是使用Nslookup命令來驗證域名解析是正確工作的。我們只需簡單地輸入Nslookup,后面加上遠程主機的正式域名。Nslookup命令就應該能夠將域名解析到一個IP地址,如圖D所示。
如果我們不經常使用Nslookup,那么一開始上面的圖象可能會有點誤導我們。首先,這個屏幕似乎在報告一個錯誤。如果我們更仔細點觀察,我們可以看到返回的信息的***部分是來自于本地DNS服務器。這是因為所引用的IP地址是與DNS服務器的IP地址相匹配的。然而,返回的信息的后面部分為我們提供的是我們所要查詢的主機的IP地址。只要列出了這個IP地址,那么DNS查詢就是成功的。
如果域名解析過程失敗了,那么就可以肯定存在一個DNS問題。實際問題可能是許多不同的DNS服務器問題中的其中一個。比如,轉發的DNS服務器地址可能是不正確的,或者DNS服務器可能并不訪問因特網,這些都是連接更高級DNS服務器所必須的。類似的,DNS服務器的DNS服務可能已經中斷。典型地,由于許多客戶往往都依賴于一個DNS服務器,因此這些類型的問題將會影響到其它客戶。
如果DNS域名解析成功了,那么,重要的是我們要驗證域名解析過程中返回的IP地址。我們可以通過對比返回的IP地址和遠程主機正在使用的實際的IP地址來進行驗證。這些IP地址必須是相匹配的,但是,其中可能會有不匹配的情況,它將造成連接失敗。
當出現IP地址不匹配時,可能是客戶端感染了惡意軟件或者是DNS中毒了。DNS中毒指的是DNS緩存中被寫入無效的或者不正確的IP地址。
當出現這樣一個問題時,我會建議客戶端機器的進行惡意軟件掃描。同時對間諜軟件和病毒進行掃描是很重要的,因為它們都會引起這種問題。一旦清除了惡意軟件的問題,那么可以嘗試清空DNS緩存。我們可以輸入下面的命令來清空DNS緩存:
IPCONFIG /FLUSHDNS
我們可以看看這個例子,如圖E所示:
其中需要記住的重要一點是, DNS緩存包含不準確IP地址,并不總是意味著發生了DNS中毒。因為有時主機被指派了新的IP地址后,DNS緩存需要一段時間才會得到修改后的IP地址。
總結
在本文中,我已經闡述了如何驗證本地TCP/IP協議棧是否正確工作。接下來,我還繼續闡述了如何測試本地主機與DNS服務器和默認網關服務器交互的能力,以及如何測試主機域名解析。在本系列接下來的內容中,我將探討可以使用PING命令來檢測的幾個常見問題,同時我還將開始探討路由問題。