【網絡協議】LACP(Link Aggregation Control Protocol,鏈路聚合控制協議)

文章目錄

    • LACP名詞解釋
    • LACP工作原理
      • 互發LACPDU報文
      • 確定主動端
      • 確定活動鏈路
      • 鏈路切換
    • LACP和PAgP有什么區別?
    • LACP與LAG的關系
    • LACP模式更優于手動模式
      • LACP模式對數據傳輸更加穩定和可靠
      • LACP模式對聚合鏈路組的故障檢測更加準確和有效
    • 推薦閱讀

LACP名詞解釋

LACP(Link Aggregation Control Protocol,鏈路聚合控制協議)是一種基于IEEE802.3ad標準的實現鏈路動態聚合與解聚合的協議,它是鏈路聚合中常用的一種協議。屬于數據鏈路層協議。

鏈路聚合組中啟用了LACP協議的成員端口通過發送LACPDU報文進行交互,雙方對哪些端口能夠發送和接收報文達成一致,確定承擔業務流量的鏈路。

此外,當聚合條件發生變化時,如某個鏈路發生故障,LACP模式會自動調整聚合組中的鏈路,組內其他可用成員鏈路接替故障鏈路維持負載平衡。這樣在不進行硬件升級的情況下,可以增加設備之間的邏輯帶寬,提高網絡的可靠性。

LACP工作原理

LACP主要工作主要包含互發LACPDU報文、確定主動端、確定活動鏈路、鏈路切換。

互發LACPDU報文

在對接的兩臺設備上創建Eth-Trunk并配置為LACP模式,然后向Eth-Trunk中手工加入成員接口。此時成員接口上便啟用了LACP協議,兩端互發LACPDU報文,LACPDU報文中包含設備的系統優先級、MAC地址、接口優先級、接口號和操作Key等信息。
在這里插入圖片描述

確定主動端

兩端設備均會收到對端發來的LACPDU報文。

以DeviceB為例,當DeviceB收到DeviceA發送的報文時,DeviceB會查看并記錄對端信息,然后比較系統優先級字段,如果DeviceA的系統優先級高于本端的系統優先級,則確定DeviceA為LACP主動端。如果DeviceA和DeviceB的系統優先級相同,比較兩端設備的MAC地址,MAC地址小的一端為LACP主動端。
在這里插入圖片描述

確定活動鏈路

選出主動端后,設備兩端會以主動端的接口優先級來選擇活動接口,如果主動端的接口優先級都相同則選擇接口編號比較小的為活動接口。LACP模式支持設置活動接口數上限閾值以在保證帶寬的情況下提高網絡可靠性,當前活動接口數目達到上限閾值時,再向Eth-Trunk中添加成員接口,不會增加Eth-Trunk活動接口的數目,超過上限閾值的鏈路狀態將被置為Down,作為備份鏈路。兩端設備選擇了一致的活動接口,活動鏈路組便可以建立起來,這些活動鏈路以負載分擔的方式轉發數據。

如下圖所示,LACP模式下,如果活動鏈路數上限閾值為2,通過LACP協商后,鏈路1和鏈路2因為優先級較高被選作活動鏈路,鏈路3則為備份鏈路。聚合鏈路中的活動鏈路參與數據轉發,總帶寬等于被選中的活動鏈路帶寬之和。
在這里插入圖片描述

鏈路切換

LACP模式鏈路聚合組中如果某條活動鏈路故障,鏈路聚合組自動在備份鏈路中選擇一條優先級最高的鏈路作為活動鏈路接替故障鏈路,參與數據轉發的鏈路數目不變,保證數據傳輸的可靠性。

LACP模式鏈路聚合組兩端設備中任何一端檢測到以下事件,都會觸發聚合組的鏈路切換:

  • 鏈路Down事件。
  • 以太網OAM檢測到鏈路失效。
  • LACP協議發現鏈路故障。
  • 接口不可用。
  • 在使能了LACP搶占功能的前提下,更改備份接口的優先級高于當前活動接口的優先級。

當滿足上述切換條件其中之一時,按照如下步驟進行切換:

  1. 關閉故障鏈路。
  2. 從N條備份鏈路中選擇優先級最高的鏈路接替活動鏈路中的故障鏈路。
  3. 優先級最高的備份鏈路轉為活動狀態并轉發數據,完成切換。

在這里插入圖片描述

LACP和PAgP有什么區別?

LACP和PAgP(Port Aggregation Protocol,端口匯聚協議)是鏈路聚合中使用最廣泛的兩種協商協議。LACP和PAgP的功能類似,都是通過捆綁鏈路并協商成員鏈路之間的流量提高網絡的可用性和穩定性。LACP和PAgP數據包在交換機之間通過支持以太網通道的端口交換。

它們之間最大的區別是支持的供應商不同,LACP是開放標準,可以在大多數交換機上運行,如華為系列交換機,而PAgP是Cisco專有協議,只能在Cisco或支持PAgP的第三方交換機上運行。

在這里插入圖片描述

LACP與LAG的關系

LAG鏈路聚合組(Link Aggregation Group)是指將若干條以太鏈路捆綁在一起形成一條邏輯鏈路,也稱Eth-Trunk鏈路。每個聚合組對應一個鏈路聚合接口或Eth-Trunk接口,組成Eth-Trunk接口的各個物理接口稱為成員接口,成員接口對應的鏈路稱為成員鏈路。

鏈路聚合接口可以作為普通的以太網接口來使用,與普通以太網接口的差別在于:轉發的時候鏈路聚合組需要從成員接口中選擇一個或多個接口來進行數據轉發。

在這里插入圖片描述
LAG是一種鏈路聚合技術,當在兩臺交換機之間并行連接多個端口并將它們配置為LAG時,鏈路聚合組就會形成,而LACP是一種自動建立LAG的控制協議,用于啟用LAG自動配置網絡交換機端口、分離鏈路故障和激活故障切換

LAG主要有兩種模式,分別是手工模式和LACP模式。

  • 手動模式:指LAG不啟用任何鏈路聚合協議,Eth-Trunk的建立、成員接口的加入由手動配置。
  • LACP模式:指LAG啟用LACP鏈路聚合協議,Eth-Trunk的建立、成員接口的加入基于LACP協議協商自動完成。
    在這里插入圖片描述

LACP模式更優于手動模式

LACP模式對數據傳輸更加穩定和可靠

手動模式下,所有鏈路都是活動鏈路,所有活動鏈路均參與數據轉發,平均分擔流量。如果某條活動鏈路故障,鏈路聚合組自動在剩余的活動鏈路中平均分擔流量。
LACP模式下,由LACP確定聚合組中的活動和非活動鏈路,又稱為M:N模式,即M條活動鏈路與N條備份鏈路的模式。這種模式提供了更高的鏈路可靠性,并且可以在M條鏈路中實現不同方式的負載均衡。

如下圖所示,兩臺設備間有M+N條鏈路,在聚合鏈路上轉發流量時在M條鏈路上分擔負載,即活動鏈路,不在另外的N條鏈路轉發流量,這N條鏈路提供備份功能,即備份鏈路。此時鏈路的實際帶寬為M條鏈路的總和,但是能提供的最大帶寬為M+N條鏈路的總和。當M條鏈路中有一條鏈路故障時,LACP會從N條備份鏈路中找出一條優先級高的可用鏈路替換故障鏈路。此時鏈路的實際帶寬還是M條鏈路的總和,但是能提供的最大帶寬就變為M+N-1條鏈路的總和。
在這里插入圖片描述

LACP模式對聚合鏈路組的故障檢測更加準確和有效

手動模式只能檢測到同一聚合組內的成員鏈路有斷路等有限故障;

LACP模式不僅能夠檢測到同一聚合組內的成員鏈路有斷路等有限故障,還可以檢測到鏈路故障、鏈路錯連等故障。

如下圖所示,DeviceA與DeviceB之間創建Eth-Trunk,需要將DeviceA上的四個接口與DeviceB捆綁成一個Eth-Trunk。由于錯將DeviceA上的一個接口與DeviceC相連,這將會導致DeviceA向DeviceB傳輸數據時可能會將本應該發到DeviceB的數據發送到DeviceC上。
手動模式的Eth-trunk不能及時檢測到該故障,如果在DeviceA和DeviceB上都啟用LACP協議,經過協商后,Eth-Trunk就會選擇正確連接的鏈路作為活動鏈路來轉發數據,從而DeviceA發送的數據能夠正確到達DeviceB。
在這里插入圖片描述

推薦閱讀

  • 局域網協議:地址解析協議(ARP,Address Resolution Protocol)
  • 局域網協議:以太網(Ethernet)詳解
  • 局域網協議:VLAN技術介紹
  • 網絡安全準入技術之MAC VLAN
  • 【網絡安全】零日漏洞(0day)是什么?如何防范零日攻擊?
  • 安全知識普及:什么是垃圾郵件和網絡釣魚欺詐

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

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

相關文章

day11 前k個高頻元素

// 小頂堆 class mycomparison { public: bool operator()(const pair<int, int>& lhs, const pair<int, int>& rhs) { return lhs.second > rhs.second; } }; vector<int> topKFrequent(vector<int>& nums, int k) { // 要統計元素出現…

智能外呼有什么好處?

智能外呼是一種自動化的電話營銷方式&#xff0c;利用AI智能外呼技術和大量數據分析&#xff0c;幫助企業實現與客戶之間的高效、精準、個性化的客戶溝通&#xff0c;還可以在客戶服務、市場營銷和銷售等方面帶來助力。那么&#xff0c;智能外呼有什么好處呢&#xff1f; 1. 提…

spring IOC bean為什么默認是單例的

首先解釋一下什么是單例 bean&#xff1f; 單例的意思就是說在 Spring IoC 容器中只會存在一個 bean 的實例&#xff0c;無論一次調用還是多次調用&#xff0c;始終指向的都是同一個 bean 對象 用代碼來解釋單例 bean public class UserService {public void sayHello() {Syst…

交叉編譯工具鏈makefile

linux系統默認搜索頭文件地址&#xff1a;/usr/include/文件夾&#xff1b; Windows系統默認搜索頭文件地址&#xff1a;不同軟件好像可以設置不同的地址&#xff1b;例如visual studio好像可以設置附加包含目錄&#xff0c;包含目錄等 Linux系統庫文件路徑&#xff1a;/lib文…

通過生成模擬釋放無限數據以實現機器人自動化學習

該工作推出RoboGen&#xff0c;這是一種生成機器人代理&#xff0c;可以通過生成模擬自動大規模學習各種機器人技能。 RoboGen 利用基礎模型和生成模型的最新進展。該工作不直接使用或調整這些模型來產生策略或低級動作&#xff0c;而是提倡一種生成方案&#xff0c;該方案使用…

命運天注定?

羅翔老師經常說&#xff1a;人這一生&#xff0c;能自己決定的也許只有5&#xff05;&#xff0c;有95%是你決定不了的。 不是說事在人為&#xff0c;人定勝天嗎&#xff1f; 哪吒也在電影的高潮喊出了&#xff1a;我命由我不由天。 聽上去很熱血&#xff0c;但實際咱們每個…

Java泛型:詳解使用技巧及舉例說明

Java泛型&#xff1a;詳解使用技巧及舉例說明 1. 引言 Java泛型是一項強大的編程概念&#xff0c;它允許我們編寫通用的代碼&#xff0c;在編寫代碼時不需要預先指定具體的數據類型。泛型的引入解決了在傳統的編程中需要頻繁進行類型轉換的問題&#xff0c;提高了代碼的安全性…

simulink MATLABFunction模塊中實時函數調用函數的使用

樣例 function Predyy matlabceshi(input, Time_s) input1 input; Time_s1 Time_s; Predyy ee(input1) mm(Time_s1); end 上面是主要部分&#xff0c;下面是被調用部分 function A ee(input1) A input1 * 100; end function B mm(Time_s1) B Time_s1 * 100; end 模型…

算法競賽---反悔貪心

反悔貪心 Work Scheduling G 什么是返回貪心呢&#xff0c;就是先選擇&#xff0c;遇到更好的之后在反悔選擇更好的&#xff0c;這是符合貪心的邏輯的。 #include <bits/stdc.h> // https://www.luogu.com.cn/problem/P2949 using namespace std; struct node {int d,…

Linux(ubuntu)利用ffmpeg+qt設計rtsp_rtmp流媒體播放器(完全從0開始搭建環境進行開發)

一、前言 從0開始搭建Linux下Qt、ffmpeg開發環境。 從安裝虛擬機開始、安裝Linux(Ubuntu)系統、安裝Qt開發環境、編譯ffmpeg源碼、配置ffmpeg環境、編寫ffmpeg項目代碼、完成項目開發。 完全從0開始搭建環境進行開發 完全從0開始搭建環境進行開發 完全從0開始搭建環境進行開…

公務員國考省考小白需知

文章目錄&#xff1a; 一&#xff1a;分類 1.國考 2.省考 二&#xff1a;必備途徑 1.相關網站 1.1 官網 1.1.1 必須知道的 1.1.2 比較好用的 1.1.3 事業單位的 1.2 機構 ??1.3 時事 ??1.4 資源 1.5 題庫 1.6 真題 ?2.相關公主號 3.應用 4.群聊如何找 三…

笙默考試管理系統-MyExamTest----codemirror(53)

笙默考試管理系統-MyExamTest----codemirror&#xff08;53&#xff09; 目錄 笙默考試管理系統-MyExamTest----codemirror&#xff08;51&#xff09; 一、 笙默考試管理系統-MyExamTest----codemirror 二、 笙默考試管理系統-MyExamTest----codemirror 三、 笙默考試…

【TwinCAT學習筆記 1】TwinCAT開發環境搭建

寫在前面 作為技術開發人員&#xff0c;開啟任何一項開發工作之前&#xff0c;首先都要搭建好開發環境&#xff0c;所謂磨刀不誤砍材工&#xff0c;一定要有耐心&#xff0c;一次不行卸載再裝。我曾遇到過一個學生&#xff0c;僅搭建環境就用了兩周&#xff0c;這個過程也是一…

ATM的轉賬

【 1 】明確我們要實現的功能 # 用戶功能菜單 # 1.注冊 # 2.登陸 # 3.取款 # 4.轉賬 # 5.充值余額 # 6.查看流水 # 7.查看銀行信息(查看自己…

基于Redis在定時任務里判斷其他定時任務是否已經正常執行完的方案

執行的定時任務是基于其他定時任務計算得到的結果基礎上做操作的&#xff0c;那么如何來確定其他存在數據依賴的定時任務已經執行完成呢&#xff1f; 在分布式環境里&#xff0c;可通過集群的redis來解決這個問題&#xff1a; 即&#xff0c;在跑批任務開始時&#xff0c;將任…

SSD數據在寫入NAND之前為何要隨機化?-part2

接part1介紹&#xff1a; 如何達到這個目的&#xff1f;業內常用的是對寫入數據的數據進行隨機化處理&#xff0c;這部分主要在SSD控制器中通過硬件實現。 上圖b/c&#xff1a;在控制器芯片通過硬件方式實現隨機化的讀寫流程&#xff0c;這個也是業內通常做法。隨機化處理是在寫…

【K8S in Action】服務:讓客戶端發現pod 并與之通信(1)

服務是一種為一組功能相同的 pod 提供單一不變的接入點的資源。當服務存在時&#xff0c;它的 IP 地址和端口不會改變。 客戶端通過 IP 地址和端口號建立連接&#xff0c; 這些連接會被路由到提供該服務的任意一個 pod 上。 pod 是短暫&#xff0c;會刪除增加&#xff0c;調度…

Android 13 Settings藍牙列表卡頓問題排查及優化過程

一.背景 此問題是藍牙列表界面息屏后再點擊亮屏藍牙界面卡住,劃不動也不能返回,在人多的時候(附近開啟的藍牙設備過多的時候)會卡住大概四五秒才能滑動. 優化前效果見資源: 二.查找耗時點 根據Android Studio的Profiler工具進行排查,查找主線程時間線比較長的方法,如下:…

IDEA遠程調試與JDWP調試端口RCE漏洞

文章目錄 前言Docker遠程調試Java調試原理遠程調試實踐 JDWP端口RCE調試端口探測調試端口利用 總結 前言 在對一些 Java CVE 漏洞的調試分析過程中&#xff0c;少不了需要搭建漏洞環境的場景&#xff0c;但是本地 IDEA 搭建的話既麻煩&#xff08;通過 pom.xml 導入各種漏洞組…

面向對象編程教程

面向對象編程是一種基于對象的編程范型&#xff0c;它將程序中的數據和操作數據的方法看作一個整體&#xff0c;通過封裝、繼承和多態等機制來實現代碼的復用和可擴展性。面向對象編程也是現代軟件開發的主流編程范式之一&#xff0c;廣泛應用于各種編程語言中&#xff0c;如C、…