【技術】跨設備鏈路聚合的技術——M-LAG

原創:廈門微思網絡

M-LAG(Multichassis Link Aggregation Group)提供一種跨設備鏈路聚合的技術。M-LAG通過將兩臺接入交換機以同一個狀態和用戶側設備或服務器進行跨設備的鏈路聚合,把鏈路的可靠性從單板級提升到設備級。同時,由于M-LAG設備可以單獨升級,保證了業務流量的穩定性,使得M-LAG技術在數據中心網絡廣泛應用。

點擊查看【相關學習】

高可用技術——M-LAG

【華為】VRRP原理與配置

【實驗】配置STP

為什么需要M-LAG

近幾年來,M-LAG作為一項虛擬化技術被廣泛使用,然而M-LAG技術的發展并非一蹴而就。

眾所周知,傳統的數據中心網絡采用設備和鏈路冗余保證高可靠性。因其鏈路利用率低和網絡維護成本高,數據中心交換機又提出了堆疊技術,將多臺交換機虛擬成一臺交換機,達到簡化網絡部署和降低網絡維護的目的。

為了滿足業務量增大和對網絡更高可靠性的要求,于是出現了M-LAG虛擬化技術,通過多臺設備間的鏈路聚合將鏈路的可靠性從單板級提高到設備級。

STP+VRRP技術

傳統的數據中心網絡采用STP+VRRP協議來保障鏈路冗余,滿足了基本的可靠性需求。

圖片


STP+VRRP技術示意圖

但STP+VRRP方案存在如下痛點,已無法滿足數據中心流量和規模的快速增長。

  • STP的阻塞鏈路機制,導致二層鏈路利用率低。
  • VRRP的主備備份功能,導致三層鏈路利用率低。
  • Server僅支持以主備方式接入設備。

針對STP+VRRP方案的缺點,先后出現了堆疊和M-LAG虛擬化技術,用于滿足業務量增大和對網絡更高可靠性的要求。

堆疊和M-LAG虛擬化技術

堆疊和M-LAG實現跨設備鏈路聚合提高二層鏈路利用率,M-LAG的雙活網關技術提高了三層鏈路利用率,且服務器可以通過鏈路聚合實現雙活接入設備。

圖片


堆疊和M-LAG虛擬化技術示意圖

M-LAG和堆疊都可以解決傳統數據中心網絡的問題,但從業務穩定性考慮,通常選擇M-LAG。

堆疊和M-LAG作為廣泛運用于數據中心網絡接入層的兩種橫向虛擬化技術,他們都可實現終端的冗余接入,實現鏈路冗余備份,提高數據中心網絡的可靠性和可擴展性。然而,與堆疊技術相比,M-LAG存在更高的可靠性和獨立升級的優勢。

對比了堆疊和M-LAG的優劣。針對升級過程業務中斷時間要求高、對組網可靠性要求高的場景,我們推薦用戶使用M-LAG技術,用作數據中心網絡終端接入技術。

圖片

堆疊和M-LAG的對比

如何實現M-LAG組網

在M-LAG系統中,ServerA、DeviceA和DeviceB進行跨設備鏈路聚合。DeviceA和DeviceB通過動態交換服務組DFS Group(Dynamic Fabric Service Group)完成M-LAG設備之間的配對,當DeviceA和DeviceB配對成功后會協商出主備關系。在M-LAG正常工作后,DeviceA和DeviceB之間通過peer-link鏈路實時同步對端信息。而M-LAG的故障檢測則主要依賴于雙主檢測鏈路(DAD link,Dual-Active Detection link),設備通過雙主檢測鏈路定期互發心跳報文。

圖片


M-LAG組網示意圖

M-LAG組網詳細的實現流程包括以下五步:DFS Group配對、DFS Group協商主備、M-LAG成員口協商主備、雙主檢測和M-LAG信息同步。

圖片


M-LAG組網實現過程

M-LAG是如何工作的

M-LAG正常工作場景

  • 已知單播流量轉發

當M-LAG正常工作時,自用戶側發往網絡側的已知單播流量(圖中綠色流量)由M-LAG主備設備形成逐流負載分擔,共同進行流量的轉發。反之,自網絡側發往用戶側的已知單播流量(圖中黃色流量)同樣由M-LAG主備設備形成逐流負載分擔,共同進行流量的轉發。

圖片

M-LAG已知單播流量轉發示意圖

  • 組播、廣播和未知單播流量轉發

當M-LAG正常工作時,自用戶側發往網絡側的組播、廣播和未知單播流量(圖中黃色流量)在設備間泛洪擴散。對于可能造成的環路(圖中紅色),則利用M-LAG的單向隔離機制隔絕由peer-link發往M-LAG成員口的流量。反之,當網絡側發往用戶側的組播、廣播和未知單播流量(圖中綠色流量)在設備間泛洪擴散時,同樣利用單向隔離機制隔絕由peer-link發往M-LAG成員口的流量。

圖片

M-LAG組播、廣播和未知單播流量轉發示意圖

M-LAG故障工作場景

  • 上行鏈路故障

M-LAG接入普通以太網場景,由于M-LAG主設備的上行鏈路故障,通過M-LAG主設備的流量均經過peer-link鏈路進行轉發。M-LAG接入三層網絡場景下,需要在M-LAG主備設備間配置三層逃生鏈路,使得到達M-LAG主設備的上行流量通過三層逃生鏈路到達M-LAG備設備。

當故障的上行鏈路恰好為雙主檢測鏈路,此時對于M-LAG正常工作沒有影響。一旦peer-link也發生故障,M-LAG出現雙主沖突,雙主檢測又無法進行,此時用戶側發往Master的流量會因為沒有上行口而被丟棄。針對這個問題我們可以用管理口作為雙主檢測鏈路;也可以配置Monitor-link功能,將M-LAG成員口和上行口關聯,一旦上行鏈路故障會聯動M-LAG成員口故障,這樣就防止了流量的丟失。

圖片

上行鏈路故障示意圖

  • M-LAG成員口故障

當M-LAG成員口故障時,用戶側發往網絡側的流量(圖中綠色流量)由正常鏈路負載分擔轉發,網絡側不感知故障,流量依然發送給雙歸設備。由于M-LAG成員口故障,雙歸場景變為單歸場景,此時端口隔離機制放開。當M-LAG成員口故障設備收到從網絡側發往用戶側流量(圖中黃色流量),會通過peer-link將流量交給正常工作的M-LAG設備轉發到用戶側。

當M-LAG成員口故障恢復后,M-LAG成員口UP會觸發一次M-LAG系統的MAC表項同步,單歸場景恢復為雙歸場景,流量恢復負載分擔轉發。

圖片

M-LAG成員故障示意圖

  • peer-link故障

M-LAG雙歸接入設備一旦感知peer-link鏈路狀態為Down,會立即通過DAD鏈路發起一次雙主檢測。如果在一定時間內未收到對端發布的雙主檢測報文,則認為對端設備故障。如果收到對端發送的雙主檢測報文,則認為peer-link故障。

Peer-link故障時,兩臺M-LAG設備不能同時轉發流量,若同時轉發流量會出現廣播風暴、MAC漂移等問題。因此M-LAG備設備會將除peer-link口、堆疊口和管理網口之外的所有物理接口Error-down。此時,流量都只會從M-LAG主設備轉發。

Peer-link故障恢復后,peer-link接口UP,M-LAG系統將重新協商。協商完成后,為保障M-LAG的端口隔離機制生效,除M-LAG成員口以外的其他口恢復UP狀態,而M-LAG成員口在4分鐘后恢復UP狀態。

圖片

peer-link故障示意圖

  • 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,流量轉發狀態不變,繼續轉發流量,雙歸場景變為單歸場景。

M-LAG設備故障恢復時,peer-link先UP,DFS狀態重新協商,M-LAG成員口恢復UP,流量恢復負載分擔。M-LAG主設備恢復后設備狀態仍然為主,M-LAG備設備恢復后設備狀態仍然為備。

圖片

M-LAG設備故障示意圖

如何應用M-LAG技術

通過上文我們了解到M-LAG有負載分擔流量和備份保護的作用,那么下面我們介紹M-LAG的應用場景。

M-LAG主要應用于將服務器或交換機雙歸接入二層網絡、VXLAN網絡和三層網絡,以及多級M-LAG。

M-LAG雙歸接入二層網絡

M-LAG雙歸接入二層網絡時,需要將兩臺M-LAG設備模擬成同一個STP邏輯節點,達到與STP對接破環的目的。

我們可以通過手動配置雙歸設備為STP網絡根橋或配置VSTP協議,將M-LAG兩個設備模擬成一個STP節點。其中,VSTP協議的作用主要是在雙歸設備之間同步STP協議狀態,將兩臺設備以同一個狀態對外進行STP協商。

圖片


M-LAG雙歸接入二層網絡示意圖

M-LAG雙歸接入VXLAN網絡

M-LAG雙歸接入VXLAN網絡時,需要將兩臺M-LAG設備虛擬成一個VTEP。無論是手工建立隧道還是通過MP-BGP自動建立隧道,DeviceA和DeviceB均用這個虛擬的VTEP的IP和外界建立VXLAN隧道。

圖片


M-LAG雙歸接入VXLAN網絡示意圖

M-LAG雙歸接入三層網絡

M-LAG雙歸接入三層網絡時,M-LAG雙歸設備成為二層網絡和三層網絡的分界點,即承擔網關的作用。由于是兩臺設備做網關,他們對網絡側需要展示相同的網關IP和MAC。在DeviceA和DeviceB上配置相同IP地址和虛擬MAC地址,達到相同網關的目的。

圖片


M-LAG雙歸接入三層網絡示意圖

多級M-LAG

在網絡規模較大場景下,可以在Spine和Leaf同時部署M-LAG來保證鏈路可靠性。圖中灰色底紋中的兩臺設備組成M-LAG。

多級M-LAG應用場景,不能使用手動配置根橋的方式來進行STP破環,需要通過VSTP協議來同步M-LAG雙歸設備的STP協議狀態信息。

圖片


多級M-LAG網絡示意圖

近期開班

圖片

圖片

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908349.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908349.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908349.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI健康小屋+微高壓氧艙:科技如何重構我們的健康防線?

目前,隨著科技和社會的不斷發展,人們的生活水平和方式有了翻天覆地的變化。 從吃飽穿暖到吃好喝好再到健康生活,觀念也在逐漸發生改變。 尤其是在21世紀,大家對健康越來越重視,這就不得不提AI健康小屋和氧艙。 一、A…

Python訓練營---Day44

DAY 44 預訓練模型 知識點回顧: 預訓練的概念常見的分類預訓練模型圖像預訓練模型的發展史預訓練的策略預訓練代碼實戰:resnet18 作業: 嘗試在cifar10對比如下其他的預訓練模型,觀察差異,盡可能和他人選擇的不同嘗試通…

1.文件操作相關的庫

一、filesystem(C17) 和 fstream 1.std::filesystem::path - cppreference.cn - C參考手冊 std::filesystem::path 表示路徑 構造函數: path( string_type&& source, format fmt auto_format ); 可以用string進行構造,也可以用string進行隱式類…

【 java 集合知識 第二篇 】

目錄 1.Map集合 1.1.快速遍歷Map 1.2.HashMap實現原理 1.3.HashMap的擴容機制 1.4.HashMap在多線程下的問題 1.5.解決哈希沖突的方法 1.6.HashMap的put過程 1.7.HashMap的key使用什么類型 1.8.HashMapkey可以為null的原因 1.9.HashMap為什么不采用平衡二叉樹 1.10.Hash…

【Dify 知識庫 API】“根據文本更新文檔” 真的是差異更新嗎?一文講透真實機制!

在使用 Dify 知識庫 API 過程中,很多開發者在調用 /datasets/{dataset_id}/document/update-by-text 接口時,常常會產生一個疑問: ?? 這個接口到底是 “智能差異更新” 還是 “純覆蓋更新”? 網上的資料并不多,很多人根據接口名誤以為是增量更新。今天我結合官方源碼 …

大模型如何革新用戶價值、內容匹配與ROI預估

寫在前面 在數字營銷的戰場上,理解用戶、精準觸達、高效轉化是永恒的追求。傳統方法依賴結構化數據和機器學習模型,在用戶價值評估、人群素材匹配以及策略ROI預估等核心問題上取得了顯著成就。然而,隨著數據維度日益復雜,用戶行為愈發多變,傳統方法也面臨著特征工程繁瑣、…

基于端到端深度學習模型的語音控制人機交互系統

基于端到端深度學習模型的語音控制人機交互系統 摘要 本文設計并實現了一個基于端到端深度學習模型的人機交互系統,通過語音指令控制其他設備的程序運行,并將程序運行結果通過語音合成方式反饋給用戶。系統采用Python語言開發,使用PyTorch框架實現端到端的語音識別(ASR)…

【2025年】解決Burpsuite抓不到https包的問題

環境:windows11 burpsuite:2025.5 在抓取https網站時,burpsuite抓取不到https數據包,只顯示: 解決該問題只需如下三個步驟: 1、瀏覽器中訪問 http://burp 2、下載 CA certificate 證書 3、在設置--隱私與安全--…

Jenkins 工作流程

1. 觸發構建 Jenkins 的工作流程從觸發構建開始。構建可以由以下幾種方式觸發: 代碼提交觸發:通過與版本控制系統(如 Git、SVN)集成,當代碼倉庫有新的提交時,Jenkins 會自動觸發構建。 定時觸發&#xff…

Jmeter如何進行多服務器遠程測試?

🍅 點擊文末小卡片 ,免費獲取軟件測試全套資料,資料在手,漲薪更快 JMeter是Apache軟件基金會的開源項目,主要來做功能和性能測試,用Java編寫。 我們一般都會用JMeter在本地進行測試,但是受到…

Kafka入門-生產者

生產者 生產者發送流程: 延遲時間為0ms時,也就意味著每當有數據就會直接發送 異步發送API 異步發送和同步發送的不同在于:異步發送不需要等待結果,同步發送必須等待結果才能進行下一步發送。 普通異步發送 首先導入所需的k…

分類預測 | Matlab實現CNN-LSTM-Attention高光譜數據分類

分類預測 | Matlab實現CNN-LSTM-Attention高光譜數據分類 目錄 分類預測 | Matlab實現CNN-LSTM-Attention高光譜數據分類分類效果功能概述程序設計參考資料 分類效果 功能概述 代碼功能 該MATLAB代碼實現了一個結合CNN、LSTM和注意力機制的高光譜數據分類模型,核心…

gemini和chatgpt數據對比:誰在卷性能、價格和場景?

先把結論“劇透”給趕時間的朋友:頂配 Gemini Ultra/2.5 Pro 在紙面成績上普遍領先,而 ChatGPT 家族(GPT-4o / o3 / 4.1)則在延遲、生態和穩定性上占優。下面把核心數據拆開講,方便你對號入座。附帶參考來源&#xff0…

代碼訓練LeetCode(23)隨機訪問元素

代碼訓練(23)LeetCode之隨機訪問元素 Author: Once Day Date: 2025年6月5日 漫漫長路,才剛剛開始… 全系列文章可參考專欄: 十年代碼訓練_Once-Day的博客-CSDN博客 參考文章: 380. O(1) 時間插入、刪除和獲取隨機元素 - 力扣(LeetCode)力…

C++面試5——對象存儲區域詳解

C++對象存儲區域詳解 核心觀點:內存是程序員的戰場,存儲區域決定對象的生殺大權!棧對象自動赴死,堆對象生死由你,全局對象永生不死,常量區對象只讀不滅。 一、四大地域生死簿 棧區(Stack) ? 特點:自動分配釋放,速度極快(類似高鐵進出站) ? 生存期:函數大括號{}就…

STM32 智能小車項目 L298N 電機驅動模塊

今天開始著手做智能小車的項目了 在智能小車或機器人項目中,我們經常會聽到一個詞叫 “H 橋電機驅動”,尤其是常見的 L298N 模塊,就是基于“雙 H 橋”原理設計的。那么,“H 橋”到底是什么?為什么要用“雙 H 橋”來驅動…

python項目如何創建docker環境

這里寫自定義目錄標題 python項目創建docker環境docker配置國內鏡像源構建一個Docker 鏡像驗證鏡像合理的創建標題,有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個表格設定內容居中、居左、居右SmartyPant…

MySQL-多表關系、多表查詢

一. 一對多(多對一) 1. 例如;一個部門下有多個員工 在數據庫表中多的一方(員工表)、添加字段,來關聯一的一方(部門表)的主鍵 二. 外鍵約束 1.如將部門表的部門直接刪除,然而員工表還存在其部門下的員工,出現了數據的不一致問題&am…

【 HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項目講解

【 HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項目講解 一、前言:移動開發聲明式 UI 框架的技術變革 在移動操作系統的發展歷程中,UI 開發模式經歷了從命令式到聲明式的重大變革。 根據華為開發者聯盟 2024 年數據報告顯示,HarmonyOS 設備…

【SSM】SpringMVC學習筆記7:前后端數據傳輸協議和異常處理

這篇學習筆記是Spring系列筆記的第7篇,該筆記是筆者在學習黑馬程序員SSM框架教程課程期間的筆記,供自己和他人參考。 Spring學習筆記目錄 筆記1:【SSM】Spring基礎: IoC配置學習筆記-CSDN博客 對應黑馬課程P1~P20的內容。 筆記2…