專利名稱:線路卡的無縫生成樹升級的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的領(lǐng)域總地涉及用于在第2層交換網(wǎng)絡(luò)等等之中維持無環(huán)路拓
撲的機制。更具體而言,其涉及用于在網(wǎng)絡(luò)設(shè)備的(例如交換機的)軟件 的重啟期間維持無環(huán)路拓撲的機制。
背景技術(shù):
生成樹協(xié)議(STP) —般在交換機上運行,并且負責(zé)在第2層(L2) 交換網(wǎng)絡(luò)中維持無環(huán)路拓撲。對STP算法的概括描述可在以下IEEE標(biāo)準 文檔中矛戈至U: (1) "IEEE standard for local and metropolitan area networks 一 common specification. Part 3: media access control (MAC) bridges -amendment 2: rapid reconfiguration", LAN/MAN Standards Committee of the IEEE Computer Society, USA, IEEE Std 802.1w-2001, E-ISBN: 0-7381-2925-9: ISBN: 0-7381-2924-0, (2001),以及(2) "IEEE Standard for Local and metropolitan area networks Media Access Control (MAC) Bridges", IEEE Std 802.1 D-2004 (Revision of IEEE Std 802. ID- 1998), E-ISBN: 0-7381-3982-3, ISBN: 0-7381-3982-3, (2004),這些文檔通過引用被完全并入在此。STP通 過周期性地與鄰居交換機交換網(wǎng)橋協(xié)議數(shù)據(jù)單元(BPDU)并將端口狀態(tài) 適當(dāng)?shù)卦O(shè)置為轉(zhuǎn)發(fā)/阻止/偵聽/獲知,來進行操作。
目前,當(dāng)例如在升級或降級過程期間交換機線路卡的軟件要被重啟 時,該線路卡上的所有L2端口都在重啟時段期間被關(guān)斷。這導(dǎo)致了L2流 量的中斷和網(wǎng)絡(luò)拓撲的重收斂。這些端口在重啟期間必須被關(guān)斷,這是因 為重啟的線路卡上的端口狀態(tài)不能被改變,因為一旦重啟開始,被稱為 "線路卡控制平面軟件"的更改端口狀態(tài)的軟件就不可用了。如果L2端 口在重啟期間不被關(guān)斷,則網(wǎng)絡(luò)其余部分的拓撲改變將在重啟期間導(dǎo)致環(huán) 路。此外,重啟的線路卡的被阻止端口將導(dǎo)致影響整個網(wǎng)絡(luò)的拓撲改變。 再次收斂,以確定繞過被阻止端口的替換路徑。
另一個情形是控制平面軟件在具有單個監(jiān)管機的交換機中被重啟時 (例如在升級或降級期間)或者監(jiān)管機軟件本身被升級時。監(jiān)管機除了負 責(zé)其他任務(wù)之外,一般還負責(zé)與其他交換機交換控制消息,從而實現(xiàn)
STP。在交換機的監(jiān)管機的重啟期間,無法在重啟的交換機和其他交換機 之間交換BPDU。當(dāng)網(wǎng)絡(luò)中的未重啟的交換機在轉(zhuǎn)發(fā)延遲的兩倍長的時間 G0秒)中未能接收到BPDU時,這就可能導(dǎo)致未重啟的交換機的端口狀 態(tài)的更改,而這種更改可能導(dǎo)致環(huán)路。因此,在當(dāng)前的實現(xiàn)方式中,在單 個監(jiān)管機重啟期間戶萬有的L2端口都被關(guān)斷,以便它們不能成為造成環(huán)路 形成的因素。
總之,當(dāng)前的用于處理監(jiān)管機或線路卡軟件的軟件重啟的機制會中斷 L2數(shù)據(jù)平面流量,因為所有端口都被關(guān)斷,從而導(dǎo)致生成樹拓撲的重收 斂。因此,需要用于在網(wǎng)絡(luò)設(shè)備的線路卡或監(jiān)管機軟件的軟件升級期間維 持無環(huán)路的第2層f石撲的改進的、非中斷性的機制。
發(fā)明內(nèi)容
本發(fā)明提供了用于提供網(wǎng)絡(luò)設(shè)備(例如交換機)的重啟的方法和裝 置,其具有最低限度的中斷性并且防止網(wǎng)絡(luò)中環(huán)路的形成。 一般來說,這 里設(shè)想的這類重啟發(fā)生在網(wǎng)絡(luò)設(shè)備的用于更改設(shè)備的端口狀態(tài)或者用于實 現(xiàn)生成樹協(xié)議(STP)以及其他功能的軟件不可用時。在一種情況下,交 換機在其線路卡之一上經(jīng)歷軟件升級,從而STP軟件無法更改升級的線路 卡的端口狀態(tài)或者升級的線路卡無法沖刷其第2層MAC表。本發(fā)明的實 施例允許了重啟的交換機的端口在某些條件下繼續(xù)轉(zhuǎn)發(fā)。重啟的交換機還 與其鄰居合作,以便線路卡能夠幫助防止環(huán)路。
在一個實施例中,公開了一種重啟具有用于接收和發(fā)送第2層數(shù)據(jù)的 多個端口的第一網(wǎng)鄉(xiāng)各設(shè)備的方法。第一網(wǎng)絡(luò)設(shè)備屬于網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)。當(dāng) 第一網(wǎng)絡(luò)設(shè)備的至少、一部分的重啟即將發(fā)生,從而重啟的網(wǎng)絡(luò)設(shè)備部分不 再能夠更改多個端口中的一個或多個的生成樹協(xié)議(STP)狀態(tài)并且在重 啟期間保持在固定狀態(tài)中的這種端口被稱為重啟的端口時,在預(yù)定條件下
在重啟期間維持處于轉(zhuǎn)發(fā)狀態(tài)的每個重啟的端口的轉(zhuǎn)發(fā)狀態(tài)。在重啟期 間,重啟的網(wǎng)絡(luò)設(shè)備部分的重啟的端口中的每一個與其在作為第一網(wǎng)絡(luò)設(shè) 備的鄰居的第二未重啟網(wǎng)絡(luò)設(shè)備中的對端端口合作以防止網(wǎng)絡(luò)中的第2層 環(huán)路。
在特定實現(xiàn)方式中,重啟的網(wǎng)絡(luò)部分是第一網(wǎng)絡(luò)設(shè)備中的不再能夠更 改重啟的端口中的一個或多個的生成樹協(xié)議(STP)狀態(tài)的線路卡。在另
一方面中,是Portfast端口的每個重啟的端口在重啟期間被維持在轉(zhuǎn)發(fā)狀 態(tài)中。被兩個或更多個其他網(wǎng)絡(luò)設(shè)備共享的每個重啟的端口在重啟期間被 阻止。如果確定不被共享或者是Portfast端口的每個重啟的端口的對端能 夠合作以防止環(huán)路,則該端口在重啟期間被維持在轉(zhuǎn)發(fā)狀態(tài)中(如果它處 于轉(zhuǎn)發(fā)狀態(tài)中),并且在重啟期間能夠合作以防止環(huán)路的對端被告知該重 啟。每個對端被告知重啟即將發(fā)生、被告知重啟的種類并且在重啟完成時 被告知重啟的完成。如果確定不被共享或者是Portfast端口的每個重啟的 端口的對端不能夠在重啟期間合作以防止環(huán)路,則該端口在重啟期間被阻 止。在重啟之前完成任何待發(fā)生的端口狀態(tài)改變并且阻止任何STP用戶配 置,直到重啟完成為止。
在另一方面中,在重啟期間從STP根計算中排除在重啟期間被阻止的 重啟的端口。推遲重啟的端口的從阻止到轉(zhuǎn)發(fā)的狀態(tài)改變,直到重啟完成 為止。在網(wǎng)絡(luò)中的角色改變導(dǎo)致特定的重啟的端口的從轉(zhuǎn)發(fā)到阻止的狀態(tài) 改變時執(zhí)行以下操作(i)特定的重啟的端口向特定的重啟的端口的對端 發(fā)送通告其當(dāng)前狀態(tài)并標(biāo)識其新端口角色的第一網(wǎng)橋協(xié)議數(shù)據(jù)單元 (BPDU),其中第一 BPDU被發(fā)送以使得特定的重啟的端口的對端將其 狀態(tài)改變到阻止并將其自身標(biāo)記為重啟不一致;并且(ii)特定的重啟的 端口接收來自特定的重啟的端口的對端的、承載對端的新阻止?fàn)顟B(tài)的 BPDU。
在網(wǎng)絡(luò)中的SYNC操作導(dǎo)致特定的重啟的端口的從轉(zhuǎn)發(fā)到阻止的狀態(tài) 改變時執(zhí)行以下操作(i)當(dāng)?shù)谝痪W(wǎng)絡(luò)設(shè)備接收到來自希望轉(zhuǎn)到轉(zhuǎn)發(fā)狀態(tài) 的對端端口的開放新鏈路的提議時,第一網(wǎng)絡(luò)設(shè)備將提議轉(zhuǎn)發(fā)到其一個或 多個鄰居網(wǎng)絡(luò)設(shè)備,以便一個或多個鄰居網(wǎng)絡(luò)設(shè)備能夠各自將自己與網(wǎng)絡(luò)
的其余部分切斷;并且(ii)當(dāng)響應(yīng)于被轉(zhuǎn)發(fā)到鄰居網(wǎng)絡(luò)設(shè)備的提議,在 第一網(wǎng)絡(luò)設(shè)備中接收到同意時,將同意轉(zhuǎn)發(fā)到其在新鏈路上的對端端口。
在另一實施例中,在重啟之前為重啟的網(wǎng)絡(luò)設(shè)備的MAC地址獲知表 設(shè)置較短的老化定時器,以便引起對表中的陳舊的L2條目的快速沖刷。
在另一實施例中,本發(fā)明涉及一種可以重啟的網(wǎng)絡(luò)設(shè)備,該網(wǎng)絡(luò)設(shè)備 具有用于接收和發(fā)送第2層數(shù)據(jù)的多個端口。該第一網(wǎng)絡(luò)設(shè)備包括一個或 多個處理器和一個或多個存儲器。存儲器和處理器中的至少一個可以提供 上述方法操作中的至少一些。
在另一實施例中,本發(fā)明涉及一種重啟具有用于接收和發(fā)送第2層數(shù) 據(jù)的多個端口的第一網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)系統(tǒng),其中第一網(wǎng)絡(luò)設(shè)備屬于網(wǎng)絡(luò)設(shè) 備的網(wǎng)絡(luò)。該系統(tǒng)包括多個交換機,其中包括第一交換機和耦合到第一 網(wǎng)絡(luò)交換機的至少一個鄰居交換機,并且該第一交換機可以執(zhí)行以下步
驟(0當(dāng)?shù)谝痪W(wǎng)絡(luò)設(shè)備的至少一部分的重啟即將發(fā)生,從而重啟的網(wǎng)絡(luò)
設(shè)備部分不再能夠更改多個端口中的一個或多個的生成樹協(xié)議(STP)狀 態(tài)并且在重啟期間保持在固定狀態(tài)中的這種端口被稱為重啟的端口時,在 預(yù)定條件下在重啟期間維持處于轉(zhuǎn)發(fā)狀態(tài)的每個重啟的端口的轉(zhuǎn)發(fā)狀態(tài); 以及(ii)在重啟期間,重啟的網(wǎng)絡(luò)設(shè)備部分的重啟的端口中的每一個與 其在作為第一網(wǎng)絡(luò)設(shè)備的鄰居的第二未重啟網(wǎng)絡(luò)設(shè)備中的對端端口合作以 防止網(wǎng)絡(luò)中的第2層環(huán)路。
本發(fā)明的這些和其他特征和優(yōu)點將在以下本發(fā)明的說明書和附圖中更 詳細給出,其中附圖以示例方式示出了本發(fā)明的原理。
圖1A是示出根據(jù)本發(fā)明一個實施例發(fā)生在線路卡計劃重啟之前的無 縫重啟過程的流程圖。
圖1B是示出根據(jù)本發(fā)明一種實現(xiàn)方式在線路卡重啟期間執(zhí)行的無縫 重啟過程的流程圖。
圖1C是示出根據(jù)本發(fā)明一個實施例在線路卡重啟完成之后執(zhí)行的無 縫重啟過程的流程圖。
圖2A至2F示出了根據(jù)本發(fā)明一種實現(xiàn)方式用于處理重啟的端口的角色改變的無縫重啟機制,如果端口的線路卡未重啟,則所述角色改變可能 導(dǎo)致狀態(tài)改變?yōu)樽柚埂?br>
圖3A至3D示出了根據(jù)本發(fā)明另 一種實現(xiàn)方式用于針對重啟的端口處 理SYNC操作的無縫重啟機制,如果端口未重啟,則所述SYNC操作可能 導(dǎo)致狀態(tài)改變?yōu)樽柚埂?br>
圖4A是示出根據(jù)本發(fā)明一個實施例用于單個監(jiān)管機的無縫重啟的過 程的流程圖。
圖4B是示出根據(jù)本發(fā)明一個實施例,從鄰居交換機的角度來看在單 個監(jiān)管機重啟期間執(zhí)行的無縫重啟過程的流程圖。
圖4C是示出根據(jù)本發(fā)明一種實現(xiàn)方式在監(jiān)管機重啟之后執(zhí)行的無縫 重啟過程的流程圖。
圖5A至5D是交換機網(wǎng)絡(luò)的圖示,其中對重啟的單個監(jiān)管機實現(xiàn)無縫 重啟過程,其間在網(wǎng)絡(luò)中根優(yōu)先級被改變。
圖6是可用于實現(xiàn)本發(fā)明的實施例的示例性交換機的框圖。
具體實施例方式
現(xiàn)在將詳細參考本發(fā)明的特定實施例。此實施例的示例在附圖中示 出。雖然將結(jié)合此特定實施例來描述本發(fā)明,但是應(yīng)當(dāng)理解,并不希望將 本發(fā)明限制到一個實施例。相反,希望覆蓋可能包括在所附權(quán)利要求限定 的本發(fā)明的精神和范圍內(nèi)的替換、修改和等同。在以下描述中,闡述了許 多具體細節(jié)以幫助全面理解本發(fā)明。沒有這些具體細節(jié)中的一些或全部也 可實現(xiàn)本發(fā)明。在其他情況下,沒有詳細描述公知的過程操作,以避免不 必要地模糊本發(fā)明的主題。
當(dāng)特定網(wǎng)絡(luò)設(shè)備的用于更改該設(shè)備的端口狀態(tài)或?qū)崿F(xiàn)生成樹協(xié)議 (STP)的軟件不可用時,計劃重啟(planned restart)就對該網(wǎng)絡(luò)設(shè)備發(fā) 生。在一種實現(xiàn)方式中,交換機在它的線路卡之一上經(jīng)歷軟件升級,從而 STP軟件無法更改升級中的線路卡的端口狀態(tài)或者升級中的線路卡無法沖 刷其第2層MAC表。在另一種實現(xiàn)方式中,交換機具有為交換機中的所
有線路卡及其端口執(zhí)行控制操作的單個監(jiān)管機,并且該單個監(jiān)管機正在經(jīng) 歷軟件升級。
當(dāng)網(wǎng)絡(luò)設(shè)備中的軟件(例如線路卡的軟件或單個監(jiān)管機的軟件)的計 劃重啟即將發(fā)生時,本發(fā)明的機制允許第2層端口在某些條件下保持轉(zhuǎn)發(fā) 而不是被阻止。如果在重啟期間網(wǎng)絡(luò)中沒有拓撲改變,則重啟的網(wǎng)絡(luò)設(shè)備 軟件本身并不導(dǎo)致拓撲改變。此外,當(dāng)在重啟期間網(wǎng)絡(luò)中確實發(fā)生拓撲改 變時,該改變不會導(dǎo)致第2層環(huán)路。重啟的軟件的相關(guān)聯(lián)端口上的拓撲改 變被推遲,直到重啟完成之后為止,從而使連通性最大化。
可以實現(xiàn)任何適當(dāng)?shù)臋C制來促成無縫重啟,其中與重啟的軟件相關(guān)聯(lián) 的端口在某些條件下可繼續(xù)轉(zhuǎn)發(fā)并且拓撲改變不會導(dǎo)致環(huán)路。本發(fā)明的實 施例在較高的級別上可以被描述為包括用于使重啟的線路卡的端口的鄰居 可以幫助防止環(huán)路的方式。也就是說,重啟的網(wǎng)絡(luò)設(shè)備與其鄰居網(wǎng)絡(luò)設(shè)備 合作,以便鄰居知曉該重啟并且采取預(yù)防性動作來防止否則可能針對重啟 的網(wǎng)絡(luò)設(shè)備的一個或多個端口發(fā)生的環(huán)路。
本發(fā)明的實施例包括用于處理重啟的線路卡的第一實現(xiàn)方式和用于處
理重啟的單個監(jiān)管機的第二實現(xiàn)方式。圖1A 1C示出了用于處理線路卡重 啟的技術(shù),而圖4A 4C示出了用于處理單個監(jiān)管機重啟的技術(shù)。雖然所示 出的實施例在這里被描述為適用于交換機的"線路卡"和"監(jiān)管機",這 些技術(shù)當(dāng)然也可以應(yīng)用到任何類型的重啟的網(wǎng)絡(luò)設(shè)備(例如路由器)以及
任何下述硬件配置在這種硬件配置中,在重啟期間,第2層端口狀態(tài)暫
時不能被STP更改,或者用于控制這種端口的STP軟件/硬件暫時不可 用。
在線路卡的重啟期間,STP控制軟件繼續(xù)在監(jiān)管機上運行,同時經(jīng)歷 了以下例如參考圖1B概述的少許修改。由于監(jiān)管機及其STP控制軟件在 重啟期間運行,因此STP可能要求端口狀態(tài)改變。也就是說,端口狀態(tài)改 變可能被STP過程發(fā)起。 一般來說, 一些改變被推遲,而其他改變由作為 重啟的線路卡的鄰居的交換機上的端口處理。
圖1A是示出根據(jù)本發(fā)明一個實施例發(fā)生在線路卡計劃重啟之前的無 縫重啟過程100的流程圖。最初,在操作102中判定計劃重啟是否即將發(fā)生。計劃重啟可由為線路卡啟動軟件升級過程的用戶發(fā)起。例如,用戶也 可通過發(fā)出命令或者啟動用于線路卡的無縫重啟軟件程序的執(zhí)行來發(fā)起圖 1A 1C的無縫重啟機制。例如,在軟件升級的發(fā)起期間,用戶可被呈現(xiàn)以 執(zhí)行無縫重啟程序的選項,或者這種程序可以在軟件升級發(fā)起時自動運 行。
當(dāng)計劃重啟將要發(fā)生時,隨后在操作104中判定重啟的線路卡的每個 端口的對端是否能夠進行無縫重啟。也就是說,判定作為重啟的交換機的 鄰居的交換機是否能夠?qū)崿F(xiàn)這里描述的技術(shù),以防止環(huán)路和使重啟期間可 能發(fā)生的連通性中斷達到最低限度。在一種實現(xiàn)方式中,每個重啟的端口 向其鄰居端口發(fā)送査詢,詢問鄰居是否是無縫重啟兼容的。鄰居可以作出 肯定或否定答復(fù),或者未能作出響應(yīng)。給當(dāng)鄰居對査詢作出肯定響應(yīng)時, 鄰居才被認為是無縫重啟兼容的。否則,它被認為不是無縫重啟兼容的。
以下操作106至112是對每個端口執(zhí)行的。如果端口是Portfast,則在 操作106中,端口的狀態(tài)被維持。Portfast端口位于交換機網(wǎng)絡(luò)的邊緣 (即,Portfast端口未被耦合到其他交換機)。由于處于邊緣,Portfast端 口總是能夠保持在轉(zhuǎn)發(fā)狀態(tài)中,因為它們不能導(dǎo)致環(huán)路??梢酝ㄟ^檢査每 個端口的Portfast字段來判定每個端口是否是Portfast。 Portfast端口的狀態(tài) 可被維持。否則,如果端口是共享的,則在操作108中該端口被阻止。共 享端口可能被耦合到兩個或更多個交換機,并且可能無法判定是否所有共 享交換機都能夠進行無縫重啟并且與共享鄰居交換機合作實現(xiàn)本發(fā)明的技 術(shù)。因此,重啟的線路卡的共享端口被阻止??梢酝ㄟ^檢査端口的共享字 段來判定端口是否被共享。
否則,如果端口的對端不能進行無縫重啟,則在操作110中該端口被 阻止。否則,如果端口的對端能夠進行無縫重啟,則在操作112中,端口 的狀態(tài)被維持,并且對端被告知以重啟。因此,重啟的線路卡的一些端口 在某些條件下可保持轉(zhuǎn)發(fā)。在一種實現(xiàn)方式中,對端或鄰居被告知重啟即 將發(fā)生、升級的種類(例如線路卡或單個監(jiān)管機)以及重啟的完成(在其 發(fā)生時)。在操作114中,任何待發(fā)生的狀態(tài)改變于是在重啟之前完成, 并且任何STP配置在重啟期間都被阻止。在重啟期間被阻止或禁止的STP 配置可包括對重啟的線路卡及其端口的任何用戶配置。
圖IB是示出根據(jù)本發(fā)明一種實現(xiàn)方式在線路卡重啟期間執(zhí)行的無縫 重啟過程150的流程圖。
一般來說,監(jiān)管機軟件或者控制STP的軟件在經(jīng)
過以下修改的情況下繼續(xù)運行。最初,在操作154中,從STP根計算中排 除重啟的線路卡中的所有被阻止端口。在STP中,在交換機網(wǎng)絡(luò)中定義根 交換機,并且評估每個非根交換機的端口以確定到達根交換機的成本效率 最高的路徑,其進而成為根端口。為了在圖3B中說明,交換機3 306的端 口 308b具有去往根交換機1 302的相關(guān)成本2 (通過交換機2 304的端口 304b和304a),而交換機306的另一端口 308a對于去往根交換機302的 路徑具有更高的成本3。通常,交換機3 306的最佳成本端口 (308b)將 被選擇為交換機3 306的"根"端口。
但是,由于此端口 308b屬于重啟的線路卡并且在重啟期間被阻止, 因此將此端口 308b選擇為根端口將會導(dǎo)致去往根交換機1 302的路徑被阻 止。由于優(yōu)選具有去往根交換機的轉(zhuǎn)發(fā)路徑以使連通性最大化,而重啟的 端口在整個重啟期間可能被阻止,因此包括重啟的端口中的路徑不被用于 確定去往根交換機的成本效率最高的路徑。
返回參考圖1B,隨后在操作155中判定對于重啟的線路卡是否發(fā)起了 端口狀態(tài)改變。例如,是否出于任何原因(例如防止環(huán)路)而發(fā)生了導(dǎo)致 重啟的端口的狀態(tài)發(fā)生改變的網(wǎng)絡(luò)改變。如果尚未發(fā)起端口狀態(tài)改變,那 就在操作170中簡單地判定重啟是否已完成,并且過程轉(zhuǎn)回操作155。
在STP中,端口可具有五種狀態(tài)之一禁用、阻止、偵聽、獲知和轉(zhuǎn) 發(fā)。轉(zhuǎn)變到禁用狀態(tài)和從禁用狀態(tài)轉(zhuǎn)變可能發(fā)生在端口被啟用或禁用時。 由于重啟的端口在重啟期間不能被禁用或啟用,因此該轉(zhuǎn)變在重啟期間不 會發(fā)生。端口可以將狀態(tài)從阻止改變到轉(zhuǎn)發(fā),反之亦然。獲知狀態(tài)是阻止 和轉(zhuǎn)發(fā)之間的過渡狀態(tài),并且到獲知狀態(tài)的轉(zhuǎn)變只能從阻止?fàn)顟B(tài)發(fā)生。
參考圖1B,如果已經(jīng)發(fā)起端口狀態(tài)改變,則隨后在操作156中判定端 口狀態(tài)改變是否是從轉(zhuǎn)發(fā)到阻止。如果端口不是從轉(zhuǎn)發(fā)改變到阻止,則假 定它正在經(jīng)歷以下狀態(tài)轉(zhuǎn)變之一(阻止到轉(zhuǎn)發(fā))或(獲知到轉(zhuǎn)發(fā))或 (阻止到獲知)或(獲知到阻止)。例如,端口的角色可能已被從備選/備
用改變到指定,這可能導(dǎo)致重啟的端口發(fā)生從阻止到轉(zhuǎn)發(fā)的狀態(tài)改變。在 另一示例中,SYNC操作的完成或者轉(zhuǎn)發(fā)延遲超時可能導(dǎo)致重啟的端口發(fā) 生從阻止到轉(zhuǎn)發(fā)的改變。由于重啟的端口的狀態(tài)不能被改變,并且使端口
處于阻止或獲知狀態(tài)不會導(dǎo)致環(huán)路,因此在操作158中,從阻止/獲知到轉(zhuǎn) 發(fā)/阻止/獲知的端口改變被推遲,直到重啟完成為止。
如果端口狀態(tài)改變是從轉(zhuǎn)發(fā)到阻止,則隨后在操作160中判定此端口 狀態(tài)改變是否是由于角色改變而發(fā)生的。例如,判定是否發(fā)生了重定根 (re-rooting)操作。也就是說,根或指定端口變成了備選端口 。圖2A至 2F示出了根據(jù)本發(fā)明一種實現(xiàn)方式用于處理重啟的端口的角色改變的無縫 重啟機制,如果端口的線路卡未重啟,則所述角色改變可能導(dǎo)致狀態(tài)改變 為阻止。
圖2A示出了三個交換機的網(wǎng)絡(luò)200:根交換機1 202、交換機2 204 和交換機3 206。這三個交換機各自包括一個或多個端口,這一個或多個 端口在交換機3的線路卡208重啟之前具有特定的角色和狀態(tài)。根交換機 1包括具有指定(D)角色和轉(zhuǎn)發(fā)(F)狀態(tài)的端口 202b,該端口 202b耦 合到具有備選(A)角色和阻止(B)狀態(tài)的(交換機3的)端口 208a。 根交換機1還包括具有指定(D)角色和轉(zhuǎn)發(fā)(F)角色的端口 202a,該 端口 202a耦合到具有根(R)角色和轉(zhuǎn)發(fā)(F)狀態(tài)的端口 204b。交換機 2還包括具有指定(D)角色和轉(zhuǎn)發(fā)(F)狀態(tài)的端口 204a,該端口 204a 耦合到具有根(R)角色和轉(zhuǎn)發(fā)(轉(zhuǎn)發(fā))角色的(交換機3的)端口 210a。交換機3的線路卡210隨后重啟。因此,重啟的線路卡210的端口 210a被保持在轉(zhuǎn)發(fā)狀態(tài)中,因為此端口 201a不是共享的,并且其對端能 夠進行無縫重啟。
圖2B示出了在重啟開始之后完成之前圖2A的交換機網(wǎng)絡(luò)200。如圖 所示,根交換機1的P202b的端口成本已經(jīng)減小,導(dǎo)致交換機3的P208a 的角色改變。端口 208a經(jīng)歷了從備選(A)到根(R)的角色改變。因 此,重啟的端口 210a經(jīng)歷了從根(R)到備選(A)的角色改變。于是, 新的根端口 208a有必要變?yōu)檗D(zhuǎn)發(fā),以便執(zhí)行其根角色而不損失連通性。端 口 208a的這一端口狀態(tài)改變將要求端口 210a在端口 208a執(zhí)行其狀態(tài)改變
之前變?yōu)樽柚?,以防止暫時性環(huán)路。返回圖IB所示的過程,如果這種角 色改變將導(dǎo)致重啟的端口從轉(zhuǎn)發(fā)改變到阻止,重啟的線路卡的發(fā)生狀態(tài)改變的端口則在操作162中向其對端發(fā)送BPDU消息(參見圖2C)以通告 其狀態(tài)(例如在圖示示例中是[備選,轉(zhuǎn)發(fā)])并標(biāo)識其新的根對端,等等。
響應(yīng)于來自重啟的端口的BPDU,對端在操作164中可將其自身標(biāo)記 為重啟不一致(RI)并將其狀態(tài)設(shè)置為阻止(B),如圖2D所示。換言 之,對端或鄰居代替重啟的端口阻止其自身。對端隨后在操作166中利用 承載其新狀態(tài)(D,B, RI)的BPDU向發(fā)通告的端口作出響應(yīng),如圖2D所 示。如圖2E所示,對端端口 204a現(xiàn)在為阻止(B),因此根端口 208a現(xiàn) 在作為正常STP操作的一部分可將其狀態(tài)改變到轉(zhuǎn)發(fā)(F),以便具有處 于轉(zhuǎn)發(fā)狀態(tài)中的根端口并且不導(dǎo)致暫時性環(huán)路(即在端口 208a、 210a、 204a、 204b、 202a、 202b之間并返回208a的路徑中)。
返回參考圖1B,隨后在操作170中判定重啟是否已完成。如果重啟尚 未完成,則過程轉(zhuǎn)回操作155。當(dāng)端口從轉(zhuǎn)發(fā)改變到阻止并且此改變是由 SYNC操作導(dǎo)致時,在操作168中發(fā)生若干動作以防止環(huán)路,這些動作在 圖3A-3D中示出。圖3A至3D示出了根據(jù)本發(fā)明另一種實現(xiàn)方式用于針 對重啟的端口處理SYNC操作的無縫重啟機制,如果端口未重啟,則所述 SYNC操作可能導(dǎo)致狀態(tài)改變?yōu)樽柚埂?br>
圖3A示出了交換機網(wǎng)絡(luò)300,該交換機網(wǎng)絡(luò)300包括分別被標(biāo)記以標(biāo) 號302、 304、 306、 312、 316和314的交換機1至6。每個交換機具有一 個或多個端口。例如,交換機1 302包括端口 302a和302b。交換機2 304 包括端口 304a。交換機3 306包括用于線路卡1 308的端口 308a。交換機 4 312包括端口 312a-312c。交換機5包括端口 316a,交換機316包括端口 314a。交換機3還被示為包括重啟的線路卡310,以及未重啟的線路卡 308。在交換機3中的重啟開始之前,網(wǎng)絡(luò)300的所有端口都處于由 "白"端口圈示出的轉(zhuǎn)發(fā)(F)狀態(tài)中,并且交換機3的線路卡308的端 口 308a具有根(R)角色。
在交換機3的線路卡310重啟期間,圖3B示出了交換機3的新端口308b和交換機2的新端口 304b之間的鏈路的添加。新鏈路的兩個新端口 308b和304b最初都處于被示為"黑"端口圈的阻止(B)狀態(tài)中。此附加 的鏈路導(dǎo)致了成本等于2(1+1)的、通過端口 308b、 304b、 304a和302a從 交換機3到交換機1的更好的路由路徑,而不是成本等于3的、通過端口 308a和302b的路由。
為了迅速將這個新的指定端口 304b轉(zhuǎn)移到轉(zhuǎn)發(fā)狀態(tài),SYNC操作可以 作為802,1 W迅速生成樹協(xié)議規(guī)范的一部分被執(zhí)行。對于在未進行重啟時 發(fā)生的SYNC操作,此SYNC操作將涉及交換機2與交換機3執(zhí)行握手。 作為此握手的一部分,提議被從交換機2發(fā)送到交換機3。交換機3在接 收到此提議時將會阻止其所有指定轉(zhuǎn)發(fā)端口 (310a)并且在完成后向交換 機2發(fā)回同意,交換機2在接收到該同意后可以立即將端口 304b轉(zhuǎn)移到轉(zhuǎn) 發(fā)狀態(tài)。這可以在沒有暫時性環(huán)路的危險的情況下發(fā)生,因為交換機2的 端口角色和狀態(tài)與交換機3同步(由于它們已經(jīng)執(zhí)行了握手),并且交換 機3與其可能不同步的下游交換機(交換機4)的轉(zhuǎn)發(fā)路徑被切斷(由于 在前一步驟中阻止了其指定端口)。接下來,交換機3將與所有其下游鄰 居交換機(交換機4)執(zhí)行類似的握手,以再次使其指定端口轉(zhuǎn)發(fā)。這 樣,本來在端口 304a上的轉(zhuǎn)發(fā)路徑的切斷將會通過網(wǎng)絡(luò)傳播G04b到 310a到G12b和312c)),直到它到達網(wǎng)絡(luò)末端。該過程保證了不會有 暫時性環(huán)路。
與進行握手的交換機的線路卡沒有發(fā)生重啟時相比,無縫重啟以不同 的方式來處理此握手。當(dāng)發(fā)生重啟時,無縫重啟過程實際上將重啟的端口 的切斷操作轉(zhuǎn)移到鄰居的端口。如圖3C所示,交換機2的新端口 304b向 交換機3 306的線路卡308的新端口 308b發(fā)送提議(P) 322,而端口 304b保持在阻止(B)狀態(tài)中以形成切斷320,從而切斷與網(wǎng)絡(luò)其余部分 的新鏈路(例如從交換機1到未示出的其他交換機)。當(dāng)重啟未在進行 時,交換機306通常將會阻止其去往其鄰居交換機的端口。也就是說,端 口 310a將被阻止。但是,由于此端口 310a屬于重啟的線路卡310,因此 其不能將其狀態(tài)改變到被阻止。因此,提議(P) 324被從重啟的端口 310a轉(zhuǎn)發(fā)到鄰居交換機312的端口 312a。響應(yīng)于此提議(P) 324,交換機4阻止端口 312b和312c。如圖所 示,阻止這些端口將會形成切斷交換機4的鄰居交換機的切斷326。交換 機4隨后從端口 312a向交換機3的端口 310a發(fā)送同意(A) 328 (參見圖 3D)。當(dāng)交換機3收到來自交換機4的同意(A) 328時,交換機3隨后 可從端口 308b向交換機2的端口 304b發(fā)送同意(A) 330,該端口 304b 隨后可立即轉(zhuǎn)移到轉(zhuǎn)發(fā)狀態(tài)。交換機4將會像通常那樣繼續(xù)SYNC以解除 對其端口的阻止。
返回參考圖1B,隨后在操作170中判定重啟是否己完成。當(dāng)重啟完成 時,過程150結(jié)束。否則,過程轉(zhuǎn)回操作155,在操作155中,再次判定 是否發(fā)起了狀態(tài)改變。
圖1C是示出根據(jù)本發(fā)明一個實施例在線路卡重啟完成之后執(zhí)行的無 縫重啟過程180的流程圖。最初,在操作182中重新計算所有STP端口角 色。以下操作184-190是對重啟的線路卡上的每個端口執(zhí)行的。在操作 184中,完成任何被推遲的端口狀態(tài)改變。例如,發(fā)生在重啟期間并被推 遲的從阻止到轉(zhuǎn)發(fā)的重啟端口狀態(tài)改變現(xiàn)在被執(zhí)行。在操作186中,對每 個端口重新開始正常的STP操作。在操作188中,每個端口的對端也被告 知重啟完成。響應(yīng)于重啟完成,對端在操作190中為任何[重啟不一致,阻 止]端口重啟其轉(zhuǎn)發(fā)延遲(fdWhile)定時器并設(shè)置提議比特,然后重新開 始正常的操作。轉(zhuǎn)發(fā)延遲定時器被重啟,以便在重啟期間被阻止的端口在 定時器期滿時可變?yōu)檗D(zhuǎn)發(fā)。提議比特被設(shè)置,以便被阻止的端口可以進行 SYNC并利用802.1w迅速轉(zhuǎn)變來變?yōu)檗D(zhuǎn)發(fā)。
如圖2F所示,重啟的線路卡210的具有備選角色的端口 210被阻止 (B),而交換機2的具有指定角色并被標(biāo)記為重啟不一致的端口 204a啟 動其轉(zhuǎn)發(fā)延遲定時器并設(shè)置其BPDU中的提議比特,并且最終作為正常的 STP操作將變?yōu)檗D(zhuǎn)發(fā)(F)。 一旦對于重啟的線路卡上的所有端口都完成 了操作184-190,則在操作192中解除對STP配置的阻止并且正常的STP 操作重新開始。過程180結(jié)束。
也可以實現(xiàn)技術(shù)來為重啟的線路卡處理第2層MAC沖刷。當(dāng)?shù)?層 信息被接收到特定端口中時,接收端口中的MAC地址獲知表被更新。也就是說,當(dāng)在端口上接收到MAC地址時,這個接收到的MAC地址被獲 知并被保存在這種端口的MAC地址獲知表中。當(dāng)在預(yù)定的一段時間中未 接收到具有已獲知的MAC地址的分組時,例如一般在300秒之后,相應(yīng) 的MAC地址被淘汰出適當(dāng)?shù)腗AC地址獲知表。
在SPT拓撲改變期間,MAC地址獲知表一般被沖刷在忘卻任何錯誤 的路徑。當(dāng)然,在重啟期間,拓撲改變也可能發(fā)生,并且需要沖刷MAC 地址獲知表。但是,對于重啟的線路卡的端口,在重啟期間不能完成此沖 刷,因為在重啟的卡上此類控制是不可用的。在一個實施例中,老化定時 器在重啟之前被設(shè)置到一個短的值(例如10秒)。如果有拓撲改變,則 對于老化定時器的這個設(shè)置將導(dǎo)致老化時間(10秒)期間的黑洞;但是, 與默認的300秒相比,風(fēng)險時段非常短暫,并且不大可能導(dǎo)致流量的重大 中斷。如果MAC表不正確并且數(shù)據(jù)被發(fā)送到錯誤的目的地,黑洞就可能 發(fā)生。用于重啟的線路卡的無縫重啟過程也可被應(yīng)用到各種其他場景,例 如在重啟期間鏈路被添加或去除、根故障、根改變,等等。
當(dāng)在線路卡重啟期間網(wǎng)絡(luò)中沒有拓撲改變時,本發(fā)明的無縫重啟實施 例提供了若干個優(yōu)點。例如,線路卡的無縫重啟允許了重啟的線路卡交換 機及其對端交換機上的正常STP操作。此外,不需要改變端口狀態(tài)或沖刷 第2層MAC表。另外,重啟的線路卡不會生成拓撲改變或環(huán)路。最后, 如果第2層數(shù)據(jù)路徑不是共享的并且鄰居端口能夠進行無縫重啟,那么在 重啟的線路卡中他們可以保持轉(zhuǎn)發(fā)。
當(dāng)在線路卡重啟期間網(wǎng)絡(luò)中發(fā)生拓撲改變時,若干個優(yōu)點也與無縫重 啟相關(guān)聯(lián)。如果重啟的線路卡必須將端口從轉(zhuǎn)發(fā)狀態(tài)轉(zhuǎn)移到阻止?fàn)顟B(tài)以打 破環(huán)路,則其鄰居交換機上的對端端口將把其狀態(tài)轉(zhuǎn)移到阻止以打破該環(huán) 路。另外,如果重啟的線路卡必須將端口從阻止轉(zhuǎn)移到轉(zhuǎn)發(fā),則它將推遲 此狀態(tài)改變以便不會在無意間產(chǎn)生環(huán)路,同時卻犧牲了連通性??傊?,第 2層數(shù)據(jù)路徑保持轉(zhuǎn)發(fā),除了在沒有轉(zhuǎn)發(fā)數(shù)據(jù)路徑可用的情況中以外。
這里也設(shè)想了用于重啟的單個監(jiān)管機的無縫重啟機制。単個監(jiān)管機指 的是交換機中的單個監(jiān)管機,而不是冗余監(jiān)管機。冗余監(jiān)管機的狀態(tài)如果 同步的話,它們一般不會導(dǎo)致中斷。 一般來說,當(dāng)交換機的單個監(jiān)管機軟
件(或者任何其他適當(dāng)?shù)腟TP控制軟件)正在重啟時,在重啟期間在整個
交換機上都不執(zhí)行STP控制軟件。
圖4A至4C示出了被劃分成以下三個時間范圍的無縫重啟機制重啟 之前、重啟期間和重啟之后。圖4A是示出根據(jù)本發(fā)明一個實施例用于單 個監(jiān)管機的無縫重啟的過程400的流程圖。圖4A的操作與圖1A的操作類 似。也就是說,操作402至414可以分別以與圖1A的操作102至114很 相同的方式來執(zhí)行。但是,過程400包含附加的操作116,該操作116包 括將完整的STP狀態(tài)寫入或存儲到一個或多個持續(xù)性存儲設(shè)備中,該完整 的STP狀態(tài)在監(jiān)管機重啟后可被取回。保留STP狀態(tài)信息是因為在監(jiān)管機 重啟期間它可能丟失。以下參考圖4C進一步說明對該STP狀態(tài)信息的使 用。
圖4B是示出根據(jù)本發(fā)明一個實施例,從鄰居交換機的角度來看在單 個監(jiān)管機重啟期間執(zhí)行的無縫重啟過程450的流程圖。最初,在操作454 中判定是否發(fā)生了拓撲改變。例如,可以判定是否接收到了指示出任何根 信息的改變的BPDU。
當(dāng)未發(fā)生拓撲改變時,在操作456中鄰居禁止對從正被重啟的交換機 接收到的信息的淘汰。因此,雖然重啟的交換機未在執(zhí)行STP并且未向其 鄰居交換機發(fā)出BPDU更新,但重啟的交換機的根信息在重啟期間可被鄰 居交換機保留,重啟可能長于老化超時,并且可以使用重啟的交換機來進 行數(shù)據(jù)轉(zhuǎn)發(fā)。
鄰居還在操作458中禁止向正被重啟的交換機發(fā)送BPDU,因為重啟 的監(jiān)管機交換機在其STP軟件沒有運行的情況下不處理BPDU。這是一個 優(yōu)化并且可以被省略。隨后在操作470中判定重啟是否完成。如果重啟完 成,過程則結(jié)束。否則,過程400重新初始化并且再次在操作454中判定 是否有拓撲改變。只要沒有拓撲改變,鄰居交換機(針對重啟的交換機) 就繼續(xù)禁止淘汰最近從重啟的交換機接收的信息并且禁止向該交換機發(fā)送 BPDU。
如果發(fā)生了拓撲改變,則在操作460中,關(guān)于作為重啟的交換機的對 端的端口的信息被淘汰。在操作462中,作為重啟的交換機的對端的端口 的狀態(tài)在重啟時段期間被改變到[重啟不一致,阻止],然后過程400結(jié)
束。在重啟之后,重啟不一致的端口優(yōu)選地被初始化到指定角色和轉(zhuǎn)發(fā)狀 態(tài)。
圖4C是示出根據(jù)本發(fā)明一種實現(xiàn)方式在監(jiān)管機重啟之后執(zhí)行的無縫 重啟過程470的流程圖。最初,對于重啟的交換機上的所有端口,在操作 472中查詢對端端口以判定在重啟期間是否有被對端檢測到的拓撲改變。 也就是說,鄰居交換機保存關(guān)于在重啟的交換機的重啟過程期間是否發(fā)生 了任何拓撲改變的記錄。例如,在每個鄰居交換機中維護著重啟拓撲改變 標(biāo)志。重啟拓撲改變標(biāo)志被設(shè)置到默認值FALSE。當(dāng)鄰居被告知以重啟 時,如果檢測到拓撲改變,它則將重啟拓撲改變標(biāo)志改變到TRUE。在鄰 居接收到對拓撲改變檢測的査詢之后,標(biāo)志被改回FALSE。
基于重啟的端口對鄰居的查詢,隨后在操作474中判定對端是否檢測 到拓撲改變。如果未檢測到拓撲改變,則在操作476中恢復(fù)保存在持續(xù)性 存儲設(shè)備中的STP狀態(tài)。隨后在操作478中執(zhí)行STP的有狀態(tài)重啟。在有 狀態(tài)重啟期間,STP過程在監(jiān)管機上被啟動。STP控制軟件的運行時數(shù)據(jù) 結(jié)構(gòu)基于恢復(fù)出的持續(xù)性狀態(tài)被創(chuàng)建和初始化。例如,基于從持續(xù)性存儲 設(shè)備恢復(fù)出什么值來初始化端口的端口角色和端口狀態(tài)。每個端口的每個 端口狀態(tài)變成重啟之前的狀態(tài)并且可能是轉(zhuǎn)發(fā)/阻止/獲知/禁用,并且端口 角色也是重啟之前的角色并且可能是根/指定/備選/備用。這樣,軟件端口 狀態(tài)與線路卡上的實際端口狀態(tài)同步。這與無狀態(tài)重啟不同,在無狀態(tài)重 啟中,所有端口都被初始化到阻止?fàn)顟B(tài)和指定角色,并且如果被強制為阻 止則被初始化到硬件狀態(tài)。
如果拓撲改變被對端檢測到,則在操作480中判定重啟的交換機是不 是根。例如,重啟的交換機可被預(yù)配置為根,或者基于其預(yù)配置的優(yōu)先級 值或某個其他變量被指定為根。如果重啟的交換機是根,則在操作486中 所有的端口都被初始化到[指定,阻止]。如果交換機不是根,那么在操作 482中,在根端口上從其對端獲得其舊的根端口的最新STP端口信息并將 該信息填充到其他端口,并且把除被設(shè)置到其舊的保留狀態(tài)的前根端口之 外的所有端口初始化到[指定,阻止]。對于根和非根重啟交換機,隨后在
操作484中重啟STP算法。
然后在操作488中所有對端被告知重啟完成。對端隨后在操作490中 為任何[重啟不一致,阻止]端口重啟其轉(zhuǎn)發(fā)延遲(fdWhile定時器)并設(shè)置 提議比特,然后重新開始正常操作。這些操作488、 490和492分別與圖 1C的操作188、 190和192類似。70的過程隨后結(jié)束。
圖5A至5D是交換機網(wǎng)絡(luò)500的圖示,其中對重啟的單個監(jiān)管機實現(xiàn) 無縫重啟過程,其間在網(wǎng)絡(luò)中根優(yōu)先級被改變。圖5A示出了重啟之前的 網(wǎng)絡(luò)500。該網(wǎng)絡(luò)包括交換機1、交換機2、交換機3和交換機4。交換機 1在交換機3重啟之前是根交換機。在其監(jiān)管機重啟之前交換機3的STP 狀態(tài)被總結(jié)如下端口 504a為指定(D)和轉(zhuǎn)發(fā)(F);端口 504b為根
(R)和轉(zhuǎn)發(fā)(F);端口 504c為指定(D)和轉(zhuǎn)發(fā)(F)。在重啟之前, 交換機3的這些STP狀態(tài)被保留在持續(xù)性存儲設(shè)備中,該持續(xù)性存儲設(shè)備 在重啟完成之后可供重啟的交換機使用。
圖5B示出了在交換機3的監(jiān)管機的重啟開始之后的同一網(wǎng)絡(luò)500。如 圖所示,重啟的交換機3的狀態(tài)丟失。拓撲改變也發(fā)生。例如,交換機1 的優(yōu)先級已被提高,從而交換機2將變?yōu)樾碌母S捎诎l(fā)生了拓撲改變, 作為重啟的交換機的鄰居的交換機(交換機4和交換機2)淘汰來自重啟 的交換機3的信息。此外,鄰居的作為重啟的交換機的對端的端口將其狀 態(tài)改變到阻止(B)并且被標(biāo)記為重啟不一致(RI)。因此,交換機2的 對端端口 502a和交換機4的對端端口 506a將其狀態(tài)改變到[D,B,RI]。
圖5C示出了在交換機3的重啟完成之后的同一網(wǎng)絡(luò)500。交換機3恢 復(fù)在重啟之前保留的其STP端口狀態(tài)和角色(在虛線橢圓510中示出)。 但是,由于重啟的交換機3的對端在重啟期間檢測到了拓撲改變,因此這 是中斷性重啟,并且除了先前的根之外的所有端口都以指定(D)角色和 阻止(B)狀態(tài)啟動,如圖5D所示。交換機3將在其舊根端口 504b上査 詢其對端以獲取最新的根信息(已經(jīng)改變了)。在交換機3的所有端口開 始BPDU發(fā)送之前,此新信息被填充到交換機3的所有端口。這防止了交 換機3在網(wǎng)絡(luò)中注入陳舊的根信息,這種注入可能導(dǎo)致網(wǎng)絡(luò)的不穩(wěn)定(經(jīng) 典示例是由通告不再存在的最佳根的BPDU所導(dǎo)致的"幽靈根"問題)。
重啟的交換機3的對端一旦獲得來自重啟的交換機的重啟完成消息,也被
轉(zhuǎn)移到正常STP狀態(tài)(例如D, B)。用于重啟的單個監(jiān)管機的無縫重啟
過程也可被應(yīng)用到各種其他場景,例如在重啟期間新鏈路被添加以及根故 障。
本發(fā)明的實施例通過在重啟期間在重啟的線路卡中維持端口轉(zhuǎn)發(fā),提 供了交換機的線路卡或監(jiān)管機軟件的無縫重啟,而不會導(dǎo)致網(wǎng)絡(luò)拓撲的改 變。在一種實現(xiàn)方式中,關(guān)于重啟的交換機的拓撲改變被推遲,直到重啟 完成之后為止,以便使連通性最大化。此外,當(dāng)在網(wǎng)絡(luò)中發(fā)生拓撲改變 時,在重啟之前、重啟期間和重啟之后,防止了在網(wǎng)絡(luò)中形成環(huán)路。
本發(fā)明的技術(shù)可以以可應(yīng)用STP的硬件和軟件的任何組合來實現(xiàn)。例 如,本發(fā)明的技術(shù)可實現(xiàn)在操作系統(tǒng)內(nèi)核中、實現(xiàn)在單獨的用戶進程中、 實現(xiàn)在被綁定到網(wǎng)絡(luò)應(yīng)用的庫程序包中,實現(xiàn)在專門構(gòu)造的機器上或者實 現(xiàn)在網(wǎng)絡(luò)接口卡上。在特定實現(xiàn)方式中,它們被實1L在計算機網(wǎng)絡(luò)的第2 層交換機上。
在一種實現(xiàn)方式中,交換機包括至少一個存儲器設(shè)備和至少一個處理 器。存儲器和處理器可以執(zhí)行上述技術(shù)中的任何一種,以及標(biāo)準的交換/路 由操作、虛擬化管理、區(qū)域管理,等等。
圖6是可用于實現(xiàn)本發(fā)明的技術(shù)的交換機的一個示例的圖示。雖然將 描述一個特定的配置,但是應(yīng)當(dāng)注意有多種交換機和路由器配置可用。交 換機601可包括一個或多個監(jiān)管機611 (但本發(fā)明的技術(shù)更適合于單個監(jiān) 管機)和電源617。根據(jù)各種實施例,監(jiān)管機611具有其自己的處理器、 存儲器和存儲資源。
線路卡675和677通過接口電路695和677以及背板615與活動監(jiān)管 機611通信。背板615可為線路卡和監(jiān)管機之間的所有流量提供通信信 道。各個線路卡675和677也可通過端口 685和687耦合到外部網(wǎng)絡(luò)實 體,例如655。
應(yīng)當(dāng)注意,交換機可支持任何數(shù)目的線路卡和監(jiān)管機。在所示出的實 施例中,只有單個監(jiān)管機連接到背板615并且該單個監(jiān)管機與許多不同的 線路卡通信。活動監(jiān)管機611可被配置或設(shè)計為運行多個應(yīng)用,例如
STP、路由、域管理器、系統(tǒng)管理器和工具應(yīng)用。監(jiān)管機可包括被耦合到 接口以與其他實體通信的一個或多個處理器。
此外,雖然描述了示例性的交換機,但是上述實施例可以實現(xiàn)在多種 網(wǎng)絡(luò)設(shè)備(例如服務(wù)器)中以及多種介質(zhì)中。例如,用于實現(xiàn)上述發(fā)明的 指令和數(shù)據(jù)可被存儲在盤驅(qū)動器、硬盤驅(qū)動器、軟盤、服務(wù)器計算機或遠 程聯(lián)網(wǎng)計算機上。因此,當(dāng)前的實施例應(yīng)當(dāng)被認為是示例性的而不是限制 性的,并且本發(fā)明不應(yīng)當(dāng)限于這里給出的細節(jié),而是可在所附權(quán)利要求的 范圍和等同范圍內(nèi)修改。
不論交換機的配置如何,它都可以采用被配置為存儲用于通用網(wǎng)絡(luò)操 作和/或這里描述的創(chuàng)造性技術(shù)的數(shù)據(jù)、數(shù)據(jù)庫和程序指令的一個或多個存 儲器或存儲器模塊。例如,程序指令可控制操作系統(tǒng)和/或一個或多個應(yīng)用 的操作。 一個或多個存儲器也可被配置為存儲根信息、STP狀態(tài)信息,等 等。
因為這種信息和程序指令可被用來實現(xiàn)這里描述的系統(tǒng)/方法,所以本 發(fā)明涉及包括用于執(zhí)行這里描述的各種操作的程序指令、狀態(tài)信息等的機 器可讀介質(zhì)。機器可讀介質(zhì)的示例包括但不限于磁介質(zhì),例如硬盤、軟
盤和磁帶;光介質(zhì),例如CD-ROM盤和DVD;磁光介質(zhì),例如可光讀軟 盤;以及被專門配置為存儲和執(zhí)行程序指令的硬件設(shè)備,例如只讀存儲器 設(shè)備(ROM)和隨機存取存儲器(RAM)。本發(fā)明也可實現(xiàn)在通過諸如 無線電波、光線路、電線路等之類的適當(dāng)介質(zhì)傳播的載波中。程序指令的 示例既包括例如由編譯器產(chǎn)生的機器代碼,也包括包含可由計算機利用解 釋器來執(zhí)行的更高級代碼的文件。
雖然出于理解清晰目的己經(jīng)較詳細地描述了以上發(fā)明,但是很明顯, 在所附權(quán)利要求的范圍內(nèi)可實現(xiàn)某些改變和修改。因此,所描述的實施例 應(yīng)當(dāng)被認為是示例性的而不是限制性的,并且本發(fā)明不應(yīng)當(dāng)限于這里給出 的細節(jié),而是應(yīng)當(dāng)由所附權(quán)利要求及其等同物的完整范圍來限定。
權(quán)利要求
1.一種重啟具有用于接收和發(fā)送第2層數(shù)據(jù)的多個端口的第一網(wǎng)絡(luò)設(shè)備的方法,其中所述第一網(wǎng)絡(luò)設(shè)備屬于網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò),所述方法包括當(dāng)所述第一網(wǎng)絡(luò)設(shè)備的至少一部分的重啟即將發(fā)生,從而重啟的網(wǎng)絡(luò)設(shè)備部分不再能夠更改所述多個端口中的一個或多個的生成樹協(xié)議(STP)狀態(tài)并且在所述重啟期間保持在固定狀態(tài)中的這種端口被稱為重啟的端口時,在預(yù)定條件下在所述重啟期間維持處于轉(zhuǎn)發(fā)狀態(tài)的每個重啟的端口的轉(zhuǎn)發(fā)狀態(tài);以及在所述重啟期間,所述重啟的網(wǎng)絡(luò)設(shè)備部分的所述重啟的端口中的每一個與其在作為所述第一網(wǎng)絡(luò)設(shè)備的鄰居的第二未重啟網(wǎng)絡(luò)設(shè)備中的對端端口合作以防止所述網(wǎng)絡(luò)中的第2層環(huán)路。
2. 如權(quán)利要求1所述的方法,其中,所述重啟的網(wǎng)絡(luò)部分是所述第一 網(wǎng)絡(luò)設(shè)備中的不再能夠更改所述重啟的端口中的一個或多個的生成樹協(xié)議(STP)狀態(tài)的線路卡。
3. 如權(quán)利要求1或2所述的方法,其中,是Portfast端口的每個重啟 的端口在所述重啟期間被維持在轉(zhuǎn)發(fā)狀態(tài)中。
4. 如權(quán)利要求1-3中任何一個所述的方法,其中,被兩個或更多個其 他網(wǎng)絡(luò)設(shè)備共享的每個重啟的端口在所述重啟期間被阻止。
5. 如權(quán)利要求1-4中任何一個所述的方法,其中,如果確定不被共享 或者是Portfast端口的每個重啟的端口的對端能夠合作以防止環(huán)路,則該 端口在所述重啟期間被維持在轉(zhuǎn)發(fā)狀態(tài)中,所述方法還包括在所述重啟期 間告知能夠合作以防止環(huán)路的對端。
6. 如權(quán)利要求1-5中任何一個所述的方法,其中,每個對端被告知重 啟即將發(fā)生、被告知重啟的種類并且在所述重啟完成時被告知所述重啟的 完成。
7. 如權(quán)利要求6所述的方法,其中,如果確定不被共享或者是Portfast 端口的每個重啟的端口的對端不能夠在所述重啟期間合作以防止環(huán)路,則 該端口在所述重啟期間被阻止。
8. 如權(quán)利要求1-7中任何一個所述的方法,還包括在所述重啟之前完 成任何待發(fā)生的端口狀態(tài)改變并且阻止STP配置直到所述重啟完成為止。
9. 如權(quán)利要求8所述的方法,還包括在所述重啟期間從STP根計算中 排除在所述重啟期間被阻止的重啟的端口 。
10. 如權(quán)利要求8或9所述的方法,還包括推遲重啟的端口的從阻止 到轉(zhuǎn)發(fā)的狀態(tài)改變,直到所述重啟完成為止。
11. 如權(quán)利要求IO所述的方法,還包括在所述網(wǎng)絡(luò)中的角色改變導(dǎo)致 特定的重啟的端口的從轉(zhuǎn)發(fā)到阻止的狀態(tài)改變時執(zhí)行以下操作所述特定的重啟的端口向所述特定的重啟的端口的對端發(fā)送通告其當(dāng) 前狀態(tài)并標(biāo)識其新端口角色的第一網(wǎng)橋協(xié)議數(shù)據(jù)單元(BPDU),其中所 述第一 BPDU被發(fā)送以使得所述特定的重啟的端口的對端將其狀態(tài)改變到 阻止并將其自身標(biāo)記為重啟不一致;并且所述特定的重啟的端口接收來自所述特定的重啟的端口的對端的、承 載所述對端的新阻止?fàn)顟B(tài)的BPDU。
12. 如權(quán)利要求10或11所述的方法,還包括在所述網(wǎng)絡(luò)中的SYNC 操作導(dǎo)致特定的重啟的端口的從轉(zhuǎn)發(fā)到阻止的狀態(tài)改變時執(zhí)行以下操作當(dāng)所述第一網(wǎng)絡(luò)設(shè)備接收到來自希望轉(zhuǎn)到轉(zhuǎn)發(fā)狀態(tài)的對端端口的開放 新鏈路的提議時,所述第一網(wǎng)絡(luò)設(shè)備將所述提議轉(zhuǎn)發(fā)到其一個或多個鄰居 網(wǎng)絡(luò)設(shè)備,以便所述一個或多個鄰居網(wǎng)絡(luò)設(shè)備能夠各自將自己與所述網(wǎng)絡(luò) 的其余部分切斷;并且當(dāng)響應(yīng)于被轉(zhuǎn)發(fā)到所述鄰居網(wǎng)絡(luò)設(shè)備的所述提議,在所述第一網(wǎng)絡(luò)設(shè) 備中接收到同意時,將所述同意轉(zhuǎn)發(fā)到其在所述新鏈路上的對端端口。
13. 如權(quán)利要求12所述的方法,還包括在重啟之前為所述重啟的網(wǎng)絡(luò) 設(shè)備的MAC地址獲知表設(shè)置較短的老化定時器,以便引起對所述表中的 陳舊的L2條目的快速沖刷。
14. 一種可以重啟的第一網(wǎng)絡(luò)設(shè)備,其中所述第一網(wǎng)絡(luò)設(shè)備具有用于 接收和發(fā)送第2層數(shù)據(jù)的多個端口,其中所述第一網(wǎng)絡(luò)設(shè)備屬于網(wǎng)絡(luò)設(shè)備 的網(wǎng)絡(luò),所述第一網(wǎng)絡(luò)設(shè)備包括一個或多個處理器; 一個或多個存儲器,其中所述處理器和存儲器中的至少一個被配置用于當(dāng)所述第一網(wǎng)絡(luò)設(shè)備的至少一部分的重啟即將發(fā)生,從而重啟的網(wǎng)絡(luò) 設(shè)備部分不再能夠更改所述多個端口中的一個或多個的生成樹協(xié)議 (STP)狀態(tài)并且在所述重啟期間保持在固定狀態(tài)中的這種端口被稱為重 啟的端口時,在預(yù)定條件下在所述重啟期間維持處于轉(zhuǎn)發(fā)狀態(tài)的每個重啟的端口的轉(zhuǎn)發(fā)狀態(tài);以及在所述重啟期間,所述重啟的網(wǎng)絡(luò)設(shè)備部分的所述重啟的端口中的每 一個與其在作為所述第一網(wǎng)絡(luò)設(shè)備的鄰居的第二未重啟網(wǎng)絡(luò)設(shè)備中的對端端口合作以防止所述網(wǎng)絡(luò)中的第2層環(huán)路。
15. 如權(quán)利要求14所述的第一網(wǎng)絡(luò)設(shè)備,其中,所述重啟的網(wǎng)絡(luò)部分 是所述第一網(wǎng)絡(luò)設(shè)備中的不再能夠更改所述重啟的端口中的一個或多個的 生成樹協(xié)議(STP)狀態(tài)的線路卡。
16. 如權(quán)利要求14或15所述的第一網(wǎng)絡(luò)設(shè)備,其中,是Portfast端口 的每個重啟的端口在所述重啟期間被維持在轉(zhuǎn)發(fā)狀態(tài)中。
17. 如權(quán)利要求14-16中任何一個所述的第一網(wǎng)絡(luò)設(shè)備,其中,被兩個 或更多個其他網(wǎng)絡(luò)設(shè)備共享的每個重啟的端口在所述重啟期間被阻止。
18. 如權(quán)利要求14-17中任何一個所述的第一網(wǎng)絡(luò)設(shè)備,其中,如果確 定不被共享或者是Portfast端口的每個重啟的端口的對端能夠合作以防止 環(huán)路,則該端口在所述重啟期間被維持在轉(zhuǎn)發(fā)狀態(tài)中,其中所述處理器和 存儲器中的至少一個還被配置用于在所述重啟期間告知能夠合作以防止環(huán) 路的對端。
19. 如權(quán)利要求14-18中任何一個所述的第一網(wǎng)絡(luò)設(shè)備,其中,每個對 端被告知重啟即將發(fā)生、被告知重啟的種類并且在所述重啟完成時被告知 所述重啟的完成。
20. 如權(quán)利要求19所述的第一網(wǎng)絡(luò)設(shè)備,其中,如果確定不被共享或 者是Portfast端口的每個重啟的端口的對端不能夠在所述重啟期間合作以 防止環(huán)路,則該端口在所述重啟期間被阻止。
21. 如權(quán)利要求14-20中任何一個所述的第一網(wǎng)絡(luò)設(shè)備,其中所述處理 器和存儲器中的至少一個還被配置用于在所述重啟之前完成任何待發(fā)生的端口狀態(tài)改變并且阻止STP配置直到所述重啟完成為止。
22. 如權(quán)利要求21所述的第一網(wǎng)絡(luò)設(shè)備,其中所述處理器和存儲器中 的至少一個還被配置用于在所述重啟期間從STP根計算中排除在所述重啟 期間被阻止的重啟的端口。
23. 如權(quán)利要求21或22所述的第一網(wǎng)絡(luò)設(shè)備,其中所述處理器和存 儲器中的至少一個還被配置用于推遲重啟的端口的從阻止到轉(zhuǎn)發(fā)的狀態(tài)改 變,直到所述重啟完成為止。
24. 如權(quán)利要求23所述的第一網(wǎng)絡(luò)設(shè)備,其中所述處理器和存儲器中 的至少一個還被配置用于在所述網(wǎng)絡(luò)中的角色改變導(dǎo)致特定的重啟的端口 的從轉(zhuǎn)發(fā)到阻止的狀態(tài)改變時執(zhí)行以下操作所述特定的重啟的端口向所述特定的重啟的端口的對端發(fā)送通告其當(dāng) 前狀態(tài)并標(biāo)識其新端口角色的第一網(wǎng)橋協(xié)議數(shù)據(jù)單元(BPDU),其中所 述第一 BPDU被發(fā)送以使得所述特定的重啟的端口的對端將其狀態(tài)改變到 阻止并將其自身標(biāo)記為重啟不一致;并且所述特定的重啟的端口接收來自所述特定的重啟的端口的對端的、承 載所述對端的新阻止?fàn)顟B(tài)的BPDU。
25. 如權(quán)利要求23或24所述的第一網(wǎng)絡(luò)設(shè)備,其中所述處理器和存 儲器中的至少一個還被配置用于在所述網(wǎng)絡(luò)中的SYNC操作導(dǎo)致特定的重 啟的端口的從轉(zhuǎn)發(fā)到阻止的狀態(tài)改變時執(zhí)行以下操作當(dāng)所述第一網(wǎng)絡(luò)設(shè)備接收到來自希望轉(zhuǎn)到轉(zhuǎn)發(fā)狀態(tài)的對端端口的開放 新鏈路的提議時,所述第一網(wǎng)絡(luò)設(shè)備將所述提議轉(zhuǎn)發(fā)到其一個或多個鄰居 網(wǎng)絡(luò)設(shè)備,以便所述一個或多個鄰居網(wǎng)絡(luò)設(shè)備能夠各自將自己與所述網(wǎng)絡(luò) 的其余部分切斷;并且當(dāng)響應(yīng)于被轉(zhuǎn)發(fā)到所述鄰居網(wǎng)絡(luò)設(shè)備的所述提議,在所述第一網(wǎng)絡(luò)設(shè) 備中接收到同意時,將所述同意轉(zhuǎn)發(fā)到其在所述新鏈路上的對端端口。
26. 如權(quán)利要求25所述的第一網(wǎng)絡(luò)設(shè)備,其中所述處理器和存儲器中 的至少一個還被配置用于在重啟之前為所述重啟的網(wǎng)絡(luò)設(shè)備的MAC地址 獲知表設(shè)置較短的老化定時器,以便引起對所述表中的陳舊的L2條目的 快速沖刷。
27. —種用于重啟具有用于接收和發(fā)送第2層數(shù)據(jù)的多個端口的第一網(wǎng)絡(luò)設(shè)備的裝置,其中所述第一網(wǎng)絡(luò)設(shè)備屬于網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò),所述裝置采取所述第一網(wǎng)絡(luò)設(shè)備的形式,并且包括用于進行以下操作的裝置當(dāng)所述第一網(wǎng)絡(luò)設(shè)備的至少一部分的重啟 即將發(fā)生,從而重啟的網(wǎng)絡(luò)設(shè)備部分不再能夠更改所述多個端口中的一個 或多個的生成樹協(xié)議(STP)狀態(tài)并且在所述重啟期間保持在固定狀態(tài)中 的這種端口被稱為重啟的端口時,在預(yù)定條件下在所述重啟期間維持處于 轉(zhuǎn)發(fā)狀態(tài)的每個重啟的端口的轉(zhuǎn)發(fā)狀態(tài);以及用于進行以下操作的裝置在所述重啟期間,所述重啟的網(wǎng)絡(luò)設(shè)備部 分的所述重啟的端口中的每一個與其在作為所述第一網(wǎng)絡(luò)設(shè)備的鄰居的第二未重啟網(wǎng)絡(luò)設(shè)備中的對端端口合作以防止所述網(wǎng)絡(luò)中的第2層環(huán)路。
28. —種重啟具有用于接收和發(fā)送第2層數(shù)據(jù)的多個端口的第一網(wǎng)絡(luò) 設(shè)備的網(wǎng)絡(luò)系統(tǒng),其中所述第一網(wǎng)絡(luò)設(shè)備屬于網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò),所述網(wǎng)絡(luò) 系統(tǒng)包括多個交換機,包括第一交換機和耦合到所述第一網(wǎng)絡(luò)交換機的至少一 個鄰居交換機,所述第一交換機可以執(zhí)行以下步驟當(dāng)所述第一網(wǎng)絡(luò)設(shè)備的至少一部分的重啟即將發(fā)生,從而重啟的 網(wǎng)絡(luò)設(shè)備部分不再能夠更改所述多個端口中的一個或多個的生成樹協(xié)議(STP)狀態(tài)并且在所述重啟期間保持在固定狀態(tài)中的這種端口被稱為重啟的端口時,在預(yù)定條件下在所述重啟期間維持處于轉(zhuǎn)發(fā)狀態(tài)的每個重啟的端口的轉(zhuǎn)發(fā)狀態(tài);以及在所述重啟期間,所述重啟的網(wǎng)絡(luò)設(shè)備部分的所述重啟的端口中 的每一個與其在作為所述第一網(wǎng)絡(luò)設(shè)備的鄰居的第二未重啟網(wǎng)絡(luò)設(shè)備中的 對端端口合作以防止所述網(wǎng)絡(luò)中的第2層環(huán)路。
全文摘要
公開了用于重啟第一網(wǎng)絡(luò)設(shè)備的方法和裝置。第一網(wǎng)絡(luò)設(shè)備具有用于接收和發(fā)送第2層數(shù)據(jù)的多個端口并且屬于網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)。當(dāng)?shù)谝痪W(wǎng)絡(luò)設(shè)備的至少一部分的重啟即將發(fā)生,從而重啟的網(wǎng)絡(luò)設(shè)備部分不再能夠更改一個或多個重啟的端口(102)(即在重啟期間保持在固定狀態(tài)中的端口)的生成樹協(xié)議(STP)狀態(tài)時,在預(yù)定條件下在重啟期間維持每個重啟的端口的當(dāng)前狀態(tài)(106、114)。在重啟期間,每個重啟的端口與其在第二未重啟網(wǎng)絡(luò)設(shè)備中的對端端口合作以防止網(wǎng)絡(luò)中的第2層環(huán)路(150)。
文檔編號H04L12/28GK101371504SQ200780002217
公開日2009年2月18日 申請日期2007年1月9日 優(yōu)先權(quán)日2006年1月10日
發(fā)明者烏梅什·馬哈詹, 塔曼·卡恩, 拉馬納·梅拉謝呂烏, 阿米特庫瑪·帕特爾, 隆那科·德賽 申請人:思科技術(shù)公司