LACP學習筆記


LACP學習筆記

來源: https://blog.csdn.net/zhengmx100/article/details/53893902

參考文檔:download.h3c.com.cn/download.do?id=1420936

https://read01.com/5MK6eo.html

一、LACP 簡介

1 、LACP 協議簡介

基於IEEE802.3ad 標准的LACP(Link Aggregation Control Protocol,鏈路匯聚控制協議)是一種實現鏈路動態匯聚與解匯聚的協議。LACP 協議通過LACPDU(Link Aggregation Control Protocol Data Unit,鏈路匯聚控制協議數據單元)與對端交互信息。

使能某端口的LACP 協議后,該端口將通過發送LACPDU 向對端通告自己的系統優先級、系統MAC、端口優先級、端口號和操作Key。對端接收到這些信息后,將這些信息與其它端口所保存的信息比較以選擇能夠匯聚的端口,從而雙方可以對端口加入或退出某個動態匯聚組達成一致。

2 、LACP報文

主要字段介紹:

Actor_Port/Partner_Port:本端/對端接口信息。

Actor_State/Partner_State:本端/對端狀態。

Actor_System_Priority/Partner_System_Priority:本端/對端系統優先級。

Actor_System/Partner_System:本端/對端系統ID。

Actor_Key/Partner_Key:本端/對端操作Key,各接口的該值相同才能夠聚合。

Actor_Port_Priority/Partner_Port_Priority:本端/對端接口優先級。

二、鏈路聚合的分類

1、手工負載分擔模式鏈路聚合

1 )手工匯聚概述

手工負載分擔模式是一種最基本的鏈路聚合方式,在該模式下,Eth-Trunk 接口的建立,成員接口的加入完全由手工來配置,沒有鏈路聚合控制協議的參與。該模式下所有成員接口(selected)都參與數據的轉發,分擔負載流量,因此稱為手工負載分擔模式。手工匯聚端口的LACP 協議為關閉狀態,禁止用戶使能手工匯聚端口的LACP 協議。

2 )手工匯聚組中的端口狀態

在手工匯聚組中,端口可能處於兩種狀態:Selected 或Standby。處於Selected 狀態且端口號最小的端口為匯聚組的主端口,其他處於Selected 狀態的端口為匯聚組的成員端口。

由於設備所能支持的匯聚組中的最大端口數有限制,如果處於Selected 狀態的端口數超過設備所能支持的匯聚組中的最大端口數,系統將按照端口號從小到大的順序選擇一些端口為Selected 端口,其他則為Standby 端口。

3 )手工匯聚對端口配置的要求

一般情況下,手工匯聚對匯聚前的端口速率和雙工模式不作限制。但對於以下情況,系統會作特殊處理:

對於初始就處於DOWN 狀態的端口,在匯聚時對端口的速率和雙工模式沒有限制;

對於曾經處於UP 狀態,並協商或強制指定過端口速率和雙工模式,而當前處於DOWN 狀態的端口,在匯聚時要求速率和雙工模式一致;

對於一個匯聚組,當匯聚組中某個端口的速率和雙工模式發生改變時,系統不進行解匯聚,匯聚組中的端口也都處於正常工作狀態。但如果是主端口出現速率降低和雙工模式變化,則該端口的轉發可能出現丟包現象。

2、LACP 協議鏈路聚合

LACP(Link Aggregation Control Protocol)鏈路聚合包含兩種類型:

1)靜態LACP 模式鏈路聚合

a)靜態LACP 模式鏈路聚合簡介

靜態LACP 模式下,Eth-Trunk 接口的建立,成員接口的加入,都是由手工配置完成的。但與手工負載分擔模式鏈路聚合不同的是,該模式下LACP 協議報文參與活動接口的選擇。也就是說,當把一組接口加入Eth-Trunk 接口后,這些成員接口中哪些接口作為活動接口,哪些接口作為非活動接口還需要經過LACP 協議報文的協商確定。

靜態匯聚端口的LACP 協議為使能狀態,當一個靜態匯聚組被刪除時,其成員端口將形成一個或多個動態LACP 匯聚,並保持LACP 使能。禁止用戶關閉靜態匯聚端口的LACP 協議。

b )靜態匯聚組中的端口狀態

在靜態匯聚組中,端口可能處於兩種狀態:Selected 或Standby。Selected 端口和Standby 端口都能收發LACP 協議,但Standby 端口不能轉發用戶報文。

說明:

在一個匯聚組中,處於Selected 狀態且端口號最小的端口為匯聚組的主端口,其他處於Selected 狀態的端口為匯聚組的成員端口。

在靜態匯聚組中,系統按照以下原則設置端口處於Selected 或者Standby 狀態:

系統按照端口全雙工/高速率、全雙工/低速率、半雙工/高速率、半雙工/低速率的優先次序,選擇優先次序最高的端口處於Selected 狀態,其他端口則處於Standby 狀態。

與處於Selected 狀態的最小端口所連接的對端設備不同,或者連接的是同一個對端設備但端口在不同的匯聚組內的端口將處於Standby 狀態。

端口因存在硬件限制(如不能跨板匯聚)無法匯聚在一起,而無法與處於Selected 狀態的最小端口匯聚的端口將處於Standby 狀態。

與處於Selected 狀態的最小端口的基本配置不同的端口將處於Standby 狀態。由於設備所能支持的匯聚組中的Selected 端口數有限制,如果當前的成員端口數超過了設備所能支持的最大Selected 端口數,系統將按照端口號從小到大的順序選擇一些端口為Selected 端口,其他則為Standby 端口。

2)LACP 模式鏈路聚合

a )動態LACP 模式鏈路聚合簡介

動態LACP 模式下,Eth-Trunk 接口的建立,成員接口的加入,活動接口的選擇完全由LACP 協議通過協商完成。這就意味着啟用了動態LACP 協議的兩台直連設備上,不需要創建Eth-Trunk 接口,也不需要指定哪些接口作為聚合組成員接口,兩台設備會通過LACP 協商自動完成鏈路的聚合操作。動態LACP 匯聚是一種系統自動創建/刪除的匯聚,不允許用戶增加或刪除動態LACP 匯聚中的成員端口。只有速率和雙工屬性相同、連接到同一個設備、有相同基本配置的端口才能被動態匯聚在一起。即使只有一個端口也可以創建動態匯聚,此時為單端口匯聚。動態匯聚中,端口的LACP 協議處於使能狀態。

b )動態匯聚組中的端口狀態

在動態匯聚組中,端口可能處於兩種狀態:Selected 或Standby。Selected 端口和Standby 端口都能收發LACP 協議,但Standby 端口不能轉發用戶報文。由於設備所能支持的匯聚組中的最大端口數有限制,如果當前的成員端口數量超過了最大端口數的限制,則本端系統和對端系統會進行協商,根據設備ID 優的一端的

端口ID 的大小,來決定端口的狀態。具體協商步驟如下:

比較設備ID(系統優先級+系統MAC 地址)。先比較系統優先級,如果相同再比較系統MAC 地址。設備ID 小的一端被認為優。

比較端口ID(端口優先級+端口號)。對於設備ID 優的一端的各個端口,首先比較端口優先級,如果優先級相同再比較端口號。端口ID 小的端口為

Selected 端口,剩余端口為Standby 端口。在一個匯聚組中,處於Selected 狀態且端口號最小的端口為匯聚組的主端口,其他處於Selected 狀態的端口為匯聚組的成員端口。

說明:

與手工匯聚組不同的是,在靜態匯聚組和動態匯聚組中,處於DOWN 的端口為Standby 狀態。

手工聚合端口的 LACP 協議為關閉狀態,禁止用戶使能手工聚合端口的 LACP 協議。靜態聚合端口 的 LACP 協議為使能狀態,當一個靜態聚合組被刪除時,其成員端口將形成一個或 多個動態 LACP 聚合,並保持 LACP 使能。禁止用戶關閉靜態聚合端口的 LACP 協 議。

三、LACP實現原理

1 、手工匯聚原理

手工負載分擔模式鏈路聚合是應用比較廣泛的一種鏈路聚合,大多數運營級網絡設備均支持該特性,當需要在兩個直連設備間提供一個較大的鏈路帶寬而對端設備又不支持LACP 協議時,可以使用手工負載分擔模式

說明:

手工負載分擔模式的Eth-Trunk 接口可以聚合不同單板、​​不同雙工模式的成員接口。

2 、靜態匯聚原理

a)基本概念

靜態LACP 模式鏈路聚合是一種利用LACP 協議進行參數協商選取活動鏈路的聚​​合模式。該模式由LACP 協議確定聚合組中的活動和非活動鏈路,又稱為M∶N 模式,即M 條活動鏈路與N 條備份鏈路的模式。這種模式提供了更高的鏈路可靠性,並且可以在M 條鏈路中實現不同方式的負載均衡。

M:N 模式的Eth-Trunk 接口中M 和N 的值可以通過配置活動接口數上限閾值來確定。

b )系統LACP優先級

靜態LACP 模式下,兩端設備所選擇的活動接口必須保持一致,否則鏈路聚合組就無法建立。而要想使兩端活動接口保持一致,可以使其中一端具有更高的優先級,另一端根據高優先級的一端來選擇活動接口即可。系統LACP 優先級就是為了區分兩端優先級的高低而配置的參數。

系統LACP 優先級值越小優先級越高,預設系統LACP 優先級值為32768。

c )接口LACP優先級

接口LACP 優先級是為了區別不同接口被選為活動接口的優先程度。接口LACP 優先級值越小,優先級越高。預設情況下,接口LACP 優先級為32768。

d )靜態模式Eth-Trunk接口建立過程

靜態模式Eth-Trunk 接口建立過程如下所示:

①兩端互相發送LACPDU報文。

②兩端設備根據系統LACP優先級確定主動端。

③兩端設備根據接口LACP優先級確定活動接口,最終以主動端設備的活動接口確定兩端的活動接口。

e) 互發LACPDU報文

在兩端設備CX-A 和CX-B 上創建Eth-Trunk 接口並配置為靜態LACP 模式,然后向Eth-Trunk 接口中手工加入成員接口。此時成員接口上便啟用了LACP 協議,兩端互相發出LACPDU 報文,如下圖所示。

f )確定主動端

Eth-Trunk 兩端設備均會收到對端發來的LACP 報文,根據報文中的優先級欄位,確認活動接口。優先級欄位的值越小,優先級越高。

如下圖所示,當CX-B 收到CX-A 發送LACP 報文時,CX-B 會查看並記錄對端信息,並且比較系統優先級欄位。CX-A 的系統優先級為10,高於CX-B 的系統優先級,所以選擇CX-A 為主動端。此時CX-B 將按照CX-A 的接口優先級選擇活動接口。如果Eth-Trunk 鏈路兩端設備的系統優先級一致,系統將選擇系統ID 欄位較小的作為主動端。系統ID 由設備的MAC 地址產生。

g )選擇活動接口

選出主動端后,兩端都會以主動端的接口優先級來選擇活動接口。如上圖所示,CX-A 為主動端,CX-A 的接口GE1/0/1、GE1/0/2 的優先級高於接口GE2/0/1,此時接口GE1/0/1、GE1 /0/2 被選為活動接口,組成LACP 聚合組,以負載分擔的方式轉發數據。

2 、靜態匯聚原理

動態匯聚和靜態匯聚原理類似,只是動態匯聚中所有端口都是通過協議確定,而不是像靜態匯聚通過協議在指定端口中確定匯聚相關端口。

四、實現細節

1 、鏈路聚合控制的相關參數

a )LACP協議如何唯一的標識聚合組:

系統ID(System ID) ,由「系統優先級+系統MAC地址」組成,其中,之所以要有「系統優先級」,是因為LACP協議中,鏈路聚合兩端設備扮演不同角色,有了「系統優先級」,管理員可以通過配置干預角色選舉。

b)端口ID(Port ID):

對於參與鏈路聚合的各個端口,也需要在設備內部唯一標識,端口ID由「端口優先級+端口號」組成,之所以需要「端口優先級」,也是因為涉及端口的不同角色選舉

c )聚合ID:

在一個設備上,能進行多組聚合,即有多個Aggregator,為了區分這些Aggregator,給每個Aggregator分配了一個聚合ID(Aggregator ID),為一個16位整數

2、端口key

聚合端口中有兩種key:一種是操作key,一種是管理key。

操作key是為形成聚合當前使用的key,管理key是允許管理者對key值進行操作的key。

3,操作鍵

在動態LACP聚合中,只有操作KEY相同的端口才能屬於同一個聚合組,你可以認為操作KEY相同的端口,其屬性相同。

在手工聚合和靜態LACP聚合中,雖然同一個聚合組中的端口的操作KEY不一定相同(因端口由管理員手工加入),但是Selected端口的操作KEY一定相同。

操作Key 是在端口匯聚時,系統根據端口的配置(即速率、雙工、基本配置、管理

Key)生成的一個配置組合。

(1) 對於手工匯聚組和靜態匯聚組,Selected 的端口有相同的操作Key。

(2) 靜態匯聚端口在使能LACP 后,端口的管理Key 與匯聚組ID 相同。

(3) 動態匯聚端口在使能LACP 協議后,其管理Key 預設為零。

(4) 對於動態匯聚組,同組成員一定有相同的操作Key。

4、六要素

a )四個要素:

一個聚合組來說,如果需要進行唯一標識的話,需要包含四個元素:本端系統ID、本端操作KEY、對端系統ID、對端操作KEY

b )兩個要素:

系統中並不是所有聚合組都包含多個鏈路,為了區分只包含單個鏈路的聚合組的情況,還需要額外加上兩個元素:本端端口ID和對端端口ID。

c )結論:

這六個元素唯一確定了一個聚合組,稱為聚合組ID(Link Aggregation Group ID,LAG ID)。如果一個聚合組中包含多個鏈路,那么LAG ID中,本端端口ID和對端端口ID為0,相當於只用四元組就可以刻畫包含多個鏈路的聚合組。

5 、端口類型:

一)Selectet 和未選中:

參與流量轉發的端口稱為Selected端口,否則稱為Unselected端口

b)主端口(master端口)

處於Selected狀態且端口號最小的端口稱為主端口(Master Port),可以形象的認為,聚合組中的所有端口被匯聚到了主端口,主端口在邏輯上代表了整個聚合組,對於GVRP/GMRP 、STP/RSTP /MSTP等二層協議,都只從主端口發送,其他數據報文則在各個Selected端口間分擔。

c )補充:

由於Selected與Unselected端口在實際狀態下的選取受到硬件的影響,所以不同廠家產品的具體表現形式可能有差異

5 、LACP綁定端口

判斷將一個端口綁定到Aggregator的關鍵依據是LAG ID,判斷方法是:

(1)Aggregator的操作KEY和端口的操作KEY相同。

(2)已經綁定到這個Aggregator的其他端口和這個端口有相同的鏈路LAG ID,即與Aggregator關聯的LAG ID必須和端口的LAG ID相同。

(3) 「LAG ID」則指的是聚合組ID( Link Aggregation Group ID),「聚合ID」則指的是Aggregator ID. (LAG ID就是指屬於同一個聚合中的所有port 包括selected 和Standby,對於手工和靜態比較好理解,就是指用戶所指定的所有port,對於動態匯聚,指所有port)

6 、端口離開Aggregator

(1)如果Actor端口在一定時間內(使用long timeout時是90s,使用short timeout是3秒)收不到Partner端口發送的LACP報文,就宣告自己處於超時狀態,如果在下一個short timeout時間(3秒)內還沒有收到Partner的報文,就會離開這個Aggregator。

(2)如果從Partner端口收到的LACP報文,發現LAG ID發生了改變(系統ID或操作KEY發生了變化,系統ID改變說明連接到的對端設備發生了變化,操作KEY發生了變化可能是對端端口的屬性發生了變化),這時端口也會離開這個Aggregator。

(3)還有一種導致端口離開Aggregator的情況:Actor端口本身的屬性發生了變化,設備通過動態操作KEY功能給它分配的操作KEY發生變化,導致和Aggregator的LAG ID不匹配,從而離開聚合組。

7、Active模式和Passive模式

(1)Active模式下,端口正常周期性的發送LACP報文;

(2)Passive模式下,端口平時不發送LACP報文,不過,一旦收到了對端的LACP報文,就會正常發送LACP報文了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM