專利名稱:一種網(wǎng)絡(luò)接入設(shè)備lan側(cè)環(huán)路檢測與控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及局域網(wǎng)技術(shù)領(lǐng)域,特別涉及網(wǎng)絡(luò)接入設(shè)備LAN側(cè)環(huán)路檢測與控制方法。
背景技術(shù):
網(wǎng)絡(luò)接入設(shè)備一側(cè)是WAN側(cè),另一側(cè)是LAN側(cè),它是將LAN與WAN連接的設(shè)備,將網(wǎng)絡(luò)接入設(shè)備的WAN側(cè)為上行側(cè),LAN側(cè)為下行側(cè),LAN 一側(cè)的端口稱為下行端口。在用戶多臺網(wǎng)絡(luò)接入設(shè)備組成的網(wǎng)絡(luò)拓撲中,下行端口一旦連線不當極容易在設(shè)備之間產(chǎn)生環(huán)路,如果設(shè)備處于環(huán)路狀態(tài),報文將會不斷地在設(shè)備中循環(huán)接收與轉(zhuǎn)發(fā),從而必將導致環(huán)路風暴,而一旦環(huán)路風暴形成,設(shè)備的CPU將疲于接收與轉(zhuǎn)發(fā)少則數(shù)萬每秒多則數(shù)百萬每秒的數(shù)據(jù)報文,而無暇處理正常通信的網(wǎng)絡(luò)報文。兩種常見的會導致網(wǎng)絡(luò)接入設(shè)備環(huán)路的網(wǎng)絡(luò)拓撲包括
設(shè)備端口自環(huán),其中端口可以是同一個端口,或者是同一個設(shè)備下的兩個不同端口。同一個端口導致的自環(huán)一般是由于設(shè)置了設(shè)備芯片的寄存器導致,在日常應(yīng)用中用戶一般不會涉及到此專業(yè)類操作。而不同端口的自環(huán)則可以輕易做到,如一根網(wǎng)線將設(shè)備不同的兩個下行A與B端口對接起來。即設(shè)備從A端口發(fā)出去的數(shù)據(jù)報文又原封不動的通過B端口收上來。設(shè)備下掛交換機或者集線器自環(huán),這種環(huán)路是最常見的,另外這種環(huán)路還存在隱蔽性,不輕易被發(fā)現(xiàn)。如果設(shè)備下掛的交換機自身沒有環(huán)路風暴隔離的功能,而剛巧下掛的交換機或者集線器本身已經(jīng)產(chǎn)生環(huán)路了,對于設(shè)備來說,從某一端口發(fā)出去的數(shù)據(jù)報文在交換機或者集線器HUB中繞了一周再從同樣端口進來。以上兩種環(huán)路情況從某個端口收上來的數(shù)據(jù)包,如果不加以判斷且沒有相關(guān)措施的限制與防范,同樣的數(shù)據(jù)報文將還會通過前一次的方法以及途徑轉(zhuǎn)發(fā)出去,結(jié)果是同樣的數(shù)據(jù)報文從相同或者不同的端口再次被接收,如此循環(huán)即導致環(huán)路風暴,影響正常網(wǎng)絡(luò)通信。
發(fā)明內(nèi)容
為解決目前網(wǎng)絡(luò)拉入設(shè)備LAN側(cè)端口可能環(huán)路帶來的環(huán)路風暴,影響正常網(wǎng)絡(luò)通信的不足,本發(fā)明提供一種網(wǎng)絡(luò)接入設(shè)備LAN側(cè)環(huán)路檢測與控制方法。本發(fā)明為了完成其技術(shù)目的所采用的技術(shù)方案是一種網(wǎng)絡(luò)接入設(shè)備LAN側(cè)環(huán)路檢測與控制方法,包括以下步驟,
A、設(shè)備初始化時將被檢測的網(wǎng)絡(luò)接入設(shè)備的所有下行端口設(shè)置成相同的MAC地址,在系統(tǒng)運行過程中,所有下行端口的MAC地址保持一樣不做改變;
B、每隔設(shè)定時間TME1,由應(yīng)用層進程即時產(chǎn)生的環(huán)路探測報文經(jīng)由網(wǎng)絡(luò)接入設(shè)備任一下行端口向LAN廣播發(fā)送環(huán)路探測報文;
C、系統(tǒng)內(nèi)核鏈路層通過循環(huán)檢查每一個達到系統(tǒng)網(wǎng)絡(luò)協(xié)議棧的以太網(wǎng)報文,若發(fā)現(xiàn)該以太網(wǎng)報文的源MAC地址為下行端口的MAC地址則認為設(shè)備處于環(huán)路之中,內(nèi)核中鏈路層轉(zhuǎn)入步驟D,否則對所接收報文不做處理,內(nèi)核鏈路層繼續(xù)負責所有端口數(shù)據(jù)報文的收發(fā)工作,應(yīng)用層進程轉(zhuǎn)向步驟B ;
D、內(nèi)核鏈路層將所有收到環(huán)路探測報文的端口和發(fā)送環(huán)路探測報文的端口關(guān)閉,關(guān)閉后繼續(xù)負責其他未關(guān)閉端口數(shù)據(jù)報文的收發(fā)工作,應(yīng)用層進程轉(zhuǎn)向步驟E ;
E、關(guān)閉端口即切斷設(shè)備的環(huán)路狀態(tài),應(yīng)用層進程等待設(shè)定時間TIME2后,將關(guān)閉的端口重新打開,跳轉(zhuǎn)到步驟B。本發(fā)明通過由網(wǎng)絡(luò)接入設(shè)備從LAN側(cè)的任一下行端口廣播環(huán)路探測報文,然后通過檢測所有的下行端口是否收到該探測報文來判斷是否存在環(huán)路,當存在環(huán)路時有效地將環(huán)路狀態(tài)進行屏蔽,可以基本杜絕網(wǎng)絡(luò)接入設(shè)置LAN 側(cè)陷入到環(huán)路風暴的危險。下面通過結(jié)合具體實施例和附圖對本發(fā)明進行進一步的說明。
附圖I是本發(fā)明實施例I流程圖。
具體實施例方式如圖I所示,本實施例是在網(wǎng)絡(luò)接入設(shè)備中,對LAN側(cè)是否存在環(huán)路進行檢測,并對如果存在的環(huán)路進行控制的方法。該方法依賴特定的以太網(wǎng)網(wǎng)絡(luò)協(xié)議報文和平臺及其配套軟件程序指令完成。環(huán)路檢測與控制程序包括網(wǎng)絡(luò)應(yīng)用層發(fā)報文模塊與網(wǎng)絡(luò)鏈路層環(huán)路檢測與屏蔽模塊。其中LAN側(cè)即設(shè)備下行方向側(cè)檢測與控制環(huán)路的步驟設(shè)備硬件初始化過程將設(shè)備多個網(wǎng)絡(luò)下行端口設(shè)置相同的MAC地址,以后每隔一段特定時間由網(wǎng)絡(luò)應(yīng)用層程序產(chǎn)生特定的具有廣播特性的環(huán)路探測報文后,經(jīng)由設(shè)備每個不同的網(wǎng)絡(luò)下行端口發(fā)送出。I、設(shè)備每隔一段特定時間由環(huán)路檢測控制程序網(wǎng)絡(luò)應(yīng)用層模塊產(chǎn)生一個特定的具有廣播特性的環(huán)路探測報文(以下簡稱報文),經(jīng)由設(shè)備上不同網(wǎng)絡(luò)下行端口發(fā)送出去。2、根據(jù)每個網(wǎng)絡(luò)下行端口是否收到之前由設(shè)備本身其他網(wǎng)絡(luò)下行端口發(fā)送出的數(shù)據(jù)報文或者自己本身端口發(fā)送出去的環(huán)路探測報文,以判斷運行此系統(tǒng)的設(shè)備是否處于環(huán)路狀態(tài)。3、如果檢測到設(shè)備處于環(huán)路狀態(tài),則控制屏蔽環(huán)路狀態(tài)。在環(huán)路檢測與控制程序啟動之前,為保證有效檢測與控制環(huán)路,先將設(shè)備所有網(wǎng)絡(luò)端口關(guān)閉,即設(shè)備上所有網(wǎng)路端口在關(guān)閉狀態(tài)時無法發(fā)送與接收以太網(wǎng)報文。用于探測的報文由網(wǎng)絡(luò)應(yīng)用層模塊發(fā)出,設(shè)備判斷與控制環(huán)路狀態(tài)由鏈路層模塊完成。應(yīng)用層模塊發(fā)送的探測報文經(jīng)設(shè)備的其中一個網(wǎng)絡(luò)端口發(fā)送出去后,如果再次被設(shè)備網(wǎng)絡(luò)端口接收,環(huán)路探測報文將在鏈路層模塊判斷識別。步驟3中,如果檢測與控制環(huán)路應(yīng)用層模塊SOCKET接收套接字沒有收到任何報文,則進程阻塞在接收SOCKET上,直至超時進入下個循環(huán)。環(huán)路檢測與屏蔽模塊中判斷是否環(huán)路標準是分析數(shù)據(jù)報文的發(fā)送源是否與設(shè)備的下行端口一致,該數(shù)據(jù)報文接收端口是否在設(shè)備的上下行端口中切換。本方法適用于大多網(wǎng)絡(luò)接入設(shè)備平臺,能夠有效檢查與排除網(wǎng)絡(luò)接入設(shè)備下行一側(cè)網(wǎng)絡(luò)環(huán)路狀態(tài)。其工作的步驟如下
I:設(shè)備通電,裝載相應(yīng)的操作系統(tǒng)。2:初始化相應(yīng)的外設(shè),包括設(shè)備所有的下行端口,網(wǎng)絡(luò)初始化完畢后需要立即將設(shè)備所有下行端口禁用,準備加載環(huán)路監(jiān)控相應(yīng)模塊,防止在環(huán)路監(jiān)控模塊運行之前產(chǎn)生環(huán)路。3 :啟用環(huán)路監(jiān)控鏈路層模塊, 應(yīng)用層模塊。4 :重新激活所有下行端口,以便環(huán)路監(jiān)控應(yīng)用層模塊能通過下行端口發(fā)送環(huán)路探測報文。5 :判斷是否需要退出環(huán)路監(jiān)控?原因有用戶刻意取消環(huán)路監(jiān)控功能;任務(wù)退出
坐寸o6:如果當前有關(guān)閉的下行端口,應(yīng)用層進程等待特定時間TIME2后,應(yīng)用層進程重新激活標記為禁止的下行端口。如果當前沒有關(guān)閉的下行端口,應(yīng)用層進程等待時間TIMEl0其中TMEl表示在沒有檢測到環(huán)路的情況下,應(yīng)用層進程發(fā)送環(huán)路探測報文的間隔時間。TIME2表示在檢測到存在環(huán)路檢測的情況下,應(yīng)用層進程重新打開激活之前被關(guān)閉的端口并發(fā)送環(huán)路探測報文的間隔時間。TMEl和TME2根據(jù)需要可以在應(yīng)用過程中設(shè)定,可以是毫秒極或者秒級,且TMEl和TME2可以相等地,也可以不等。總之TMEl和TME2可以在實際應(yīng)用中設(shè)定的。7:應(yīng)用層進程通過向所有下行端口發(fā)送環(huán)路探測報文后,進程阻塞在網(wǎng)絡(luò)接收套接字上。8 :如果應(yīng)用層進程阻塞超時,應(yīng)用層跳轉(zhuǎn)到步驟6執(zhí)行。9 :如在第8步等待超過過程中,在鏈路層中如果接收到環(huán)路探測報文,即判斷設(shè)備收到該報文的端口的已經(jīng)處于環(huán)路鏈路中,如果端口處于環(huán)路,則此端口必須關(guān)閉以阻止環(huán)路風暴的產(chǎn)生,并且此端口需要標記為禁止的下行端口,以便在第6步中能被再次激活。
權(quán)利要求
1.一種網(wǎng)絡(luò)接入設(shè)備LAN側(cè)環(huán)路檢測與控制方法,其特征在于包括以下步驟, A、設(shè)備初始化時將被檢測的網(wǎng)絡(luò)接入設(shè)備的所有下行端口設(shè)置成相同的MAC地址,在系統(tǒng)運行過程中,所有下行端口的MAC地址保持一樣不做改變; B、每隔設(shè)定時間 ΜΕ1,由應(yīng)用層進程即時產(chǎn)生的環(huán)路探測報文經(jīng)由網(wǎng)絡(luò)接入設(shè)備任一下行端口向LAN廣播發(fā)送環(huán)路探測報文; C、系統(tǒng)內(nèi)核鏈路層通過循環(huán)檢查每一個達到系統(tǒng)網(wǎng)絡(luò)協(xié)議棧的以太網(wǎng)報文,若發(fā)現(xiàn)該以太網(wǎng)報文的源MAC地址為下行端口的MAC地址則認為設(shè)備處于環(huán)路之中,內(nèi)核中鏈路層轉(zhuǎn)入步驟D,否則對所接收報文不做處理,內(nèi)核鏈路層繼續(xù)負責所有端口數(shù)據(jù)報文的收發(fā)工作,應(yīng)用層進程轉(zhuǎn)向步驟B; D、內(nèi)核鏈路層將所有收到環(huán)路探測報文的端口和發(fā)送環(huán)路探測報文的端口關(guān)閉,關(guān)閉后繼續(xù)負責其他未關(guān)閉端口數(shù)據(jù)報文的收發(fā)工作,應(yīng)用層進程轉(zhuǎn)向步驟E ; E、關(guān)閉端口即切斷設(shè)備的環(huán)路狀態(tài),應(yīng)用層進程等待設(shè)定時間TIME2后,將關(guān)閉的端口重新打開,跳轉(zhuǎn)到步驟B。
2.根據(jù)權(quán)利要求I所述的網(wǎng)絡(luò)接入設(shè)備LAN側(cè)環(huán)路檢測與控制方法,其特征在于所述的環(huán)路探測報文是由系統(tǒng)應(yīng)用層模塊產(chǎn)生帶有“LOOPBACK”內(nèi)容的UDP協(xié)議的IP報文,所述的環(huán)路探測報文的目的MAC地址以及IP地址均為廣播地址。
全文摘要
本發(fā)明提供了一種網(wǎng)絡(luò)接入設(shè)備LAN側(cè)環(huán)路檢測與控制方法,此方法依賴特定的以太網(wǎng)網(wǎng)絡(luò)協(xié)議報文和支持TCP/UDP協(xié)議棧的操作系統(tǒng)平臺及其配套軟件程序指令完成。具體內(nèi)容包括了系統(tǒng)加載,腳本加載,設(shè)備硬件初始化,軟件程序初始化,以及檢測環(huán)路過程,發(fā)現(xiàn)環(huán)路過程,控制屏蔽環(huán)路過程。設(shè)備硬件初始化過程將設(shè)備多個網(wǎng)絡(luò)下行接口設(shè)置相同的MAC地址,以后每隔一段特定時間由網(wǎng)絡(luò)應(yīng)用層程序產(chǎn)生特定的具有廣播特性的環(huán)路探測報文后,經(jīng)由設(shè)備每個不同的網(wǎng)絡(luò)下行接口發(fā)送出。
文檔編號H04L12/26GK102769553SQ20121027890
公開日2012年11月7日 申請日期2012年8月7日 優(yōu)先權(quán)日2012年8月7日
發(fā)明者王志波, 鄧永堅, 郭小東, 黎海文 申請人:深圳市共進電子股份有限公司