鏈路聚合定義
以太網(wǎng)鏈路聚合Eth-Trunk簡稱鏈路聚合,它通過將多條以太網(wǎng)物理鏈路捆綁在一起成為一條邏輯鏈路,從而實(shí)現(xiàn)增加鏈路帶寬的目的。同時(shí),這些捆綁在一起的鏈路通過相互間的動(dòng)態(tài)備份,可以有效地提高鏈路的可靠性。
鏈路聚合目的
- 增加帶寬
鏈路聚合接口的最大帶寬可以達(dá)到各成員接口帶寬之和。 - 提高可靠性
當(dāng)某條活動(dòng)鏈路出現(xiàn)故障時(shí),流量可以切換到其他可用的成員鏈路上,從而提高鏈路聚合接口的可靠性。 - 負(fù)載分擔(dān)
在一個(gè)鏈路聚合組內(nèi),可以實(shí)現(xiàn)在各成員活動(dòng)鏈路上的負(fù)載分擔(dān)。
基本概念
- 鏈路聚合、鏈路聚合組和鏈路聚合接口
鏈路聚合是指將若干條物理接口捆綁在一起作為一個(gè)邏輯接口來增加帶寬及可靠性的技術(shù)。
鏈路聚合組LAG(Link Aggregation Group)是指將若干條以太網(wǎng)鏈路捆綁在一起所形成的邏輯鏈路,每個(gè)聚合組唯一對(duì)應(yīng)著一個(gè)邏輯接口,這個(gè)邏輯接口稱之為聚合接口或Eth-Trunk接口。 - 成員接口和成員鏈路
組成Eth-Trunk接口的各個(gè)物理接口稱為成員接口, 成員接口對(duì)應(yīng)的鏈路稱為成員鏈路。 - 活動(dòng)接口和非活動(dòng)接口、活動(dòng)鏈路和非活動(dòng)鏈路
鏈路聚合組的成員接口存在活動(dòng)接口和非活動(dòng)接口兩種,轉(zhuǎn)發(fā)數(shù)據(jù)的接口稱為活動(dòng)接口,不轉(zhuǎn)發(fā)數(shù)據(jù)的接口稱為非活動(dòng)接口。
活動(dòng)接口對(duì)應(yīng)的鏈路稱為活動(dòng)鏈路,非活動(dòng)接口對(duì)應(yīng)的鏈路稱為非活動(dòng)鏈路。

- 活動(dòng)接口數(shù)上限閾值
設(shè)置活動(dòng)接口數(shù)上限閾值的目的是在保證帶寬的情況下提高網(wǎng)絡(luò)的可靠性。當(dāng)前活動(dòng)接口數(shù)目達(dá)到上限閾值時(shí),再向Eth-Trunk中添加成員接口,不會(huì)增加Eth-Trunk活動(dòng)接口的數(shù)目,超過上限閾值的接口狀態(tài)將被置為Down,作為備份鏈路。
例如,有8條無故障鏈路在一個(gè)Eth-Trunk內(nèi),每條鏈路都能提供1G的帶寬,現(xiàn)在最多需要5G的帶寬,那么上限閾值就可以設(shè)為5或者更大的值。其他的鏈路就自動(dòng)進(jìn)入備份狀態(tài)以提高網(wǎng)絡(luò)的可靠性。 - 活動(dòng)接口數(shù)下限閾值
設(shè)置活動(dòng)接口數(shù)下限閾值是為了保證最小帶寬,當(dāng)前活動(dòng)鏈路數(shù)目小于下限閾值時(shí),Eth-Trunk接口的狀態(tài)轉(zhuǎn)為Down。
例如,每條物理鏈路能提供1G的帶寬,現(xiàn)在最小需要2G的帶寬,那么活動(dòng)接口數(shù)下限閾值必須要大于等于2。
分類
根據(jù)是否啟用鏈路聚合控制協(xié)議LACP,鏈路聚合分為手工負(fù)載分擔(dān)模式和LACP模式;
手工負(fù)載分擔(dān)模式
描述
手工負(fù)載分擔(dān)模式下,Eth-Trunk的建立、成員接口的加入由手工配置,沒有鏈路聚合控制協(xié)議的參與。該模式下所有活動(dòng)鏈路都參與數(shù)據(jù)的轉(zhuǎn)發(fā),平均分擔(dān)流量,因此稱為負(fù)載分擔(dān)模式。如果某條活動(dòng)鏈路故障,鏈路聚合組自動(dòng)在剩余的活動(dòng)鏈路中平均分擔(dān)流量。
缺點(diǎn)
手工負(fù)載分擔(dān)模式Eth-Trunk可以完成多個(gè)物理接口聚合成一個(gè)Eth-Trunk口來提高帶寬,同時(shí)能夠檢測到同一聚合組內(nèi)的成員鏈路有斷路等有限故障,但是無法檢測到鏈路層故障、鏈路錯(cuò)連等故障;
LACP模式鏈路聚合
描述
LACP-鏈路聚合控制協(xié)議,為交換數(shù)據(jù)的設(shè)備提供一種標(biāo)準(zhǔn)的協(xié)商方式,以供設(shè)備根據(jù)自身配置自動(dòng)形成聚合鏈路并啟動(dòng)聚合鏈路收發(fā)數(shù)據(jù)。聚合鏈路形成以后,LACP負(fù)責(zé)維護(hù)鏈路狀態(tài),在聚合條件發(fā)生變化時(shí),自動(dòng)調(diào)整或解散鏈路聚合;
LACP 解決鏈路錯(cuò)連
DeviceA與DeviceB之間創(chuàng)建Eth-Trunk,需要將DeviceA上的四個(gè)接口與DeviceB捆綁成一個(gè)Eth-Trunk。由于錯(cuò)將DeviceA上的一個(gè)接口與DeviceC相連,這將會(huì)導(dǎo)致DeviceA向DeviceB傳輸數(shù)據(jù)時(shí)可能會(huì)將本應(yīng)該發(fā)到DeviceB的數(shù)據(jù)發(fā)送到DeviceC上。而手工負(fù)載分擔(dān)模式的Eth-Trunk不能及時(shí)檢測到此故障;
如果在DeviceA和DeviceB上都啟用LACP協(xié)議,經(jīng)過協(xié)商后,Eth-Trunk就會(huì)選擇正確連接的鏈路作為活動(dòng)鏈路來轉(zhuǎn)發(fā)數(shù)據(jù),從而DeviceA發(fā)送的數(shù)據(jù)能夠正確到達(dá)DeviceB。

LACP協(xié)議實(shí)現(xiàn)原理

- 建立eth-trunk后,SwitchA和SwitchB兩端互發(fā)LACP,聲明自己的系統(tǒng),接口優(yōu)先級(jí)以及對(duì)端的系統(tǒng),接口優(yōu)先級(jí),實(shí)驗(yàn)中配置SwitchA 的系統(tǒng)優(yōu)先級(jí)為100,接口優(yōu)先級(jí)為80;

- 當(dāng)兩端設(shè)備收到LACP報(bào)文后,記錄并對(duì)比本地系統(tǒng)優(yōu)先級(jí)字段,選取SwitchA為主動(dòng)端(優(yōu)先級(jí)字段值越小,則選取為LACP主動(dòng)端,如果優(yōu)先級(jí)相同情況下,則比較MAC地址,值越小則選取為LACP主動(dòng)端);
- 選出了主動(dòng)端后,兩端都會(huì)以主動(dòng)端的接口優(yōu)先級(jí)來選擇活動(dòng)接口,當(dāng)前SwitchA的接口1和接口2優(yōu)先級(jí)分別配置了100,活動(dòng)接口的上限閥值為2,所以,通過比較端口優(yōu)先級(jí),這里選擇出了SwitchA 的接口1和接口2作為活動(dòng)接口,接口3為備份接口;

- 假設(shè)現(xiàn)在SwitchA接口1down掉情況下(接口1下配置shutdown),此時(shí)備份接口3會(huì)被補(bǔ)充進(jìn)來,成為活動(dòng)接口;

- 如果我們配置了LACP搶占功能(eth-trunk 視圖下配置lacp preempt enable),當(dāng)SwitchA 接口1恢復(fù)時(shí)(接口1視圖下配置no shutdown),由于接口1 的優(yōu)先級(jí)比較高,所以接口1 會(huì)再次恢復(fù)成活動(dòng)接口;
LACP協(xié)議與手動(dòng)配置轉(zhuǎn)發(fā)區(qū)別
- 手動(dòng)配置情況下,當(dāng)活動(dòng)鏈路出現(xiàn)故障時(shí),流量只能在剩余的活動(dòng)鏈路中轉(zhuǎn)發(fā);而LACP協(xié)議配置情況下,當(dāng)活動(dòng)鏈路出現(xiàn)故障時(shí),自動(dòng)在備份鏈路中選擇優(yōu)先級(jí)較高的接口成為活動(dòng)接口,提高了鏈路的可靠性和冗余備份機(jī)制;
- LACP 協(xié)議可以感知到鏈路錯(cuò)連從而選擇正確的活動(dòng)鏈路轉(zhuǎn)發(fā)數(shù)據(jù);