LACP學習筆記

來源:本站原創 網絡技術 超過16,873 views圍觀 28條評論

 

一、LACP簡介

1、LACP協議簡介

基于 IEEE802.3ad 標準的LACP(Link Aggregation Control Protocol,鏈路匯聚控

制協議)是一種實現鏈路動態匯聚與解匯聚的協議。LACP 協議通過LACPDU(Link

Aggregation Control Protocol Data Unit,鏈路匯聚控制協議數據單元)與對端交互信息。

使能某端口的 LACP 協議后,該端口將通過發送LACPDU 向對端通告自己的系統優

先級、系統MAC、端口優先級、端口號和操作Key。對端接收到這些信息后,將這些信息與其它端口所保存的信息比較以選擇能夠匯聚的端口,從而雙方可以對端口

加入或退出某個動態匯聚組達成一致。

2、LACP報文

clip_image002

主要字段介紹:

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實現原理

1手工匯聚原理

手工負載分擔模式鏈路聚合是應用比較廣泛的一種鏈路聚合,大多數運營級網絡設備

均支持該特性,當需要在兩個直連設備間提供一個較大的鏈路帶寬而對端設備又不支

持LACP 協議時,可以使用手工負載分擔模式

clip_image004

說明:

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

2、靜態匯聚原理

a基本概念

靜態LACP 模式鏈路聚合是一種利用LACP 協議進行參數協商選取活動鏈路的聚合模

式。該模式由LACP 協議確定聚合組中的活動和非活動鏈路,又稱為M∶N 模式,即

M 條活動鏈路與N 條備份鏈路的模式。這種模式提供了更高的鏈路可靠性,并且可以

在M 條鏈路中實現不同方式的負載均衡。

clip_image006

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 報文,如下圖所示。

clip_image008

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 地址產生。

clip_image010

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)Aggregator ID:

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

2、端口key

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

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

3、 操作key

在動態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、端口類型:

aSelectetUnselected

參與流量轉發的端口稱為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報文了。

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文標題:LACP學習筆記
本文鏈接:http://www.qdxgqk.live/?p=3105轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
下篇文章:
  • 相關文章
  • 為您推薦
  • 各種觀點
?
?
萌宠夺宝游戏