鏈路聚合背景
拓撲組網時為了高可用,需要網絡的冗余備份。但增加冗余容易后會出現環路,所以我們部署了STP協議來破除環路。
但是,根據實際業務的需要,為網絡不停的增加冗余是現實需要的一部分。
那么,為了讓網絡冗余符合用戶增長的流量,需要增加帶寬時怎么辦?
現實中,一條1000M的帶寬和10000M的帶寬的建設成本,差異是巨大的。為了節省網絡組建的成本,我們通過添加鏈路來增加帶寬是最優方案:
A1、添加鏈路相當于增加了鏈路冗余,會被STP的防環機制阻塞掉。
學習目標
- 學完本課程后,您將能夠:
- 了解鏈路聚合的作用
- 了解鏈路聚合的分類
- 理解LACP模式的鏈路聚合協商過程
- 了解iStack和CSS的優點與原理
- 了解鏈路聚合與堆疊技術常見應用與組網
1、網絡的可靠性需求
1.1、網絡的可靠性
網絡的可靠性指當設備或者鏈路出現單點或者多點故障時保證網絡服務不間斷的能力。
網絡的可靠性可以從單板、設備、鏈路多個層面實現。
隨著網絡的快速普及和應用的日益深入,各種增值業務得到了廣泛部署,網絡中斷可能導致大量業務異常、造成重大經濟損失。因此,作為承載業務主體的基礎網絡,其可靠性成為備受關注的焦點。
1.2、單板可靠性
- 框式交換機由機框、電源模塊、風扇模塊、主控板、交換網板(SFU)、線路板(LPU)構成。
- 機框:為各種板卡、模塊提供插槽,實現板卡間的通信。
- 電源模塊:設備的供電系統
- 風扇模塊:設備的散熱系統
- 主控板(MPU,Main Processing Unit):負責整個系統的控制平面和管理平面。
- 交換網板(SFU,Switch Fabric Unit):負責整個系統的數據平面。數據平面提供高速無阻塞數據通道,實現各個業務模塊之間的業務交換功能。
- 線路板(LPU,Line Processing Unit):線路處理單元是物理設備上用于提供數據轉發功能的模塊,提供不同速率的光口、電口。
- 以S12700E-8為例,設備提供8個線路板槽位、4個交換網板槽位、2個主控板槽位、6個電源模塊槽位、4個風扇模塊槽位。
- 框式交換機配置多個主控板、交換網板可保證設備自身的可靠性,單個槽位的交換網板、主控板損壞不影響設備的正常運行。
- 框式交換機的線路板損壞后,該板卡上的接口無法正常轉發數據。
1.3、設備可靠性
設備無冗余設計的網絡中,下游交換機采用單上行接入,上行交換機的接口故障或設備故障會導致下游網絡全部中斷。
設備冗余設計的網絡中,下游交換機雙上行接入,采用鏈路一主一備的方式,主鏈路上行接口、設備故障可以切換到備份鏈路,通過備份設備轉發。
1.4、鏈路可靠性
為保證設備間鏈路可靠性,在設備間部署多條物理線路,為防止環路STP只保留一條鏈路轉發流量,其余鏈路成為備份鏈路。
2、鏈路聚合技術原理與配置
2.1、基本原理
鏈路聚合:Eth-trunk,通過虛擬化(多虛一)將多條物理鏈路邏輯上整合為一條鏈路。
邏輯上的鏈路是STP計算的鏈路(即STP不會再計算物理鏈路)。
Eth-trunk設計了相應的機制防止多條物理鏈路出現環路:在一個鏈路捆綁組中的物理接口1收到的數據,不會再從鏈路捆綁組中的其它物理接口轉發。
2.1.1、提升鏈路帶寬
設備之間存在多條鏈路時,由于STP的存在,實際只會有一條鏈路轉發流量,設備間鏈路帶寬無法得到提升。
2.1.2、以太網鏈路聚合
以太網鏈路聚合Eth-Trunk:簡稱鏈路聚合,通過將多個物理接口捆綁成為一個邏輯接口,可以在不進行硬件升級的條件下,達到增加鏈路帶寬的目的。
2.1.3、鏈路聚合基本術語/概念
A1、聚合組(Link Aggregation Group,LAG):若干條鏈路捆綁在一起所形成的的邏輯鏈路。每個聚合組唯一對應著一個邏輯接口,這個邏輯接口又被稱為鏈路聚合接口或Eth-Trunk接口。
A2、成員接口和成員鏈路:組成Eth-Trunk接口的各個物理接口稱為成員接口。成員接口對應的鏈路稱為成員鏈路。
A2.1、活動接口和活動鏈路:活動接口又叫選中(Selected)接口,是參與數據轉發的成員接口。活動接口對應的鏈路被稱為活動鏈路(Active link)
A2.2、非活動接口和非活動鏈路:又叫非選中(Unselected)接口,是不參與轉發數據的成員接口。非活動接口對應的鏈路被稱為非活動鏈路(Inactive link)。
A3、聚合模式 :根據是否開啟LACP(Link Aggregation Control Protocol,鏈路聚合控制協議),鏈路聚合可以分為手工模式和LACP模式。
A4、其他概念:活動接口上限閾值和活動接口下限閾值。
2.2、手工模式
設備老舊、低端,不支持LACP協議,我們就采用手工模式。
手工模式由缺點,是 單通 的。
[S1]interface Eth-Trunk 1? #創建一個聚合組
[S1-Eth-Trunk1]mode manual load-balance? #設置工作模式為手工靜態(默認的模式)
[S1-Eth-Trunk1]trunkport GigabitEthernet 0/0/1 0/0/2? #將物理接口添加進聚合組
[S1]int gi 0/0/3
[S1-GigabitEthernet0/0/3]eth-trunk 1? #將物理接口添加進聚合組
2.2.1、手工模式的Eth-Trunk的問題:
A1、鏈路兩端不能相互檢測,容易造成單通問題:
A1.1、沒有報文檢測機制;
A1.2、只要接口是UP狀態,就認為對方可達。
情景1、沒有報文檢測機制:
S1交換機是Eth-Trunk端口,與S2相連且為RP口。
S2交換機有3個端口與S1的Eth-Trunk連接,且都為DP口。
現在,兩端沒有AP阻塞口,一定會:
形成小的環路;
S2不知該通過哪個接口與S1通信?
情景2、只要接口是UP狀態,就認為對方可達:
在S1 GE02口與S2斷開的情況下,S1交換機的Eth-Trunk三個口都是正常連接的:
而S2與S1連接的GE 02口已斷開。
因為Eth-Trunk手工聚合通信發送報文接口是隨機的,所以當S2向S1發送的報文通過S1的GE 02口發出時,就會出現單通。
2.3、LACP模式
2.3.1、特點
1、通過交互LACPDU檢測鏈路兩端的接口狀態;
2、可以設置備份鏈路。
例:用戶需要"2千兆"帶寬,且需要存在備份鏈路,當主鏈路失效,備份鏈路轉發數據。
[S1]interface Eth-Trunk 1
[S1-Eth-Trunk1]mode lacp-static ?#設置鏈路聚合模式為LACP
[S1-Eth-Trunk1]trunkport GigabitEthernet 0/0/1 0/0/2 0/0/3
[S2]執行與S1相同的Eth-Trunk配置。
[S2-Eth-Trunk1]max active-linknumber 2? #設置最大活躍鏈路為2(默認為8)
2.3.2、鏈路聚合兩端的帶寬
鏈路聚合的“一端”要求是同速率,同帶寬。
鏈路聚合的“兩端”不是同速率、同帶寬的鏈路的情況,則向下兼容(一端為百兆鏈路、一端為千兆鏈路,則取百兆鏈路為最大帶寬)。
鏈路聚合的兩端,聚合組號沒有一致性要求。
2.3.3、在聚合組中確定某接口為備份接口
每一個接口都有對應的LACP接口優先級,優先級值越小越高;
優先級值相等,則比較接口編號,越小越高。
[S2-GigabitEthernet0/0/1]lacp priority ?#設置接口的LACP優先級,只在備份接口未選舉前生效
如下,即時變更了0/0/1口的優先級,0/0/3口依然是備份口,只有等到下一次主備選舉,才能生效。
在聚合鏈路的兩端,需要選舉一個主動端設備來確定備份接口的選擇,被動端則使用主動端選舉的結果。
2.3.4、如何選舉主動端
每一個運行了LACP的交換機都會存在LACP系統優先級:
優先級值越小越高;
優先級值相同,則比較MAC地址,越小越高。
[S1]lacp priority ?? #修改LACP全局優先級
? INTEGER<0-65535>? Priority value, the default value is 32768
2.3.5、負載分擔
2.3.5.1、基于包
在使用Eth-Trunk轉發數據時,由于聚合組兩端設備之間有多條物理鏈路,如果每個數據幀在不同的鏈路上轉發,則有可能導致數據幀到達對端時間不一致,從而引起數據亂序。
2.3.5.2、基于流(華為設備默認基于流轉發)
Eth-Trunk推薦采用逐流負載分擔的方式,即一條相同的流負載到一條鏈路,這樣既保證了同一數據流的數據幀在同一條物理鏈路轉發,又實現了流量在聚合組內各物理鏈路上的負載分擔。
常見的模式有:源IP、源MAC、目的IP、目的MAC、源目IP、源目MAC。
[S2-Eth-Trunk1]load-balance ?
dst-ip??? ???According to destination IP hash arithmetic
dst-mac?? According to destination MAC hash arithmetic
src-dst-ip According to source/destination IP hash arithmetic
src-dst-mac? According to source/destination MAC hash arithmetic
src-ip?????? According to source IP hash arithmetic
src-mac?? According to source MAC hash arithmetic
2.3.x、擴展
鏈路聚合的成員接口都會發送LACPDU(不管是活躍鏈路還是非活躍鏈路);
在多個活躍的成員接口中,會隨機選擇一個接口發送STP報文。
3、堆疊/集群概述
3.1、什么是堆疊、集群
堆疊(iStack):多臺支持堆疊特性的交換機通過堆疊線纜連接在一起,從邏輯上變成一臺交換設備,作為一個整體參與數據轉發。主要針對盒式設備,最大支持16臺設備融合組網。
集群(Cluster Switch System,CSS ):將兩臺支持集群特性的交換機設備組合在一起,從邏輯上組合成一臺交換設備。
主要針對框式設備,最大支持2臺設備融合組網,一般做核心。
3.2、堆疊、集群的優勢
↓↓↓? CSS、iStack網絡的邏輯形態? ↓↓↓
交換機多虛一:堆疊交換機對外表現為一臺邏輯交換機,控制平面合一,統一管理。
轉發平面合一:堆疊內物理設備轉發平面合一,轉發信息共享并實時同步。
跨設備鏈路聚合:跨物理設備的鏈路被聚合成一個Eth-Trunk端口,和下游設備實現互聯。
指令集
指令 | 功能 |
interface Eth-Trunk ? | <0-63>? Eth-Trunk interface number |
[Eth-Trunk1]mode ? | 動態:lacp-static? Static working mode 靜態:manual?????? Manual working mode |
[Eth-Trunk1]mode manual ? | 手工靜態模式 load-balance? Load balance working mode |
[S1-GigabitEthernet0/0/3]eth-trunk 1 | 將GE 0/0/3接口添加進聚合組1 |
trunkport GigabitEthernet 0/0/1 0/0/2 | 將GE 0/0/1和GE 0/0/2接口添加進組合組1 |
dis interface Eth-Trunk ? | 顯示Eth-Trunk聚合組狀態 |
mode lacp-static | 設置鏈路聚合的模式為LACP lacp-static? Static working mode manual?????? Manual working mode |
max active-linknumber ? | 設置最大活躍鏈路為2(默認為8) INTEGER<1-8>? Value of max active linknumber |
lacp priority | INTEGER<0-65535>? Priority value, the default value is 32768 |
]load-balance ? | 設置負載分擔的方式 dst-ip?????? According to destination IP hash arithmetic dst-mac????? According to destination MAC hash arithmetic src-dst-ip?? According to source/destination IP hash arithmetic src-dst-mac? According to source/destination MAC hash arithmetic src-ip?????? According to source IP hash arithmetic src-mac????? According to source MAC hash arithmetic |