當下遊設備連接到上遊設備時,使用單上行方式容易出現單點故障,造成業務中斷。因此通常采用雙上行方式,即將一台下遊設備同時連接到兩台上遊設備,以更大限度地避免單點故障,提高網絡可靠性,如圖 1所示。
圖 1 Smart Link應用場景示意圖
雙上行組網雖然能提高網絡可靠性,但又引入了環路問題。通常可通過STP(Spanning Tree Protocol,生成樹協議)或RRPP(Rapid Ring Protection Protocol,快速環網保護協議)來消除環路,但STP在收斂速度上隻能達到秒級,不適用於對收斂時間有很高要求的用戶,而RRPP盡管在收斂速度上能達到要求,但組網配置的複雜度較高,主要適用於較複雜的環形組網。
為了在滿足用戶對鏈路快速收斂要求的同時又能簡化配置,我們針對雙上行組網提出了Smart Link解決方案,實現了主備鏈路的冗餘備份,並在主用鏈路發生故障後使流量能夠迅速切換到備用鏈路上,因此具備較高的收斂速度。Smart Link的主要特點如下:
l 專用於雙上行組網;
l 收斂速度快(達到亞秒級);
l 配置簡單,便於用戶操作。
Smart Link組也叫靈活鏈路組,每個組內隻包含兩個端口,其中一個為主端口,另一個為從端口。正常情況下,隻有一個端口處於轉發(ACTIVE)狀態,另一個端口被阻塞,處於待命(STANDBY)狀態。當處於轉發狀態的端口出現鏈路故障時(這裏的鏈路故障包括端口down、OAM單通等),Smart Link組會自動將該端口阻塞,並將原阻塞的處於待命狀態的端口切換到轉發狀態。
如圖 1所示,Device C和Device D各自的端口Ethernet1/1和Ethernet1/2分別組成了一個Smart Link組,其中Ethernet1/1處於轉發狀態,而Ethernet1/2處於待命狀態。
主端口和從端口是Smart Link組中的兩個端口角色。當Smart Link組中的兩個端口都處於up狀態時,主端口將優先進入轉發狀態,而從端口將保持待命狀態。但是,主端口並不一直處於轉發狀態,而從端口也並不一直處於待命狀態。當主端口所在鏈路發生故障時,從端口將切換為轉發狀態。
如圖 1所示,Device C和Device D各自的端口Ethernet1/1為主端口,Ethernet1/2為從端口。
我們把主端口所在的鏈路稱為主鏈路,從端口所在的鏈路稱為從鏈路。
保護VLAN是Smart Link組控製其轉發狀態的用戶數據VLAN。同一端口上不同的Smart Link組保護不同的VLAN。端口在保護VLAN上的轉發狀態由端口在其所屬Smart Link組內的狀態決定。
發送控製VLAN是用於發送Flush報文的VLAN。當發生鏈路切換時,設備(如圖 1中的Device C和Device D)會在發送控製VLAN內廣播發送Flush報文。
接收控製VLAN是用於接收並處理Flush報文的VLAN。當發生鏈路切換時,設備(如圖 1中的Device A、Device B和Device E)接收並處理屬於接收控製VLAN的Flush報文,進行MAC地址轉發表項和ARP/ND表項的刷新操作。
當Smart Link組發生鏈路切換時,原有的轉發表項將不適用於新的拓撲網絡,需要網絡中的所有設備進行MAC地址轉發表項和ARP/ND表項的更新。這時,Smart Link組通過發送Flush報文通知其它設備進行MAC地址轉發表項和ARP/ND表項的刷新操作。Flush報文是普通的組播數據報文,會被阻塞的接收端口丟棄。
在圖 1所示的組網中,Device C的端口Ethernet1/1所在的鏈路是主鏈路,Ethernet1/2所在的鏈路是從鏈路。正常情況下,Ethernet1/1處於轉發狀態,Ethernet1/2處於待命狀態。當主鏈路出現故障時,Ethernet1/1將自動阻塞並切換到待命狀態,Ethernet1/2將切換到轉發狀態。
l 當端口切換到轉發狀態時,係統會輸出日誌信息通知用戶。
l 當主鏈路故障恢複時,該端口將維持在阻塞狀態,不進行鏈路狀態切換,從而保持流量穩定。隻有等下一次鏈路切換時,該端口才會重新切換為轉發狀態。
當Smart Link發生鏈路切換時,網絡中各設備上的MAC地址轉發表項和ARP/ND表項可能已經不是最新狀態,為了保證報文的正確發送,需要提供一種MAC地址轉發表項和ARP/ND表項的更新機製。目前更新機製有以下兩種:
l 自動通過流量刷新MAC地址轉發表項和ARP/ND表項。此方式適用於與不支持Smart Link功能的設備(包括其他廠商設備)對接的情況,需要有上行流量觸發。
l 由Smart Link設備從新的鏈路上發送Flush報文。此方式需要上行的設備都能夠識別Smart Link的Flush報文並進行更新MAC地址轉發表項和ARP/ND表項的處理。
在圖 1所示的組網中,Device C的端口Ethernet1/1所在的鏈路是主鏈路,Ethernet1/2所在的鏈路是從鏈路。當主鏈路出現故障時,Ethernet1/1將自動阻塞並切換到待命狀態,Ethernet1/2處於轉發狀態。當主鏈路恢複後,如果該Smart Link組配置允許角色搶占,Ethernet1/2將自動阻塞並切換到待命狀態,而Ethernet1/1將切換到轉發狀態。
在同一個環網中,可能同時存在多個VLAN的數據流量,Smart Link可以實現流量的負載分擔,即不同VLAN的流量沿不同Smart Link組所確定的路徑進行轉發。
通過把一個端口配置為多個Smart Link組的成員端口(每個Smart Link組的保護VLAN不同),且該端口在不同組中的轉發狀態不同,這樣就能實現不同VLAN的數據流量的轉發路徑不同,從而達到負載分擔的目的。
每個Smart Link組的保護VLAN是通過引用MSTP實例來實現的。
當網絡的中間傳輸設備或傳輸鏈路發生故障(如光纖鏈路發生單通、錯纖、丟包等故障)以及故障恢複時,Smart Link本身無法感知。Smart Link端口需要通過專門的鏈路檢測協議來檢測端口的鏈路狀態,當鏈路檢測協議檢測到故障發生或故障恢複時就通知Smart Link進行鏈路切換。
當端口與CFD(Connectivity Fault Detection,連通錯誤檢測)的CC(Continuity Check,連續性檢測)機製聯動時,CFD按照檢測VLAN和檢測端口來通知故障檢測事件,隻有當端口所在Smart Link組的控製VLAN與檢測VLAN一致時,才響應此CC事件。