TCP、IP網(wǎng)絡(luò)故障診斷的結(jié)構(gòu)化方法大全_第1頁(yè)
TCP、IP網(wǎng)絡(luò)故障診斷的結(jié)構(gòu)化方法大全_第2頁(yè)
TCP、IP網(wǎng)絡(luò)故障診斷的結(jié)構(gòu)化方法大全_第3頁(yè)
TCP、IP網(wǎng)絡(luò)故障診斷的結(jié)構(gòu)化方法大全_第4頁(yè)
TCP、IP網(wǎng)絡(luò)故障診斷的結(jié)構(gòu)化方法大全_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、tcp| ip網(wǎng)絡(luò)故障診斷的結(jié)構(gòu)化方法大全本文將描述一種對(duì)tcp/ip網(wǎng)絡(luò)進(jìn)行故障診斷的結(jié)構(gòu)化方法。此篇可以作為引子,后面的文章我們將討論本文所涉及到的一些關(guān)鍵問(wèn)題。那么,在你聽到“tcp/ip網(wǎng)絡(luò)故障診斷”這個(gè)詞的時(shí)候,你想到了什么?許多人可能會(huì)看到一張流程圖。或者說(shuō)想到了操作步驟有幾步的問(wèn)題。還有許多人可能會(huì)感到茫然,無(wú)從下手。tcp/ip的故障診斷似乎看起來(lái)簡(jiǎn)單,畢竟,這僅僅是一個(gè)擁有四層協(xié)議的體系結(jié)構(gòu),每一層有多種協(xié)議。不過(guò),表面的簡(jiǎn)單并不意味著故障能夠輕松解決。下面我們先看看:傳統(tǒng)的故障診斷方法幾年前,在筆者第一次學(xué)習(xí)tcp/ip的網(wǎng)絡(luò)組建時(shí),理解了幾個(gè)簡(jiǎn)單的故障診斷的流程,這個(gè)流程

2、大體涉及到如下的幾個(gè)方面:鍵入ipconfig,用以檢查ip地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)是否正確。1. 運(yùn)行ping ,查看網(wǎng)絡(luò)適配器是否正在工作。2. 運(yùn)行ping 探測(cè)本機(jī)的ip地址是否正確或合法。3. 試著ping同一子網(wǎng)內(nèi)的任何一臺(tái)計(jì)算機(jī)的ip地址,看是否ping通。4. 試著ping一下默認(rèn)網(wǎng)關(guān)(即路由器上將你的子網(wǎng)連接到網(wǎng)絡(luò)其余部分的接口),看是否ping通。5. 試著ping不同子網(wǎng)的一臺(tái)計(jì)算機(jī)的ip地址6. 試著ping外網(wǎng)的一臺(tái)計(jì)算機(jī)的ip地址。筆者覺得這種方法有點(diǎn)兒僵化,因?yàn)槲覀儙缀蹩梢圆挥脛?dòng)腦子就可以遵循這些步驟。而且還有點(diǎn)兒效率低下,因?yàn)閺钠溥^(guò)程來(lái)看,它先

3、假定你自己的計(jì)算機(jī)最可能有問(wèn)題,而且問(wèn)題極可能離你很近(你的網(wǎng)卡、計(jì)算機(jī)的ip地址配置、本地子網(wǎng)),然后才是遠(yuǎn)程計(jì)算機(jī)的問(wèn)題。在互聯(lián)網(wǎng)還沒(méi)有真正快速發(fā)展之前,這個(gè)方法也許不錯(cuò),也就是說(shuō),在dns成為被廣泛采用的域名解析系統(tǒng)之前,在防火墻和vpn等成為多數(shù)企業(yè)的網(wǎng)絡(luò)部分之前,這個(gè)方案也許不錯(cuò)。筆者的意思是:如果你的一個(gè)用戶說(shuō):“我現(xiàn)在不能連接到服務(wù)器上。”那么問(wèn)題會(huì)出在哪里呢?我們有必要將用戶的這句話分解為幾部分,以便于進(jìn)一步理解問(wèn)題。第一部分-“我不能”:那么,我們應(yīng)該問(wèn)一下,是否只有一個(gè)用戶報(bào)告網(wǎng)絡(luò)問(wèn)題呢?如果還有其他人,他們出現(xiàn)的問(wèn)題類似嗎?如果是這樣的,那么問(wèn)題很清除了,你不需要采用上述

4、的僵化方法,直接開始對(duì)用戶的計(jì)算機(jī)開始故障診斷即可以。否則,問(wèn)題極有可能出現(xiàn)在其它地方,這可能意味著你的dns服務(wù)器離線了或你的dns供應(yīng)商服務(wù)出現(xiàn)了問(wèn)題?;蛘邇?nèi)部網(wǎng)絡(luò)上的某個(gè)路由器出了問(wèn)題,出現(xiàn)丟包現(xiàn)象?;蛟S你的用戶正試圖連接的服務(wù)器已經(jīng)崩潰?;蛟S你應(yīng)該停下來(lái),想一想這些出現(xiàn)故障的用戶可能存在的共同問(wèn)題。例如,這些機(jī)器都位于相同的子網(wǎng)上嗎?如果是這樣的話,那么有可能那個(gè)子網(wǎng)的默認(rèn)網(wǎng)關(guān)配置錯(cuò)誤或者路由器癱瘓?;蛟S是某個(gè)工作人員將連接子網(wǎng)的工作組交換機(jī)到骨干交換機(jī)的網(wǎng)絡(luò)電纜切斷了?;蛟S是某個(gè)惡意用戶將一個(gè)欺詐性的dhcp服務(wù)器安裝到那個(gè)子網(wǎng)上了,這個(gè)惡意用戶正竊取機(jī)器的ip地址,而將一些不可路由

5、的地址分配給那些計(jì)算機(jī),從而形成拒絕服務(wù)的故障。當(dāng)然,如果只是一個(gè)用戶存在著這種問(wèn)題,那么就需要我們問(wèn)這樣一些問(wèn)題,如“計(jì)算機(jī)開機(jī)了嗎?網(wǎng)絡(luò)電纜安全地安裝到了計(jì)算機(jī)的后部了嗎?”“連接到”可以問(wèn)這位用戶這樣一個(gè)問(wèn)題“你所說(shuō)的連接是什么意思?”這是因?yàn)椤斑B接”是一個(gè)技術(shù)性很強(qiáng)的詞語(yǔ),許多用戶其實(shí)并不真正理解所談?wù)摰臇|西。為什么呢?因?yàn)榇嬖谥煌N類的連接,包括mac級(jí)的通信、tcp會(huì)話、口令驗(yàn)證、訪問(wèn)權(quán)限和特權(quán)、跨nat的連接、防火墻的通過(guò)、應(yīng)用層的會(huì)話等等。作為網(wǎng)管員需要知道用戶的問(wèn)題是什么。當(dāng)這些用戶說(shuō)不能“連接到”服務(wù)器時(shí),他們正在做什么?是在訪問(wèn)此服務(wù)器上的一個(gè)共享嗎?在訪問(wèn)時(shí)是否收到了

6、一個(gè)“拒絕訪問(wèn)”的消息呢?這些用戶是否收到一個(gè)登錄窗口,提示其輸入相關(guān)憑證呢?(如賬戶名、口令等)服務(wù)器拒絕其憑證了嗎?這些用戶在找到或使用活動(dòng)目錄中的共享時(shí)發(fā)生了問(wèn)題了嗎?他們發(fā)現(xiàn)問(wèn)題的是一個(gè)映射驅(qū)動(dòng)器嗎?他們是不是正通過(guò)瀏覽網(wǎng)上鄰居來(lái)查找服務(wù)器呢?等等。這些用戶僅在連接某臺(tái)服務(wù)器時(shí)才出現(xiàn)故障嗎?或者,這些用戶是不是在連接到任何網(wǎng)絡(luò)節(jié)點(diǎn)時(shí)都出現(xiàn)故障?在這里,決定問(wèn)題或故障的范圍是很重要的:連接是一個(gè)方面或多個(gè)方面呢?“服務(wù)器”你搞定了這個(gè)用戶,而且搞定了那臺(tái)服務(wù)器,也搞定了其間的網(wǎng)絡(luò)。它們?nèi)圆荒苓B接?為什么呢?需要注意的是那臺(tái)服務(wù)器到底在什么地方呢?它在用戶的子網(wǎng)上嗎?在一個(gè)相鄰的子網(wǎng)上嗎?

7、在一個(gè)不同的部門上嗎?在一個(gè)不同的樓層上嗎?在一個(gè)不同的大樓上嗎?是哪種網(wǎng)絡(luò)將用戶與特定的服務(wù)器連接起來(lái)?是無(wú)線以太網(wǎng)嗎?是無(wú)線局域網(wǎng)嗎?是互聯(lián)網(wǎng)上的vpn通道嗎?是撥號(hào)的modem連接嗎?是線纜modem還是dsl modem?首先決定用戶和服務(wù)器之間的連接類型(有可能是幾種),然后思考哪個(gè)地方有可能出現(xiàn)故障?有可能是csu/dsu出了故障,可以試著給它重新加電或與應(yīng)該監(jiān)視csu/dsu的供應(yīng)商聯(lián)系。也有可能是某人在打掃衛(wèi)生時(shí)碰到了電源開關(guān),導(dǎo)致某個(gè)以太網(wǎng)交換機(jī)離線。如果你用的是可網(wǎng)管型交換機(jī),也可以檢查網(wǎng)絡(luò)管理軟件的警告信息。也有可能是遠(yuǎn)程服務(wù)器所在的辦公室發(fā)生了電源中斷??梢栽囍娫捵稍?/p>

8、一下。用戶是僅與一臺(tái)服務(wù)器無(wú)法連接,還是無(wú)法與多臺(tái)服務(wù)器不能連接?其他人也不能連接到那些服務(wù)器上嗎?在受影響的服務(wù)器之間有什么共同的東西嗎?(問(wèn)題有可能與用戶的計(jì)算機(jī)有關(guān),更有可能與網(wǎng)絡(luò)架構(gòu)自身有關(guān))“現(xiàn)在”時(shí)間因素在故障診斷中是至關(guān)重要的。應(yīng)該問(wèn)一下:?jiǎn)栴}是剛剛發(fā)生嗎?上次成功連接到服務(wù)器是在什么時(shí)候?這種現(xiàn)象持續(xù)了多長(zhǎng)時(shí)間?是連續(xù)性的還是間斷的?斷斷續(xù)續(xù)的網(wǎng)絡(luò)問(wèn)題涉及到不可靠的wan鏈接以及其它一些難于解決的問(wèn)題,特別是這些問(wèn)題持續(xù)很短暫時(shí)間或偶爾出現(xiàn)時(shí)更是這樣。時(shí)間因素還有可能將問(wèn)題與可能影響網(wǎng)絡(luò)的其它情況聯(lián)系起來(lái)。問(wèn)題是出現(xiàn)在今天上午10點(diǎn)20分嗎?彼時(shí)你的網(wǎng)絡(luò)還出現(xiàn)了哪些問(wèn)題?wsu

9、s服務(wù)器上打補(bǔ)丁了嗎?域服務(wù)器上的預(yù)定維護(hù)實(shí)現(xiàn)了嗎?結(jié)構(gòu)化的方法筆者自己的tcp/ip網(wǎng)絡(luò)的結(jié)構(gòu)化故障診斷的方法由三個(gè)關(guān)鍵部分組成:1. 決定問(wèn)題的因素。也就是說(shuō)要考慮如下方面:客戶端:即出現(xiàn)問(wèn)題的客戶端服務(wù)器端:客戶無(wú)法訪問(wèn)的服務(wù)器、打印機(jī)或其它的網(wǎng)絡(luò)資源(如互聯(lián)網(wǎng))等。其間的網(wǎng)絡(luò):線纜(如果不是無(wú)線的話)、集線器、交換機(jī)、路由器、防火墻、代理服務(wù)器,以及客戶端和服務(wù)器之間的其它網(wǎng)絡(luò)架構(gòu)。環(huán)境:可能會(huì)影響你的網(wǎng)絡(luò)的外部情況,如電源的波動(dòng)、建筑物的維護(hù)等等。范圍:一個(gè)或多個(gè)有關(guān)的客戶端/服務(wù)器端。期間:連續(xù)的、間斷的,還是偶爾的,何時(shí)開始等。出現(xiàn)問(wèn)題的連接類型:物理層、網(wǎng)絡(luò)層、傳輸層還是應(yīng)用層

10、?身份驗(yàn)證還是訪問(wèn)控制?等等。標(biāo)志性信息:客戶端機(jī)器上的出錯(cuò)消息,登錄對(duì)話框等等。2. 在考慮到以上問(wèn)題因素時(shí),決定需要應(yīng)用哪些故障診斷措施,這些措施包括:驗(yàn)證有關(guān)客戶端、服務(wù)器和網(wǎng)絡(luò)架構(gòu)硬件的物理媒體。也就是說(shuō)檢查電纜,確保網(wǎng)絡(luò)適配器正確安裝,并進(jìn)一步查找、驗(yàn)證可以顯示媒體斷開狀態(tài)的網(wǎng)絡(luò)連接。驗(yàn)證有關(guān)客戶端、服務(wù)器、網(wǎng)絡(luò)架構(gòu)硬件的tcp/ip配置。在客戶端上這意味著檢查ip地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)、dns設(shè)置等等。對(duì)于網(wǎng)絡(luò)架構(gòu)硬件而言,也就是指路由器上的路由表和internet網(wǎng)關(guān)。驗(yàn)證有關(guān)客戶端和服務(wù)器端的路由選擇的連通性。也就是說(shuō)要使用ping,pathping,tracert,或其它類

11、似的工具,便于在網(wǎng)絡(luò)層上驗(yàn)證端到端的tcp/ip的連接性;采用數(shù)據(jù)包嗅探以監(jiān)視傳輸層會(huì)話;使用nslookup,telnet和其它的工具來(lái)診斷包括域名解析問(wèn)題、身份驗(yàn)證等應(yīng)用層問(wèn)題。3.理解之、詢問(wèn)之、測(cè)試之:理解協(xié)議如何工作,數(shù)據(jù)包如何由路由表轉(zhuǎn)發(fā),netdiag.exe等工具能夠告訴你什么是非常關(guān)鍵的。成功的tcp/ip故障診斷是建立在理解tcp/ip如何工作和有關(guān)測(cè)試工具的基礎(chǔ)之上的。如果你從來(lái)沒(méi)有努力理解網(wǎng)絡(luò)監(jiān)視器的跟蹤模式,那么你在診斷某些問(wèn)題時(shí)就會(huì)遇到困難。問(wèn)一些恰當(dāng)?shù)膯?wèn)題對(duì)于成功的故障診斷也很關(guān)鍵。要學(xué)會(huì)何時(shí)按部就班,何時(shí)以跳躍性思維直奔主題是故障診斷藝術(shù)的本質(zhì)所在,這還括充分使

12、用你的左右腦,即要有充分的想象和縝密的思維。最后,踏踏實(shí)實(shí)地測(cè)試,并隔離問(wèn)題是很關(guān)鍵的,為此你需要故障診斷的工具箱。而且沒(méi)有什么比豐富的經(jīng)驗(yàn)更能幫助你解決復(fù)雜問(wèn)題了。小結(jié)診斷tcp/ip網(wǎng)絡(luò)的故障時(shí)可能會(huì)使人灰心喪氣,不過(guò)也充滿樂(lè)趣。在未來(lái)的文章中,我們將祥細(xì)闡述故障診斷的措施和工具,以幫助你成功地解決網(wǎng)絡(luò)中出現(xiàn)的問(wèn)題。本篇解釋路由表如何工作,并闡述如何在windows網(wǎng)絡(luò)中診斷路由故障。在上篇文章中,筆者概括性地指出了tcp/ip網(wǎng)絡(luò)故障診斷的結(jié)構(gòu)化方法。這種方法有三個(gè)關(guān)鍵方面:理解作為基礎(chǔ)的網(wǎng)絡(luò)技術(shù)和協(xié)議決定問(wèn)題的不同元素及其屬性決定應(yīng)該采取哪些故障診斷措施和工具來(lái)解決問(wèn)題筆者以為故障診斷

13、問(wèn)題不是簡(jiǎn)單的一、兩步措施就能夠解決的,換句話說(shuō),故障的解決更確切地講是一種藝術(shù)(基于直覺)而非科學(xué)(基于某種方法)。tcp/ip網(wǎng)絡(luò)的基礎(chǔ)是路由表,這是一種tcp/ip網(wǎng)絡(luò)上每臺(tái)主機(jī)的數(shù)據(jù)結(jié)構(gòu)。路由表有以下三個(gè)作用:用于存儲(chǔ)網(wǎng)絡(luò)上其它子網(wǎng)的信息,以及如何到達(dá)這些網(wǎng)絡(luò)上的主機(jī)。為了達(dá)到此數(shù)據(jù)包的最終目的地,路由表可以決定每個(gè)數(shù)據(jù)包如何被轉(zhuǎn)發(fā)到某臺(tái)主機(jī)。用于決定哪個(gè)網(wǎng)絡(luò)接口(稱為下一跳接口)應(yīng)該用于轉(zhuǎn)發(fā)這個(gè)數(shù)據(jù)包,從而使其到達(dá)目的地??梢哉f(shuō),如果你想高效地診斷tcp/ip網(wǎng)絡(luò)上的路由問(wèn)題,理解路由表是很關(guān)鍵的?,F(xiàn)在讓我們看看路由表是如何工作的,在不同的情況下路由表的表現(xiàn)是怎樣的,并且看看在不同的

14、情況下需要使用哪些故障診斷的措施和工具。我們將從檢查一個(gè)簡(jiǎn)單的服務(wù)器(只有一個(gè)網(wǎng)絡(luò)接口的服務(wù)器)的路由表開始,此服務(wù)器只分配了一個(gè)ip地址。筆者選擇這個(gè)例子是因?yàn)樗钜桌斫?,在筆者的下一篇文章中,我們將看一些更為復(fù)雜的例子,包括擁有多個(gè)ip地址的服務(wù)器(如web 服務(wù)器)和擁有多個(gè)網(wǎng)絡(luò)接口的服務(wù)器(如既能連接到lan又能連接到一個(gè)用于備份的單獨(dú)的網(wǎng)絡(luò))。只擁有一個(gè)ip地址的簡(jiǎn)單服務(wù)器的路由表下面的路由表是在/24網(wǎng)絡(luò)上ip地址為0的服務(wù)器的路由表: 以下是引用片段:c:routeprint ipv4routetable = interfacelist

15、 0x1.mstcploopbackinterface 0x10003.0003ff25888c.intel21140-basedpcifastethernetadapter (generic) = = activeroutes: networkdestinationnetmaskgatewayinterfacemetric 020 1 0020 172.16.

16、11.305520 55550020 0020 5555001 defaultgateway: = persistentroutes: none 為了顯示這個(gè)路由表,你需要打開一個(gè)命令提示窗口,在其中輸入route print。下面我們對(duì)其各個(gè)部

17、分逐個(gè)分析便于我們理解它是如何工作的:路由表中每一個(gè)路由表項(xiàng)(或路由)都由五個(gè)字段組成:網(wǎng)絡(luò)目標(biāo)地址(network destination):代表某個(gè)可能的目的地址,它是一個(gè)ip地址或子網(wǎng),即表示ip數(shù)據(jù)包被轉(zhuǎn)發(fā)到何處的地址。掩碼(netmask):一個(gè)用于將某數(shù)據(jù)包中的ip地址中的目標(biāo)地址字段與上面可能的網(wǎng)絡(luò)地址匹配起來(lái)的位模式。網(wǎng)關(guān)(gateway):下一跳的ip地址,數(shù)據(jù)包必須被轉(zhuǎn)發(fā)到此,才能到達(dá)特定的目的網(wǎng)絡(luò)。接口(interface):下一跳的接口,這個(gè)接口必須用于將數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),以達(dá)到特定的目的網(wǎng)絡(luò)。跳數(shù)(metric):表示到達(dá)目的的過(guò)程中經(jīng)過(guò)了多少跳數(shù)(路由器數(shù)),即路由的

18、成本。示例一:目標(biāo)主機(jī)在本地子網(wǎng)上對(duì)于我們例子而言,假設(shè)這個(gè)特定的服務(wù)器(0)要將數(shù)據(jù)包發(fā)往同一子網(wǎng)內(nèi)的另一臺(tái)主機(jī)(ip地址為0)。那么這個(gè)數(shù)據(jù)包的源地址為0,目標(biāo)地址為0。下面我們將展示windows是如何用其路由表來(lái)決定選擇使用哪條路由的:1. windows首先依次從路由表中取出每一個(gè)路由,并將數(shù)據(jù)包的目標(biāo)地址(0)與選中路由的掩碼執(zhí)行邏輯“與”運(yùn)算。下面展示結(jié)果,這里,路由表中的每一個(gè)路由是通過(guò)其網(wǎng)絡(luò)目的地址確定的:route?netmask0 and n

19、etmask?05505555055550 2. 對(duì)每一個(gè)路由來(lái)說(shuō),這個(gè)“與”運(yùn)算的結(jié)果要與路由的網(wǎng)絡(luò)目標(biāo)地址比比較,而二者的一次匹配意思著這條路由可被用于將數(shù)據(jù)包

20、轉(zhuǎn)發(fā)到其目標(biāo)地址。如果發(fā)現(xiàn)不只有一個(gè)匹配,windows就會(huì)選用擁有最長(zhǎng)匹配的路由(即1的位數(shù)最高的路由)。如果這并不有產(chǎn)生唯一的路由,windows就任意地選用一個(gè)作為路由。從上面的列表中,這個(gè)“與”運(yùn)算的結(jié)果導(dǎo)致了兩個(gè)匹配(路由1和3),因此windows選擇了擁有最長(zhǎng)匹配的路由,即第三行的那個(gè)。其結(jié)果是windows知道了使用哪個(gè)路由將數(shù)據(jù)包傳送到目的地。下面是這條路由在服務(wù)器的路由表中看起來(lái)的樣子:network destination netmask gateway interface metric 0 172.

21、16.11.30 203. windows現(xiàn)在要使用下面的算法來(lái)決定下一步做什么:a) 如果路由的網(wǎng)關(guān)字段與服務(wù)器上的一個(gè)網(wǎng)絡(luò)接口的地址相匹配(或者如果網(wǎng)關(guān)是空的話),那么windows就會(huì)用在路由中指定的接口將數(shù)據(jù)包直接發(fā)送到目標(biāo)地址。b) 如果路由的網(wǎng)關(guān)字段并不與服務(wù)器上網(wǎng)絡(luò)接口的任意地址相匹配,windows將會(huì)把數(shù)據(jù)包轉(zhuǎn)發(fā)給路由中的網(wǎng)關(guān)字段的地址。很明顯,這里符合條件a,路由的網(wǎng)關(guān)字段(0)即為分配給服務(wù)器單個(gè)網(wǎng)卡的地址。windows因此會(huì)作出決定認(rèn)為目標(biāo)地址位于本地子網(wǎng)上,這也就是說(shuō)windows不需要將數(shù)據(jù)包發(fā)送到任何路由器,而是直接發(fā)送給其目的地址。在此例

22、中,windows使用服務(wù)器的0的網(wǎng)絡(luò)接口,簡(jiǎn)單地將數(shù)據(jù)包發(fā)送給0,接收主機(jī)得到了數(shù)據(jù)包。示例二:目標(biāo)主機(jī)在遠(yuǎn)程子網(wǎng)上現(xiàn)在,讓我們繼續(xù)同樣的過(guò)程,不過(guò)這次我們假定服務(wù)器想把數(shù)據(jù)包發(fā)往一個(gè)不同子網(wǎng)上的一臺(tái)主機(jī)(ip地址為00)。換句話說(shuō),數(shù)據(jù)包的源地址為0,目標(biāo)地址為00。下面我們看一下windows是如何利用路由表決定選擇哪條路由的:1. windows從路由表中取出每一條路由,將數(shù)據(jù)包的目標(biāo)地址(00)與路由中的掩碼進(jìn)行“與” 運(yùn)算。運(yùn)算結(jié)果如下: routen

23、etmask00 and netmask05500555500555500 2. 對(duì)于每一條路由來(lái)說(shuō),“與”運(yùn)算的結(jié)果要與路由中網(wǎng)絡(luò)目標(biāo)地址相

24、比較,二者匹配意味著這條路由可被用于將數(shù)據(jù)包轉(zhuǎn)發(fā)到其目標(biāo)地址。從我們上面的第二張路由表,你可以看出這次只有一個(gè)匹配,也就是說(shuō)是第一行,這個(gè)路由的網(wǎng)絡(luò)目地字段()與“與”運(yùn)算的結(jié)果匹配。因此windows用來(lái)將數(shù)據(jù)包轉(zhuǎn)發(fā)到其目標(biāo)地址的路由即為下面的路由:network destination netmask gateway interface metric 0 203. 然后windows就會(huì)使用前述的算法來(lái)決定下一步做什么,這次符合條件b,因?yàn)槁酚傻木W(wǎng)關(guān)字段()與分配給服務(wù)器的單獨(dú)網(wǎng)

25、卡的地址(0)并不匹配。windows因此會(huì)決定目標(biāo)地址位于一個(gè)遠(yuǎn)程子網(wǎng)上,將數(shù)據(jù)包轉(zhuǎn)發(fā)給路由器,路由器通過(guò)繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)包將其傳送到目的地。在此例中,windows使用服務(wù)器的0網(wǎng)絡(luò)接口,將數(shù)據(jù)包發(fā)送到在網(wǎng)關(guān)字段中所顯示的地址。一旦位于的路由器收到了數(shù)據(jù)包,它會(huì)決定下一步需要采取什么步驟,才能將數(shù)據(jù)包轉(zhuǎn)發(fā)到其最后的目標(biāo)地址00,而這又依賴于0/24網(wǎng)絡(luò)是1/24(由單個(gè)路由器連接)或一個(gè)遠(yuǎn)程網(wǎng)絡(luò)的鄰近子網(wǎng)(由幾個(gè)中間網(wǎng)絡(luò)之間的路由器連接)。故障診斷小技巧在上述的過(guò)

26、程中哪里會(huì)出問(wèn)題呢?首先,windows有可能無(wú)法選擇一條網(wǎng)絡(luò)目的地址字段與“與”運(yùn)算的結(jié)果(即路由的掩碼字段與數(shù)據(jù)包的目標(biāo)字段“與”運(yùn)算的結(jié)果)相匹配的路由。如果發(fā)生這種情況,你就會(huì)收到一個(gè)路由選擇錯(cuò)誤,這一般會(huì)通過(guò)一些運(yùn)行在服務(wù)器上的網(wǎng)絡(luò)應(yīng)用程序指示給你。通常情況下,windows會(huì)使用tcp來(lái)通知網(wǎng)絡(luò)堆棧的上層,說(shuō)明數(shù)據(jù)包不能送達(dá),就會(huì)導(dǎo)致某種錯(cuò)誤消息。在這種情況下,你的路由表可能已經(jīng)損壞,或者說(shuō),你的路由表中有一個(gè)非法的持久性路由。持久性路由指的是你通過(guò)使用route -p add手動(dòng)命令添加到路由表中的路由,這種路由需要重啟才可以使用,因?yàn)槠渲凳谴鎯?chǔ)在注冊(cè)表中的。如果你添加了非法的路

27、由,就會(huì)產(chǎn)生奇怪的結(jié)果。(雖然這種非法路由多數(shù)情況下會(huì)導(dǎo)致數(shù)據(jù)通信被莫名其妙地丟棄。)另外一方面,如果目標(biāo)主機(jī)位于一個(gè)遠(yuǎn)程子網(wǎng)上,windows會(huì)將數(shù)據(jù)包轉(zhuǎn)發(fā)給一個(gè)路由器(默認(rèn)的網(wǎng)關(guān)地址),而這個(gè)路由器又不能選擇一個(gè)路由,那么這種情況就會(huì)發(fā)生:路由會(huì)將把一個(gè)icmp(網(wǎng)際控制報(bào)文協(xié)議)消息:“目標(biāo)不可達(dá)到(destination unreachable)-主機(jī)不可到達(dá)(host unreachable)”返回給發(fā)送此數(shù)據(jù)包的主機(jī)。此例中,tcp會(huì)通知上層協(xié)議,然后就會(huì)顯示某種錯(cuò)誤消息。無(wú)論何種情況,一個(gè)處理問(wèn)題的實(shí)用方法是在發(fā)送方主機(jī)上檢查路由表,還要檢查數(shù)據(jù)包在到達(dá)目的地的過(guò)程中沿途經(jīng)過(guò)的路

28、徑所連接的路由器,查看這些路由表是否一致或已經(jīng)損壞。一個(gè)損壞的路由表可以通過(guò)重置tcp/ip堆棧進(jìn)行恢復(fù)(至少在windows計(jì)算機(jī)上是這樣),具體方法是使用netsh int ip reset命令,大家可以參考微軟的kb299357查找祥細(xì)資料。不過(guò),需要注意,這種重置操作并不會(huì)清除你手動(dòng)添加到路由表中的路由。結(jié)論我們討論了路由表是如何工作的,并且闡述了如何診斷路由表的故障,下一篇文章我們將討論幾個(gè)更為復(fù)雜的例子,例如看看擁有多個(gè)地址和多個(gè)網(wǎng)卡的服務(wù)器的情況。這是網(wǎng)絡(luò)故障診斷結(jié)構(gòu)化方法的第三篇,本文談的是如何利用windows平臺(tái)的網(wǎng)絡(luò)連接修復(fù)特性。成功的故障診斷依賴于三個(gè)重要支柱:縝密的邏

29、輯思維、對(duì)技術(shù)與技巧的理解、診斷工具的使用經(jīng)驗(yàn)。我們的文章主要以這三個(gè)支柱為基礎(chǔ)。例如,在筆者的首篇文章中,我們概要地描述了一種結(jié)構(gòu)化的方法,展示如何從邏輯上診斷windows系統(tǒng)網(wǎng)絡(luò)的tcp/ip網(wǎng)絡(luò)故障。在第二篇文章中,我們重點(diǎn)從技術(shù)上討論了路由表是如何工作的,并討論了路由表問(wèn)題的故障診斷技巧。今天的這篇文章中,我們將理解windows的網(wǎng)絡(luò)修復(fù)特性如何修復(fù)常見的網(wǎng)絡(luò)連接問(wèn)題。后面我們還有文章討論上述的三大支柱,以幫助讀者成為更為專業(yè)的故障診斷高手。修復(fù)特性是一個(gè)強(qiáng)有力的工具,雖然大家很少用它(你用得很多嗎?),因?yàn)樵S多人沒(méi)有真正地理解它。使用這個(gè)特性是相當(dāng)簡(jiǎn)單的,只需要在網(wǎng)絡(luò)連接上右擊,

30、從彈出的快捷菜單中選擇“修復(fù)”即可。如圖: 在我們這樣操作時(shí),就會(huì)彈出一個(gè)對(duì)話框,連續(xù)地顯示一系列的消息,這些消息表現(xiàn)了修復(fù)活動(dòng)的工作過(guò)程。如圖: 在上面的圖中,我們看到的正在進(jìn)行的修復(fù)操作是“清除dns緩存”,這僅是一個(gè)修復(fù)操作而已。背后,windows執(zhí)行的是一些命令行操作,圖中的每一個(gè)過(guò)程的消息(如“清除dns緩存”)都指明了其中的一個(gè)命令被執(zhí)行了。那么,在我們使用“修復(fù)”功能時(shí),到底系統(tǒng)運(yùn)行了哪些命令,執(zhí)行了哪些操作呢?這些命令做了什么?它們對(duì)系統(tǒng)產(chǎn)生了怎樣的影響?為什么要執(zhí)行這些操作或命令?下面我們一一道來(lái):第一步:dhcp更新(dhcp renew)如果你配置了網(wǎng)絡(luò)連接使其可以通過(guò)

31、dhcp自動(dòng)地接收ip地址,就會(huì)需要這一步。如果你手動(dòng)配置了連接,使用的是靜態(tài)的ip地址和其它的tcp/ip配置,就不需要這一步了。此處執(zhí)行的這個(gè)命令行操作類似于但不同于下面的命令: 以下是引用片段:ipconfig/renew 這個(gè)命令會(huì)試圖與dhcp服務(wù)器(計(jì)算機(jī)先前的ip地址就是從此租用的)聯(lián)系。如果可以聯(lián)系到dhcp服務(wù)器,計(jì)算機(jī)就會(huì)確認(rèn)其目前的tcp/ip配置是合法的。不過(guò),在這個(gè)命令通過(guò)“修復(fù)”功能執(zhí)行時(shí),與通過(guò)命令行方式啟動(dòng)它的行為是不一樣的。此時(shí),并不是向獲取其ip地址和相關(guān)dhcp配置的服務(wù)器發(fā)送一個(gè)單播的dhcp更新消息,而是向網(wǎng)絡(luò)中的任何可用的dhcp服務(wù)器發(fā)送一個(gè)dhc

32、p更新消息的廣播包。如此做的原因在于,如果計(jì)算機(jī)目前的tcp/ip配置是非法的,計(jì)算機(jī)就可以通過(guò)要求一個(gè)新的地址租用,從任何可用的dhcp服務(wù)器那兒獲取新的tcp/ip配置。執(zhí)行“修復(fù)”網(wǎng)絡(luò)連接這個(gè)操作有兩個(gè)方面的影響:一是解決客戶端上的dhcp配置問(wèn)題,二是在無(wú)需與一個(gè)特定的dhcp服務(wù)器聯(lián)系的情況下解決問(wèn)題。小提示:通過(guò)實(shí)施網(wǎng)絡(luò)上的dhcp服務(wù)器的冗余機(jī)制,來(lái)防止由于dhcp服務(wù)器不可用所造成的網(wǎng)絡(luò)問(wèn)題?,F(xiàn)在網(wǎng)上有不少這樣的文章,讀者可自己用google等搜尋。第二步:清空arp緩存這一步執(zhí)行的命令行操作如下所示: 以下是引用片段:arpd*這個(gè)命令清空本地計(jì)算機(jī)上地址解析協(xié)議(arp)緩

33、存中的內(nèi)容。arp是一個(gè)用于將ip地址解析為mac地址(固化到局域網(wǎng)網(wǎng)卡內(nèi))的協(xié)議。arp緩存包含著最近一段時(shí)間以來(lái)解析的網(wǎng)絡(luò)節(jié)點(diǎn)的mac地址。這些mac地址被保存到計(jì)算機(jī)的緩存中,目的是與這些節(jié)點(diǎn)(ip地址)的通信無(wú)需重復(fù)解析就可以實(shí)現(xiàn)。如果arp緩存中的一個(gè)或多個(gè)項(xiàng)目不正確,那么與某些ip地址的網(wǎng)絡(luò)通信就會(huì)失敗。如果某個(gè)不正確的緩存項(xiàng)目屬于本地子網(wǎng)的一個(gè)點(diǎn),那么與那個(gè)節(jié)點(diǎn)的通信就會(huì)失敗。如果默認(rèn)網(wǎng)關(guān)的緩存項(xiàng)目不正確,那么與遠(yuǎn)程子網(wǎng)節(jié)點(diǎn)的通信就會(huì)失敗。這種類型的網(wǎng)絡(luò)通信失敗(不管是位于本地子網(wǎng)還是遠(yuǎn)程子網(wǎng))都可以指明哪一個(gè)arp緩存項(xiàng)目是不正確的(假設(shè)不正確的arp緩存項(xiàng)目是問(wèn)題所在)。第三

34、步:清空netbios緩存這一步執(zhí)行的命令行操作如下所示: 以下是引用片段:nbtstatr 這個(gè)命令會(huì)清空本地計(jì)算機(jī)上的netbios緩存內(nèi)容。運(yùn)行這個(gè)命令還會(huì)將lmhosts文件中的任何項(xiàng)目預(yù)先裝載到緩存中。在多數(shù)基于windows的網(wǎng)絡(luò)中,包括那些部署了活動(dòng)目錄和dns域名解析的網(wǎng)絡(luò),老的netbios名字解析仍可用于某些功能。由于可通過(guò)查詢一個(gè)wins服務(wù)器或通過(guò)運(yùn)用netbios廣播將遠(yuǎn)程主機(jī)的netbios名字解析為其相關(guān)的ip地址,這些主機(jī)到ip地址的映射就被添加到本地計(jì)算機(jī)的netbios緩存中,從而與遠(yuǎn)程主機(jī)的通信在無(wú)需反復(fù)多次解析的情況下就可以實(shí)現(xiàn)。如果netbios緩存中

35、的一個(gè)或多個(gè)項(xiàng)目不正確,與網(wǎng)絡(luò)中的某些ip主機(jī)的通信就會(huì)失敗。如果本地子網(wǎng)主機(jī)的緩存項(xiàng)目不正確,那么與此主機(jī)的通信就失敗。如果默認(rèn)網(wǎng)關(guān)的緩存項(xiàng)目不正確,那么遠(yuǎn)程子網(wǎng)上的主機(jī)通信就會(huì)失敗。這種網(wǎng)絡(luò)通信失敗(不管主機(jī)是在本地子網(wǎng)或遠(yuǎn)程子網(wǎng)上)可以指明netbios緩存中的哪個(gè)項(xiàng)目不正確(假設(shè)不正確的netbios緩存項(xiàng)目是問(wèn)題所在)。不正確的netbios緩存項(xiàng)目有時(shí)是由wins服務(wù)器上wins數(shù)據(jù)庫(kù)中的過(guò)時(shí)項(xiàng)目引起的。這是因?yàn)樵趯?shí)施wins后,wins要優(yōu)先于netbios廣播的名字解析,因此損壞的或過(guò)時(shí)的wins項(xiàng)目就會(huì)用不正確的項(xiàng)目重新注入netbios緩存,即使在緩存被清空以后也是如此。這種情況的解決方案是要在wins數(shù)據(jù)庫(kù)中永久性地標(biāo)記不正確的記錄,再次清空netbios緩存內(nèi)容,然后用nbtstat c命令監(jiān)視緩存,用以確保這些不正確的項(xiàng)目不會(huì)再被加裁到緩存中。第四步:清空dns解析程序緩存這一步執(zhí)行的命令行操作如下所示: 以下是引用片段:ipconfig/flushdns 這個(gè)命令清空本地計(jì)算機(jī)dns解析程序緩存中的內(nèi)容。運(yùn)行這個(gè)命令還會(huì)將hosts文件中的任何項(xiàng)目預(yù)先裝載到緩存中。通過(guò)查詢名字服務(wù)器(dns服務(wù)器),遠(yuǎn)程主機(jī)完全合格的dns名字就會(huì)被解析為相關(guān)ip

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論