如何提升網絡中物理鏈路的可靠性——鏈路聚合技術詳解

如何提升網絡中物理鏈路的可靠性——​鏈路聚合技術詳解

前言算法

在現網中,設備間若是經過一條鏈路鏈接,若是這條鏈路故障了,那麼設備兩端的終端就不可以通訊了。有什麼辦法能夠解決該問題呢?答案是——鏈路聚合。網絡

如何提升網絡中物理鏈路的可靠性——​鏈路聚合技術詳解

本示例中,兩臺交換機LSW1和LSW2之間經過一條鏈路互相鏈接,若是鏈路故障,那麼PC1和PC2則不可以通訊,經過部署鏈路聚合,能夠確保LSW1和LSW2之間的鏈路故障了一條,能夠走另一條鏈路。負載均衡

假設LSW1和LSW2之間的流量很大,超過了接口的帶寬1G,經過部署鏈路聚合,能夠確保SWA和SWB之間的鏈路不會產生擁塞。ide

正文code

1 什麼是鏈路聚合?blog

從端口的角度定義:接口

鏈路聚合(Link Aggregation)是指將多個物理端口匯聚在一塊兒,造成一個邏輯端口,以實現出/入流量吞吐量在各成員端口的負荷分擔,交換機根據用戶配置的端口負載分擔方式決定數據包從哪一個成員端口發送到對端的交換機。路由

從鏈路的角度定義:部署

鏈路聚合(Link Aggregation)是把兩臺設備之間的多條物理鏈路聚合在一塊兒,當作一條邏輯鏈路來使用。這兩臺設備能夠是一對路由器,一對交換機,或者是一臺路由器和一臺交換機。一條聚合鏈路能夠包含多條成員鏈路,默認最多爲8條。it

2 鏈路聚合的做用:

  • 鏈路聚合可以提升鏈路帶寬。理論上,經過聚合幾條鏈路,一個聚合口的帶寬能夠擴展爲全部成員口帶寬的總和,這樣就有效地增長了邏輯鏈路的帶寬。

  • 鏈路聚合爲網絡提供了高可靠性。配置了鏈路聚合以後,若是一個成員接口發生故障,該成員口的物理鏈路會把流量切換到另外一條成員鏈路上。

  • 鏈路聚合在一個聚合口上實現負載均衡。一個聚合口能夠把流量分散到多個不一樣的成員口上,經過成員鏈路把流量發送到同一個目的地,將網絡產生擁塞的可能性降到最低。

3 幾個概念:

  • 聚合鏈路/成員鏈路

把聚合後獲得的邏輯鏈路稱爲聚合鏈路,把聚合鏈路中的每一條物理鏈路稱爲成員鏈路。

  • 聚合端口/成員端口

把聚合後獲得的邏輯端口稱爲聚合端口,把聚合端口中的每個物理端口稱爲成員端口。

  • Eth-Trunk鏈路/Eth-Trunk端口

聚合鏈路也被稱爲Eth-Trunk鏈路,聚合端口也被稱爲Eth-Trunk端口。

4 鏈路聚合工做模式
鏈路聚合包含兩種模式:手動負載均衡模式和靜態LACP(Link Aggregation Control Protocol)模式。
手工負載分擔模式:

  • 手工負載分擔模式下,Eth-Trunk的創建、成員接口的加入由手工配置,沒有鏈路聚合控制協議的參與。

  • 該模式下全部活動鏈路都參與數據的轉發,平均分擔流量,所以稱爲負載分擔模式。若是某條活動鏈路故障,鏈路聚合組自動在剩餘的活動鏈路中平均分擔流量。

使用場景:

當須要在兩個直連設備間提供一個較大的鏈路帶寬而設備又不支持LACP協議時,可使用手工負載分擔模式。

靜態LACP模式:

  • 在靜態LACP模式中,鏈路兩端的設備相互發送LACP報文,協商聚合參數。協商完成後,兩臺設備肯定活動接口和非活動接口。

  • 在靜態LACP模式中,須要手動建立一個Eth-Trunk口,並添加成員口。

  • 靜態LACP模式也叫M:N模式。M表明活動成員鏈路,用於在負載均衡模式中轉發數據。N表明非活動鏈路,用於冗餘備份。

  • 若是一條活動鏈路發生故障,該鏈路傳輸的數據被切換到一條優先級最高的備份鏈路上,這條備份鏈路轉變爲活動狀態。

兩種鏈路聚合模式的主要區別:

  • 在靜態LACP模式中,一些鏈路充當備份鏈路。

  • 在手動負載均衡模式中,全部的成員口都處於轉發狀態。

5 鏈路聚合的條件:

在一個聚合口中,聚合鏈路兩端的物理口(即成員口)的全部參數必須一致,包括物理口的數量,傳輸速率,雙工模式和流量控制模式。成員口能夠是二層接口或三層接口。

6 負載分擔的方式:

鏈路聚合帶來數據包亂序問題

數據流在聚合鏈路上傳輸,數據順序必須保持不變。一個數據流能夠看作是一組MAC地址和IP地址相同的幀。

兩臺設備間的SSH或SFTP鏈接能夠看作一個數據流。

  • 若是未配置鏈路聚合,只是用一條物理鏈路來傳輸數據,那麼一個數據流中的幀老是能按正確的順序到達目的地。

  • 配置了鏈路聚合後,多條物理鏈路被綁定成一條聚合鏈路,一個數據流中的幀經過不一樣的物理鏈路傳輸。若是第一個幀經過一條物理鏈路傳輸,第二個幀經過另一條物理鏈路傳輸,這樣一來同一數據流的第二個數據幀就有可能比第一個數據幀先到達對端設備,從而產生接收數據包亂序的狀況。

如何解決數據包亂序

爲了不數據包亂序的問題,Eth-Trunk採用逐流負載分擔的機制。

這種機制把數據幀中的地址經過HASH算法生成HASH-KEY值,而後根據這個數值在Eth-Trunk轉發表中尋找對應的出接口,不一樣的MAC或IP地址HASH得出的HASH-KEY值不一樣,從而出接口也就不一樣。

這樣既保證了同一數據流的幀在同一條物理鏈路轉發,又實現了流量在聚合組內各物理鏈路上的負載分擔,即逐流的負載分擔。逐流負載分擔能保證包的順序,但不能保證帶寬利用率。

負載分擔的類型

  • 根據報文的源MAC地址進行負載分擔;

*根據報文的目的MAC地址進行負載分擔;

*根據報文的源IP地址進行負載分擔;

*根據報文的目的IP地址進行負載分擔;

*根據報文的源MAC地址和目的MAC地址進行負載分擔;

*根據報文的源IP地址和目的IP地址進行負載分擔;

*根據報文的VLAN、源物理端口等對L二、IPv四、IPv6和MPLS報文進行加強型負載分擔。

7 鏈路聚合的配置案例:

如何提升網絡中物理鏈路的可靠性——​鏈路聚合技術詳解

如上圖所示,在兩臺交換機之間配置手勱模式的鏈路聚合 :

[LSW1]interface Eth-Trunk 1

[LSW1-Eth-Trunk1]interface GigabitEthernet0/0/1

[LSW1-GigabitEthernet0/0/1]eth-trunk 1

[LSW1-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2

[LSW1-GigabitEthernet0/0/2]eth-trunk 1

[LSW2]interface Eth-Trunk 1

[LSW2-Eth-Trunk1]interface GigabitEthernet0/0/1

[LSW2-GigabitEthernet0/0/1]eth-trunk 1

[LSW2-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2

[LSW2-GigabitEthernet0/0/2]eth-trunk 1
  • 經過執行interface Eth-trunk <trunk-id>命令配置鏈路聚合。這條命令建立了一個Eth-Trunk口,而且進入該Eth-Trunk口視圖。

  • trunk-id用來惟一標識一個Eth-Trunk口,該參數的取值能夠是0到63之間的任何一個整數。若是指定的Eth-Trunk口已經存在,執行interface eth-trunk命令會直接進入該Eth-Trunk口視圖。

檢查鏈路聚合是否成功:

如何提升網絡中物理鏈路的可靠性——​鏈路聚合技術詳解

執行display interface eth-trunk <trunk-id>命令,能夠確認兩臺設備間是否已經成功實現鏈路聚合。也可使用這條命令收集流量統計數據,定位接口故障。

  • 若是Eth-Trunk口處於UP狀態,代表接口正常運行。

  • 若是接口處於Down狀態,代表全部成員口物理層發生故障。

  • 若是管理員手動關閉端口,接口處於Administratively DOWN狀態。能夠經過接口狀態的改變發現接口故障,全部接口正常狀況下都應處於Up狀態。

如上圖所示,在兩臺交換機之間配置靜態LACP模式的鏈路聚合 :

[LSW1]interface Eth-Trunk 1

[LSW1-Eth-Trunk1] mode lacp-static 

[LSW1-Eth-Trunk1]interface GigabitEthernet0/0/1

[LSW1-GigabitEthernet0/0/1]eth-trunk 1

[LSW1-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2

[LSW1-GigabitEthernet0/0/2]eth-trunk 1

[LSW2]interface Eth-Trunk 1

[LSW2-Eth-Trunk1] mode lacp-static 

[LSW2-Eth-Trunk1]interface GigabitEthernet0/0/1

[LSW2-GigabitEthernet0/0/1]eth-trunk 1

[LSW2-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2

[LSW2-GigabitEthernet0/0/2]eth-trunk 1

檢查鏈路聚合是否成功:

如何提升網絡中物理鏈路的可靠性——​鏈路聚合技術詳解

執行display interface eth-trunk 1命令,能夠確認兩臺設備間是否已經成功實現鏈路聚合。端口處於select狀態表示是激活端口。

相關文章
相關標籤/搜索