大部分交換機(jī)都會(huì)有自我診斷的功能。當(dāng)交換機(jī)或者交換機(jī)端口由于某些原因出現(xiàn)故障的時(shí)候,都會(huì)通過(guò)指示燈來(lái)告知管理員存在的錯(cuò)誤。不過(guò)有些時(shí)候交換機(jī)也會(huì)存在誤診斷的情況。如交換機(jī)的端口工作指示燈明明表示正常,但是用戶卻反映網(wǎng)絡(luò)不通。如果只是普通的用戶,問(wèn)題還不是很大。但是如果這個(gè)端口恰巧是用來(lái)進(jìn)行備份的,那么情況就會(huì)比較糟。為了避免這種情況,在實(shí)際工作中很多網(wǎng)絡(luò)管理員都喜歡采用交換機(jī)的UDLD模式來(lái)消除交換機(jī)的這種誤診斷。
一、什么情況下會(huì)出現(xiàn)誤診斷?
誤診斷的情形主要是即使當(dāng)鏈路或者交換機(jī)的端口指示燈正常的(即端口的狀態(tài)是UP的),但是接口仍然無(wú)法正常傳遞數(shù)據(jù)流量。通常情況才將這種錯(cuò)誤稱之為單向鏈路。一般情況下,當(dāng)出現(xiàn)接口故障、軟件故障、硬件失效或者其他異常原因的時(shí)候,就會(huì)出現(xiàn)這種錯(cuò)誤。憑現(xiàn)在的技術(shù)手段,交換機(jī)還不能夠從根本上避免這種錯(cuò)誤的發(fā)生。為此只有采取其他的方式,加強(qiáng)對(duì)交換機(jī)端口的檢測(cè),以盡早發(fā)現(xiàn)這種錯(cuò)誤。在思科系列的交換機(jī)上,就采用了UDLD模式來(lái)解決這種情況下的誤診斷。
UDLD從理論上來(lái)說(shuō),其是在第二層工作的協(xié)議。不過(guò)從實(shí)際情況來(lái)看,其往往跟第一層的內(nèi)容有很深的關(guān)系。也就是說(shuō),UDLD模式不光光在第二層運(yùn)作,其還會(huì)跟第一層的相關(guān)機(jī)制協(xié)同工作,才能夠完成。其主要的思路就是UDLD協(xié)議運(yùn)行在第一、二層之間,最終確定鏈路的實(shí)際工作狀態(tài)。當(dāng)發(fā)現(xiàn)有“鏈路UP狀態(tài)正常,但是沒有傳遞流量”的時(shí)候,UDLD協(xié)議會(huì)馬上報(bào)警。具體的說(shuō),在第一層中通過(guò)自動(dòng)協(xié)商功能來(lái)觀測(cè)物理信令等相關(guān)的參數(shù)運(yùn)作。而UDLD協(xié)議則會(huì)完成一些自動(dòng)協(xié)商機(jī)制不能夠執(zhí)行的任務(wù)。讓自動(dòng)協(xié)商發(fā)現(xiàn)物理信令有異常的時(shí)候,不會(huì)自動(dòng)將端口從UP狀態(tài)轉(zhuǎn)換為其他狀態(tài),從而導(dǎo)致了單向鏈路的故障。而UDLD協(xié)議能夠接受來(lái)自自動(dòng)協(xié)商機(jī)制傳遞來(lái)的參數(shù),然后再發(fā)現(xiàn)故障的時(shí)候及時(shí)的將交換機(jī)端口處于關(guān)閉狀態(tài)?梢姡琔DLD模式所采用的不只只是一種協(xié)議,而是UDLD協(xié)議與自動(dòng)協(xié)商機(jī)制相互作用的結(jié)果。如果網(wǎng)絡(luò)管理員要啟動(dòng)UDLD模式的話,那么就必須要同時(shí)啟用UDLD協(xié)議和自動(dòng)協(xié)商機(jī)制,在第一層與第二層中通過(guò)他們的各司其責(zé)、協(xié)同工作,來(lái)防止物理上或者邏輯上的單向連接,從而從根本上消除交換機(jī)的誤診斷。
網(wǎng)絡(luò)管理員需要明白的是,UDLD并不是交換機(jī)原有診斷體系的補(bǔ)充,而是一種獨(dú)立的診斷方法。也就是說(shuō),它是從另一個(gè)角度對(duì)交換機(jī)各個(gè)端口的運(yùn)行狀態(tài)進(jìn)行自我診斷。兩者之間基本上沒有沖突或者重疊的地方。在實(shí)際工作中,傳統(tǒng)的診斷方法與UDLD模式經(jīng)常是同時(shí)使用。
二、合理配置UDLD模式下的各種參數(shù)
如果同時(shí)啟用了UDLD協(xié)議與自動(dòng)協(xié)商機(jī)制,就啟動(dòng)了UDLD模式,在這種情況下,交換機(jī)的某個(gè)接口會(huì)定期的向鄰近的端口發(fā)送UDLD協(xié)議數(shù)據(jù)報(bào)。在正常情況下,交換機(jī)的這個(gè)接口會(huì)在預(yù)定計(jì)時(shí)器到期之前接收到回應(yīng)的數(shù)據(jù)包。如果在這個(gè)計(jì)時(shí)器到期之前,交換機(jī)發(fā)送UDLD數(shù)據(jù)包的接口還沒有收到回應(yīng)信息,則UDLD協(xié)議就會(huì)認(rèn)為出現(xiàn)了故障,即發(fā)生了單向鏈路的故障(其實(shí)更加精確的說(shuō),應(yīng)該是自動(dòng)協(xié)商發(fā)現(xiàn)了這個(gè)故障并告知了UDLD協(xié)議)。當(dāng)UDLD知道這種情況后,會(huì)馬上關(guān)閉有問(wèn)題的交換機(jī)接口。
在UDLD配置的時(shí)候,首先需要考慮這個(gè)計(jì)時(shí)器。也就是說(shuō),將這個(gè)時(shí)間設(shè)置為多少為好。如果時(shí)間設(shè)置的比較短,不僅會(huì)造成不必要的數(shù)據(jù)流量,而且也有可能因?yàn)閿?shù)據(jù)延遲等原因?qū)е聼o(wú)法在合理的時(shí)間內(nèi)接到回應(yīng)的數(shù)據(jù)包。而如果將這個(gè)計(jì)時(shí)器的時(shí)間設(shè)置的比較長(zhǎng)的話,那么就可能無(wú)法在短時(shí)間內(nèi)發(fā)現(xiàn)問(wèn)題。要知道,可能一分鐘對(duì)于用戶來(lái)說(shuō),沒有多少感覺。但是對(duì)于數(shù)據(jù)網(wǎng)絡(luò)傳輸來(lái)說(shuō),這個(gè)時(shí)間就很長(zhǎng)了。默認(rèn)情況下,這個(gè)計(jì)時(shí)器是15秒。在實(shí)際工作中,網(wǎng)絡(luò)管理員可能需要根據(jù)不同的情況來(lái)合理設(shè)置這個(gè)參數(shù)。如需要根據(jù)企業(yè)網(wǎng)絡(luò)的復(fù)雜情況、布線的長(zhǎng)短來(lái)考慮。如根據(jù)以前的情況,企業(yè)可能經(jīng)常會(huì)遇到網(wǎng)絡(luò)堵塞等情況,而這種堵塞也是暫時(shí)的,那么要適當(dāng)延長(zhǎng)這個(gè)計(jì)時(shí)器等等。筆者的建議是在剛開始的時(shí)候可以將這個(gè)計(jì)時(shí)器設(shè)置的長(zhǎng)一點(diǎn),然后慢慢的減短。最后得到一個(gè)合理的數(shù)值。
三、提高端口的適用性
在采用普通接口的情況下,當(dāng)某個(gè)接口因?yàn)榻邮詹坏経DLD回應(yīng)消息時(shí),接口就會(huì)關(guān)閉。這也有一種缺陷。如企業(yè)可能會(huì)有網(wǎng)絡(luò)擁塞,如因?yàn)榕R時(shí)備份等等導(dǎo)致?lián)砣鹊。此時(shí)在發(fā)送端可能無(wú)法在計(jì)時(shí)器到期之前收到回應(yīng)的信息。那么遇到這種情況時(shí),如果將交換機(jī)的端口就設(shè)置為關(guān)閉,顯然就會(huì)引起不比要的麻煩。網(wǎng)絡(luò)管理員希望能夠給網(wǎng)絡(luò)“改錯(cuò)”的機(jī)會(huì)。為此在原有UDLD模式的基礎(chǔ)上,思科交換機(jī)又提出了積極UDLD模式的概念。兩個(gè)模式的差異主要就在于后者給了網(wǎng)絡(luò)一個(gè)改錯(cuò)的機(jī)會(huì)。
在積極UDLD模式下,當(dāng)交換機(jī)接口發(fā)現(xiàn)無(wú)法正常收到UDLD回應(yīng)信息的時(shí)候,并不會(huì)馬上將這個(gè)端口設(shè)置為關(guān)閉狀態(tài),而會(huì)繼續(xù)發(fā)送UDLD數(shù)據(jù)包。通常情況下,UDLD數(shù)據(jù)包會(huì)發(fā)送八次。如故發(fā)送八次之后仍然無(wú)法收到UDLD數(shù)據(jù)包的話,那么UDLD協(xié)議就會(huì)將這個(gè)端口狀態(tài)改為Err-disable狀態(tài)。如果在這個(gè)間斷的時(shí)間內(nèi),發(fā)送端口能夠收到任何一個(gè)回應(yīng)信息,就會(huì)認(rèn)為是正常的。很顯然,如果采用積極UDLD模式,就可能有效的避免因?yàn)榫W(wǎng)絡(luò)擁塞而導(dǎo)致的誤判問(wèn)題。
采用積極UDLD模式的另外一個(gè)原因就是路由黑洞。什么叫做路由黑洞呢?這個(gè)定義不怎么好說(shuō),筆者就舉一個(gè)例子。如第3層或者路由接口正在經(jīng)歷單向鏈路時(shí),此時(shí)接口匯保持在UP狀態(tài),所以交換機(jī)就會(huì)繼續(xù)將流量轉(zhuǎn)換到這個(gè)接口。但是最終的結(jié)果是數(shù)據(jù)包將永遠(yuǎn)達(dá)不到遠(yuǎn)端設(shè)備的對(duì)應(yīng)接口之上。這就是路由黑洞的一個(gè)簡(jiǎn)單例子。如果采用傳統(tǒng)的UDLD模式,還不能夠很好的避免這種情況下。相反,如果采用積極UDLD模式,就可以有效的避免路由黑洞導(dǎo)致的網(wǎng)絡(luò)故障。
積極的UDLD模式除了在發(fā)送信息的次數(shù)上比較特殊之外,還有以下兩個(gè)特殊的地方。一是當(dāng)鏈路的一側(cè)端口發(fā)送擁塞時(shí),積極模式的UDLD協(xié)議也會(huì)將端口設(shè)置為Error狀態(tài),并顯示相關(guān)的措施信息。而采用傳統(tǒng)UDLD模式對(duì)這種情況不會(huì)有任何反應(yīng)。二是當(dāng)鏈路的一側(cè)端口處于UP狀態(tài),而另一側(cè)處于Down狀態(tài)時(shí),如果采用的是積極UDLD模式,則會(huì)顯示錯(cuò)誤信息,并將端口設(shè)置為錯(cuò)誤狀態(tài)。而如果采用傳統(tǒng)UDLD模式的話,則不會(huì)有任何反應(yīng)。這也正是筆者上面所講的通過(guò)積極UDLD模式來(lái)解決上路有黑洞的原因。
四、故障恢復(fù)后重新啟動(dòng)交換機(jī)接口
無(wú)論采用的是傳統(tǒng)的UDLD模式,還是采用的是積極的UDLD模式,有一個(gè)共同點(diǎn),即只要將端口設(shè)置為Error-disable狀態(tài)后,即使故障解決了,交換機(jī)也無(wú)法自動(dòng)恢復(fù)接口。換句話說(shuō),當(dāng)出現(xiàn)這種情況時(shí),網(wǎng)絡(luò)管理員需要手工恢復(fù)接口。一般的做法是,先將端口利用命令shutdown關(guān)閉掉,然后再利用命令no shutdown進(jìn)行啟用。
總之,只要交換機(jī)支持,就啟用UDLD模式,甚至可以啟用積極UDLD模式,就可以有效的避免單向鏈路的誤診情況。特別是采用積極模式的UDLD,那么路由黑洞這個(gè)網(wǎng)絡(luò)難題也可以迎刃而解。