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