方 偉
(1.淮北職業技術學院計算機科學技術系,安徽淮北 235000;2.浙江大學控制科學與工程學院,浙江杭州 310000)
在傳統網絡設計中,為了提高網絡的穩定性,通常在網絡核心層部署兩個交換機,并且所有的匯聚層交換機都有兩條鏈路分別與核心層交換機相連,鏈路冗余由生成樹來實現。為了消除環路,在核心層及匯聚層交換機上配置MSTP協議阻塞一部分鏈路。為了提供冗余網關,在核心層交換機上進行配置VRRP協議。然而,復雜的網絡架構增加了網絡操作與維護的復雜性,減少了投資回報率,大量的備份鏈路也轉換成虛擬邏輯設備。利用VSU技術可以將網絡內核轉換成虛擬邏輯設備,用戶只要對虛擬設備進行操作就可以實現對所有物理設備的管理[1-3]。這種虛擬設備既具有盒式設備低成本的優點,又具有框式分布式設備的擴展性以及高可靠性。
VSU是一種將多臺設備虛擬成一臺設備來管理和使用的技術,能夠顯著降低管理及拓撲邏輯復雜度,方便用戶管理和使用,其主要實現過程包括物理連接、拓撲發現和角色選舉。物理連接即通過VSL口連接兩臺設備,作為設備構建VSU系統通信的線路。百兆、千兆、萬兆接口均可配置成為VSL接口,但在實際應用中RSR77-X系列設備通常使用萬兆接口互聯,同時采用雙VSL鏈路的部署方式(匯聚及接入設備除外)。拓撲發現通過交互VSU Hello報文攜帶拓撲信息,包括本機的成員編號、設備優先級、MAC信息、VSU端口連接關系等內容[4-5]。角色選舉是通過選舉主備設備、拓撲收斂,形成VSU系統。其中Master角色的選舉規則是當前主機優先(先啟動的設備優先為主設備),設備優先級大的優先,MAC地址小的優先。選舉完成后,Master向Slave發送Convergence報文,通知Slave一起進行拓撲收斂,然后VSU進入管理與維護階段。Master將構造兩臺設備的數據信息,包括設備線卡信息、接口信息、全局配置信息。VSU可實現基于線卡和接口編號的統一管理,管理通道路徑實現見圖1。VSU可直接在Master上統一管理本機和從機的線卡、接口。其中接口編號采用三維格式,如GigabitEthernet1/2/0,分別表示槽位號、子槽號和該子槽位上的接口編號。VSU虛擬化之后,接口編號增加一級,采用四維格式(如GigabitEthernet 1/1/2/0),第一維數字1表示機箱成員設備編號。Master與VSU系統中其它設備也具有可靠的管理通道,例如RSR77-X是分布式設備,管理板負責管理設備。要實現管理就需要有管理通道,內部的管理通道為IPC通道。IPC為上層模塊屏蔽掉其中的路徑(管理板-VSL鏈路-線卡等),在管理板與線卡間建立起直連的邏輯通道。

圖1 VSU管理通道路徑
VSL虛擬交換鏈路(Virtual Switching Link)是VSU最為核心的技術之一。VSL用來在兩臺成員路由器之間傳輸控制報文的特殊聚合鏈路。除了控制報文以外,可能存在跨機箱的數據報文通過VSL傳輸。VSL端口以聚合端口組的形式存在,由VSL傳輸的數據流根據流量平衡算法在聚合端口的各個成員之間進行負載均衡。設備上可以用于VSL端口連接的物理端口稱為VSL成員端口,VSL成員端口可以是堆疊端口、以太網接口或者光口。優先級是VSU成員路由器的另一個重要屬性,在角色選舉過程中用來確定成員路由器的角色。優先級越高,被選舉為主機箱的可能性越大,取值范圍從1到255,缺省優先級是100。成員設備的優先級分為配置優先級和運行優先級,運行優先級在VSU運行過程中不會變化。管理員修改配置優先級,運行優先級還是原來的值,保存配置并重啟后新配置的優先級才會生效。
鏈路虛擬化技術AG實際上就是將兩條或者多條鏈路聚合成一條邏輯鏈路,目前僅支持以太鏈路聚合,一個聚合口最多支持8條成員鏈路。采用鏈路聚合后,邏輯鏈路的帶寬增加了n-1倍,這里n為聚合的路數。鏈路聚合后,對網絡層以及以上網絡層次均表現為一個端口,數據流可以實現快速切換,斷流時間在毫秒級別。被鏈路聚合連接在一起的兩個(或多個)設備,通過內部控制可以對聚合連接設備科學合理地分配數據,從而實現負載分擔。
AG功能有靜態和動態之分:靜態方式只有在本端接口關閉的情況下,接口才會退出聚合組,因此不適用于廣域網的場景;動態方式在參與聚合的接口所在線路異常的情況下,接口才會退出聚合組。動態檢測有LACP和BFD兩種協議可以實現(工作流程見圖2):LACP(Link Aggregation Control Protocol,鏈路匯聚控制協議)是一種實現鏈路動態匯聚與解匯聚的協議,利用LACPDU(鏈路匯聚控制協議數據單元)實現對端數據信息傳輸。LACP鏈路的兩端分別稱為Actor和Partner,雙方通過LACPDU報文交換,將系統MAC、系統優先級、操作Key等信息向對端通告。對端獲得上述信息后,與其它端口保存的信息進行比較,以選擇能夠匯聚的端口[6-8]。雙方可以對端口加入或退出某個動態匯聚組達成一致,從而確定哪些鏈路可以加入同一聚合組以及某一條鏈路何時能夠加入聚合組。RFC-7130標準的BFD協議可實現成員鏈路的檢查,RFC-7130規定在AG的每一個成員口上均建立獨立的BFD會話,獨立檢測而不相互影響。一旦某接口上BFD會話關閉,在數據面該接口從AG成員口中移除,不參與接收和發送數據,所有數據流被快速的切換到正常的成員口上。簡單理解,BFD探測的方式就是將BFD功能和AG功能聯動。在BFD檢測到關閉時,AG將對應的接口移出聚合組,二者是互相獨立的。BFD檢測可配置成最快速度150 ms檢測到故障,完成數據切換。

圖2 LACP、BFD協議工作原理圖
傳統的鏈路聚合技術包含流量均衡算法,通過哈希算法將報文(IP五元組)散列到不同的成員鏈路,達到流量均衡的目標。該算法存在一定的缺陷:100條流被散列到成員口1,那么這條規則將永遠不會改變,即使成員口1過載。IDA(Intelligence Dynamic Adjustment)是一種動態的流量調度技術,擯棄了傳統的靜態均衡算法,通過實時監測AG成員鏈路的帶寬利用率,智能地進行流量調整,始終保持每條鏈路的高效利用,其數據流量控制過程見圖3。IDA功能會根據AG成員接口的負載情況自動選擇輕載鏈路,無需復雜配置,只需打開IDA功能開關即可[9-10]。

圖3 智能流量調度
在廣域網線路中,不同運營商鏈路的延時、丟包、抖動存在差異。如果同一條流的報文被分配到不同線路,在接收端就會出現報文亂序的現象。亂序意味著丟包重傳,會降低鏈路的有效載荷,浪費鏈路帶寬。在接收端采用緩存報文重組的方式雖然能夠降低重傳報文的幾率,但報文延遲和內存消耗可能是無法接受的。IDA的流量均衡是基于流的,也就是說,同一條流的報文同一時刻只會在一條成員鏈路中傳輸,避開了不同質量的鏈路對流的影響。在此基礎之上,IDA智能流量調度還提供了兩個子功能:用戶可根據需求,指定特定業務流到固定鏈路上傳輸,該類業務流將不被調整,除非鏈路故障;用戶可以指定特定業務流優先在優質的鏈路上傳輸,當鏈路過載時,才調整業務流到另外的鏈路。這兩個子功能是利用與HQOS聯動來實現的,通過設置鏈路和HQOS流動作的親和屬性操作。將業務和鏈路關聯起來。在某些特定場景下,設備的配置要隨著外部狀態的改變而作出相應的調整。傳統的技術想要做到這一點需使用網管或CLI進行人工修改配置,而IDA策略調整可智能調整,無需人工干預[11]。
采用VSU技術將2臺RSR20-14F路由器虛擬化成1臺路由器,可簡化網絡管理、維護流程,無需使用VRRP+MSTP等技術架構。通過設置虛擬化優先級,區分2臺RSR20-14F:優先級高為VSU-主路由器,優先級低為VSU-備。2臺RSR20-14F通過GE0/1口互連1條網線作為VSU的VSL鏈路,通過FE1/46和FE1/47互連2條網線作為VSU的雙機心跳檢測鏈路,同時作為廣域網數據傳輸鏈路。將帶寬高的主鏈路接入VSU-主路由器GE0/0,帶寬低的備鏈路接入VSU-備路由器GE0/0。開啟生成樹功能,確保成為網點局域網絡的主根橋,實現生成樹優化計算;開啟全局RLDP功能,實現基于端口維度的防環功能,下聯終端的端口配置RLDP處理動作為Shutdown;開啟HQOS功能,區分生產和辦公業務,優先保證生產業務[12-13]。
為了實現端口數量擴展和廣域網內各終端設備互聯,虛擬化路由器可以通過Trunk端口下聯網點接入交換機。單鏈路接入交換機可以單線接入VSU-主路由器或者VSU-備路由器交換端口,雙鏈路接入交換機可以雙線路分別接入VSU-主路由器和VSU-備路由器對應交換端口,其中注意接入交換機必須開啟生成樹功能。低端口號端口(如1/1)連接VSU-主路由器端口,高端口號端口(1/2)連接VSU-備路由器端口。此時備鏈路如果被STP阻塞,業務終端(生產、辦公、WLAN)等可以接入虛擬化路由器RSR20-14F的交換物理口,也可以接入下聯的網點接入交換機的交換物理端口。具體網絡拓撲結構見圖4。

圖4 網點虛擬化方案拓撲設計
將GE0/1與GE0/1用網線互連,作為虛擬化VSL鏈路(內部數據通信接口)。設置1號設備虛擬化優先級為200,保證1號設備成為VSU-主設備,同時將路由器從單機模式切換成虛擬化模式;設置2號設備虛擬化優先級為150,保證2號設備成為VSU-備,同時將路由器從單機模式切換成虛擬化模式。如果實施過程出現1號設備為VSU-備,則應斷電重啟2號設備。2號設備重啟后查看1號設備角色狀態值為Active,確保1號設備為VSU-主。代碼主要實現如下:
# configure terminal
(config)#switch virtual domain 1
(config-vs-domain)#switch 1(or 2)
(config-vs-domain)#switch 1(or 2) priority 200(or150)
(config-vs-domain)#switch 1(or 2) description RSR20 14F-1(or 2)
(config)#vsl-aggregateport 1
(config-vsl-ap-1)#port-member interface GigabitEthernet 0/1
HQoS配置:
interface GigabitEthernet 1/0/0
port-queue pq shaping 20000///運營商提供的鏈路帶寬,例如:20M
interface GigabitEthernet 2/0/0
port-queue pq shaping 10000///運營商提供的鏈路帶寬,例如:10M
interface VLAN 140
traffic-policy HQoS inbound
interface VLAN 110
traffic-policy HQoS inbound
默認靜態路由指向主用鏈路優先級高,指向備用鏈路優先級低;
ip route 0.0.0.0 0.0.0.0 38.16.X.X
ip route 0.0.0.0 0.0.0.0 38.16.X.Y 70
WLAN業務靜態路由指向備鏈路優先級高,指向主鏈路優先級低;
ip route 38.0.5.0 255.255.255.0 38.16.X.Y
ip route 38.0.5.0 255.255.255.0 38.16.X.X 70
正常情況下,生產、辦公、其它業務走主鏈路,WLAN走備鏈路。如果能精確區分目的網段是辦公業務訪問,也可以配置對應的靜態路由讓辦公業務走備鏈路,實現鏈路負載分擔。此外,接入交換機必須開啟生成樹功能,生成樹優先級保持默認配置,連接VSU-主(RSR20-14F-1)路由器端口號小于連接VSU-備路由器(RSR20-14F-2)端口號,如1/44接VSU-主、1/45接VSU-備。此時,接入交換機與虛擬化路由器之間存在環路,生成樹計算會阻塞接入交換機連接VSU-備路由器(RSR20-14F-2)端口。當主鏈路故障時,該端口連接的備份鏈路會被收斂激活,成為鏈路備份。這種設計能有效解決以下問題:保證下行流量從VSU-主路由器轉發,當2條雙機檢測鏈路或VSL鏈路不小心被拔掉后,VSU-備路由器會失效。此時下聯交換機依然可以通過VSU-主鏈路進行數據訪問,不受影響,否則需要經過1次鏈路收斂切換的中斷影響。
虛擬化路由器邏輯上為1臺設備,在2臺設備的虛擬化線路(VSL)中斷時,就會出現雙主機。此時網絡上有兩臺配置完全一樣的設備,會導致地址沖突等情況,影響網絡正常運行。因此,需要配置雙主機探測協議來解決。RSR20-14F只有1條VSL鏈路,可以配置1條或者多條DAD-BFD雙主機檢測線路。多條線路實際聚合成1個二層聚合鏈路(AG),它既作雙主機檢測,也是雙機間二層數據的通道。網絡互聯全部采用2條雙主機檢測線路,1號設備1/46與2號設備1/46互連,2號設備1/47與2號設備1/47互連,如圖5所示。

圖5 雙主機檢測線路
相比MSTP、VRRP等傳統的冗余技術而言,VSU技術提高了鏈路的利用率,縮短了故障恢復時間,使網絡的穩定性和可靠性得到有效的保障。通過網絡虛擬化改造,可以將多網絡設備虛擬成1臺設備來管理和使用,進一步優化了網點的網絡拓撲結構,提高了帶寬的利用率,顯著減低了管理復雜度和拓撲邏輯復雜度。隨著網絡應用范圍的不斷發展以及對網絡性能要求的不斷提升,網絡虛擬化技術將會得到廣泛的應用和發展。