路由更新方法、交換機及系統的製作方法
2023-04-27 01:58:01 2
路由更新方法、交換機及系統的製作方法
【專利摘要】本發明公開了一種路由更新方法、交換機及系統,屬於計算機網絡領域。所述方法包括:當前設備探測至少兩個鄰居設備的鏈路狀態;若所述當前設備探測到第一鄰居設備的鏈路狀態為不可達,則將內部路由表中與所述第一鄰居設備對應的初始狀態為可達的路由項置為不可達;所述當前設備還分別檢測內部路由表中與每個目標子網所對應的所有路由項是否均為不可達,若是,則向不包括所述第一鄰居設備的其它鄰居設備發送路由更新消息。本發明通過在探測到鄰居設備發生故障時,不計算而直接更新內部路由表和通知其他鄰居設備更新內部路由表,達到了交換機僅需要通過簡單地邏輯判斷,就可以完成路由更新的效果。
【專利說明】路由更新方法、交換機及系統
【技術領域】
[0001]本發明涉及計算機網絡領域,特別涉及一種路由更新方法、交換機及系統。
【背景技術】
[0002]路由協議,如OSPF (Open Shortest Path First,開放最短路徑優先)協議、BGP(Border Gateway Protocol,邊界網關協議)協議及ISIS (分級的鏈路狀態路由協議)協議可以實現網絡內任意兩節點間的通信。例如,交換機可以通過所有的輸出埠向所有相鄰的交換機發送OSPF協議消息,該OSPF協議消息用於獲取相鄰交換機的鏈路狀態,而每一個相鄰的交換機又再將該OSPF協議消息發往其所有的相鄰交換機,依次類推。這樣,由於各交換機間頻繁地交換鏈路狀態信息,因此,所有的交換機最終都能建立一個鏈路狀態資料庫,這個鏈路狀態資料庫實際上就是整個網絡的拓撲結構圖。由此,每一個交換機都知道整個網絡內共有多少個交換機,以及哪些交換機是相連的。這樣,每一個交換機就可以根據該鏈路狀態資料庫中的數據採用最短路徑路由算法來構建自己的路由表。
[0003]例如圖1所示的數據中心網絡架構,該數據中心網絡架構中有兩類交換機,由C標識的「核心交換機」及由A標識的「接入交換機」,其中,核心交換機僅與網絡內的其他交換機相連,而接入交換機則用於連接所述核心交換機及具體網段內的終端設備。該數據中心網絡中的核心交換機C的數量通常是2?4臺,如圖1中的C1、C2、C3及C4 ;而接入交換機A的數量至少在100臺,如圖1給出的AfAn。在圖1所示的數據中心網絡內的交換機運行OSPF路由協議後,C到A的轉發路徑正常情況下都是單跳(one hop)的,任意A之間的轉發路徑正常情況下都是兩跳(two hops),有4條轉發路徑,如Al-[Cl I C2 | C3 | C4]_A4。
[0004]在網絡運行的過程中,只要有一個交換機的鏈路狀態發生了變化,整個網絡就要重新通過OSPF協議來獲取新的網絡拓撲結構,網絡中的所有交換機都要根據該新的網絡拓撲結構重新計算轉發路徑。例如,如圖1所示的Cl到Al間的鏈路中斷後,所有交換機要重新計算至A4的轉發路徑,如Al重新計算出A1-C2-A4、A1-C3-A4和A1-C4-A4這3條至A4的轉發路徑,比故障前少了 I條。這種當網絡內出現交換機的鏈路狀態發生變化,所有交換機就要重新計算轉發路徑的情況,將會導致交換機計算資源的浪費,也不利於整個路由信息維護的收斂。具體以Cl為例來講,Cl還會計算至A4的3hops (故障前是Ihop)繞行路徑=Cl-[Al IA2 I A3 IA5 | An] - [C2 | C3 | C4] -A4,一共是 3* (n_2)條,當假設 n=102,那麼 C1-A4鏈路故障後,Cl會計算出300條至A4的繞行路徑,而實際上,沒有任何一臺A會選擇Cl至A4的轉發路徑,因此Cl計算的繞行路徑實際上是無效的,但這種無效計算會佔用Cl大量的計算資源,最終造成交換機的設計變得較為複雜,成本高昂。
【發明內容】
[0005]有鑑於此,本發明實施例提供了一種路由更新方法、交換機及系統,以便解決現有的路由更新方法在出現鏈路故障後會導致部分交換機進行很多無效計算的問題。所述技術方案如下:[0006]一個方面,提供了一種路由更新方法,所述方法包括:
[0007]當前設備探測至少兩個鄰居設備的鏈路狀態,所述鄰居設備為所述當前設備一跳可達的上遊設備或者下遊設備;
[0008]若所述當前設備探測到第一鄰居設備的鏈路狀態為不可達,則所述當前設備將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項置為不可達;
[0009]所述當前設備在至少一個路由項的狀態因鏈路狀態改變被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括所述第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項置為不可達。
[0010]進一步地,所述當前設備探測鄰居設備的鏈路狀態之前,還包括:
[0011]所述當前設備存儲內部路由表,在所述內部路由表中以二維坐標標識每個路由項,所述二維坐標中的一個坐標為所述鄰居設備,另一個坐標為所述目標子網;對於每個路由項,若經過與所述路由項的坐標所對應的鄰居設備通往與所述路由項的坐標所對應的目標子網的路徑並非所述當前設備通往所述目標子網的所有路徑中的最短路徑,則所述路由項始終為不可達。
[0012]進一步地,所述方法,還包括:
[0013]若所述當前設備探測到所述第一鄰居設備的鏈路狀態由不可達變為可達,則所述當前設備將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項由不可達恢復為可達;
[0014]所述當前設備在至少一個路由項的狀態因鏈路狀態改變被恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項由不可達恢復為可達。
[0015]進一步地,所述方法,還包括:
[0016]所述當前設備接收第二鄰居設備的路由更新消息,所述路由更新消息攜帶有所述第二鄰居設備的標識、目標子網的標識和是否可達的標識;
[0017]所述當前設備將所述內部路由表中與所述第二鄰居設備和所述目標子網兩者均對應的路由項根據所述是否可達的標識進行更新,所述更新包括將路由項的狀態有可達置為不可達,或者,由不可達恢復為可達;
[0018]所述當前設備在至少一個路由項的狀態因路由更新被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括所述第二鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項置為不可達;
[0019]和/或,所述當前設備在至少一個路由項的狀態因路由更新被恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第二鄰居設備的其它鄰居設備發送路由更新消息,以便所述鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項由不可達恢復為可達。
[0020]進一步地,所述方法,還包括:
[0021]所述當前設備向所述鄰居設備針對同一路由項發送路由更新消息的時間間隔不小於預定閾值。
[0022]另一方面,提供了一種交換機,包括:
[0023]鏈路探測模塊,用於探測至少兩個鄰居設備的鏈路狀態,所述鄰居設備為所述交換機一跳可達的上遊設備或者下遊設備;
[0024]路由更新模塊,用於若所述鏈路探測模塊探測到第一鄰居設備的鏈路狀態為不可達,則將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項置為不可達;
[0025]更新發送模塊,用於在至少一個路由項的狀態因鏈路狀態改變被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括所述第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述交換機和所述目標子網兩者均對應的路由項置為不可達。
[0026]進一步地,所述交換機,還包括:
[0027]路由表存儲模塊;
[0028]所述路由表存儲模塊,用於存儲內部路由表,在所述內部路由表中以二維坐標標識每個路由項,所述二維坐標中的一個坐標為所述鄰居設備,另一個坐標為所述目標子網;對於每個路由項,若經過與所述路由項的坐標所對應的鄰居設備通往與所述路由項的坐標所對應的目標子網的路徑並非所述當前設備通往所述目標子網的所有路徑中的最短路徑,則所述路由項始終為不可達。
[0029]進一步地,所述路由更新模塊,還用於若所述鏈路探測模塊探測到所述第一鄰居設備的鏈路狀態由不可達變為可達,則將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項由不可達恢復為可達;
[0030]所述更新發送模塊,還用於在至少一個路由項的狀態因鏈路狀態改變被恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項由不可達恢復為可達。
[0031]進一步地,所述交換機,還包括:
[0032]消息接收模塊;
[0033]所述消息接收模塊,用於接收第二鄰居設備的路由更新消息,所述路由更新消息攜帶有所述第二鄰居設備的標識、目標子網的標識和是否可達的標識;
[0034]所述路由更新模塊,還用於將所述內部路由表中與所述第二鄰居設備和所述目標子網兩者均對應的路由項根據所述是否可達的標識進行更新,所述更新包括將路由項的狀態有可達置為不可達,或者,由不可達恢復為可達;[0035]所述更新發送模塊,還用於在至少一個路由項的狀態因路由更新被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括所述第二鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項置為不可達;
[0036]和/或,所述更新發送模塊,還用於在至少一個路由項的狀態因路由更新被恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第二鄰居設備的其它鄰居設備發送路由更新消息,以便所述鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項由不可達恢復為可達。
[0037]進一步地,所述更新發送模塊,還用於向所述鄰居設備針對同一路由項發
[0038]送路由更新消息的時間間隔不小於預定閾值。
[0039]又一發麵,提供了一種網絡系統,包括至少一個如另一方面所述的交換機,所述交換機組成兩級或者兩級以上的交換網絡,每個交換機只與位於上一級的交換機或者位於下一級的交換機相連。
[0040]本發明實施例提供的技術方案帶來的有益效果是:
[0041]當前設備通過在探測到鄰居設備發生故障時,不計算而直接更新內部路由表和選擇性地通知其他鄰居設備更新內部路由表,解決了現有的路由更新方法在出現鏈路故障後會導致部分交換機進行很多無效計算的問題,達到了交換機僅需要通過簡單地邏輯判斷,就可以完成路由更新的效果。
【專利附圖】
【附圖說明】
[0042]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0043]圖1是現有技術中的一種數據中心網絡架構的結構示意圖;
[0044]圖2是本發明實施例一提供的路由更新方法的方法流程圖;
[0045]圖3A是本發明實施例二所涉及的實施環境的結構示意圖;
[0046]圖3B是本發明實施例二提供的路由更新方法的方法流程圖;
[0047]圖3C是本發明實施例二中若干交換機在初始狀態下的內部路由表;
[0048]圖3D是本發明實施例二中若干交換機在路由更新之後的內部路由表;
[0049]圖4A是本發明實施例三所涉及的實施環境的結構示意圖;
[0050]圖4B是本發明實施例三提供的路由更新方法的方法流程圖;
[0051]圖4C是本發明實施例三中若干交換機在初始狀態下的內部路由表;
[0052]圖4D是本發明實施例三中若干交換機在路由更新之後的內部路由表;
[0053]圖5是本發明實施例四提供的交換機的結構方框圖;
[0054]圖6是本發明實施例五提供的交換機的結構方框圖;[0055]圖7是本發明實施例六提供的網絡系統的結構示意圖。
【具體實施方式】
[0056]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
[0057]實施例一
[0058]請參考圖2,其示出了本發明實施例一提供的路由更新方法的方法流程圖。該路由更新方法可以用於由兩級或者兩級以上的設備組成的交換網絡,每個設備只與位於上一級的設備或者位於下一級的設備相連。本文中,將與當前設備相連的且位於當前設備上一級的設備稱之為「上遊設備」;將與當前設備相連的且位於當前設備下一級的設備稱之為「下遊設備」。該路由更新方法,具體包括:
[0059]步驟201,當前設備探測至少兩個鄰居設備的鏈路狀態,該鄰居設備為當前設備一跳可達的上遊設備或者下遊設備;
[0060]步驟202,若當前設備探測到第一鄰居設備的鏈路狀態為不可達,則當前設備將內部路由表中與弟一鄰居設備對應的所有路由項中初始狀態為可達的路由項直為不可達;
[0061]步驟203,當前設備在至少一個路由項的狀態因鏈路狀態改變被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括第一鄰居設備的其它鄰居設備發送路由更新消息,以便其它鄰居設備將內部路由表中與當前設備和目標子網兩者均對應的路由項置為不可達。
[0062]綜上所述,本實施例提供的路由更新方法中,當前設備通過在探測到鄰居設備發生故障時,不計算而直接更新內部路由表和選擇性地通知其他鄰居設備更新內部路由表,解決了現有的路由更新方法在出現鏈路故障後會導致部分交換機進行很多無效計算的問題,達到了交換機僅需要通過簡單地邏輯判斷,就可以完成路由更新的效果。
[0063]為了更好地描述,在下述實施例中以路由更新方法應用於兩級設備組成的交換網絡中來舉例說明。
[0064]實施例二
[0065]請參考圖3A,其示出了本發明實施例二所涉及的實施環境的結構示意圖。該實施環境是一個數據中心中由兩級交換機組成的交換網絡,每個交換機只與位於上一級的交換機或者位於下一級的交換機相連。本文中,將與當前交換機相連的且位於當前交換機上一級的交換機稱之為「上遊設備」;將與當前交換機相連的且位於當前交換機下一級的交換機稱之為「下遊設備」。具體地講,該實施環境包括:
[0066]位於上一級的4個核心交換機Cl、C2、C3和C4 ;
[0067]位於下一級的η個接入交換機Al、Α2、A3、Α4、Α5和An ;其中,Α6至Alri未具體示出。每個接入交換機各自都分別與核心交換機相連,比如,Al分別與Cl、C2、C3和C4相連;Α2分別與Cl、C2、C3和C4相連;Α3分別與Cl、C2、C3和C4相連,等等。每個接入交換機分別對應一個子網,比如接入交換機Al的子網是數據中心內部具體的伺服器接入網段subnetl ;接入交換機Α2的子網是數據中心內部具體的伺服器接入網段subnet2,等等。
[0068]與接入交換機屬於同一級的2個邊界交換機BI和B2。邊界交換機屬於特殊的接入交換機,每個邊界交換機對應的子網是default (默認路由),邊界交換機在具有接入交換機的功能的基礎上,同時運行傳統的諸如OSPF的其它路由協議,以便和數據中心外部的網絡互連互通。也即,邊界交換機會將數據中心內部路由聚合後發布到外部,以實現數據中心和外部互連互通的要求。每個邊界交換機也各自都與核心交換機相連,比如,BI分別與Cl、C2、C3和C4相連;B2分別與Cl、C2、C3和C4相連。
[0069]在上述網絡拓撲中,同一級的設備互相之間並不直接相連。
[0070]請參考圖3B,其示出了本發明實施例二提供的路由更新方法的方法流程圖。本實施例以該路由更新方法應用於圖3A所示實施環境為例來舉例說明,在一個交換機被認為是當前設備時,與其相連的上遊設備或者下遊設備被稱之為鄰居設備。該路由更新方法,具體包括:
[0071]步驟301,當前設備存儲內部路由表,在當前設備的內部路由表中以二維坐標標識每個路由項,二維坐標中的一個坐標為鄰居設備,另一個坐標為目標子網。
[0072]對於每個路由項,若經過與該路由項的坐標所對應的鄰居設備通往與該路由項的坐標所對應的目標子網的路徑並非當前設備通往該目標子網的所有路徑中的最短路徑,則該路由項始終為不可達。
[0073]具體地講,每個交換機中都事先存儲一張內部路由表,該內部路由表中的轉發路徑並非是實時計算的最短路徑,而是以最短路徑為基礎的固定路徑。請結合參考圖3C,其示出了若干交換機在初始狀態下的內部路由表。
[0074]若當前設備為接入交換機Al,在Al的內部路由表中,以二維坐標標識每個路由項,二維坐標中的位於行的坐標為鄰居設備Cl、C2、C3和C4,位於列的坐標為目標子網subnetl、subnet2、subnet3,、、、,以及default。對於每個路由項,路由項中的數字為I時,表示可達;路由項中的數字為O時,表示不可達;路由項中為空白時,表示始終不可達。比如,對於目標子網subnet3,當鄰居設備為Cl、C2、C3和C4時,均為可達,而且都是最短的2hops路徑;又比如,對於目標子網subnetl,從當前設備Al到目標子網subnetl的最短路徑就是自身,所以不論是鄰居設備為哪一個,經過鄰居設備通往subnetl的路徑均不是最短路徑,所以第一行的路由項始終為不可達。
[0075]對於接入交換機A2至An,與接入交換機Al類似,不再贅述。
[0076]若當前設備為核心交換機Cl,在Cl的內部路由表中,以二維坐標標識每個路由項,二維坐標中的位於行的坐標為鄰居設備A1、A2、A3,、、、,Αη、Β1和B2,位於列的坐標為目標子網subnetl、subnet2、subnet3,、、、,以及default。對於每個路由項,路由項中的數字為I時,表示可達;路由項中的數字為O時,表示不可達;路由項中為空白時,表示始終不可達。比如,對於目標子網subnet3,當鄰居設備為A3時,經過A3通往與subnet3的路徑為最短的Ihop路徑,所以該路由項為可達,但是當鄰居設備為Al時,雖然可以經過C1-A1-C2-A3之類的路徑通往subnet3,但不是從Cl出發通往subnet3的最短路徑,所以該路由項始終為不可達;又比如,對於目標子網default,當鄰居設備為BI或者B2時,經過BI或者B2通往與default的路徑為最短的Ihop路徑,所以該路由項為可達,但是當鄰居設備為Al至An時,雖然可以經過C1-A1-C2-B1之類的路徑通往default,但不是從Cl出發通往default的最短路徑,所以對應的路由項始終為不可達。
[0077]對於核心交換機C2至C4,與核心交換機Cl類似,不再贅述。[0078]若當前設備為邊界交換機BI,在BI的內部路由表中,以二維坐標標識每個路由項,二維坐標中的位於行的坐標為鄰居設備Cl、C2、C3和C4,位於列的坐標為目標子網subnetl、subnet2、subnet3,、、、,以及default。對於每個路由項,路由項中的數字為I時,表示可達;路由項中的數字為O時,表示不可達;路由項中為空白時,表示始終不可達。比如,對於目標子網subnet3,當鄰居設備為Cl、C2、C3和C4時,均為可達,而且都是最短的2hops路徑;又比如,對於目標子網default,從當前設備BI到目標子網default的最短路徑就是自身,所以不論是鄰居設備為哪一個,經過鄰居設備通往default的路徑均不是最短路徑,所以最後一行的路由項始終為不可達。
[0079]對於邊界交換機B2,與邊界交換機BI類似,不再贅述。
[0080]步驟302,當前設備探測至少兩個鄰居設備的鏈路狀態,該鄰居設備為當前設備一跳可達的上遊設備或者下遊設備;
[0081]若當前設備為接入交換機Al,其Ihop可達的設備為位於上一級的核心交換機Cl、C2、C3和C4,所以Al分別探測Cl、C2、C3和C4的鏈路狀態;
[0082]同理,A2至An也是分別探測Cl、C2、C3和C4的鏈路狀態。
[0083]若當前設備為核心交換機Cl,其Ihop可達的設備為位於下一級的接入交換機Al至An和邊界交換機B1、B2,所以Cl分別探測Al至An、BI和B2的鏈路狀態;
[0084]同理,C2也是分別探測Al至An、BI和B2的鏈路狀態。
[0085]若當前設備為邊界交換機BI,其Ihop可達的設備為位於上一級的核心交換機Cl、C2、C3和C4,所以B I分別探測Cl、C2、C3和C4的鏈路狀態;
[0086]同理,B2也是分別探測Cl、C2、C3和C4的鏈路狀態。
[0087]也即,相鄰的兩個設備相互探測對方的鏈路狀態。
[0088]步驟303,若當前設備探測到第一鄰居設備的鏈路狀態為不可達,則當前設備將內部路由表中與弟一鄰居設備對應的所有路由項中初始狀態為可達的路由項直為不可達;
[0089]第一鄰居設備是當前設備的至少兩個鄰居設備中的某一個鄰居設備。其中,「第一」僅為了便於區別描述,並不包含其他特殊含義。
[0090]若當前設備為接入交換機Al,假設Al探測到Cl的鏈路狀態為不可達,則Al將內部路由表中與Cl對應的所有路由項中初始狀態為可達的路由項置為不可達,如圖3D所示。
[0091]若當前設備為核心交換機Cl,假設Cl探測到Al的鏈路狀態為不可達,則Cl將內部路由表中與Al對應的所有路由項中初始狀態為可達的路由項置為不可達,如圖3D所示。
[0092]步驟304,當前設備在至少一個路由項的狀態因鏈路狀態改變被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括第一鄰居設備的其它鄰居設備發送路由更新消息,以便其它鄰居設備將內部路由表中與當前設備和目標子網兩者均對應的路由項置為不可達。
[0093]若當前設備為接入交換機Al,繼續假設Al探測到Cl的鏈路狀態為不可達,Al首先會將內部路由表中與Cl對應的所有路由項中初始狀態為可達的路由項置為不可達;然後分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,檢測發現沒有哪一個目標子網所對應的所有路由項變成均為不可達(目標子網subnet2-default原來分別對應有四個路由項可達,現在變為分別對應三個路由項可達),所以不進行後續處理。
[0094]若當前設備為核心交換機Cl,繼續假設Cl探測到Al的鏈路狀態為不可達,則Cl將內部路由表中與Al對應的所有路由項中初始狀態為可達的路由項置為不可達,也即將第一行第一列所對應的路由項由「I」變為「0」,如圖3D所示;
[0095]此時,Cl分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,檢測發現與subnetl所對應的所有路由項變成均為不可達(也即,第一行的路由項全部變成了不可達),則Cl向除Al之外的其它鄰居設備發送路由更新消息,以便其它鄰居設備將內部路由表中與Cl和subnetl兩者均對應的路由項置為不可達,如圖3D所示,A2至An、BI和B2中與Cl和subnetl兩者均對應的路由項,全部由「 I」變為了 「O」。
[0096]步驟305,若當前設備探測到第一鄰居設備的鏈路狀態由不可達變為可達,則當前設備將內部路由表中與第一鄰居設備對應的所有路由項中初始狀態為可達的路由項由不可達恢復為可達;
[0097]若當前設備為核心交換機Cl,假設Cl探測到Al的鏈路狀態由不可達恢復為可達,則Cl將內部路由表中與Al對應的所有路由項中初始狀態為可達的路由項恢復為可達,也即將第一行第一列所對應的路由項由「O」恢復為「1」,如圖3C所示;
[0098]步驟306,當前設備在至少一個路由項的狀態因鏈路狀態改變被恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第一鄰居設備的其它鄰居設備發送路由更新消息,以便鄰居設備將內部路由表中與當前設備和目標子網兩者均對應的路由項由不可達恢復為可達。
[0099]在上一步驟之後,Cl還分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,檢測發現與subnetl所對應的所有路由項由均為不可達變成至少一個可達(也即,第一行第一列所對應的路由項變成了可達),則Cl向除Al之外的其它鄰居設備發送路由更新消息,以便其它鄰居設備將內部路由表中與Cl和subnetl兩者均對應的路由項由不可達恢復為可達,如圖3C所示,A2至An、BI和B2中與Cl和subnetl兩者均對應的路由項,全部由「O」變為了 「 I」。
[0100]綜上所述,本實施例提供的路由更新方法,當前設備通過在探測到鄰居設備發生故障時,不計算而直接更新內部路由表和選擇性地通知其他鄰居設備更新內部路由表,解決了現有的路由更新方法在出現鏈路故障後會導致部分交換機進行很多無效計算的問題,達到了交換機僅需要通過簡單地邏輯判斷,就可以完成路由更新的效果。
[0101]實施例三
[0102]請參考圖4A,其示出了本發明實施例三所涉及的實施環境的結構示意圖。該實施環境是一個數據中心中由三級交換機組成的交換網絡。具體地講,該實
[0103]施環境包括:
[0104]位於最上一級的2個核心交換機Cl和C2。
[0105]位於中間一級的2個邊界交換機BI和B2。邊界交換機屬於特殊的接入交換機,每個邊界交換機對應的子網是default (默認路由),邊界交換機在具有接入交換機的功能的基礎上,同時運行傳統的諸如OSPF的其它路由協議,以便和數據中心外部的網絡互連互通。也即,邊界交換機會將數據中心內部路由聚合後發布到外部,以實現數據中心和外部互連互通的要求。每個邊界交換機也各自都與核心交換機相連,比如,BI分別與Cl和C2相連;B2分別與Cl和C2相連。
[0106]位於中間一級的4個匯聚點交換機G1、G2、G3和G4。每個匯聚點交換機各自都與核心交換機相連,比如,Gl分別與Cl和C2相連;G3分別與Cl和C2相連,等等。每個匯聚點交換機的下一級還設置有若干個接入交換機,其中,Gl和G2及下屬接入交換機形成第一設備集群PODl ;G3和G4及下屬接入交換機形成第二設備集群P0D2。
[0107]位於最低一級的8個接入交換機六1、六2、4334、45、46、47和八8。其中,A1、A2、A3和A4屬於PODl,分別與Gl和G2相連;A5、A6、A7和A8屬於P0D2,分別與G3和G4相連。每個接入交換機分別對應一個子網,比如接入交換機Al的子網是數據中心內部具體的伺服器接入網段subnetl ;接入交換機A2的子網是數據中心內部具體的伺服器接入網段subnet2,等等。
[0108]在上述網絡拓撲中,同一級的設備互相之間並不直接相連。
[0109]請參考圖4B,其示出了本發明實施例三提供的路由更新方法的方法流程圖。本實施例以該路由更新方法應用於圖4A所示實施環境為例來舉例說明,在一個交換機被認為是當前設備時,與其相連的上遊設備或者下遊設備被稱之為鄰居設備。該路由更新方法,具體包括:
[0110]步驟401,當前設備存儲內部路由表,在當前設備的內部路由表中以二維坐標標識每個路由項,二維坐標中的一個坐標為鄰居設備,另一個坐標為目標子網。
[0111]對於每個路由項,若經過與該路由項的坐標所對應的鄰居設備通往與該路由項的坐標所對應的目標子網的路徑並非當前設備通往該目標子網的所有路徑中的最短路徑,則該路由項始終為不可達。
[0112]具體地講,每個交換機中都事先存儲一張內部路由表,該內部路由表中的轉發路徑並非是實時計算的最短路徑,而是以最短路徑為基礎的固定路徑。請結合參考圖4C,其示出了若干交換機在初始狀態下的內部路由表。
[0113]若當前設備為接入交換機Al,在Al的內部路由表中,以二維坐標標識每個路由項,二維坐標中的位於行的坐標為鄰居設備Gl和G2,位於列的坐標為目標子網subnetl、subnet2、subnet3,、、、,subnet8以及default。對於每個路由項,路由項中的數字為I時,表示可達;路由項中的數字為O時,表示不可達;路由項中為空白時,表示始終不可達。比如,對於目標子網subnet3,不論鄰居設備為Gl和G2,均為可達,而且都是最短的2hops路徑;又比如,對於目標子網subnetl,從當前設備Al到目標子網subnetl的最短路徑就是自身,所以不論鄰居設備為哪一個,經過鄰居設備通往subnetl的路徑均不是最短路徑,所以第一行的路由項始終為不可達。
[0114]對於接入交換機A2至AS,與接入交換機Al類似,不再贅述。
[0115]若當前設備為匯聚點交換機G1,在Gl的內部路由表中,以二維坐標標識每個路由項,二維坐標中的位於行的坐標為鄰居設備Al、A2、A3、A4、Cl和C2,位於列的坐標為目標子網subnetl、subnet2、subnet3,、、、,subnet8以及default。對於每個路由項,路由項中的數字為I時,表示可達;路由項中的數字為O時,表示不可達;路由項中為空白時,表示始終不可達。比如,對於目標子網subnet3,當鄰居設備為A3時,經過A3通往與subnet3的路徑為最短的Ihop路徑,所以該路由項為可達,但是當鄰居設備為Al時,雖然可以經過G1-A1-G2-A3之類的路徑通往subnet3,但不是從Gl出發通往subnet3的最短路徑,所以該路由項始終為不可達;又比如,對於目標子網default,當鄰居設備為Cl或者C2時,經過Cl或者C2通往default的路徑為最短的2hop路徑,所以該路由項為可達,但是當鄰居設備為Al至A4時,雖然可以經過G1-A1-G2-C1-B1之類的路徑通往default,但不是從Gl出發通往default的最短路徑,所以對應的路由項始終為不可達。
[0116]對於匯聚點交換機G2、G3和G4,與匯聚點交換機Gl類似,不再贅述。
[0117]若當前設備為核心交換機Cl,在Cl的內部路由表中,以二維坐標標識每個路由項,二維坐標中的位於行的坐標為鄰居設備Gl、G2、G3、G4、BI和B2,位於列的坐標為目標子網 subnetl、subnet2、subnet3,、、、,subnet n 以及 default。對於每個路由項,路由項中的數字為I時,表示可達;路由項中的數字為O時,表示不可達;路由項中為空白時,表示始終不可達。比如,對於目標子網subnet3,當鄰居設備為Gl時,經過Gl通往與subnet3的路徑為最短的2hop路徑,所以該路由項為可達,但是當鄰居設備為G3時,雖然可以經過C1-G3-C2-G1-A3之類的路徑通往subnet3,但不是從Cl出發通往subnet3的最短路徑,所以該路由項始終為不可達。
[0118]對於核心交換機C2,與核心交換機Cl類似,不再贅述。
[0119]若當前設備為邊界交換機BI,在BI的內部路由表中,以二維坐標標識每個路由項,二維坐標中的位於行的坐標為鄰居設備Cl和C2,位於列的坐標為目標子網subnetl、subnet2、subnet3,、、、,subnet η以及default。對於每個路由項,路由項中的數字為I時,表示可達;路由項中的數字為O時,表示不可達;路由項中為空白時,表示始終不可達。比如,對於目標子網subnet3,當鄰居設備為Cl和C2時,均為可達,而且都是最短的3hops路徑;又比如,對於目標子網default,從當前設備BI到目標子網default的最短路徑就是自身,所以不論是鄰居設備為哪一個,經過鄰居設備通往default的路徑均不是最短路徑,所以第三行的路由項始終為不可達。
[0120]對於邊界交換機B2,與邊界交換機BI類似,不再贅述。
[0121]步驟402,當前設備探測至少兩個鄰居設備的鏈路狀態,該鄰居設備為當前設備一跳可達的上遊設備或者下遊設備;
[0122]若當前設備為接入交換機Al,其Ihop可達的設備為位於上一級的匯聚點交換機Gl和G2,所以Al分別探測Gl和G2的鏈路狀態;
[0123]同理,A2至A4也是分別探測G1、G2的鏈路狀態;而A5至A8則分別探測G3和G4的鏈路狀態。
[0124]若當前設備為匯聚點交換機G1,其I hop可達的設備為位於上一級的匯聚點交換機Cl和C2,位於下一級的接入交換機A1、A2、A3和A4,所述Gl分別探測Al至A4、C1和C2的鏈路狀態;
[0125]同理,G2也分別探測Al至A4、C1和C2的鏈路狀態;而G3和G4則分別探測A5至A8、Cl和C2的鏈路狀態;
[0126]若當前設備為核心交換機Cl,其Ihop可達的設備為位於下一級的匯聚點交換機Gl至G4和邊界交換機B1、B2,所以Cl分別探測Gl至G4、B1和B2的鏈路狀態;
[0127]同理,C2也是分別探測Gl至G4、BI和B2的鏈路狀態。
[0128]若當前設備為邊界交換機BI,其Ihop可達的設備為位於上一級的核心交換機Cl和C2,所以BI分別探測Cl和C2的鏈路狀態;
[0129]同理,B2也是分別探測Cl和C2的鏈路狀態。
[0130]也即,相鄰的兩個設備相互探測對方的鏈路狀態。
[0131]步驟403,若當前設備探測到第一鄰居設備的鏈路狀態為不可達,則當前設備將內部路由表中與弟一鄰居設備對應的所有路由項中初始狀態為可達的路由項直為不可達;
[0132]第一鄰居設備是當前設備的至少兩個鄰居設備中的某一個鄰居設備。其中,「第一」僅為了便於區別描述,並不包含其他特殊含義。
[0133]下述步驟中,均以BI和BI的默認路由撤銷來舉例說明,比如,數據中心不需要接入外網了,BI和B2的默認路由撤銷。對於其它路徑發生故障或者撤銷的情形,本領域技術人員可以容易及延伸思及,不再贅述。
[0134]若當前設備為核心交換機Cl,Cl探測到BI和B2的鏈路狀態均為不可達,則Cl將內部路由表中與BI和B2對應的所有路由項中初始狀態為可達的路由項置為不可達,也即將最後一行的路由項中初始狀態為「 I」的路由項置為「0」,如圖4D所示。
[0135]同時,核心交換機C2,也會將內部路由表中與BI和B2對應的所有路由項中初始狀態為可達的路由項置為不可達,也即將最後一行的路由項中初始狀態為「I」的路由項置為「0」,如圖4D所示。
[0136]步驟404,當前設備在至少一個路由項的狀態因鏈路狀態改變被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括第一鄰居設備的其它鄰居設備發送路由更新消息,以便其它鄰居設備將內部路由表中與當前設備和目標子網兩者均對應的路由項置為不可達。
[0137]若當前設備為核心交換機Cl,Cl將內部路由表中與BI和B2對應的所有路由項中初始狀態為可達的路由項置為不可達之後,此時,Cl分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,檢測發現與default所對應的所有路由項變成均為不可達(也即,最後一行的路由項全部變成了不可達),則Cl向除BI和B2之外的其它鄰居設備發送路由更新消息,以便其它鄰居設備將內部路由表中與Cl和default兩者均對應的路由項置為不可達,如圖4D所示,G1、G2、G3和G4中與Cl和default兩者均對應的路由項,由「I」變為了 「O」。
[0138]同理,核心交換機C2在將內部路由表中與BI和B2對應的所有路由項中初始狀態為可達的路由項置為不可達之後,C2也分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,檢測發現與default所對應的所有路由項變成均為不可達(也即,最後一行的路由項全部變成了不可達),則C2向除BI和B2之外的其它鄰居設備發送路由更新消息,以便其它鄰居設備將內部路由表中與C2和default兩者均對應的路由項置為不可達,如圖4D所示,GU G2、G3和G4中與C2和default兩者均對應的路由項,由「I」變為了 「O」。
[0139]步驟402至步驟403是以當前設備通過探測鄰居設備的鏈路狀態來觸發路由更新的。顯然,當前設備也可以通過接收鄰居設備的路由更新消息來觸發路由更新。請參考如下步驟:
[0140]步驟405,當前設備接收第二鄰居設備的路由更新消息,路由更新消息攜帶有所第二鄰居設備的標識、目標子網的標識和是否可達的標識;
[0141]步驟406,當前設備將內部路由表中與第二鄰居設備和目標子網兩者均對應的路由項根據是否可達的標識進行更新,更新包括將路由項的狀態有可達置為不可達,或者,由不可達恢復為可達;
[0142]步驟407,當前設備在至少一個路由項的狀態因路由更新被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項均為不可達,則向不包括第二鄰居設備的其它鄰居設備發送路由更新消息,以便其它鄰居設備將內部路由表中與當前設備和目標子網兩者均對應的路由項置為不可達;
[0143]步驟408,當前設備在至少一個路由項的狀態因路由更新被恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第二鄰居設備的其它鄰居設備發送路由更新消息,以便鄰居設備將內部路由表中與當前設備和目標子網兩者均對應的路由項由不可達恢復為可達。
[0144]具體地講:
[0145]若當前設備為匯聚點交換機G1,G1可以接收到來自Cl的路由更新消息,該路由更新消息中包括Cl的標識、default的標識和不可達的標識;然後,Gl將內部路由表中與Cl和default兩者均對應的路由項由「I」更新為「O」。
[0146]同理,Gl還會接收到來自C2的路由更新消息,該路由更新消息中包括C2的標識、default的標識和不可達的標識;然後,Gl將內部路由表中與C2和default兩者均對應的路由項由「I」更新為「O」。
[0147]之後,Gl會分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,檢測發現與default所對應的所有路由項變成均為不可達(也即,最後一行的路由項全部變成了不可達),則Gl向不包括Cl和C2的其它鄰居設備Al至A4發送路由更新消息,以便Al至A4將內部路由表中與Gl和default兩者均對應的路由項由「I」更新為「O」。
[0148]易於思及的,G2、G3和G4也會執行如Gl相同的操作,最終路由更新後的內部路由表如圖4D所示。
[0149]如果數據中心又需要接入外網,恢復了 BI和B2的默認路由,則相應的路由更新過程基本為上述過程的逆過程,不再一一贅述。但是需要說明的是,在優選的方案中,當前設備向鄰居設備針對同一路由項發送路由更新消息的時間間隔不小於預定閾值。也就是說,如果當前設備需要向鄰居設備針對同一路由項發送路由更新消息,則兩次路由更新消息的發送時間之間的時間間隔不小於預定閾值,這是為了避免產生路由震蕩。該預定閾值可以是2秒,或者其它由設計者指定的數值。
[0150]綜上所述,本實施例提供的路由更新方法,不僅具有上一實施例的優點,還通過接收第二鄰居設備的路由更新消息,不計算而直接更新內部路由表和選擇性地向不包含第二鄰居設備的其它鄰居設備反射路由更新消息,解決了現有的路由更新方法在出現鏈路故障後會導致部分交換機進行很多無效計算的問題,達到了交換機僅需要通過簡單地邏輯判斷,就可以完成路由更新的效果。[0151]下述實施例為本發明裝置實施例,可以用於執行本發明方法實施例。對於本發明裝置實施例中未披露的技術細節,請參照本發明方法實施例。
[0152]實施例四
[0153]請參考圖5,其示出了本發明實施例四提供的交換機的結構方框圖。該交換機可以是核心交換機、匯聚點交換機、接入交換機和邊界交換機中的某一種。該交換機包括鏈路探測模塊520、路由更新模塊540和更新發送模塊560。
[0154]鏈路探測模塊520,用於探測至少兩個鄰居設備的鏈路狀態,所述鄰居設備為所述交換機一跳可達的上遊設備或者下遊設備;
[0155]路由更新模塊540,用於若所述鏈路探測模塊520探測到第一鄰居設備的鏈路狀態為不可達,則將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項置為不可達;
[0156]更新發送模塊560,用於在至少一個路由項的狀態因鏈路狀態改變被所述路由更新模塊540置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括所述第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述交換機和所述目標子網兩者均對應的路由項置為不可達。
[0157]綜上所述,本實施例提供的交換機,通過在探測到鄰居設備發生故障時,不計算而直接更新內部路由表和選擇性地通知其他鄰居設備更新內部路由表,解決了現有的路由更新方法在出現鏈路故障後會導致部分交換機進行很多無效計算的問題,達到了交換機僅需要通過簡單地邏輯判斷,就可以完成路由更新的效果。
[0158]實施例五
[0159]請參考圖6,其示出了本發明實施例五提供的交換機的結構方框圖。該交換機可以是核心交換機、匯聚點交換機、接入交換機和邊界交換機中的某一種。該交換機包括路由表存儲模塊510、鏈路探測模塊520、消息接收模塊530、路由更新模塊540和更新發送模塊560
[0160]所述路由表存儲模塊510,用於存儲內部路由表,在所述內部路由表中以二維坐標標識每個路由項,所述二維坐標中的一個坐標為所述鄰居設備,另一個坐標為所述目標子網;對於每個路由項,若經過與所述路由項的坐標所對應的鄰居設備通往與所述路由項的坐標所對應的目標子網的路徑並非所述當前設備通往所述目標子網的所有路徑中的最短路徑,則所述路由項始終為不可達。
[0161]鏈路探測模塊520,用於探測至少兩個鄰居設備的鏈路狀態,所述鄰居設備為所述交換機一跳可達的上遊設備或者下遊設備;
[0162]路由更新模塊540,用於若所述鏈路探測模塊520探測到第一鄰居設備的鏈路狀態為不可達,則將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項置為不可達;
[0163]更新發送模塊560,用於在至少一個路由項的狀態因鏈路狀態改變被所述路由更新模塊540置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括所述第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述交換機和所述目標子網兩者均對應的路由項置為不可達。
[0164]所述路由更新模塊540,還用於若所述鏈路探測模塊520探測到所述第一鄰居設備的鏈路狀態由不可達變為可達,則將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項由不可達恢復為可達;
[0165]所述更新發送模塊560,還用於在至少一個路由項的狀態因鏈路狀態改變被所述路由更新模塊540恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項由不可達恢復為可達。
[0166]所述消息接收模塊530,用於接收第二鄰居設備的路由更新消息,所述路由更新消息攜帶有所述第二鄰居設備的標識、目標子網的標識和是否可達的標識;
[0167]所述路由更新模塊540,還用於將所述內部路由表中與所述第二鄰居設備和所述目標子網兩者均對應的路由項根據所述消息接收模塊530接收到的是否可達的標識進行更新,所述更新包括將路由項的狀態有可達置為不可達,或者,由不可達恢復為可達;
[0168]所述更新發送模塊560,還用於在至少一個路由項的狀態因路由更新被所述路由更新模塊540置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括所述第二鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項置為不可達;
[0169]和/或,所述更新發送模塊560,還用於在至少一個路由項的狀態因路由更新被被所述路由更新模塊540恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第二鄰居設備的其它鄰居設備發送路由更新消息,以便所述鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項由不可達恢復為可達。
[0170]所述更新發送模塊560,還用於向所述鄰居設備針對同一路由項發送路由更新消息的時間間隔不小於預定閾值。
[0171]綜上所述,本實施例提供的交換機,不僅具有上一實施例的優點,還通過接收第二鄰居設備的路由更新消息,不計算而直接更新內部路由表和選擇性地向不包含第二鄰居設備的其它鄰居設備反射路由更新消息,解決了現有的路由更新方法在出現鏈路故障後會導致部分交換機進行很多無效計算的問題,達到了交換機僅需要通過簡單地邏輯判斷,就可以完成路由更新的效果。
[0172]實施例六
[0173]請參考圖7,其示出了本發明實施例六提供的網絡系統的結構示意圖。該網絡系統包括至少一個如實施例四或者實施例五所提供的交換機720,所述交換機720組成兩級或者兩級以上的交換網絡,每個交換機只與位於上一級的交換機或者位於下一級的交換機相連。
[0174]上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。[0175]本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬體來完成,也可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁碟或光碟等。
[0176]以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種路由更新方法,其特徵在於,所述方法包括: 當前設備探測至少兩個鄰居設備的鏈路狀態,所述鄰居設備為所述當前設備一跳可達的上遊設備或者下遊設備; 若所述當前設備探測到第一鄰居設備的鏈路狀態為不可達,則所述當前設備將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項置為不可達;所述當前設備在至少一個路由項的狀態因鏈路狀態改變被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括所述第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項置為不可達。
2.根據權利要求1所述的路由更新方法,其特徵在於,所述當前設備探測鄰居設備的鏈路狀態之前,還包括: 所述當前設備存儲內部路由表,在所述內部路由表中以二維坐標標識每個路由項,所述二維坐標中的一個坐標為所述鄰居設備,另一個坐標為所述目標子網;對於每個路由項,若經過與所述路由項的坐標所對應的鄰居設備通往與所述路由項的坐標所對應的目標子網的路徑並非所述當前設備通往所述目標子網的所有路徑中的最短路徑,則所述路由項始終為不可達。
3.根據權利要求1或2所述的路由更新方法,其特徵在於,所述方法,還包括: 若所述當前設備探測到所述第一鄰居設備的鏈路狀態由不可達變為可達,則所述當前設備將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項由不可達恢復為可達; 所述當前設備在至少一個路由項的狀態因鏈路狀態改變被恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項由不可達恢復為可達。
4.根據權利要求1或2所述的路由更新方法,其特徵在於,所述方法,還包括: 所述當前設備接收第二鄰居設備的路由更新消息,所述路由更新消息攜帶有所述第二鄰居設備的標識、目標子網的標識和是否可達的標識; 所述當前設備將所述內部路由表中與所述第二鄰居設備和所述目標子網兩者均對應的路由項根據所述是否可達的標識進行更新,所述更新包括將路由項的狀態有可達置為不可達,或者,由不可達恢復為可達; 所述當前設備在至少一個路由項的狀態因路由更新被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項均為不可達,則向不包括所述第二鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項置為不可達; 和/或,所述當前設備在至少一個路由項的狀態因路由更新被恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第二鄰居設備的其它鄰居設備發送路由更新消息,以便所述鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項由不可達恢復為可達。
5.根據權利要求4所述的路由更新方法,其特徵在於,所述方法,還包括: 所述當前設備向所述鄰居設備針對同一路由項發送路由更新消息的時間間隔不小於預定閾值。
6.—種交換機,其特徵在於,包括: 鏈路探測模塊,用於探測至少兩個鄰居設備的鏈路狀態,所述鄰居設備為所述交換機一跳可達的上遊設備或者下遊設備; 路由更新模塊,用於若所述鏈路探測模塊探測到第一鄰居設備的鏈路狀態為不可達,則將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項置為不可達; 更新發送模塊,用於在至少一個路由項的狀態因鏈路狀態改變被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括所述第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述交換機和所述目標子網兩者均對應的 路由項置為不可達。
7.根據權利要求6所述的交換機,其特徵在於,所述交換機,還包括: 路由表存儲模塊; 所述路由表存儲模塊,用於存儲內部路由表,在所述內部路由表中以二維坐標標識每個路由項,所述二維坐標中的一個坐標為所述鄰居設備,另一個坐標為所述目標子網;對於每個路由項,若經過與所述路由項的坐標所對應的鄰居設備通往與所述路由項的坐標所對應的目標子網的路徑並非所述當前設備通往所述目標子網的所有路徑中的最短路徑,則所述路由項始終為不可達。
8.根據權利要求6或7所述的交換機,其特徵在於, 所述路由更新模塊,還用於若所述鏈路探測模塊探測到所述第一鄰居設備的鏈路狀態由不可達變為可達,則將內部路由表中與所述第一鄰居設備對應的所有路由項中初始狀態為可達的路由項由不可達恢復為可達; 所述更新發送模塊,還用於在至少一個路由項的狀態因鏈路狀態改變被恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第一鄰居設備的其它鄰居設備發送路由更新消息,以便所述鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項由不可達恢復為可達。
9.根據權利要求6或7所述的交換機,其特徵在於,所述交換機,還包括: 消息接收模塊; 所述消息接收模塊,用於接收第二鄰居設備的路由更新消息,所述路由更新消息攜帶有所述第二鄰居設備的標識、目標子網的標識和是否可達的標識; 所述路由更新模塊,還用於將所述內部路由表中與所述第二鄰居設備和所述目標子網兩者均對應的路由項根據所述是否可達的標識進行更新,所述更新包括將路由項的狀態有可達置為不可達,或者,由不可達恢復為可達; 所述更新發送模塊,還用於在至少一個路由項的狀態因路由更新被置為不可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否變成均為不可達,若檢測到一個目標子網所對應的所有路由項變成均為不可達,則向不包括所述第二鄰居設備的其它鄰居設備發送路由更新消息,以便所述其它鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項置為不可達; 和/或,所述更新發送模塊,還用於在至少一個路由項的狀態因路由更新被恢復為可達之後,分別檢測內部路由表中與每個目標子網所對應的所有路由項是否由均為不可達變成至少一個可達,若檢測到一個目標子網所對應的所有路由項由均為不可達變成至少一個可達,則向不包括第二鄰居設備的其它鄰居設備發送路由更新消息,以便所述鄰居設備將內部路由表中與所述當前設備和所述目標子網兩者均對應的路由項由不可達恢復為可達。
10.根據權利要求9所述的交換機,其特徵在於,所述更新發送模塊,還用於向所述鄰居設備針對同一路由項發送路由更新消息的時間間隔不小於預定閾值。
11.一種網絡系統,其特徵在於,包括至少一個如權利要求6至10任一所述的交換機,所述交換機組成兩級或者兩級以上的交換網絡,每個交換機只與位於上一級的交換機或者位於下一級的交換機相連。`
【文檔編號】H04L12/751GK103685035SQ201210362754
【公開日】2014年3月26日 申請日期:2012年9月26日 優先權日:2012年9月26日
【發明者】邱諄, 丁一, 陳平平, 錢波, 丘子雋 申請人:深圳市騰訊計算機系統有限公司