劉新華(上海貝爾股份有限公司 WLPD,上海 201206)
重要的通信與控制設(shè)備,其穩(wěn)定性對于整個系統(tǒng)的穩(wěn)定與業(yè)務(wù)至關(guān)重要。因此,為了確保這些重要設(shè)備的穩(wěn)定運行,通常在其內(nèi)部使用了備份和冗余網(wǎng)絡(luò)。當(dāng)內(nèi)部網(wǎng)絡(luò)的一部分出現(xiàn)故障時,要求系統(tǒng)能迅速診斷并快速切換到備份和冗余的網(wǎng)絡(luò),從而降低故障對系統(tǒng)的影響,保證系統(tǒng)的穩(wěn)定運行。
在備份和冗余網(wǎng)絡(luò)中,通常采用的冗余方式是冗余鏈路 + 生成樹協(xié)議(如STP/RSTP)。在這種方式下,網(wǎng)絡(luò)出現(xiàn)故障時的冗余切換速度取決于所使用的生成樹協(xié)議的收斂時間,在實時性要求很高的情況下會使其應(yīng)用受到一定的限制,同時,這種方式配置比較復(fù)雜,而且對交換機需要支持的協(xié)議也提出了要求。
本文針對一種平面獨立的內(nèi)部雙交換機冗余網(wǎng)絡(luò),設(shè)計了一種實用的不依賴生成樹協(xié)議(如STP/RSTP)的快速智能冗余切換的方法,網(wǎng)絡(luò)出現(xiàn)故障時,與“冗余鏈路 + 生成樹協(xié)議(如STP/RSTP)”方法相比,冗余切換速度明顯提升,實驗室及現(xiàn)場應(yīng)用驗證了該方法的有效性。
圖1是某一核心通信設(shè)備內(nèi)部的雙交換機冗余網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。如圖1所示,設(shè)備中有多個控制單元(Control Element,CE),每一個控制單位都相當(dāng)于一臺電腦,通過eth0和eth1分別連接到兩個交換機SWITCH-A和SWITCH-B,組成了兩個互為備份的網(wǎng)絡(luò)交換平面。由于SWITCH-A和SWITCH-B之間沒有網(wǎng)絡(luò)連接,因此,這兩個交換機雖互為備份但彼此獨立,避免了對生產(chǎn)樹協(xié)議的要求。通過在各個CE上添加不同的網(wǎng)絡(luò)路由(route),可以實現(xiàn)在兩個交換平面之間靈活切換。

圖1 某一核心通信設(shè)備內(nèi)部的雙交換機冗余網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)
由于是在設(shè)備內(nèi)部,每個交換機端口所對應(yīng)CE的內(nèi)部ip和內(nèi)部mac地址都可以預(yù)先定義,如表1所示。

表1 CEi的網(wǎng)絡(luò)端口、IP、Mac-address對照表(假設(shè))CEi
默認(rèn)情況下,每個CE都通過SWITCH-A相互聯(lián)系,或通過SWITCH-A和CEn與外部網(wǎng)絡(luò)聯(lián)系。默認(rèn)路由(route)如表2、表3所示。

表2 CEi(i≠n)的默認(rèn)路由表CEi(i≠n)

表3 CEn的默認(rèn)路由表CEn
當(dāng)某個CE的網(wǎng)絡(luò)接口(eth0或eth1),或者某個SWITCH(SWITCH-A或SWITCH-B)出現(xiàn)故障時,可以通過更新每個CE的內(nèi)部路由(route),切換到冗余一側(cè)的交換機上,使系統(tǒng)的網(wǎng)絡(luò)保持暢通。
(1)交換機的某個端口故障
(假設(shè))CEi的eth0對應(yīng)的交換機端口出現(xiàn)故障,如圖2所示:

圖2 CEi 的eth0出現(xiàn)故障示意圖
為保持網(wǎng)絡(luò)暢通,需要使CEi上針對eth0的路由(route)全部切換到另一側(cè)的交換機上;同時,還需要使其它CE通過eth0到CEi的路由(route)切換到另一側(cè)的交換機上。
對應(yīng)的路由(route)更新如下:
(a)CEi

(b)CEj(j≠i)

如果CEi的eth1對應(yīng)的交換機端口出現(xiàn)故障,每個CE的route也要做類似的切換更新。
(2)整個交換機故障
如果某個交換機出現(xiàn)故障,為保持網(wǎng)絡(luò)暢通,需要使每個CE針對該交換機的路由全部切換到另一側(cè)的交換機上。
假設(shè)SWITCH-A出現(xiàn)故障,為保持網(wǎng)絡(luò)暢通,需要使每個CE上針對eth0的路由(route)全部切換到eth1上。對應(yīng)的路由(route)更新如下:

如果SWITCH-B出現(xiàn)故障,每個CE的route也要做類似的切換更新。
對于交換機端口或者整個交換機的故障,都表現(xiàn)為某些CE(一個或多個CE)的網(wǎng)絡(luò)端口出現(xiàn)故障,因此,都可以通過檢查各個CE的網(wǎng)絡(luò)端口狀態(tài)檢查出來。

圖3 CEi的檢測點示意圖
如圖3所示,設(shè)備中的每一個CE(CEi)針對其對應(yīng)的網(wǎng)絡(luò)端口(eth0或eth1),都任意選擇其它3個CE(CEi1,CEi2,CEi3)作為檢測點。在針對網(wǎng)絡(luò)端口的每一個檢測周期中,CEi依次向每個檢測點直接發(fā)送以太網(wǎng)mac包(check包);收到check包的CE將向發(fā)送方回復(fù)確認(rèn)ack包。
如圖4所示:
① CEi向第一個檢測點CEi1發(fā)check包;
② 等待CEi1的ack包,如果收到,說明端口正常,結(jié)束本次檢測;
③ 等待超時,CEi向第二個檢測點CEi2發(fā)check包;
④ 等待CEi2的ack包,如果收到,說明端口正常,結(jié)束本次檢測;
⑤ 等待超時,CEi向第二個檢測點CEi3發(fā)check包;
⑥ 等待CEi3的ack包,如果收到,說明端口正常,結(jié)束本次檢測;
⑦ 等待超時,CEi向該端口(eth0或eth1)廣播一個check包,其它CE收到之后都會向CEi發(fā)ack包;
⑧ 等待可能的ack包,如果收到,說明端口正常,用新收到的ip/mac地址更新檢測點(CEi1,CEi2,CEi3),結(jié)束本次檢測;
⑨ 等待超時,CEi的該端口上不能收到任何ack包,則檢查另一側(cè)端口的狀態(tài):如果另一側(cè)端口異常,說明CEi在兩側(cè)都不能收到任何ack包,判斷CEi處于孤立運行狀態(tài),因此不需要做route更新;如果另一側(cè)端口正常,判斷本側(cè)端口故障,觸發(fā)每一個CE上的route更新。

圖4 網(wǎng)絡(luò)端口檢測步驟示意圖

圖5 網(wǎng)絡(luò)端口的檢測周期與檢測步驟示意圖(示例)
采用圖5所示的檢測步驟與檢測周期(示例),網(wǎng)絡(luò)端口狀態(tài)的最長檢測周期為 T = 4×t1+t2。當(dāng)網(wǎng)絡(luò)端口故障時,最長在時間T內(nèi)可以檢出網(wǎng)絡(luò)故障。
選擇合適的t1和t2,能使系統(tǒng)在盡可能短的時間內(nèi)檢測出交換機網(wǎng)絡(luò)故障,并做出相應(yīng)的保護(hù)性冗余切換。
當(dāng)t1= 20ms,t2= 100ms時,T = 4×t1+t2= 180ms;
當(dāng)t1= 10ms,t2= 50ms時,T = 4×t1+t2= 90ms。
在每一個檢測周期中,
當(dāng)所有網(wǎng)絡(luò)端口正常時,每一個CE會收發(fā)2個mac包(1個check包,1個ack包),一共是 2n個mac包;
當(dāng)某個網(wǎng)絡(luò)端口異常時,該端口對應(yīng)的CE最多收發(fā)不超過n個包(4個check包,最多n-4個ack包),其它CE每一個最多收發(fā)不超過3個包(2個check包,1個ack包),一共最大不超過 4n 個包;
當(dāng)某個交換機故障時,每一個CE會收發(fā)4個包(4個check包,0個ack包),由于該交換機已經(jīng)不能轉(zhuǎn)發(fā)包,因此沒有真正增加網(wǎng)絡(luò)的負(fù)荷。
當(dāng) 時,由網(wǎng)絡(luò)檢測引入的mac包的數(shù)量是非常小的。
該策略針對設(shè)備內(nèi)部的平面獨立的雙交換機冗余網(wǎng)絡(luò),可以檢測每一個網(wǎng)絡(luò)端口的狀態(tài),在網(wǎng)絡(luò)出現(xiàn)故障的時候能迅速檢測出來并自動作冗余切換,而且對交換機所支持的協(xié)議沒有特殊的要求,對設(shè)備內(nèi)部每個CE所支持的協(xié)議也沒有特殊的要求,因而適應(yīng)性較強。通過選擇合適的檢測周期,可以使冗余切換時間限制在100ms~200ms以下,甚至更短。與“冗余鏈路 + 生成樹協(xié)議(如STP/RSTP)”的冗余方式相比,該策略的冗余切換速度更快,而且不需要對交換機做額外的配置。
在某一款電信核心設(shè)備中采用了該策略后,經(jīng)過實驗室和現(xiàn)場的雙重驗證,當(dāng)內(nèi)部網(wǎng)絡(luò)出現(xiàn)故障時,實際冗余切換時間小于100ms,有效保障了系統(tǒng)的穩(wěn)定性。
本文針對“冗余鏈路 + 生成樹協(xié)議”的網(wǎng)絡(luò)冗余方式中冗余切換速度依賴所使用的生成樹協(xié)議的收斂時間、造成實時性不高,而且配置復(fù)雜的問題,設(shè)計了不依賴生成樹協(xié)議(如STP/RSTP)的快速智能冗余切換的方法,提升了冗余切換速度,同時簡化了網(wǎng)絡(luò)配置。
[1] IEEE 802.1D – Media Access Control(MAC)Bridges, IEEE, 2004.
[2] 付志兵. 通信系統(tǒng)冗余設(shè)計[J]. 計算機與網(wǎng)絡(luò), 2009(08) .
[3] 王隆杰. 虛擬網(wǎng)絡(luò)交換機技術(shù)[J]. 通信技術(shù), 2009(04).
[4] 劉立. 交換機鏈路聚合的理論與實驗研究[J]. 信息安全與技術(shù), 2010(09).
[5] 黃文君, 謝東凱, 盧山. 一種高可用性的冗余工業(yè)實時以太網(wǎng)設(shè)計[J]. 儀器儀表學(xué)報, 2010, 31(3).
[6] 李志潔, 姜楠, 王存睿, 劉向東. 生成樹協(xié)議分析及其實驗的設(shè)計與實現(xiàn)[J]. 實驗科學(xué)與技術(shù), 2010, 8(2).