郭 琪
(南京郵電大學自動化學院,江蘇 南京)
1996年千兆以太網上市,仍然使用CSMA/CD協議與已有的以太網兼容,使得以太網在局域網的領域里,更具有競爭力。隨著以太網的發展,大量基于二層的網絡組網方式出現,網絡上的設備如交換機,路由器,集線器等基礎設施,應用環境也越來越復雜。在這種情況下,利用虛擬局域網VLAN(Virtual Local Area Network)技術,可以將網絡劃分為多個邏輯子網,起到隔離沖突域與廣播域的作用。但是,同屬于一個VLAN的網絡中,交互式的鏈路出現環路,會導致廣播風暴的產生、幀的重復復制、交換機地址表不穩定,引起網絡通訊受阻,系統反應遲緩,并最終導致網絡癱瘓。所以,環路檢測機制尤為重要。
在二層交換中,通過MAC(Media Access Control)地址尋址來進行報文的轉發。二層設備的MAC地址學習是通過對報文源MAC地址的學習來進行的。當端口收到一個未知源MAC地址的報文,會將這個MAC地址存入 FDB(Forwarding Data Base)地址表項中,其中包括端口號、源MAC地址、VLAN ID等。在正常的老化時間內,設備沒有改地址的報文傳輸,則該地址表項就會被刪除。另一種情況,如果已經學習的源MAC地址,但是源端口不一致則更新地址表。因此,當鏈路上存在環路時,經過一段時間,所有的MAC地址都移動到了存在環回的端口上,形成廣播風暴,導致二層網絡癱瘓。
單端口環路檢測機制通過在設備的端口上發送一種特殊的報文,并檢測是否能從發送端口接收回來,以此來確定這個端口上是否有環回的情況。因為網絡處于一個隨時隨地都在變化的過程,所以端口檢測不是一次性完成的動作,而是需要在每隔一定的時間進行一次檢測,來確定開啟環路檢測的端口上是否存在環回以及已存在的環回是否已經消失的情況。顯然,環路檢測是通過設備的CPU來進行報文的收發,因此CPU對于所收到的報文,通過報文檢測與識別的過程,來確定是否是本CPU發出的報文以及是哪個端口發送的報文。交換機的發送的檢測報文中含有三個參數:第一,源MAC地址為本交換的的MAC地址(每個交換機的MAC地址是唯一的);第二,發送端口的端口號,用以判斷是否于接收此報文的端口一致;第三,VLAN號,與端口在交換機上使能環路檢測的VLAN號一一對應。當端口發出和收到的報文中這三個參數完全相同,即可確定該端口存在環路。通過軟件控制使端口暫時受控關閉,待端口環回消失,再重新使能該端口。
單端口環路檢測的缺陷在于,只能檢測一個端口的下連接網絡是否有環路,若交換機兩個端口互聯或者兩個端口通過網絡形成互聯,則無法檢測出來。基于這種考慮,提出交換機擴展端口環路檢測機制。
擴展端口環路檢測機制設定有兩個端口,在這兩個端口上可能發生單端口的環回,也可能發生通過網絡互聯或者直連的情況。設定兩個端口,分別稱為主端口和從端口,其中對這兩個單端口上的環路檢測原理不變,即分別從這兩個端口持續每隔5s(缺省值,實際取值范圍1s~300s)發一次檢測報文,報文中包括以下三個參數,源MAC地址為本交換機的MAC地址,發送端口的端口號,以及VLAN號。若在這兩個端口的任何一個收到了本端口發出的檢測報文,即以上三個參數完全相同,則使端口處于受控的狀態,狀態持續5min(缺省值,實際取值范圍1min~10min)直到單端口環回消失,再重新使能該端口。如果主端口收到了從端口發出的檢測報文,或者從端口收到了主端口發送的檢測報文,即報文的源MAC地址為本交換機的MAC地址,主端口收到報文的端口號為從端口的端口號,從端口收到報文的端口號為主端口的端口號,且VLAN號一致。說明主從端口直接或間接互聯形成環路,則使主端口處于受控關閉狀態,關閉的時間設定為5min(缺省值,實際取值范圍1min~10min)。受控狀態結束口,重新發檢測報文,若仍存在環回,則主端口繼續受控關閉,環回消失,則使能主端口。
在交換機的端口1,端口2開啟擴展的環路檢測功能,端口1為主端口,端口2為從端口,檢測報文的發送間隔為5s,每次若檢測到有環路產生,則主端口受控的時間為5min。在端口1插自環水晶頭,則交換機阻塞端口1,端口2無變化;在端口2插自環水晶頭,則交換機阻塞端口2,端口1無變化;將端口1,端口2同時插自環水晶頭,交換機將兩個端口全部阻塞。
采用如圖1所示的網絡拓撲結構,交換機1開啟環路檢測功能,端口1為主端口,端口2為從端口,檢測報文的發送間隔為5s,每次若檢測到有環路產生,則主端口受控的時間為5min。其余交換機未開啟環路檢測功能,且所有端口均屬于vlan100,這樣認為形成一個環路。交換機1檢測到了端口1和端口2之間有環路,并使主端口處于受控狀態,環路消失。在開啟環路檢測的交換機1上顯示環路檢測的狀態如圖2所示。交換機檢測到有環網,并將主端口1處于受控狀態,此時,環路消失,從端口2顯示無環網。

圖1 環路檢測的第一種網絡拓撲結構
本文介紹了一種擴展的環路檢測方法,通過交換機的CPU來識別交換機的兩個端口之間是否形成環網,屬于單端口檢測功能的擴展,彌補了單端口檢測僅僅能檢測到一個端口上有環網的情況,有效地防止了廣播風暴的產生。
[1] 唐勇.交換機端口環路檢測功能的有效性研究[J].重慶工商大學學報(自然科學版),2010,27(3),15-18.
[2] 米利波,譚立偉.以太局域網中廣播風暴的分析與預防[J].渝西學院學報(自然科學版),2002,1(3)53-56.
[3] 楊茹.以太網絡環境的廣播風暴的防治[J].黑龍江工程學院學報(自然科學版),2006,20(04),45-48.
[4] 張應輝.路由器交換機原理及應用[M].北京:科學出版社,2006.
[5] 馬穎.VLAN技術及其在校園網中的應用[J].鄭州鐵路職業技術學院學報,2004,16(3),63-66.
[6] 梅紅嶺.VLAN技術及應用[J].計算機周刊,1999,(17),22-23.
[7] 高林,馬永強,李輝,唐六華.VLAN的局限性及其發展[J].通信與信息技術,2005,(01),31-33.
[8] 王鈞,楊善林.VLAN技術在網絡中的應用[J]電腦與信息技術,2000,(02),1-3.
[9] 虞琦.Packet over SDH和VLAN[J].電信網技術,2000,(05),36-41.