網絡基礎知識筆記09
Eth-Trunk(鏈路聚合)的基本原理與配置
由於本筆記有借鑒其他博文的內容,但僅做學習使用。已在下方給出原文鏈接,如有侵權,請聯系本人進行刪除,謝謝。
隨着網絡規模不斷擴大,用戶對骨干鏈路的帶寬和可靠性提出了越來越高的要求。在傳統技術中,常用更換高速率的接口板或更換支持高速率接口板的設備的方式來增加帶寬,但這種方案需要付出高額的費用,而且不夠靈活。
采用鏈路聚合技術可以在不進行硬件升級的條件下,通過將多個物理接口捆綁為一個邏輯接口,來達到增加鏈路帶寬的目的。在實現增大帶寬目的的同時,鏈路聚合采用備份鏈路的機制,可以有效的提高設備之間鏈路的可靠性。
鏈路聚合應用場景
鏈路聚合一般部署在核心結點,以便提升整個網絡的數據吞吐量。
本示例中,兩台核心交換機SWA和SWB之間通過兩條成員鏈路互相連接,通過部署鏈路聚合,可以確保SWA和SWB之間的鏈路不會產生擁塞。
在企業網絡中,所有設備的流量在轉發到其他網絡前都會匯聚到核心層,再由核心層設備轉發到其他網絡,或者轉發到外網。因此,在核心層設備負責數據的高速交換時,容易發生擁塞。在核心層部署鏈路聚合,可以提升整個網絡的數據吞吐量,解決擁塞問題。
鏈路聚合基本原理
鏈路聚合能夠提高鏈路帶寬,增強網絡可用性,支持負載分擔。
鏈路聚合,就是把兩台設備之間的多條物理鏈路聚合在一起,當做一條邏輯鏈路來使用。這兩台設備可以是一對路由器,一對交換機,或者是一台路由器和一台交換機。一條聚合鏈路可以包含多條成員鏈路。
①鏈路聚合能夠提高鏈路帶寬。理論上,通過聚合幾條鏈路,一個聚合口的帶寬可以擴展為所有成員口帶寬的總和,這樣就有效地增加了邏輯鏈路的帶寬。
②鏈路聚合為網絡提供了高可靠性。配置了鏈路聚合之后,如果一個成員接口發生故障,該成員口的物理鏈路會把流量切換到另一條成員鏈路上。
③鏈路聚合還可以在一個聚合口上實現負載均衡,一個聚合口可以把流量分散到多個不同的成員口上,通過成員鏈路把流量發送到同一個目的地,將網絡產生擁塞的可能性降到最低。
鏈路聚合模式
鏈路聚合包含兩種模式:手動負載分擔模式和靜態LACP(Link Aggregation Control Protocol)模式。手工負載分擔模式下所有活動接口都參與數據的轉發,分擔負載流量; LACP模式支持鏈路備份。
(1)手工負載分擔模式
手工負載分擔模式下,Eth-Trunk的建立、成員接口的加入由手工配置,沒有鏈路聚合控制協議的參與。該模式下所有活動鏈路都參與數據的轉發,平均分擔流量,因此稱為負載分擔模式。如果某條活動鏈路故障,鏈路聚合組自動在剩余的活動鏈路中平均分擔流量。
適合的使用場景:當需要在兩個直連設備間提供一個較大的鏈路帶寬而設備又不支持LACP協議時,可以使用手工負載分擔模式。
(2)靜態LACP模式
靜態LACP模式下,鏈路兩端的設備相互發送LACP報文(有鏈路聚合控制協議的參與),協商聚合參數。協商完成后,兩台設備確定活動接口和非活動接口。
在靜態LACP模式中,需要手動創建一個Eth-Trunk口,並添加成員口。LACP協商選舉活動接口和非活動接口。靜態LACP模式也叫M:N模式。M代表活動鏈路,用於在負載均衡模式中轉發數據。N代表非活動鏈路,用於冗余備份。如果一條活動鏈路發生故障,該鏈路傳輸的數據被切換到一條優先級最高的備份鏈路上,這條備份鏈路轉變為活動狀態。
Tips:兩種鏈路聚合模式的主要區別是:在靜態LACP模式中,一些鏈路充當備份鏈路。在手動負載均衡模式中,所有的成員口都處於轉發狀態。
數據流控制
Eth-Trunk鏈路兩端相連的物理接口的數量、速率、雙工方式、流控方式必須一致。
在一個聚合口中,聚合鏈路兩端的物理口(即成員口)的所有參數必須一致,包括物理口的數量,傳輸速率,雙工模式和流量控制模式。成員口可以是二層接口或三層接口。
數據流在聚合鏈路上傳輸,數據傳輸順序必須保持不變。一個數據流可以看做是一組MAC地址和IP地址相同的幀(兩台設備間的SSH或SFTP連接可以看做一個數據流)。如果未配置鏈路聚合,只是用一條物理鏈路來傳輸數據且不考慮網絡異常的情況下,那么一個數據流中的幀總是能按正確的順序到達目的地。配置了鏈路聚合后,多條物理鏈路被綁定成一條聚合鏈路,一個數據流中的幀通過不同的物理鏈路傳輸。如果第一個幀通過一條物理鏈路傳輸,第二個幀通過另外一條物理鏈路傳輸,這樣一來同一數據流的第二個數據幀就有可能比第一個數據幀先到達對端設備,從而產生接收數據包亂序的情況。
為了避免這種情況的發生,Eth-Trunk采用逐流負載分擔的機制,這種機制把數據幀中的地址通過HASH算法生成HASH-KEY值,然后根據這個數值在Eth-Trunk轉發表中尋找對應的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,從而出接口也就不同,這樣既保證了同一數據流的幀在同一條物理鏈路轉發,又實現了流量在聚合組內各物理鏈路上的負載分擔,即逐流的負載分擔。逐流負載分擔能保證包的順序,但不能保證帶寬利用率。
Tips:負載分擔的類型主要包括以下幾種,用戶可以根據具體應用選擇不同的負載分擔類型。
①根據報文的源MAC地址進行負載分擔;
②根據報文的目的MAC地址進行負載分擔;
③根據報文的源IP地址進行負載分擔;
④根據報文的目的IP地址進行負載分擔;
⑤根據報文的源MAC地址和目的MAC地址進行負載分擔;
⑥根據報文的源IP地址和目的IP地址進行負載分擔;
⑦根據報文的VLAN、源物理端口等對L2、IPv4、IPv6和MPLS報文進行增強型負載分擔。
手工負載分擔模式配置方法
(1)二層鏈路聚合配置方法
命令:interface Eth-trunk <trunk-id>
配置鏈路聚合。
這條命令創建了一個Eth-Trunk口,並且進入該Eth-Trunk口視圖。trunk-id用來唯一標識一個Eth-Trunk口,該參數的取值可以是0到63之間的任何一個整數。如果指定的Eth-Trunk口已經存在,執行interface eth-trunk命令會直接進入該Eth-Trunk口視圖。
SWA的配置:
SWB的配置同SWA:
配置驗證:查看鏈路聚合信息
命令:display interface eth-trunk <trunk-id>
可以確認兩台設備間是否已經成功實現鏈路聚合,也可以使用這條命令收集流量統計數據,定位接口故障。
如果Eth-Trunk口處於UP狀態,表明接口正常運行。如果接口處於Down狀態,表明所有成員口物理層發生故障。如果管理員手動關閉端口,接口處於Administratively DOWN狀態。可以通過接口狀態的改變發現接口故障,所有接口正常情況下都應處於Up狀態。
Tips:配置Eth-Trunk口和成員口,需要注意以下規則:
①只能刪除不包含任何成員口的Eth-Trunk口。
②把成員口加入Eth-Trunk口時,二層Eth-Trunk口的成員口必須是二層接口,三層Eth-Trunk口的成員口必須是三層接口。
③一個Eth-Trunk口最多可以加入8個成員口。
④加入Eth-Trunk口的接口必須是hybrid接口(默認的接口類型)。
⑤一個Eth-Trunk口不能充當其他Eth-Trunk口的成員口。
⑥一個以太接口只能加入一個Eth-Trunk口。如果把一個以太接口加入另一個Eth-Trunk口,必須先把該以太接口從當前所屬的Eth-Trunk口中刪除。
⑦一個Eth-Trunk口的成員口類型必須相同。例如,一個快速以太口(FE口)和一個千兆以太口(GE口)不能加入同一個Eth-Trunk。
⑧位於不同接口板(LPU)上的以太口可以加入同一個Eth-Trunk口。如果一個對端接口直接和本端Eth-Trunk口的一個成員口相連,該對端接口也必須加入一個Eth-Trunk口。否則兩端無法通信。
(2)三層鏈路聚合的配置方法
拓撲圖與上圖基本一致,但需要將二層設備交換機換成三層設備路由器。
如果要在路由器上配置三層鏈路聚合,需要首先創建Eth-Trunk接口,然后在Eth-Trunk邏輯口上執行undo portswitch命令,把聚合鏈路從二層轉為三層鏈路。執行undo portswitch命令后,可以為Eth-Trunk邏輯口分配一個IP地址。
AR1的配置:
AR2的配置也大致相同:
配置驗證:查看鏈路聚合信息
可以看到,兩個成員接口已經被綁定到Eth-trunk 1。
靜態LACP模式的配置方法
從上面的筆記我們可以知道,鏈路聚合模式可以分為兩種:一種是通過手工配置,每條鏈路平均分擔流量的手工負載分擔模式(上面已經給出詳細的配置方法),一種是通過鏈路之間的控制協議,確定擁有冗余備份鏈路(M:N模式)的靜態LACP模式。接下來,我們繼續介紹靜態LACP模式的配置方法。
拓撲圖如下所示:有兩台三層設備AR1和AR2,兩台設備之間連接了三條鏈路,現需求將這三條鏈路配置成鏈路聚合,使用靜態LACP模式配置。
以AR1為例,配置靜態LACP模式:
Step 1:創建Eth-Trunk接口,並指定鏈路聚合模式為靜態LACP模式
Step 2:手動定義活動接口閾值
Step 3:配置LACP優先級
靜態模式Eth-Trunk 接口建立過程如下所示:
① 兩端互相發送 LACPDU 報文。
② 兩端設備根據系統 LACP 優先級確定主動端。
③ 兩端設備根據接口LACP 優先級確定活動接口,最終以主動端設備的活動接口確定兩端的活動接口。
(1)配置系統LACP優先級
靜態LACP 模式下,兩端設備所選擇的活動接口必須保持一致,否則鏈路聚合組就無法建立。而要想使兩端活動接口保持一致,可以使其中一端具有更高的優先級,另一端根據高優先級的一端來選擇活動接口即可。系統LACP 優先級就是為了區分兩端優先級的高低(確定主動端)而配置的參數。
將AR1配置為主動端:
Tips:系統 LACP 優先級值越小優先級越高,缺省情況下系統LACP 優先級值為32768。
(2)配置接口LACP優先級
接口LACP 優先級是為了區別不同接口被選為活動接口(確定活動接口)的優先程度。
將G0/0/1和G0/0/2配置為活動接口:
Tips:接口LACP 優先級值越小優先級越高。缺省情況下接口LACP 優先級為32768。
不要忘了將G0/0/0也加入到Eth-trunk接口。其優先級為默認的32768。
Step 4:開啟搶占功能
若一個活動接口發生故障而轉為down狀態,那么備份鏈路(非活動端口)會自動接管成功活動接口。默認情況下,當發生故障的接口恢復后,系統不會自動將活動接口設為原來的接口,所以我們需要配置為搶占模式,這樣活動接口才會恢復成原先的那個接口。
Tips:必須兩端都配置開啟搶占功能才有作用。
Step 5:配置負載分擔方式
如下圖所示:負載分擔的方式有很多種,其中dst指數據目的地,src指數據起源地。Bandwidth指鏈路帶寬,unequal-cost指非等價負載均衡。此處不再展開討論。
Step 6:配置驗證
可以看到,目前的活動接口是GE0/0/1和GE0/0/2,若我們將其中一個接口GE0/0/1關閉,則GE0/0/0會自動接替成為活動接口。
此時,將GE0/0/1重新開啟。因為之前已經配置了開啟搶占的功能,且GE0/0/1的接口優先級更高,那么GE0/0/1會搶占GE0/0/0再次成為活動接口。
小結
①如果一個管理員希望將千兆以太口和百兆以太口加入同一個Eth-trunk,會發生什么?
一個快速以太口(FE口)和一個千兆以太口(GE口)不能加入同一個Eth-Trunk。如果將兩個不同類型的接口加入到同一個Eth-Trunk口,設備會提示發生錯誤。
②哪種鏈路聚合方法可以使用鏈路備份?
只有LACP模式支持備份成員鏈路。如需建立備份鏈路,應使用LACP模式的鏈路聚合。
參考鏈接: