以太網鏈路聚合 Eth-Trunk 簡稱鏈路聚合,它通過將多條以太網物理鏈路捆綁在一起成為一條邏輯鏈路,從而實現增加鏈路帶寬的目的。
同時,這些捆綁在一起的鏈路通過相互間的動態備份,可以有效地提高鏈路的可靠性。
1、Trunk 接口連接的鏈路可以看成是一條點到點的直連鏈路,在一個 Trunk 內,可以實現流量負載分擔,同時也提供了更高的連接可靠性和更大的帶寬。用戶通過對邏輯口進行配置,實現各種路由協議以及其它業務部署。
2、鏈路聚合技術主要有以下三個優勢:增加帶寬、提高可靠性和負載分擔。
3、鏈路聚合組和成員接口鏈路聚合組 LAG 是指將若干條以太鏈路捆綁在一起所形成的邏輯鏈路。組成 Eth-Trunk 接口的各個物理接口稱為成員接口。
鏈路聚合組的成員接口存在活動接口和非活動接口兩種。轉發數據的接口稱為活動接口,不轉發數據的接口稱為非活動接口。
活動接口對應的鏈路稱為活動鏈路,非活動接口對應的鏈路稱為非活動鏈路。
4、活動接口數上限閾值
當前活動鏈路數目達到上限閾值時,再向 Eth-Trunk 中添加成員接口,不會增加 Eth-Trunk 活動接口的數目,超過上限閾值的鏈路狀態將被置為 Down,作為備份鏈路。
5、活動接口數下限閾值
設置活動接口數下限閾值是為了保證最小帶寬,當前活動鏈路數目小於下限閾值時,Eth-Trunk 接口的狀態轉為 Down。
6、設備支持的鏈路聚合方式
同板:是指鏈路聚合時,同一聚合組的成員接口分佈在同一單板上。
跨板:是指鏈路聚合時,同一聚合組的成員接口分佈在不同的單板上。
跨框:是指在集群場景下,成員接口分佈在集群的各個成員設備上。
跨設備:是指 E-Trunk 基於 LACP 進行了擴展,能夠實現多臺設備間的鏈路聚合。
Eth-Trunk 轉發原理
1、Eth-Trunk 位於 MAC 與 LLC 子層之間,屬於數據鏈路層。
2、Eth-Trunk 模塊內部維護一張轉發表,這張表由以下兩項組成。
HASH-KEY 值:HASH-KEY 值是根據數據包的 MAC 地址或 IP 地址等,經 HASH 算法計算得出。
接口號:Eth-Trunk 轉發表表項分佈和設備每個 Eth-Trunk 支持加入的成員接口數量相關,不同的 HASH-KEY 值對應不同的出接口。
Eth-Trunk 模塊根據轉發錶轉發數據幀的過程如下:
1)Eth-Trunk 模塊從 MAC 子層接收到一個數據幀後,根據負載分擔方式提取數據幀的源MAC 地址/IP 地址或目的 MAC 地址/IP 地址。
2)根據 HASH 算法進行計算,得到 HASH-KEY 值。
3)Eth-Trunk 模塊根據 HASH-KEY 值在轉發表中查找對應的接口,把數據幀從該接口發送出去。
為了避免數據包亂序情況的發生,Eth-Trunk 採用逐流負載分擔的機制,其中如何轉發數據則由於選擇不同的負載分擔方式而有所差別。
負載分擔的方式主要包括以下幾種,用戶可以根據具體應用選擇不同的負載分擔方式。
- 根據報文的源 MAC 地址進行負載分擔;
- 根據報文的目的 MAC 地址進行負載分擔;
- 根據報文的源 IP 地址進行負載分擔;
- 根據報文的目的 IP 地址進行負載分擔;
- 根據報文的源 MAC 地址和目的 MAC 地址進行負載分擔;
- 根據報文的源 IP 地址和目的 IP 地址進行負載分擔;
- 根據報文的 VLAN、源物理端口等對 L2、IPv4、IPv6 和 MPLS 報文進行增強型負載分擔。
Eth-Trunk 實現方式
(1)鏈路聚合 - 手工模式鏈路聚合
手工模式下,Eth-Trunk 的建立、成員接口的加入由手工配置,沒有鏈路聚合控制協議LACP 的參與。DeviceA 與 DeviceB 之間創建 Eth-Trunk,手工模式下三條活動鏈路都參與數據轉發並分擔流量。當一條鏈路故障時,故障鏈路無法轉發數據,鏈路聚合組自動在剩餘的兩條活動鏈路中分擔流量。
(2)鏈路聚合 - LACP 模式鏈路聚合
為了提高 Eth-Trunk 的容錯性,並且能提供備份功能,保證成員鏈路的高可靠性,出現了鏈路聚合控制協議LACP(Link Aggregation Control Protocol)。聚合鏈路形成以後,LACP負責維護鏈路狀態,在聚合條件發生變化時,自動調整或解散鏈路聚合。
LACP 模式 Eth-Trunk 建立的過程如下:
兩端互相發送 LACPDU 報文。在 DeviceA 和 DeviceB 上創建 Eth-Trunk 並配置為 LACP模式,然後向 Eth-Trunk 中手工加入成員接口。此時成員接口上便啟用了 LACP 協議,兩端互發 LACPDU 報文。
作為鏈路聚合技術,手工模式 Eth-Trunk 可以完成多個物理接口聚合成一個 Eth-Trunk口來提高帶寬,同時能夠檢測到同一聚合組內的成員鏈路有斷路等有限故障,但是無法檢測
到鏈路層故障、鏈路錯連等故障。
(3)鏈路聚合 - LACP 模式鏈路聚合確定主動端和活動鏈路。
兩端設備均會收到對端發來的 LACPDU 報文。以 DeviceB 為例,當 DeviceB收到 DeviceA 發送的報文時,DeviceB 會查看並記錄對端信息,然後比較系統優先級字段,如果 DeviceA 的系統優先級高於本端的系統優先級,則確定 DeviceA 為 LACP 主動端。
如果DeviceA 和 DeviceB 的系統優先級相同,比較兩端設備的 MAC 地址,確定 MAC 地址小的一端為 LACP 主動端。選出主動端後,兩端都會以主動端的接口優先級來選擇活動接口,如果主動端的接口優先級都相同則選擇接口編號比較小的為活動接口。兩端設備選擇了一致的活動接口,活動鏈路組便可以建立起來,從這些活動鏈路中以負載分擔的方式轉發數據。
閱讀更多 SPOTO—思科華為培訓 的文章