資料中心場景中的M-LAG組網

brtchen發表於2021-05-01


M-LAG簡介

定義

M-LAG(Multichassis Link Aggregation Group)即跨裝置鏈路聚合組,是一種實現跨裝置鏈路聚合的機制,如 所示,將兩臺接入交換機以同一個狀態和被接入的裝置進行鏈路聚合協商,從而把鏈路可靠性從單板級提高到了裝置級,組成雙活系統。


概念

說明

DFS Group

動態交換服務組DFS Group(Dynamic Fabric Service Group),主要用於部署M-LAG裝置之間的配對,M-LAG雙歸裝置之間的介面狀態,表項等資訊同步需要依賴DFS Group協議進行同步。

DFS主裝置

部署M-LAG且狀態為主的裝置,通常也稱為M-LAG主裝置。

DFS備裝置

部署M-LAG且狀態為備的裝置,通常也稱為M-LAG備裝置。

說明:

DFS Group的角色區分為主和備,正常情況下,主裝置和備裝置同時進行業務流量的轉發,轉發行為沒有區別,僅在故障場景下,主備裝置的行為會有差別。

雙主檢測鏈路

雙主檢測鏈路,又稱為心跳鏈路,是一條三層互通鏈路,用於M-LAG主備裝置間傳送雙主檢測報文。

說明:

正常情況下,雙主檢測鏈路不會參與M-LAG的任何轉發行為, 只在故障場景下,用於檢查是否出現雙主的情況。雙主檢測鏈路可以透過外部網路承載(比如,如果M-LAG上行接入IP網路,那麼兩臺雙歸裝置透過IP網路可以互通,那麼互通的鏈路就可以作為雙主檢測鏈路)。也可以單獨配置一條三層可達的鏈路來作為雙主檢測鏈路(比如透過管理口)。

peer-link介面

peer-link鏈路兩端直連的介面均為peer-link介面。

peer-link鏈路

peer-link鏈路是一條直連鏈路 且必須做鏈路聚合用於交換協商報文及傳輸部分流量。介面配置為peer-link介面後,該介面上不能再配置其它業務。

為了增加peer-link鏈路的可靠性,推薦採用多條鏈路做鏈路聚合。

HB DFS主裝置

透過心跳鏈路來協商的狀態為主的裝置。

說明:

透過心跳鏈路報文來協商的裝置HB DFS主備狀態在正常情況下,對M-LAG的轉發行為不會產生影響,僅用於二次故障恢復場景下,在原DFS主裝置或備裝置故障恢復且peer-link鏈路仍然故障時,觸發HB DFS狀態為備的裝置上相應埠Error-Down,避免M-LAG裝置在雙主情況下出現的流量異常。

HB DFS備裝置

透過心跳鏈路來協商的狀態為備的裝置。

說明:

透過心跳鏈路報文來協商的裝置HB DFS主備狀態在正常情況下,對M-LAG的轉發行為不會產生影響,僅用於二次故障恢復場景下,在原DFS主裝置或備裝置故障恢復且peer-link鏈路仍然故障時,觸發HB DFS狀態為備的裝置上相應埠Error-Down,避免M-LAG裝置在雙主情況下出現的流量異常。

M-LAG成員介面

M-LAG主備裝置上連線使用者側主機(或交換裝置)的Eth-Trunk介面。

為了增加可靠性,推薦鏈路聚合配置為LACP模式。

M-LAG成員介面角色也區分主和備,與對端同步成員口資訊時,狀態由Down先變為Up的M-LAG成員介面成為主M-LAG成員口,對端對應的M-LAG成員口為備。

說明:

僅在M-LAG接入組播場景下,M-LAG成員介面的主備角色存在轉發行為差異。


  1. DFS Group配對

    當M-LAG兩臺裝置完成配置後,裝置首先透過peer-link鏈路傳送DFS Group的Hello報文。當裝置收到對端的Hello報文後,會 判斷報文中攜帶的DFS Group編號是否和本端相同,如果兩臺裝置的DFS Group編號相同,則兩臺裝置DFS Group配對成功。

  2. DFS Group協商主備

    配對成功後,兩臺裝置會向對端傳送DFS Group的裝置資訊報文,裝置根據報文中攜帶的 DFS Group優先順序以及系統MAC地址確定出DFS Group的主備狀態。

    優先順序高的或者MAC地址小的作為主。

  3. M-LAG成員介面協商主備

    在DFS Group協商出主備狀態後,M-LAG的兩臺裝置會透過peer-link鏈路傳送M-LAG裝置資訊報文,報文中攜帶了M-LAG成員介面的配置資訊。在成員口資訊同步完成後, 確定M-LAG成員介面的主備狀態

  4. 與對端同步成員口資訊時,狀態由Down先變為Up的M-LAG成員介面成為主M-LAG成員口,對端對應的M-LAG成員口為備,且主備狀態預設不回切,即:當M-LAG成員介面狀態為主的裝置故障恢復後,先前由備狀態升級為主狀態的介面仍保持主狀態,恢復故障的M-LAG成員介面狀態為備,此處與DFS Group協商主備狀態不一致。 僅在M-LAG接入組播場景下,M-LAG成員介面的主備角色存在轉發行為差異。

  5. 雙主檢測

    協商出M-LAG主備後,兩臺裝置之間會透過雙主檢測鏈路按 照1s的週期傳送M-LAG雙主檢測報文,一旦裝置感知peer-link故障,會按照 100ms的週期傳送三個雙主檢測鏈路報文,加速檢測。當兩臺裝置均能夠收到對端傳送的報文時,雙活系統即開始正常的工作。

    在DFS Group配對失敗或者peer-link故障場景下,雙主檢測鏈路用於檢查是否出現雙主的情況。雙主檢測鏈路可以透過外部網路承載(比如,如果M-LAG上行接入IP網路,那麼兩臺雙歸裝置透過IP網路可以互通,那麼互通的鏈路就可以作為雙主檢測鏈路)。也可以單獨配置一條三層可達的鏈路來作為雙主檢測鏈路(比如透過管理口)。
    1. 雙主檢測鏈路透過管理網口互通,DFS Group繫結的管理網口IP地址要保證可以相互通訊,管理網口下繫結VPN例項,保證雙主檢測報文與業務流量隔離。
    2. 雙主檢測鏈路透過業務網路互通,DFS Group繫結的IP地址要保證可以三層互通。如果peer-link介面之間建立路由鄰居關係,則業務網路雙主檢測報文會直接透過最優路由經peer-link鏈路傳輸。一旦peer-link故障,路由收斂期間,雙主檢測報文透過次優路徑傳輸到對端,雙主檢測時間會慢0.5秒或者1秒的時間。

6、 M-LAG同步資訊

正常工作後,兩臺裝置之間會透過peer-link鏈路傳送M-LAG同步報文實時同步對端的資訊,M-LAG同步報文中包括


M-LAG防環機制

從接入裝置或網路側到達M-LAG配對裝置的單播流量,會優先從本地轉發出去,peer-link鏈路 一般情況下不用來轉發資料流量。當流量透過peer-link鏈路廣播到對端M-LAG裝置,在peer-link鏈路與M-LAG成員口之間設定 單方向的流量隔離,即從peer-link口進來的流量不會再從M-LAG口轉發出去,所以不會形成環路,這就是M-LAG單向隔離機制。

單向隔離機制實現原理  M-LAG防環機制中的單向隔離僅對廣播流量等泛洪流量生效。

在裝置雙活接入M-LAG場景下,裝置會預設按下列順序下發全域性ACL配置:
  • Rule1:允許透過源埠為peer-link介面,目的埠為M-LAG成員口的 三層單播報文;
  • Rule2:拒絕透過源埠為peer-link介面,目的埠為M-LAG成員口的所有報文;
裝置透過匹配ACL規則組來對實現peer-link介面與M-LAG成員口之間的單向隔離,隔離由peer-link介面發往M-LAG成員口的 廣播等泛洪流量。當M-LAG裝置感知到本端的M-LAG成員口狀態為Down時,會透過peer-link傳送M-LAG同步報文,通知對端裝置撤銷自動下發的相應的M-LAG成員埠的單向隔離ACL規則組。


A、基於根橋方式配置M-LAG

M-LAG主裝置和備裝置均作為STP網路中的根橋且配置相同的橋ID,將兩臺裝置模擬成同一個根橋,

stp   root primary  \\ 指定配置為生成樹的根橋裝置

stp bridge-address   mac-address ,配置裝置參與生成樹計算的橋MAC。

配置DFS Group

  dfs-group  XXX   \\ 建立DFS Group並進入DFS-Group檢視

source ip   ip-addressXXXX     peer   peer-ip-addressXXX  \\指定對端心跳IP, 雙主檢測鏈路,又稱為心跳鏈路,是一條三層互通鏈路,用於M-LAG主備裝置間傳送雙主檢測報文。

priority   priority ,配置DFS Group的優先順序

配置peer-link

interface eth-trunk   trunk-id    \\進入Eth-Trunk介面檢視。

trunkport   interface-type  {  interface-number1  [  to   interface-number2  ] } &<1- n >,增加成員介面

mode   lacp-static   \\ 配置Eth-Trunk的工作模式為靜態LACP模式

  \\ 去使能介面的STP功能

peer-link   peer-link-id  \\ 配置介面為peer-link介面

配置M-LAG成員介面

interface eth-trunk   trunk-i  \\ 進入Eth-Trunk介面檢視

trunkport   interface-type  {  interface-number1  [  to   interface-number2  ] } &<1- \\ 增加成員介面

dfs-group   dfs-group-id   m-lag   m-lag-id  \ \配 置為M-LAG成員介面

B、基於V-STP方式配置M-LAG(推薦)

V-STP(Virtual Spanning Tree Protocol)是二層拓撲管理特性, 其核心思想是將兩臺裝置的STP協議虛擬成一臺裝置的STP協議,對外呈現為一臺裝置進行STP協議計算。

STP可以感知M-LAG主備協商狀態,M-LAG主備裝置配置了V-STP使能之後 ,在M-LAG主備協商成功後,兩臺裝置被虛擬化成一臺裝置進行埠角色計算和快速收斂計算。STP需要同步M-LAG主備的橋MAC資訊和例項優先順序資訊。M-LAG主備協商成功後, M-LAG備裝置使用M-LAG主裝置同步過來的橋MAC資訊和例項優先順序資訊進行STP計算和收發報文,保證虛擬化成一臺裝置後的STP計算引數

當前,V-STP只能用於M-LAG組網,可以解決多級M-LAG互聯場景和組成M-LAG的裝置作為非根橋場景的需求。

配置V-STP功能時,需要保證組成M-LAG的兩臺裝置上STP/RSTP定時器配置一致,否則可能導致網路拓撲震盪。


  1. 執行命令 stp mode {  stp |  rstp },配置交換裝置的生成樹協議為STP或RSTP模式。

    V-STP場景中,不支援MSTP模式但支援STP多程式(MSTP程式預設是MSTP模式,目前V-STP場景僅支援STP及RSTP模式,需要將MSTP程式配置為STP或RSTP模式,作為STP程式)。

    執行命令 stp v-stp enable,使能STP進入跨裝置組合工作模式。

    配置DFS Group

執行命令 dfs-group   dfs-group-id

  1. source ip   ip-address  [  vpn-instance   vpn-instance-name  ] [  peer   peer-ip-address  [  udp-port   port-number  ] ]

    配置peer-link

  2. 執行命令 interface eth-trunk  trunk-id,進入Eth-Trunk介面檢視。
  3. 執行命令 trunkport  interface-type {  interface-number1 [  to  interface-number2 ] } &<1- n>,增加成員介面。
  4. 執行命令 mode  lacp-static,配置Eth-Trunk的工作模式為靜態LACP模式。
  5. 執行命令 peer-link  peer-link-i

    配置M-LAG成員介面

  6. interface eth-trunk  trunk-id,進入Eth-Trunk介面檢視。
  7. 執行命令 trunkport  interface-type {  interface-number1 [  to  interface-number2 ] } &<1- n>,增加成員介面。
  8. 執行命令 mode {  lacp-static |  lacp-dynamic },配置Eth-Trunk的工作模式為LACP模式。
  9. 執行命令 dfs-group  dfs-group-id  m-lag  m-lag-id,配置繫結DFS Group和使用者側Eth-Trunk介面,即配置為M-LAG成員介面。

M-LAG故障場景流量轉發


上行鏈路故障

M-LAG接入普通乙太網場景,由於M-LAG主裝置的上行鏈路故障, 透過M-LAG主裝置的流量均經過peer-link鏈路進行轉發。

當故障的上行鏈路恰好為雙主檢測鏈路,此時對於M-LAG正常工作沒有影響一旦peer-link也發生故障,M-LAG出現雙主衝突,雙主檢測又無法進行,則會出現丟包現象。

下行鏈路故障

DFS Group主備狀態不會變化,但如果故障M-LAG成員口狀態為主,則備M-LAG成員口狀態由備升主,流量切換到該鏈路上進行轉發。發生故障的M-LAG成員口所在的鏈路狀態變為Down, 雙歸場景變為單歸場景故障M-LAG成員口的MAC地址指向peer-link介面。在故障M-LAG成員口恢復後,M-LAG成員口 狀態不再回切,由備升主的M-LAG成員口狀態仍為主,原主M-LAG成員口在故障恢復後狀態為備。

對於組播源在網路側,組播成員在接入側的組播流量,當M-LAG主裝置的M-LAG成員口故障時,透過M-LAG同步報文通知對端裝置進行組播表項重新整理,M-LAG主備裝置不再按照組播地址奇偶進行負載分擔,而是所有組播流量都由埠狀態Up的M-LAG備裝置進行轉發,反之亦然。

M-LAG主裝置故障


M-LAG主裝置故障,M-LAG備裝置將升級為主,其裝置側Eth-Trunk鏈路狀態仍為Up,流量轉發狀態不變,繼續轉發流量。M-LAG主裝置側Eth-Trunk鏈路狀態變為Down,雙歸場景變為單歸場景。

如果是M-LAG備裝置發生故障,M-LAG的主備狀態不會發生變化,M-LAG 備裝置側Eth-Trunk鏈路狀態變為Down。M-LAG主裝置側Eth-Trunk鏈路狀態仍為Up,流量轉發狀態不變,繼續轉發流量,雙歸場景變為單歸場景。

peer-link故障

預設情況下,M-LAG應用在普通乙太網路、VXLAN網路或IP網路的雙歸接入, peer-link故障但雙主檢測心跳狀態正常時,會觸發M-LAG備裝置上 除邏輯埠、管理網口、peer-link介面和堆疊口以外的其他介面處於Error-Down狀態。M-LAG應用在TRILL網路的雙歸接入,peer-link故障但雙主檢測心跳狀態正常時,會觸發M-LAG備裝置上的M-LAG介面處於Error-Down狀態。

peer-link故障恢復時,處於Error Down狀態的 M-LAG介面預設將在240s後自動恢復為Up狀態,處於Error Down狀態的其它介面將立即自動恢復為Up狀態。

透過命令可以配置M-LAG場景下peer-link故障但雙主檢測心跳狀態正常時,觸發Error-Down的埠包括邏輯埠。如當M-LAG應用在VXLAN網路或IP網路的雙歸接入,peer-link故障但雙主檢測狀態正常時,會觸發M-LAG備裝置上VLANIF介面、VBDIF介面、LoopBack介面以及M-LAG成員口處於Error-Down狀態。

M-LAG二次故障(peer-link故障+M-LAG裝置故障)

當peer-link故障但雙主檢測心跳狀態正常會觸發DFS備裝置上某些埠處於Error-Down狀態,此時DFS狀態為主的裝置繼續工作。在該場景的基礎上,若DFS狀態為主的裝置由於斷電、 主控板損壞、整機故障重啟等其他故障導致主裝置不能工作時,由 中3所示,此時M-LAG主備裝置皆不能正常轉發流量。

在該場景下,可以藉助M-LAG二次故障增強功能來實現該故障場景下業務不中斷的可靠性要求,如 所示,透過M-LAG二次故障增強功能來說明不同的故障階段和產生的行為:
  1. Peer-link鏈路故障: 若Peer-link鏈路故障但雙主檢測心跳鏈路狀態正常將會觸發DFS狀態為備的裝置上某些埠處於ERROR DOWN(埠Error-Down範圍可以參見 )狀態,DFS狀態為主的裝置繼續工作。
  2. DFS狀態為主的裝置故障:若DFS狀態為主的裝置在peer-link鏈路故障後由於斷電、 主控板損壞、整機故障重啟等其他故障導致不能工作時,此時M-LAG主備裝置皆不能轉發流量,業務中斷。
  3. 二次故障增強功能使能:在上述場景基礎下,若M-LAG已使能二次故障增強功能,則DFS狀態為備的裝置會藉助M-LAG雙主檢測機制感知到DFS主裝置故障(在一定週期內接收不到任何的M-LAG雙主檢測心跳報文)後,將升級為DFS主裝置並恢復裝置上處於ERROR DOWN狀態的埠為Up狀態,繼續轉發流量。
  4. 裝置故障恢復:若原DFS狀態為主的裝置故障恢復後但peer-link故障仍故障
    • 若配置LACP M-LAG的系統ID在一定時間內切換為本裝置的LACP系統ID,則在LACP協商時接入側僅選擇上行鏈路中的一條鏈路為活動鏈路,實際流量轉發正常。
    • 若配置LACP M-LAG的系統ID為預設情況,即系統ID不回切,M-LAG兩臺裝置均使用同一系統ID來與接入側裝置協商,鏈路均能被選中成為活動鏈路。該場景下,由於peer-link鏈路仍然故障,M-LAG兩端無法同步對端的優先順序、系統MAC等資訊,形成M-LAG兩臺裝置雙主的情況,可能導致組播流量異常。此時,如 所示,可以藉助心跳鏈路報文中攜帶必要的DFS Group協商主備的必要資訊(如DFS Group優先順序、系統MAC等)來協商M-LAG兩臺裝置的HB DFS主備資訊,觸發HB DFS狀態為備的裝置上某些埠處於ERROR DOWN(埠Error-Down範圍可以參見 )狀態,HB DFS狀態為主的裝置繼續工作。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31535697/viewspace-2770568/,如需轉載,請註明出處,否則將追究法律責任。

相關文章