?

基于鏈路聚合的以太環保護倒換的設計與實現

2021-07-30 07:57羅志成李明春
電子設計工程 2021年14期
關鍵詞:以太網報文端口

張 潔,羅志成,李明春

(1.武漢郵電科學研究院,湖北武漢 430074;2.烽火通信科技股份有限公司,湖北武漢 430074)

隨著網絡技術的快速發展,網絡中部署的業務量不斷增多[1-2]。以太網鏈路聚合將多個物理接口綁定為一個邏輯接口,有效提高了設備之間鏈路的可靠性和數據傳輸能力[3-5]。以太網通常使用環形拓撲為網絡提供冗余保護,但存在廣播風暴等故障現象,生成樹協議(Spanning Tree Protocol,STP)將環形網絡修剪成一個無環的樹型網絡,但是網絡收斂時間在秒級,無法滿足高服務質量要求的業務[6-7]。與STP協議相比,ERPS 通過阻塞特定的端口達到消除環路的目的[8-10],收斂時間在50 ms 以內,可滿足電信級可靠性。

文中設計和實現了基于以太網鏈路聚合開啟ERPS 協議,正常情況下,用戶流量完好;當鏈路聚合組中出現鏈路故障時,可以通過備份鏈路保證鏈路帶寬;當整個聚合組不工作時,ERPS 協議發生保護倒換,放開RPL 端口恢復通信,故障中斷時間控制在50 ms以內。

1 協議原理與實現

1.1 以太網鏈路聚合

以太網鏈路聚合是將多個物理端口匯聚在一起,形成一個邏輯端口,以實現出入流量吞吐量在各成員端口的負載分擔。如高速公路上的單車道,擴建為雙向八車道,那么高速公路的通過能力將變得更強[11-12]。

兩臺設備之間通過多條物理鏈路連接,稱為鏈路聚合組(Trunk),被捆綁在一起的每一個物理接口稱為該鏈路聚合組的成員接口,其中用來轉發數據的接口為活動接口,處于選中(Selected)狀態,而非活動接口不參與數據的轉發,處于非選中(Unselected)狀態。

以太網鏈路聚合根據是否啟用鏈路聚合控制協議(Link Aggregation Control Protocol,LACP)分為手工鏈路聚合和LACP 鏈路聚合。手工鏈路聚合只能在同廠商設備上使用,而LACP 鏈路聚合方式符合國際標準,因此可以實現不同廠商之間的互通。

1.2 ERPS

ERPS 是ITU_T 定義的二層破環協議,通過環自動保護倒換協議數據單元(Ring Auto Protection Switching Protocol Data Unit,R-APS PDU)與對端交互。由一個主節點和若干個普通節點組成的ERPS環是ERPS 協議的基本組成單位,其中主節點是ERPS 的主要決策和控制節點,每個環上有且僅有一個,除此之外的節點為普通節點(Common)。每個節點最多僅有兩個端口加入同一個ERPS 環,在ERPS協議中,需要指定主節點上其中一個端口角色為RPL,在正常狀態下RPL 端口狀態為阻塞(Blocking),只處理協議報文,不轉發數據報文,除此之外的端口角色為Common,端口狀態為轉發(Forwarding),此狀態下端口既可轉發數據,也可以接收和轉發協議報文。傳輸協議報文和數據報文的虛擬局域網(Virtual Local Area Network,VLAN)需要映射在保護實例中,同一個ERPS 環上的設備配置相同的控制VLAN,控制VLAN 用于傳輸ERPS 協議報文,數據VLAN 用于轉發用戶流量[13-14]。

設備A~C 組成一個ERPS 環,設備A 為主節點,PA1 的端口角色為RPL,其他設備為普通節點,端口角色為Common。正常狀態下,主節點A 將端口PA1的狀態置為Blocking,不參與用戶數據的轉發,在物理成環的情況下阻塞端口達到破環的目的,保護用戶數據;當環路發生故障,如設備B-C 間鏈路故障,則主節點A 打開阻塞端口PA1,端口狀態變為Forwarding,可參與用戶數據的轉發,實現了對用戶數據的切換;故障恢復后,重新阻塞主節點A 的端口PA1,避免網絡成環。

2 方案設計

基于以太網鏈路聚合實現ERPS 協議在OLT 設備上的運行,需要在命令行增加鏈路聚合組的配置和查詢,保證ERPS 協議可以基于鏈路聚合組對普通端口進行操作。另外是兩個協議之間的互相通告,如鏈路聚合組中成員端口的添加(ADD)和刪除(DEL)、鏈路聚合組的連接(up)/斷開(down)事件,需要通知ERPS 協議模塊作處理,ERPS 協議運行后的結果也需要通知以太網鏈路聚合模塊,更新鏈路聚合組的狀態[15-16]。上述事件的處理和完成要求收斂速度足夠快,達到電信級可靠性。

2.1 命令行配置

配置命令為erps ring <ring-id>primary-linkaggregation <trunkid>role [common|rpl-port]和erps ring <ring-id>secondry-link-aggregation <trunkid>role [common|rpl-port],查詢命令為show erps ring <ring-id>trunk <trunkid>。其中,ring-id 是環ID,根據環ID 區分不同的邏輯環,trunkid 代表鏈路聚合組號,端口角色有兩種:common 和rpl-port,由用戶自行設置,確保環中設備上有一個端口為rpl-port。

配置命令的實現流程圖如圖1 所示。設備開啟ERPS 協議時會進行模塊初始化,創建一個ERPS 協議的輪詢任務erp_task,這個任務中根據消息類型觸發狀態機的運轉?;谝蕴W鏈路聚合配置ERPS協議時,首先需要檢查命令行中輸入參數的合法性,當輸入參數合法且鏈路聚合組存在的情況下,將配置信息寫入數據庫,遍歷聚合組內普通端口,設置端口狀態并刷新端口的轉發數據表(Forwarding Data Base,FDB)。

圖1 命令行配置流程

查詢命令的實現與配置命令類似,當命令中有輸入參數時先判斷參數的合法性,參數合法時判斷聚合組是否存在,若存在則從數據庫中獲取聚合組的信息并顯示。

2.2 Trunk組成員變動

Trunk 組內成員的變動,包括成員添加或者刪除,ERPS 協議模塊設置一個鉤子函數,當Trunk 組內成員變動時,注冊的鉤子函數將通知ERPS 模塊進行處理,處理流程如圖2 所示。

圖2 Trunk組成員變動處理流程

在ERPS 輪詢任務中,若刪除Trunk 組中成員,如Trunk 組中某一條鏈路故障或者人為刪除Trunk組中某一條鏈路,此時需要將端口信息(端口默認轉發狀態、速率、雙工模式等)恢復為默認值。若Trunk組中添加成員,如鏈路帶寬不足需要增加帶寬,那么新加入的鏈路端口信息需要與鏈路聚合組保持一致,因此,需要先查詢新端口加入鏈路聚合組的信息,并根據該信息對新端口進行設置,設置后新端口將更新自己的端口狀態并刷新FDB 表。

2.3 Trunk組up/down

Trunk 組up/down 的處理流程涉及到報文交互和定時器的設計,IDLE 表示正常狀態,Protection 表示保護狀態,設備A 是主節點RPL Owner。

Trunk 組故障時的操作如圖3 所示,步驟如下。

圖3 鏈路故障時的操作

A:正常狀態;

B:節點B 和節點C 之間鏈路故障;

C:節點B 和C 檢測到本地信號故障,打開Holdoff Timer 定時器,阻塞故障端口并執行刷新FDB 操作;

D:當SF (Signal Failed)條件存在的情況下,節點B 和C 周期性地發送SF R-APS 報文,為了快速進行保護倒換,前3 個報文的發送間隔為3.3 ms;

E:所有節點接收到SF R-APS 報文后刷新FDB表,主節點接收到SF R-APS 報文后,放開RPL 端口并刷新FDB;

F、G:環上SF 信號穩定存在時,不會觸發進一步操作。

Trunk 組鏈路恢復時的操作如圖4 所示,步驟如下。

圖4 故障恢復

A:穩定的SF 條件;

B:鏈路故障恢復;

C:節點B 和C 檢測到本地SF 條件清除,啟動Guard Timer 定時器,并周期性向外發送NR(No Request)R-APS 報文;

D:當主節點接收到NR 報文后,啟動WTR(Wait to Restore)timer 定時器;

E:當節點B 和C 上Guard Timer 超時后,就可接收新的R-APS 報文;

F:主節點上的WTR timer 超時后,阻塞RPL 端口,并發送NR、RB(No Request,RPL Blocked) R-APS報文,刷新FDB。

G:當節點B 和C 收到NR、RB R-APS 報文后,將放開阻塞的端口并停止發送NR 報文。

3 場景設計與實現

根據上述原理與方案設計,在OLT 上開發實現了基于以太網鏈路聚合的環網保護倒換。使用3 臺OLT 和一臺流量測試儀(TestCenter)搭建圖5 所示的網絡拓撲圖進行測試。

圖5 測試拓撲圖

設備A 為主節點,設備A 的Trunk 組2 的角色為RPL,其他設備為普通節點,Trunk 組的角色為Common。正常收斂狀態下,由測試儀口1 向口2 模擬發送用戶數據,測試儀口2 可以正常接收,說明環路中設備運行正常,各端口狀態正確。依次斷開AC、BC、AB 間鏈路聚合組中成員端口,然后重新連接,依次將AC、BC、AB 間鏈路聚合組斷開連接后再重新連接,觀察環路中的鏈路切換,記錄流量測試儀的丟包數。測量多組數據后取平均值,如表1 所示,流量測試儀的發包速率為1 000 Frames/s。

表1 測試結果

正常狀態下,數據流向為:儀表口1-A-B-C-儀表口2,從表1 可以看出,AC 之間鏈路的改變不會造成丟包,BC 和AB 之間鏈路的改變、保護倒換時間均在50 ms 以內,因此可知,方案設計合理,該機制切實可行。

4 結束語

文中提出了將以太網鏈路聚合與ERPS 協議相結合,在普通端口的基礎上增加對聚合組的操作,不僅拓寬了網絡帶寬,增加了數據的傳輸能力,而且實現了環網的保護倒換,提高了網絡的可靠性。

猜你喜歡
以太網報文端口
基于J1939 協議多包報文的時序研究及應用
一種端口故障的解決方案
基于1500以太網養豬場的智能飼喂控制系統的設計與實現
CTCS-2級報文數據管理需求分析和實現
淺析反駁類報文要點
端口阻塞與優先級
談實時以太網EtherCAT技術在變電站自動化中的應用
ATS與列車通信報文分析
一種90W高功率以太網供電系統的設計
淺談EPON與工業以太網在貴遵高速公路中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合