王培英,肖志輝,李本源
(1.西南交通大學信息科學與技術學院 成都 610031;2.邁普通信技術股份有限公司 成都 610041)
隨著互聯網業務類型的不斷增多和用戶數的不斷增長,網絡承載的數據業務流量越來越大。實時通信對服務質量的要求也不斷提高,導致網絡的高可用性日益成為網絡使用者關注的焦點,因此如何提高網絡可用性是目前最熱門的話題之一。網絡的可用性可通過以下3種方法提高:
·增加網絡拓撲中的冗余節點和備份設計;
·增加網絡設備自身冗余部件和熱備份機制設計;
·增加網絡中傳輸線路備份設計。
目前,傳輸線路備份設計是提高網絡可用性的必備方法,其中應用最廣泛的技術為生成樹協議(STP)和鏈路聚合(link aggregation)。生成樹協議通過阻塞某些鏈路達到傳輸線路備份的目的,屬于鏈路間冗余設計;鏈路聚合通過聚合技術提供邏輯鏈路內的冗余方案,不但沒有阻塞某些鏈路,而且擴展了邏輯鏈路帶寬,已成為網絡部署者必采用的組網方案。
鏈路聚合技術的實質是將兩臺設備間的多條物理鏈路組合成一條邏輯鏈路,稱為鏈路聚合組(link aggregation group,LAG),鏈路聚合組中的端口稱為成員端口。
鏈路聚合組分為靜態聚合組和動態聚合組。靜態聚合組內的成員端口禁止啟動LACP(link aggregation control protocol,鏈路聚合控制協議),因此不與對端交互LACPDU(link aggregationcontrol dataunit,鏈路聚合控制協議數據單元);動態聚合組內的成員端口啟動LACP,與對方交互LACPDU。
目前,層次化的網絡結構一般分為核心層、匯聚層和接入層。網絡中主要存在兩種形態的交換機通信設備:盒式設備和框式分布式設備。由于框式分布式設備具有高性能、高端口密度的組件及高可用性,因此經常被應用于重要場合,如核心層、匯聚層。匯聚層與接入層之間的常見組網方式如圖1所示。
圖1 匯聚層與接入層之間的簡化組網示意
因為增加網絡拓撲中的冗余節點和備份設計可以提高網絡的可用性,所以在部署網絡環境時,通常在匯聚層部署兩臺交換機,兩臺交換機之間使用兩條物理鏈路相連,然后所有接入層交換機都通過兩條鏈路分別與匯聚層交換機相連。
當采用這種網絡結構進行2層技術組網時,設計了一些冗余鏈路,雖然增強了網絡的可靠性,但導致網絡出現了環路,因此必須配置MSTP阻塞一些鏈路,達到消除環路的目的,這樣就導致這些阻塞鏈路的帶寬沒有被利用,從而造成帶寬資源的浪費。在實際應用中,MSTP往往由于設備故障或者鏈路中斷等原因發生拓撲震蕩,且MSTP的收斂時間較長,可能在收斂時間內導致網絡不能傳輸業務流量,從而影響網絡的服務質量。
當采用這種網絡結構進行3層技術組網時,通常采用VRRP實現冗余備份。當處于主控(master)狀態的交換機發生故障時,處于備份(slave)狀態的交換機將切換成主控狀態,切換時間一般為幾秒鐘,在故障恢復時間內仍會導致網絡不能傳輸業務流量。同時VRRP會導致網絡拓撲復雜,給網絡維護者帶來管理困難等問題。
為了克服上述問題,近年來業界一些設備廠商提出了針對框式分布式設備應用的虛擬交換技術(virtual switching technology,VST)。
虛擬交換技術是一種基于內部分布式交換網絡,把多臺物理設備虛擬為一臺虛擬設備的技術。如圖2所示,匯聚層的兩臺設備通過虛擬交換鏈路 (virtual switching link,VSL)連接,形成一個虛擬交換域(virtual switching domain,VSD),接入層的設備通過跨設備鏈路聚合,上聯到虛擬設備。
虛擬設備內的成員設備有兩種角色:主控設備負責整個虛擬設備的管理和控制,備份設備負責本地設備的基本硬件管理,并接受主控設備的管理和控制。虛擬設備內每一個成員設備都需要一個成員編號 (member ID)進行唯一標識。虛擬設備內每個成員設備都有一個成員優先級,優先級越高(數值越大),當選為主控設備的可能性越大。
圖2 虛擬化視圖
VSL是兩臺成員交換機之間,由一條或者多條物理鏈路聚合而成的邏輯鏈路。當多臺設備通過VST形成一臺虛擬設備時,該虛擬設備根據選舉規則,先選舉出主控設備。主控設備使用自己的啟動配置文件啟動,啟動完成后,將配置批量同步給所有備份設備,使主控設備完成初始化,至此,虛擬設備形成。
虛擬設備運行過程中有新的成員設備加入時,虛擬設備也會將配置批量同步給新設備,新設備以同步過來的配置完成初始化,而不再讀取本地的啟動配置文件[4]。
所有設備初始化完成后,虛擬設備作為一臺邏輯設備在網絡中運行。主控設備作為虛擬設備系統的管理中樞,負責響應用戶的登錄需求,即用戶無論使用何種方式登錄虛擬設備中的成員設備,其實質都是登錄到主控設備;對成員設備的配置,其實質都是對主控設備進行配置。主控設備負責將用戶的配置實時同步給虛擬設備內的各個備份設備,使虛擬設備內各成員設備的配置隨時保持高度一致性[4]。
VST因具有以下優勢而逐漸被廣泛使用。
(1)高可靠性
虛擬設備的成員設備間采用VSL聚合相連,接入層設備通過跨設備鏈路聚合與虛擬設備相連,既提供了冗余鏈路,又實現了動態負載均衡,充分利用所有帶寬。
(2)簡化網絡拓撲
通過VST形成的虛擬設備在網絡中相當于一臺設備,該虛擬設備通過跨設備鏈路聚合與下聯設備相連,由于不存在環路,所以無需配置MSTP和VRRP。各種控制層協議運行在一臺虛擬設備上,減少了設備間大量協議報文的交互,縮短了路由收斂時間。
(3)簡化管理
兩臺或者多臺設備形成一臺虛擬設備后,管理員可以對多臺設備進行統一管理,即管理員登錄虛擬設備內的任意一臺成員設備,即可對虛擬設備中的多臺設備進行配置和管理。
當虛擬設備內的VSL鏈路出現故障,導致兩個相鄰成員設備在物理上不連通時,一個虛擬設備變為兩個虛擬設備,這個過程稱為VST分裂。
由于虛擬設備中各成員設備的配置信息實時高度一致,因此網絡中將會出現配置完全相同的兩臺設備,這將導致業務流量無法正確轉發和選路,如圖3所示,兩臺設備配置了完全相同的IP地址,出現IP地址沖突,導致3層網絡不可使用,這種現象稱為多激活(multi-active)。
圖3 虛擬設備分裂和多激活產生示意
因此,當虛擬設備發生分裂時,保證網絡正常運行對VST技術的快速發展是非常重要的。
如何快速檢測多激活的產生以及檢測到多激活后應如何解決其給網絡帶來的影響問題是本文研究的重點。本文介紹了一種可較快速檢測多激活的快速多激活檢測(multi-acitve detection,MAD)方法和可有效保證網絡業務正常運行的高效多激活處理方法。
多激活檢測方法就是通過某些手段檢測到多激活。業界一些廠商提出的比較常見的多激活檢測方法有以下兩種。
(1)基于BFD的多激活檢測(BFD MAD)方法
該方法實現的前提條件是,在一個VLAN虛擬接口配置BFD和主從MADIP地址。虛擬設備正常運行時,只有主控設備上配置的MADIP地址生效,BFD會話處于down狀態;當VST分裂后會形成兩個虛擬設備,不同虛擬設備中主控設備上配置的MAD IP地址均會生效,BFD會話被激活,此時檢測到多激活?;贐FD的多激活檢測方法需要占用端口資源,使用專用的檢測端口和3層VLAN接口,從而使這些端口和接口不能再用于傳輸普通業務流量。
(2)基于 LACP 的多激活檢測(LACPMAD)方法
該方法通過擴展LACP報文內容實現。實現的前提條件是,虛擬設備與周邊設備采用動態匯聚方式相連,借助業務動態匯聚組成員端口發送LACPDU報文實現多激活檢測,不占用額外的設備端口資源。
網絡管理者需要根據實際網絡環境部署多激活檢測方法。在設備端口資源緊張的情況下,LACPMAD檢測方法彰顯出優勢。
第2節提及,虛擬設備采用跨設備鏈路聚合與接入層設備相連。如果采用動態聚合方式,那么接入層設備會與虛擬設備交互LACPDU報文。
LACPMAD通過擴展LACPDU報文實現,即在LACPDU的擴展字段內定義一個新的TLV(typelength value)數據域,用于交互虛擬設備的MAD ActiveID(以下簡稱ActiveID,表示虛擬設備中主控設備的成員編號)。
(1)LACPMAD 報文格式
LACPMAD報文格式如圖4所示。
圖4 LACP MAD報文格式
其中,MAD DomainID為虛擬交換域,MAD ActiveID為當前虛擬設備內主控設備的成員編號,MAD Bridge MAC為虛擬設備的橋MAC地址。
(2)LACPMAD 檢測機制原理
虛擬設備中各成員設備開啟LACPMAD功能后,在發送LACPDU時會攜帶MADTLV擴展域,其中最重要的字段是ActiveID,此值在一個虛擬設備內具有唯一性,非虛擬設備內的設備在收到帶有MAD TLV的LACPDU后,會將此報文向聚合組中的其他成員端口進行透傳。虛擬設備正常工作時,通過這種方式,虛擬交換系統中的所有成員設備都能收到其他成員設備發送的帶有MADTLV的LACPDU,其中備份設備將收到的帶有MAD TLV的LACPDU通過VSL發送到主控設備,由主控設備統一處理。主控設備在對接收到的LACPDU進行處理的過程中,發現各成員設備發送的LACPDU具有統一的ActiveID,則認為虛擬設備正常。虛擬設備正常運行時ActiveID的交互如圖5所示。
圖5 虛擬設備正常運行時ActiveID的交互
當虛擬設備發生分裂時,一個虛擬設備變為兩個虛擬設備,不同虛擬設備內的成員設備發送的LACPDU攜帶的ActiveID不同。當這些LACPDU到達其他虛擬設備的主控設備時,主控設備通過比較發現AciveID與自身的ActiveID不同,即檢測到多激活,具體如圖6所示。同時動態匯聚組的各成員端口會迅速發送LACPDU報文,便于其他虛擬設備在最短的時間內快速檢測到多激活。
檢測到多激活后,主控設備將從接收的MAD TLV中解析出ActiveID,并按照下述算法步驟判斷本虛擬設備是否進入禁用狀態。
(1)比較虛擬設備運行時間:主控狀態運行時間小的虛擬設備進入禁用狀態,執行步驟(4)。如果各虛擬設備的主控運行時間相等,則執行步驟(2)。
圖6 虛擬設備分裂后ActiveID的交互
(2)比較成員優先級:主控成員優先級低的虛擬設備進入禁用狀態,執行步驟(4)。如果各虛擬設備的主控成員優先級相同,則執行步驟(3)。
(3)比較主控的成員編號:主控成員編號大的虛擬設備進入禁用狀態,執行步驟(4)。
(4)進入禁用狀態的虛擬設備需要完全從網絡中移除,相關動作如下:
·關閉該虛擬設備上所有業務的以太端口(包括檢測端口);
·關閉該虛擬設備上的所有VLAN接口。
經過步驟(4)的處理之后,網絡環境中不會出現兩臺配置相同的虛擬設備同時運行的情況,確保了網絡業務的正常運行。
檢驗上述LACPMAD方法及處理機制的實驗環境,驗證過程具體介紹如下。
實驗環境:兩臺支持VST的交換機A和交換機B,一臺支持MAD LACP報文透傳的交換機C。物理連接如圖7所示。交換機A和交換機B之間通過支持VSL的端口相連;交換機C通過普通業務端口分別與交換機A和交換機B相連。
圖7 實驗環境
配置及操作步驟具體介紹如下。
(1)在交換機A和交換機B上,完成VST的基本配置,使兩臺設備形成一臺虛擬設備。
(2)在主控設備上配置動態聚合組,并將與交換機B和交換機C相連的端口加入聚合組;在交換機C上配置動態匯聚組,并將與交換機A和交換機B相連的端口加入聚合組。
(3)在主控設備上開啟該聚合組的LACPMAD功能。
(4)將VSL斷開,模擬VST分裂。
觀察交換機C上與交換機B相連接的端口的物理鏈路狀態是否為down,即端口的up指示燈是否由亮變滅。若為down,表示多激活檢測成功,處于禁用狀態的交換機B將業務端口關閉。
按照上述實驗過程,經過測試發現,本文提出的多激活檢測方法可以檢測到多激活發生;在檢測到多激活后,通過多激活處理方法計算選擇處于禁用狀態的虛擬設備,并將該虛擬設備的所有業務端口關閉,可解決網絡中出現兩臺配置相同的虛擬設備后,引起的網絡癱瘓問題。由此保證了網絡的正常運行,對于推進VST的快速發展和應用具有重要意義。
另外,通過實際應用環境發現,在VST分裂到多激活被檢測到的時間段內,網絡仍處于癱瘓狀態,仍會導致網絡短時間內業務中斷,這是網絡使用者不能接受的。因此縮短業務中斷時間、提高LACPMAD多激活檢測的速度仍是后續工作和學習中需要繼續探討和研究的內容。
1 陸敏飛.鏈路聚合技術在分布式以太網交換機上的研究與實現.浙江工業大學碩士學位論文,2009
2 Mark A D,McDonald R,Antoon W R.Nework Fundamentals CCNA Exploration Companion Guide.Cisco Press,2009
3 Wayne Lewis,Ph D.LAN Switching and Wireless CCNA Exploration Companion Guide.Cisco Press,2009
4 杭州華三通信技術有限公司.IRF2.0技術白皮書,2009
5 杭州華三通信技術有限公司.H3CS12500IRF2技術白皮書,2012
6 邁普通信技術股份有限公司.VST技術白皮書(V0.2),2011
7 Cisco.Cisco Catalyst 6500 Series Virtual Switching System(VSS)1440 White Paper,2010
8 銳捷網絡.銳捷VSU技術白皮書,2011
9 IEEE 802.1AX.IEEE Standard for Local and Metropolitan Area Networks-Link Aggregation,2008