對以太網(wǎng)交換機常見問題詳解
我們把該接入以太網(wǎng)交換機上的網(wǎng)線都拔掉,以太網(wǎng)交換機的100BASE-FX端口轉(zhuǎn)發(fā)線速可達(dá)144000pps。在這種網(wǎng)絡(luò)環(huán)路狀態(tài)下,用戶可以輕輕松松的工作和生活了。
一天,我們在校園網(wǎng)的網(wǎng)絡(luò)運行性能監(jiān)控平臺上發(fā)現(xiàn)某棟摟的VLAN有問題——其接入交換機與校園網(wǎng)的連接中斷。檢查放置在網(wǎng)絡(luò)中心的匯聚交換機,測得與之相連的100BASE-FX端口有大量的入流量。
出流量卻非常少,顯得很不正常。然而這臺匯聚以太網(wǎng)交換機的性能似乎還行,感覺不到有什么問題。于是,我們在這臺匯聚交換機上鏡像這個異常端口,用協(xié)議分析工具Sniffer來抓包,最多時每秒鐘居然能抓到10萬多個。對這些數(shù)據(jù)包進(jìn)行簡單分析,我們發(fā)現(xiàn)其中一些共同特征。
當(dāng)時,我們急于盡快搶修網(wǎng)絡(luò),沒去深究這些數(shù)據(jù)包的特征,只看到第1點就以為網(wǎng)絡(luò)受到不明來歷的Syn Flood攻擊,估計是由一種新網(wǎng)絡(luò)病毒引起,馬上把這臺匯聚交換機上該端口禁用掉,以免造成網(wǎng)絡(luò)性能的下降。
故障排除
為了能在現(xiàn)場測試網(wǎng)絡(luò)的連通性,在網(wǎng)絡(luò)中心,我們把連接那棟大樓接入以太網(wǎng)交換機的多模尾纖經(jīng)光電轉(zhuǎn)換器用雙絞線連到一臺PC上,并將其模擬成那個問題 VLAN的網(wǎng)關(guān)。然后,到現(xiàn)場找來大樓網(wǎng)管員,想讓他協(xié)助我們盡快把感染了未知病毒的主機查到并隔離。
據(jù)大樓網(wǎng)管員反映,昨天網(wǎng)絡(luò)還算正常,不過,當(dāng)時本大樓某部門正在做網(wǎng)絡(luò)調(diào)整,今天上班就發(fā)現(xiàn)網(wǎng)絡(luò)不行了,不知跟他們有沒有關(guān)系。我們認(rèn)為調(diào)整網(wǎng)絡(luò)應(yīng)該跟感染病毒關(guān)系不大。
在大樓主配線間,我們把該接入以太網(wǎng)交換機上的網(wǎng)線都拔掉,接上手提電腦,能連通網(wǎng)絡(luò)中心的測試主機。我們確認(rèn)鏈路沒問題后,每次將剩余網(wǎng)線數(shù)量的一半插回該交換機,經(jīng)測試沒問題則如是繼續(xù)下去,否則換插另一半,逐漸縮小懷疑有問題網(wǎng)線的數(shù)量。
我們最終找到一條會引起問題的網(wǎng)線,只要插上這根網(wǎng)線,該大樓網(wǎng)絡(luò)就會與模擬網(wǎng)關(guān)中斷連接。經(jīng)大樓網(wǎng)管員辨認(rèn),這條網(wǎng)線是連接昨天在做網(wǎng)絡(luò)調(diào)整的那個部門的。他還說以前該部們拉了一主一備兩條網(wǎng)線。
應(yīng)該還有一條,并親自在那臺交換機上把另一條找了出來。隨意插上這兩條網(wǎng)線中的一條,網(wǎng)絡(luò)沒問題,但只要同時插上,就有問題,哪有在一臺交換機上同時插上兩條網(wǎng)線才會激活網(wǎng)絡(luò)病毒的SYN Flood攻擊的?
這時我們倒是覺得這種現(xiàn)象更像是網(wǎng)絡(luò)中有環(huán)路。我們到了那個部門發(fā)現(xiàn)有三臺非管理型交換機,都是串在一起的,然而其中兩臺又分別通過那兩條網(wǎng)線與接入交換機相連,從而導(dǎo)致了網(wǎng)絡(luò)環(huán)路。
顯然是施工人員對網(wǎng)絡(luò)拓?fù)洳磺宄?,?dāng)時大樓網(wǎng)管員有事外出,就自以為是地把線接錯了,從而造成了這起網(wǎng)絡(luò)事故。原因找到就好辦了,只需拔掉其中一條上聯(lián)網(wǎng)線即可恢復(fù)網(wǎng)絡(luò)連通。 經(jīng)過一番周折,網(wǎng)絡(luò)恢復(fù)了正常,但我們還一直在想,是什么干擾了我們的判斷呢?
故障分析
一起典型的網(wǎng)絡(luò)環(huán)路故障,用協(xié)議分析工具Sniffer抓了這么多的數(shù)據(jù)包,經(jīng)過一番分析卻沒看出問題來。顯然,第一眼看到大量的SYN包讓我們產(chǎn)生了錯覺,想當(dāng)然地就以為是SYN Flood攻擊。
事后,我們就這起網(wǎng)絡(luò)環(huán)路故障排除過程做了檢討,重新仔細(xì)地分析抓回來的這些數(shù)據(jù)包,據(jù)此解釋一下前面提到這些數(shù)據(jù)包所具有的5個共同特征,以便今后遇到同類問題時能及時作出正確的反應(yīng)。
先看前4個特征:匯聚以太網(wǎng)交換機是網(wǎng)絡(luò)層設(shè)備,該大樓所屬VLAN的網(wǎng)絡(luò)層接口就設(shè)置在這臺匯聚交換機上,出于實施網(wǎng)絡(luò)管理策略的需要,對已注冊或沒注冊的 IP地址都進(jìn)行了MAC地址的綁定。
TCP連接要經(jīng)過3次握手才能建立起來,在這里發(fā)起連接的SYN包長度為28個字節(jié),加上14個字節(jié)的以太幀頭部和 20個字節(jié)的IP報頭,由Sniffer捕獲到的幀長度共為62個字節(jié)(不包含4字節(jié)的差錯檢測FCS域)。
恰巧當(dāng)時訪問該VLAN的單播幀是來自外網(wǎng)的 TCP請求包,根據(jù)以太網(wǎng)橋的轉(zhuǎn)發(fā)機制,通過CRC正確性檢測后,因已做靜態(tài)ARP配置,這臺匯聚交換機會將該單播幀的源MAC地址轉(zhuǎn)換成本機的MAC地址,其目的MAC地址依據(jù)綁定參數(shù)來更換,并重新計算CRC值,更新FCS域,經(jīng)過這樣重新封裝后,再轉(zhuǎn)發(fā)到那棟樓的接入交換機。
再看最后1個特征:網(wǎng)橋是一種存儲轉(zhuǎn)發(fā)設(shè)備,用來連接相似的局域網(wǎng)。這些網(wǎng)橋在所有端口上監(jiān)聽著傳送過來的每一個數(shù)據(jù)幀,利用橋接表作為該數(shù)據(jù)幀的轉(zhuǎn)發(fā)依據(jù)。橋接表是MAC地址和用于到達(dá)該地址的端口號的一個“MAC地址-端口號”列表,它利用數(shù)據(jù)幀的源MAC地址和接收該幀的端口號來刷新。
網(wǎng)橋是這樣來使用橋接表的:當(dāng)網(wǎng)橋從一個端口接收到一個數(shù)據(jù)幀時,會先刷新橋接表,再在其橋接表中查找該幀的目的MAC地址。如果找到,就會從對應(yīng)這個MAC地址的端口轉(zhuǎn)發(fā)該幀(如果這個轉(zhuǎn)發(fā)端口與接收端口是相同,就會丟棄該幀)。
如果找不到,就會向除了接收端口以外的其他端口轉(zhuǎn)發(fā)該幀,即廣播該幀。這里假定在整個轉(zhuǎn)發(fā)過程中,網(wǎng)橋A、B、C和D都在其橋接表中查找不到該數(shù)據(jù)幀的目的MAC地址,即這些網(wǎng)橋都不知道應(yīng)該從哪個端口轉(zhuǎn)發(fā)該幀。
當(dāng)網(wǎng)橋A從上聯(lián)端口接收到一個來自上游網(wǎng)絡(luò)的單播幀時,會廣播該幀,網(wǎng)橋B、C收到后也會廣播該幀,網(wǎng)橋D收到分別來自網(wǎng)橋B、C的這個單播幀,并分別經(jīng)網(wǎng)橋C、B傳送回網(wǎng)橋 A,到此網(wǎng)橋A收到了該單播幀的兩個副本。
在這樣的循環(huán)轉(zhuǎn)發(fā)過程中,網(wǎng)橋A不停地在不同端口(這時已經(jīng)不涉及上聯(lián)端口了)接收到相同的幀,由于接收端口在改變,橋接表也在改變“源MAC-端口號”的列表內(nèi)容。前面已經(jīng)假定網(wǎng)橋的橋接表中沒有該幀的目的MAC地址,網(wǎng)橋A在分別收到這兩個單播幀后,都只能再次向除了接收端口以外的其他端口廣播該幀,故該幀也會向上聯(lián)端口轉(zhuǎn)發(fā)。
就每個單播幀而言,網(wǎng)橋A重復(fù)前面提到的過程,理論上,廣播一次會收到21個幀,廣播兩次就會收到22個幀,…,廣播到第n次就會收到2n個幀。總之,網(wǎng)橋A照這樣轉(zhuǎn)發(fā)下去,很快就會形成廣播風(fēng)暴,這個單播幀的副本最終會消耗完100BASE-X端口帶寬。
盡管在這期間上聯(lián)端口會有許多數(shù)據(jù)幀在相互碰撞而變的不完整,令Sniffer捕獲不到,但可以想象得到這個單播幀的重復(fù)出現(xiàn)次數(shù)仍然會非常多。我們再次檢查那些抓回來的數(shù)據(jù)包。
幾乎都發(fā)現(xiàn)有當(dāng)時沒有注意到的重復(fù)標(biāo)志。按64字節(jié)包長來計算,以太網(wǎng)交換機的100BASE-FX端口轉(zhuǎn)發(fā)線速可達(dá)144000pps。在這種網(wǎng)絡(luò)環(huán)路狀態(tài)下, Sniffer完全有可能每秒抓到10萬多個包長為66字節(jié)的數(shù)據(jù)包
【編輯推薦】