查看: 1852|回復(fù): 1
打印 上一主題 下一主題

高手教你輕松排除網(wǎng)絡(luò)故障

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2009-5-12 19:49:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
高手教你輕松排除網(wǎng)絡(luò)故障:你的網(wǎng)絡(luò)不可能不發(fā)生故障。因此, 從現(xiàn)實的角度來講,你的設(shè)計應(yīng)當(dāng)考慮到故障的問題。然而, 網(wǎng)絡(luò)設(shè)計總是要面臨商業(yè)的利益考慮各種平衡:效率與成本、性能與可維護性等等。雖然說網(wǎng)絡(luò)設(shè)計要盡量減少故障率,但是這種減少很可能與其它的限制相矛盾。對于這些問題沒有簡單的解決方案。然而,這里有幾條建議對許多類型的網(wǎng)絡(luò)都適用。     在組建網(wǎng)絡(luò)或者重新組合網(wǎng)絡(luò)時,作為網(wǎng)絡(luò)規(guī)劃者的你就應(yīng)該采用一些網(wǎng)絡(luò)設(shè)計原理,有了這些原理,你才可以使你的網(wǎng)絡(luò)少出問題,盡可能減少故障所能帶來的影響,或者簡化故障分析的過程。
    在設(shè)計網(wǎng)絡(luò)時考慮故障問題需要對系統(tǒng)如何產(chǎn)生故障有一個全面的了解。因此,在開始討論設(shè)計原理之前,有必要首先回顧一下系統(tǒng)故障類型。這里將以幾種不同的故障類型開始。盡管這種概括可能有些簡單化,但是已經(jīng)足夠用了。
    簡單故障:
    也許最簡單的故障類型就是單一位置的故障或者一個簡單故障。這種故障,出問題的部分僅僅是你的網(wǎng)絡(luò)上的一個組件不工作了。理論上講,哪個設(shè)備出了問題是很明顯的,但是通常這并不是問題的關(guān)鍵。在許多種情況下,許多個設(shè)備同時出現(xiàn)了故障。比如說,如果網(wǎng)絡(luò)的唯一一臺DNS服務(wù)器出現(xiàn)了電纜連接故障,服務(wù)器就會無法訪問,DNS也無法解析,其它服務(wù)中的電子郵件也不能運行。實際上,故障只有一個,就是連接器。一旦這個位置進行了修復(fù),所有的問題都立刻消失了。
    互相無關(guān)聯(lián)的多個故障:有時候你可能會面臨同時出現(xiàn)或者差不多同時出現(xiàn)的多個故障。通常你會有一種多重故障的錯覺,就像上面的例子中所提到的一樣,是電纜出了問題。但是有時候確實是不止一個設(shè)備發(fā)生了故障。在互相無關(guān)聯(lián)的故障當(dāng)中,出現(xiàn)故障的時間幾乎完全是巧合,故障之間并無聯(lián)系。不幸的是,無關(guān)聯(lián)故障可能很難解決,原因有三:第一,你必須意識到確實發(fā)生了多重故障;第二,區(qū)分幾種故障現(xiàn)象可能會比較困難。最后,總想去尋找根本不存在的關(guān)聯(lián)是人的天性。這種天性往往會誤導(dǎo)你。
    連續(xù)故障:
    一種故障引發(fā)的其它故障被稱為連續(xù)故障。在這種故障中,每個故障都需要單獨處理。比如說,突然斷電會破壞接口。為了使設(shè)備重新工作,你必須修復(fù)或更換電源和接口(建議首先更換電源)。區(qū)分真正的連續(xù)故障和單一故障影響其他設(shè)備這兩種情況會比較困難。但是盡管這種區(qū)別對于你的用戶來說并無差別,可是在故障診斷時卻很重要。
    系統(tǒng)故障:
    也許最致命的故障就是系統(tǒng)故障了。這是一個經(jīng)常被濫用和誤用的術(shù)語。系統(tǒng)故障源于系統(tǒng)組件之間意外、不明顯的互相影響。這種互相影響可能是獨立故障對于其它設(shè)備的作用,或者僅僅來自設(shè)備的不兼容。系統(tǒng)故障的發(fā)生條件是不熟悉的、未經(jīng)計劃的,或者沒被發(fā)現(xiàn)的或者不能馬上理解的意外的相互影響。多個簡單故障如果沒有相互影響就不算是系統(tǒng)故障。連續(xù)故障也不是,因為相互影響可以很容易理解。也許解釋系統(tǒng)故障的最好辦法是舉一個例子。案例分析:
    幾年前,李在擴展自己創(chuàng)建的一個校園網(wǎng)時遇到了一個系統(tǒng)故障。理論上說,這個校園網(wǎng)包括了四個子網(wǎng):一個是大學(xué)管理系統(tǒng),一個是員工網(wǎng),一個學(xué)生實驗室網(wǎng)絡(luò),還有一個校園互聯(lián)網(wǎng)連接的接入網(wǎng)絡(luò),以及撥入服務(wù)等等。開始,這些子網(wǎng)都連接到一個用作email服務(wù)器、DNS服務(wù)器和路由器的主機。每個子網(wǎng)都是由很多通過hub連接的主機構(gòu)成的。
    一開始這種結(jié)構(gòu)已經(jīng)足夠了,但是沒多久之后就需要擴展原來的網(wǎng)絡(luò)硬件, 這個校園網(wǎng)下一步的發(fā)展目標(biāo)是安裝一個單獨的路由器,并以交換機取代為數(shù)眾多的hub。決定關(guān)掉電子郵件服務(wù)器的路由功能,但是仍然使之保持對四個子網(wǎng)的連接。據(jù)稱這樣可以提高效率,因為本地電子郵件可以無須通過路由器,而且可以提供冗余,因為電子郵件系統(tǒng)在路由器關(guān)閉時仍然可以正常工作。因為不同網(wǎng)絡(luò)的許多用戶互相距離很近,所以選擇了支持虛擬局域網(wǎng)(VLAN)的交換機。
    為了了解這種結(jié)構(gòu)是如何導(dǎo)致系統(tǒng)故障的,有必要首先了解采用的主機和交換機。電子郵件/DNS服務(wù)器采用了一個四倍以太網(wǎng)卡適配器,每個網(wǎng)絡(luò)接口,或者端口采用的是同樣的以太網(wǎng)或者MAC地址而不是每個端口采用不同的MAC地址。盡管這不是常規(guī)的做法,但是銷售商的文件指出IEEE把每個端口使用相同的地址(工作站地址)還是不同的地址(端口地址)這個問題的選擇權(quán)留給了開發(fā)商。(根據(jù)原來的配置,由于每個MAC地址都在不同的網(wǎng)絡(luò)上,所以一切運行正常。)
    交換機的一個特征是它們從通過它們的數(shù)據(jù)中得到MAC地址,然后利用這些信息來控制數(shù)據(jù)的處理。當(dāng)一個數(shù)據(jù)包到達(dá)一個端口,它的MAC來源地址就進入了這個端口的地址列表。交換機還搜索每個端口的地址列表來查詢目的地址。 如果發(fā)現(xiàn)了相對應(yīng)的地址,它就會將數(shù)據(jù)包發(fā)送到具有包含MAC地址的地址列表的端口,而且,它不會再把數(shù)據(jù)包發(fā)送到其它的端口了。(如果目標(biāo)地址不在交換機的任何地址列表當(dāng)中,這時交換機就會像一個hub一樣從每個端口把數(shù)據(jù)包發(fā)送出去。)由于設(shè)備可能會從一個端口移到另一個端口,一般情況下,當(dāng)交換機把一個MAC地址添加到一個端口的地址列表時,它會刪除其它列表中的這個地址。在具有“傳統(tǒng)”交換機的情況當(dāng)中,采用了工作站地址方法的郵件服務(wù)器不會出任何問題。子網(wǎng)的交換機甚至還不知道其它網(wǎng)絡(luò)中到底發(fā)生了什么。
    現(xiàn)在考慮一下在這個方案中采用VLAN的含義。VLAN設(shè)備的思想是一個物理設(shè)備可以被分成幾個虛擬設(shè)備。如果你有三位教員,兩位員工以及四位學(xué)生同時在同一個布線室,使用傳統(tǒng)的交換機,你需要三個不同的交換機,因為有三種不同類型的用戶,每種類型的用戶需要分成不同的子網(wǎng)。而且,為了把每個交換機都連接到骨干網(wǎng),我們需要三種不同的電纜布線連接。有了具有VLAN功能的交換機,交換機可以分為三個邏輯交換機。每個邏輯交換機用于處理單獨的網(wǎng)絡(luò)數(shù)據(jù)。因此,我們只需要買一臺交換機。而且,如果我們在骨干網(wǎng)上采用了VLAN技術(shù),我們在骨干網(wǎng)和布線室之間只需要一根電纜(主干線)連接。每一端的交換機都可以都可以分揀數(shù)據(jù)并把數(shù)據(jù)發(fā)送到相應(yīng)的邏輯交換機。顯然,VLAN在許多情況下可以顯著節(jié)約投入。
    這就引發(fā)了一個有趣的問題:在支持VLAN的交換機上是如何管理地址列表的呢?具體地說,當(dāng)在某個地址列表上添加了一個設(shè)備,那應(yīng)該是在物理交換機上清除所有端口上的地址列表呢,還是僅僅清除同一個邏輯交換機端口上的呢?由于設(shè)備可能會從一個網(wǎng)絡(luò)移動到另外一個網(wǎng)絡(luò),你可能會推斷地址應(yīng)該從一個物理交換機上的所有地址列表中清除掉。許多VLAN交換機也正是這樣做的。但是這個決定在用于電子郵件服務(wù)器的工作站地址方式時出現(xiàn)了問題。
    問題是這樣的:電子郵件服務(wù)器需要同時入住所有的四個網(wǎng)絡(luò)。當(dāng)來自某個服務(wù)器的數(shù)據(jù)包到達(dá)交換機的某個端口時,服務(wù)器到其他端口的連接就斷掉了。網(wǎng)絡(luò)仍然需要向相應(yīng)的邏輯交換機發(fā)送數(shù)據(jù)包,但是邏輯交換機這時需要將數(shù)據(jù)包發(fā)送到每個端口,因為在任何一個地址列表中都找不到地址。除非有人在與服務(wù)器對話,交換機才會快速穩(wěn)定下來。但是在同時對話中,問題出現(xiàn)了。
    由于服務(wù)器之間尋址方案之間的不兼容和VLAN的使用毫無疑問是問題的根源所在,所以原因很簡單。問題出現(xiàn)的頻率很高,所以整個網(wǎng)絡(luò)的性能表現(xiàn)非常差,經(jīng)常發(fā)生丟包和掉線的現(xiàn)象?;闹嚨氖?,交換機地址列表卻經(jīng)常溢出。這似乎是分揀來自干線數(shù)據(jù)的問題,或者別的什么問題。由于經(jīng)常發(fā)生這樣的問題,在事實發(fā)生之后很長時間才可以把片面的解釋歸結(jié)到一起。如果這是生產(chǎn)系統(tǒng)的問題,那就不可能回過頭來仔細(xì)研究這個問題。一旦掌握了問題發(fā)生的原理,就可以做些改變來改正錯誤。Ifconfig被用來把不同的MAC地址分配給服務(wù)器上的每個端口。 系統(tǒng)特性和系統(tǒng)故障
    正如前面所提到的,系統(tǒng)故障的特點是兩個或多個部分以一種不明顯的或意外的方式進行的不受歡迎的相互影響。我們可以看出,上面的例子剛好符合系統(tǒng)故障的定義。網(wǎng)絡(luò)的每個部分單獨或者在某些環(huán)境下面運行都很正常。是不同部分的相互影響導(dǎo)致了故障的產(chǎn)生。服務(wù)器的多重連接產(chǎn)生了多重相互影響,而由于這些相互影響不明顯,所以診斷和排除這類故障非常困難。
    那么系統(tǒng)故障在那些情況下容易發(fā)生呢?在Charles Perrow的經(jīng)典著作Normal Accidents一書中,他分析了從核電站到空中交通管制系統(tǒng)的許多不同的系統(tǒng)。簡單地說,他識別出了導(dǎo)致系統(tǒng)故障的幾種因素。首先,系統(tǒng)越簡單,系統(tǒng)就越不容易發(fā)生故障。復(fù)雜的系統(tǒng)中有更多的容易出錯的東西,更多的相互影響的可能,以及由于在某個部分確實發(fā)生了故障的時候有更多的東西需要弄清楚,因此就有更多的出現(xiàn)不明顯或者隱藏的相互影響的可能。復(fù)雜系統(tǒng)的信息只能間接地收集到或者推斷出來。
    其次,線性系統(tǒng)與具有很多混合連接的系統(tǒng)相比,出現(xiàn)系統(tǒng)故障的幾率更低。具有許多交叉連接的系統(tǒng)有許多組件間交互作用的方式。在具體的交叉連接當(dāng)中,那些隱性的交叉連接最可能導(dǎo)致系統(tǒng)故障難以診斷。
    與線性密切相關(guān)的是系統(tǒng)各部分之間的結(jié)合度。結(jié)合度比較松散,線性系統(tǒng)出錯概率就小,結(jié)合度緊密,相互影響就發(fā)生頻繁而且不容易消除。
    如果你停下來去想,這些特性都是在意料之中的。但是除非當(dāng)你停下來并去考慮他們,否則非常容易忽視掉。粗略地說,我把大多數(shù)網(wǎng)絡(luò)歸為復(fù)雜但相對線性系統(tǒng)一類。(確切地說大多數(shù)網(wǎng)絡(luò)都是樹狀結(jié)構(gòu),但是這里指的是設(shè)備之間簡單明顯的線性路徑。)大多數(shù)硬件往往是相當(dāng)緊密地連接在一起的,但是使用硬件的協(xié)議可能會提供松散連接。但是如果你不這樣認(rèn)為,也沒有關(guān)系。把系統(tǒng)歸為線性還是非線性,緊密連接還是松散連接,簡單還是復(fù)雜主要還是個人判斷。這些都是真正的相關(guān)歸類。更重要的是能夠從這個角度比較不同的網(wǎng)絡(luò)設(shè)計而不是給一種設(shè)計歸為那一類。
    故障診斷
    很不幸的是,當(dāng)你開始故障診斷時,故障類型往往十分模糊。盡管說把所有可能都考慮到會對問題解決有所幫助,但是通常的情況是你沒辦法把故障歸結(jié)為哪一類,直到你解決了故障為止。
    人們在深入了解情況之前總是在一開始的時候就認(rèn)為所有的故障都是簡單故障。首先從故障的表面現(xiàn)象開始,然后再深入下去。在前一個DNS服務(wù)器連接故障中,你可能會從電子郵件軟件所報告的DNS故障信息開始,然后開始查找DNS信息。這樣你就會發(fā)現(xiàn)DNS服務(wù)無法實現(xiàn),隨之你就會發(fā)現(xiàn)無法連通DNS服務(wù)器。這樣你就離故障的根源越來越近了。在機械系統(tǒng)中,順藤摸瓜通常是一個很重要的方法。在網(wǎng)絡(luò)中,邏輯上的順藤摸瓜取代了它的位置。
    了解不同的故障類型是有幫助的。在診斷一個簡單故障時,通常的做法是采用分段解決的方法。在剛剛的例子中,主動將你的注意力轉(zhuǎn)移而不是集中到癥狀本身可以少走很多彎路?;ㄙM時間在檢查電子郵件配置文件上或查詢DNS會白白浪費大量的時間。在兩個或多個設(shè)備幾乎同時出現(xiàn)故障時,故障診斷會更加困難,因為解決了一個問題并不能使系統(tǒng)恢復(fù)正常。因此,能夠想到可能會出現(xiàn)多個故障并能想象出多個故障的綜合癥狀對解決問題是很重要的。對于多個故障,當(dāng)你向解決其中一個問題邁進時,你可能卻在離解決另一個問題更遠(yuǎn)。通常是你排除了一個故障,系統(tǒng)的故障現(xiàn)象就變了。這也是發(fā)現(xiàn)多個故障的一個基網(wǎng)絡(luò)設(shè)計
    可能導(dǎo)致故障的網(wǎng)絡(luò)特性時會大有幫助。但是這個方法并不是萬能的。在網(wǎng)絡(luò)設(shè)計中,你的目標(biāo)自然會首先包括避免故障,并減小故障所產(chǎn)生的影響,簡化故障的排除。不幸的是,這兩個目標(biāo)是矛盾的。例如,考慮了故障影響的設(shè)計必然會使遠(yuǎn)程故障信息收集更為困難。
    簡單故障:
    一般的建議適用于避免簡單故障,采用可靠的設(shè)備,經(jīng)常維護和檢測設(shè)備,每天更新系統(tǒng)日志,通過使用幾個相同的協(xié)議和選擇幾個相同的設(shè)備廠商來盡可能簡化所用的東西。不幸的是,僅僅使用幾個協(xié)議限制了你的網(wǎng)絡(luò)功能;而標(biāo)準(zhǔn)化配置設(shè)備意味著你可能會在這些設(shè)備上花費更多的錢。并不是所有的情況下采用同一個廠商的產(chǎn)品都是最經(jīng)濟的方案。而特別的需要會浪費許多錢去購買不必要的設(shè)備。這在這些里些建議中是毫無疑問的。
    多重故障和連續(xù)故障:
    當(dāng)然, 盡量減少簡單故障是防止多重故障的基礎(chǔ),不管是獨立故障,連續(xù)故障還是系統(tǒng)故障。下一步是分開以減少網(wǎng)絡(luò)組件的互相影響。分開可以通過分開數(shù)據(jù)連接層或通過采用子網(wǎng)分開網(wǎng)絡(luò)級別來實現(xiàn)。盡管有時候被忽視,出于安全的考慮,防火墻不應(yīng)該受到限制。它們可以作為一種一般性工具來控制子網(wǎng)之間的數(shù)據(jù)交換。但是由于分開限制了交互,數(shù)據(jù)收集就變的更加困難了。 如果你確實劃分了網(wǎng)絡(luò),(而且你當(dāng)然應(yīng)該考慮劃分到最小網(wǎng)絡(luò)單位),內(nèi)建檢查點是很重要的。
    最簡單的就是每個區(qū)內(nèi)的一些你可以遠(yuǎn)程登錄并安裝了數(shù)據(jù)收集工具的計算機。我Network Troubleshooting Tools一書中介紹了許多有用的工具。你還可以通過配置網(wǎng)絡(luò)設(shè)備如路由器來收集這方面的信息。如果預(yù)算允許,你還可以考據(jù)增加RMON類似的設(shè)備。當(dāng)然,你應(yīng)該會想到,這么做會增加網(wǎng)絡(luò)的復(fù)雜性。比如,你可能需要重新配置路由器或者防火墻使SNMP數(shù)據(jù)能夠通過,至少能到達(dá)相應(yīng)的主機。本線索,尤其是在系統(tǒng)故障中。系統(tǒng)故障:
    由于系統(tǒng)故障是最難診斷的故障(而且,其后果也可能是慘重的損失),你可能需要在構(gòu)建你的網(wǎng)絡(luò)時要特別注意避免或減少這類故障。上面所說的都會有幫助。下一步就是考慮哪些系統(tǒng)特性可能會導(dǎo)致系統(tǒng)故障。
    首先, 盡量使你的網(wǎng)絡(luò)成為線性布局。樹狀結(jié)構(gòu)的網(wǎng)絡(luò)相對來說比較好??偟膩碚f,除了偶爾有冗余連接之外大多數(shù)網(wǎng)絡(luò)都是線性的(或者說是樹狀的)。具有諷刺意味的是,添加冗余路徑可能反而會有相反的效果。因為潛在的問題,這是網(wǎng)絡(luò)需要仔細(xì)測試的一個方面。當(dāng)你添加了額外的路徑,你需要知道有產(chǎn)生問題的潛在可能。盡量選擇能完成任務(wù)的最簡單的結(jié)構(gòu)。
    大多數(shù)網(wǎng)絡(luò)中單個設(shè)備都是相對緊密聯(lián)合的,盡管使用他們的許多協(xié)議和服務(wù)可能會連接松散,緩沖和冗余需要在設(shè)計時明確考慮到。這可以由某些協(xié)議辦到,但不是所有的協(xié)議都可以??赡艿脑?,根據(jù)情況進行選擇。
    復(fù)雜性和效率通常都是和系統(tǒng)緊密相關(guān)的。具有諷刺意味的是,最簡單的解決方案反而很少有效率高的。因此,有時候需要某種程度的復(fù)雜性來實現(xiàn)所要求的功能。復(fù)雜性在許多情況下也提高了可靠性??偟膩碚f,如果能滿足要求,還是簡單些為好,但是前提是它能勝任工作。最后,正如前面所提到的,對于系統(tǒng)故障來說,關(guān)鍵因素是相互影響是隱性的而且不可預(yù)知。為了避免出現(xiàn)這種問題,你需要盡可能多地知道你的網(wǎng)絡(luò)發(fā)生了什么事情。不幸的是,這同網(wǎng)絡(luò)設(shè)計的基本原理直接沖突:透明度。從用戶的角度來看,網(wǎng)絡(luò)如何工作的詳細(xì)內(nèi)容跟他們無關(guān)。因此,網(wǎng)絡(luò)的設(shè)計向用戶隱藏了這些細(xì)節(jié)。如果一個網(wǎng)絡(luò)在TCP過程中發(fā)生了丟包現(xiàn)象,協(xié)議會安排在用戶不知情的情況下重新發(fā)送。也許網(wǎng)絡(luò)速度會顯得很慢,但是這就是顧客所唯一會注意到的事情。從故障分析者的角度來說,隱藏的信息才是你最終需要的東西。解決問題需要你對網(wǎng)絡(luò)運行的原理有透徹的了解和一系列優(yōu)秀的收集信息的工具。
    結(jié)論
    工程似乎總是要涉及到均衡:線性對冗余性,簡單性對效率,透明度對信息收集。這需要在組建網(wǎng)絡(luò)時仔細(xì)平衡。沒有萬能的解決方案。可靠性的改進或者易診斷性將會始終是需要花費力氣去做的事。但是診斷任何問題的第一步都應(yīng)該是了解究竟發(fā)生了什么事。比較一下你的備選方案的復(fù)雜程度并盡量推斷出可能在什么地方發(fā)生問題
中國畜牧人網(wǎng)站微信公眾號

評分

參與人數(shù) 1論壇幣 +19 收起 理由
nety + 19

查看全部評分

版權(quán)聲明:本文內(nèi)容來源互聯(lián)網(wǎng),僅供畜牧人網(wǎng)友學(xué)習(xí),文章及圖片版權(quán)歸原作者所有,如果有侵犯到您的權(quán)利,請及時聯(lián)系我們刪除(010-82893169-805)。
沙發(fā)
發(fā)表于 2009-5-12 20:12:15 | 只看該作者
講的挺深奧的,也挺有用的,網(wǎng)絡(luò)電腦我們都離不開,還的好好學(xué)習(xí)

評分

參與人數(shù) 1論壇幣 +5 收起 理由
system + 5 第一個回復(fù)系統(tǒng)自動獎勵

查看全部評分

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

發(fā)布主題 快速回復(fù) 返回列表 聯(lián)系我們

關(guān)于社區(qū)|廣告合作|聯(lián)系我們|幫助中心|小黑屋|手機版| 京公網(wǎng)安備 11010802025824號

北京宏牧偉業(yè)網(wǎng)絡(luò)科技有限公司 版權(quán)所有(京ICP備11016518號-1

Powered by Discuz! X3.5  © 2001-2021 Comsenz Inc. GMT+8, 2025-4-25 13:34, 技術(shù)支持:溫州諸葛云網(wǎng)絡(luò)科技有限公司