徐雄斌 楊勝釗 高 燾
(1.武漢數(shù)字工程研究所 武漢 430205)(2.海軍駐武漢四六一廠軍事代表室 武漢 430000)
隨著艦船信息化要求的不斷提高,艦船信息系統(tǒng)基本采用以太網(wǎng)方式組網(wǎng)。為了保證信息系統(tǒng)數(shù)據(jù)傳輸?shù)目煽啃?,信息系統(tǒng)網(wǎng)絡都采用雙冗余以太網(wǎng),雙冗余網(wǎng)絡采用交換機和終端計算機網(wǎng)卡采用熱備份模式[1~3],形成了通道到節(jié)點的多點冗余。同時,為了節(jié)約網(wǎng)絡帶寬和系統(tǒng)資源。通信方式主要采用組播方式,相對于點播和廣播,組播是一種點到多點的通信方式,便于實現(xiàn)多接收者的并行接收。雙冗余網(wǎng)絡切換包括網(wǎng)卡切換和交換機切換,網(wǎng)卡切換指交換機正常情況下,一塊網(wǎng)卡故障時,數(shù)據(jù)收發(fā)切換到另一塊網(wǎng)卡。交換機切換是當一臺交換機關機或故障時,數(shù)據(jù)交換路徑切換到另一臺交換機。網(wǎng)卡切換基于硬件中斷信號實現(xiàn),時間較短,一般在ms級別。而交換機切換主要是重新建立路由表、地址表、組播成員表、更新端口狀態(tài)等,根據(jù)拓撲結構不同,切換需要的時間不同,通常都在秒級甚至分鐘級,切換時間較長導致網(wǎng)絡數(shù)據(jù)丟失而影響業(yè)務或作戰(zhàn)。本文采用一種交換機優(yōu)化和終端計算機軟件相結合的方法,重點討論當一臺交換機關機或故障時,實現(xiàn)交換機轉發(fā)表的快速更新,使雙冗余網(wǎng)絡切換時間最快可達到ms級。
艦載信息系統(tǒng)網(wǎng)絡連接示意圖如圖1所示。
示意圖中網(wǎng)絡系統(tǒng)含3個分系統(tǒng),分系統(tǒng)1包含終端1到終端6,分系統(tǒng)2包含終端A到終端D,分系統(tǒng)3包含終端E到終端H。核心交換機A、B代表系統(tǒng)兩臺核心交換機,分系統(tǒng)接入交換機1、2代表各分系統(tǒng)的兩對接入交換機。系統(tǒng)通過交換機A和B作為核心交換機組網(wǎng),交換機A和B互為備份,終端計算機配置雙冗余網(wǎng)卡分別連接到兩臺交換機。分系統(tǒng)1的6臺終端直接接入核心交換機,分系統(tǒng)2的4臺終端通過接入層交換機1級聯(lián)到核心交換機,分系統(tǒng)3的4臺終端通過接入層交換機2級聯(lián)到核心交換機。通信方面,各分系統(tǒng)內(nèi)部采用組播方式,分系統(tǒng)之間有的采用組播方式,有的采用點播方式。當一臺交換機故障時,由于交換機切換重新建立路由表、地址表、組播成員表、更新端口狀態(tài)等需要一定時間。根據(jù)拓撲結構不同,切換需要的時間不同,通常都在秒級甚至分鐘級,切換時間較長導致網(wǎng)絡數(shù)據(jù)丟失而影響業(yè)務或作戰(zhàn)。因此必須找到一種方法,使交換機故障時,網(wǎng)絡系統(tǒng)快速切換,減少網(wǎng)絡數(shù)據(jù)丟失的風險。
下面闡述交換機優(yōu)化方面的原理分析和解決方案。
2.2.1 交換機路由概述
在典型的艦載信息網(wǎng)絡中,由于網(wǎng)絡規(guī)模較小,所有的路由通過核心交換機完成,包括單播路由和組播路由。
對于單播路由,一般采用VRRP(Virtual Router Redunancy Protocol)虛擬路由冗余協(xié)議,實現(xiàn)第一跳路由器即默認網(wǎng)關的主備切換。主備路由器一開始都把自己設為VRRPmaster,然后向每一個組播發(fā)送VRRP報文,VRRP設備收到同組其他設備VRRP消息后,對比優(yōu)先級,如果優(yōu)先級高的話,自己不發(fā)VRRP包了,自己設置為slave,否則的話,自己為master。交換機優(yōu)先級Priority決定一臺路由器在備份組的狀態(tài),優(yōu)先級高的路由器將被定義為活動路由器,其他優(yōu)先級的路由器作為備份路由器,當活動路由器故障后,備份路由器變成活動路由器。
組播路由通常采用PIM(Protocol Independent Multicast,協(xié)議無關組播)協(xié)議,對于存在冗余的網(wǎng)絡中,為了避免出現(xiàn)相同的組播報文被重復發(fā)送到該網(wǎng)段,就需要通過選舉機制來選定唯一的組播數(shù)據(jù)轉發(fā)者。
BFD(Bidirectional Forwarding Detection)協(xié)議是一種輕負載、快速檢測兩臺交換機之間轉發(fā)路徑連通狀態(tài)的方法,是一個簡單的“Hello”協(xié)議。如果一臺交換機沒有檢測到另外一臺交換機的檢測報文,可以通過BFD快速檢測并盡快啟動轉發(fā)路徑,提升網(wǎng)絡性能。BFD提供的檢測機制與上層協(xié)議無關。
2.2.2 交換機組播概述
IGMP(Internet Group Management Protocol)是用于管理網(wǎng)絡協(xié)議組播成員的一種通用協(xié)議,IP主機和路由器利用IGMP來創(chuàng)建多播組的組成員,通過查詢、響應機制,組播路由器用來建立接收端的組播組成員管理。
查詢報文由組播路由器發(fā)出,組播路由器定時發(fā)出查詢報文,用來查詢該網(wǎng)段有哪些組播組的成員。當組播路由器發(fā)出IGMP查詢報文后收到主機回應的IGMP報告報文,或接收到主機主動發(fā)送的成員報告時,路由器將接收到成員報告的接口加入到組播路由表的出接口列表。通過偵聽路由器和主機的IGMP交互,把收到成員報告的端口和對應的組播地址學習到組播成員端口表中,形成精確到端口的組播地址表。當主機主動發(fā)出離開組IGMP報文時,或者組播路由器發(fā)出IGMP查詢報文,該端口在一定時間得不到回應,則刪除對應端口,從而維護動態(tài)的組播成員端口表。
2.2.3 切換影響因素
在組播網(wǎng)絡中,當網(wǎng)絡中的一臺交換機關機或故障時,所有拓撲變化涉及的組播路由器都需要有路由協(xié)議收斂、組播路由計算、建立路由表等時間。圖2為交換機切換路由建立流程圖。
由于網(wǎng)絡故障導致網(wǎng)絡拓撲變化,組播成員表應該實現(xiàn)對此的響應,而交換機需要通過每臺接收者終端的成員報告來完成轉發(fā)表的學習,如果終端不能主動發(fā)送成員報告,那么交換機只能依靠IGMP成員關系查詢進行組播成員表的重新學習。組播成員端口表建立主要依靠監(jiān)聽終端和路由器的IGMP交互過程。圖3為交換機切換組播表建立流程圖。
由于交換機切換拓撲結構變化需較長時間重新建立路由、組播成員端口表,通常都在幾十秒甚至一兩分鐘,切換時間較長導致網(wǎng)絡數(shù)據(jù)丟失而影響業(yè)務或作戰(zhàn)。兩臺核心交換機切換時間主要消耗在組播路由建立時間和組播成員表建立時間上。
2.2.4 交換機優(yōu)化解決方案
1)交換機路由
采用兩種機制減少交換機路由建立時間。(1)采用 VRRP[4~6]、PIM 與 BFD[7~8]聯(lián)動實現(xiàn)主備之間的快速切換。在兩臺交換機上部署B(yǎng)FD快速檢測機制,綁定VRRP、PIM協(xié)議,實現(xiàn)鏈路故障時,核心交換機備份路由快速切換。(2)通過修改心跳周期參數(shù)減少主從設備相互監(jiān)控時間,減少交換機路故障時路由切換時間。
2)交換機組播成員端口表
由于組播主要是依靠監(jiān)聽終端和路由器的IGMP交互過程以生成對應組播的端口轉發(fā)表。當網(wǎng)絡故障導致網(wǎng)絡拓撲變化,組播成員應該實現(xiàn)響應,而交換機需要通過接收終端成員的報告來完成轉發(fā)表的學習。可以通過修改發(fā)送IGMP組播查詢報文的時間間隔和IGMP組播查詢的最大響應時間來減少組播成員建立時間。同時實現(xiàn)STP等二層拓撲變化與IGMP的關聯(lián)查詢機制,由拓撲變化觸發(fā)新的查詢,快速更新轉發(fā)表。
2.3.1 概述
艦載信息系統(tǒng)計算機采用兩塊網(wǎng)卡,兩塊網(wǎng)卡采用熱備份,平時一塊網(wǎng)卡作為對外傳輸通道,當該通道出現(xiàn)故障時,可迅速切換到另一塊網(wǎng)卡。從上面分析情況可以看出,如果計算機不主動發(fā)送加組信息,就必須等待路由器周期性發(fā)送普遍組查詢消息進行成員關系查詢,計算機發(fā)送報告消息來應答查詢來建立組播表,則至少要等待交換機一個查詢周期。因此可采用計算機在檢測到一臺交換機故障后軟件方面主動加組,減少路由器周期性查詢時間。計算機軟件層次如圖4。
軟件包含操作系統(tǒng)、驅(qū)動程序、中間件、應用軟件等四層。
2.3.2 基本原理簡介
要使兩塊網(wǎng)卡實現(xiàn)熱備份,兩塊網(wǎng)卡必須有相同的物理地址和IP地址,計算機的IP地址保存在計算機的網(wǎng)絡協(xié)議棧中,每塊網(wǎng)卡有一個唯一的物理地址,它保存在網(wǎng)卡的PROM中。如果IP地址變化,計算機將無法收發(fā)數(shù)據(jù)。如果IP地址無變化,物理地址發(fā)生變化,雖然計算機可以正常收發(fā)數(shù)據(jù),但由于物理地址發(fā)生變化,將引起協(xié)議棧中ARP綁定的變化,需重新對應ARP綁定表中IP地址與網(wǎng)卡物理地址的關系,會延長兩塊網(wǎng)卡之間的切換時間。網(wǎng)卡切換后,如果軟件不主動加組,交換機需消耗一個組播成員表查詢周期時間,來重新建立新的組播表。
因此,要實現(xiàn)網(wǎng)卡切換并且切換時間盡可能短,必須解決下面幾個問題:1)計算機盡快知道何時切換;2)兩塊網(wǎng)卡物理地址和IP地址問題;3)主動加組。
2.3.3 解決方案
為了減少中間環(huán)節(jié),主要從驅(qū)動程序環(huán)節(jié)考慮解決網(wǎng)卡切換和主動加組的應用[9~12]。通過驅(qū)動程序中增加雙網(wǎng)卡切換程序,來解決上述幾個問題。雙網(wǎng)卡切換程序主要包括網(wǎng)絡鏈路狀態(tài)監(jiān)控任務、IP等卸載和重定義、主動加組等功能。
網(wǎng)絡鏈路狀態(tài)監(jiān)控任務主要完成網(wǎng)絡狀態(tài)檢測,它定時判斷當前網(wǎng)卡的鏈路狀態(tài),如果鏈路處于斷開狀態(tài),釋放網(wǎng)卡切換信號量,通知網(wǎng)卡切換任務切換網(wǎng)卡,由于鏈路檢查基本由硬件完成,驅(qū)動程序只是讀取寄存器狀態(tài),因此消耗時間很短,可忽略不計。檢測到網(wǎng)卡切換后,驅(qū)動程序卸載原先網(wǎng)卡的IP和物理地址,然后使用同一個IP和物理地址來配置第二塊網(wǎng)卡,把IP和物理地址等相關信息寫入第二塊對應的地址,減少網(wǎng)卡切換時間。完成網(wǎng)卡切換后,接下來驅(qū)動程序根據(jù)IP地址等信息調(diào)用函數(shù)主動加組,可以節(jié)省交換機組播成員表查詢周期的時間。
通過優(yōu)化計算機網(wǎng)卡驅(qū)動程序,讓計算機驅(qū)動程序一旦檢測到一臺交換機故障或關機后,計算機主動加組,通過該方式可以加快網(wǎng)絡的切換。
在實驗室搭建了測試環(huán)境,核心交換機采用華三交換機H3CS7506E,計算機采用核心芯片為intel82571的網(wǎng)卡,對交換機進行VRRP、組播、優(yōu)先級、生成樹協(xié)議等相關基礎配置后,在測試環(huán)境下進行了幾種情況下的對比測試,模擬交換機故障,用wireshark軟件抓包,計算切換時間。1)交換機初始設置配合優(yōu)化前的驅(qū)動程序,切換時間大于1min;2)設置交換機心跳參數(shù)、組播成員表相關參數(shù),配合優(yōu)化前的的驅(qū)動程序,切換時間大于10s;3)設置交換機心跳參數(shù)、組播成員表相關參數(shù),配合優(yōu)化后的驅(qū)動程序,切換時間小于5s;4)設置交換機心跳參數(shù)、組播成員表、BFD相關參數(shù),配合優(yōu)化前的驅(qū)動程序,切換時間約2s。5)設置交換機心跳參數(shù)、組播成員表、BFD相關參數(shù),配合優(yōu)化后的驅(qū)動程序,切換時間小于1s。
測試表明,通過交換機優(yōu)化和計算機軟件相結合的方法,可實現(xiàn)雙冗余交換網(wǎng)絡的快速切換。
本文提出了一種交換機優(yōu)化和計算機軟件相結合的方法,解決了雙冗余網(wǎng)絡切換時間過長的問題。經(jīng)過模擬交換機故障進行了測試,測試結果表明效果良好,使雙冗余網(wǎng)絡切換時間最快可達到ms級,保證了數(shù)據(jù)傳輸?shù)目煽啃?,具有較大的軍事和民用價值。