鏈路聚合


以太網鏈路聚合

以太網鏈路聚合簡介

以太網鏈路聚合簡稱鏈路聚合,它通過將多條以太網物理鏈路捆綁在一起成爲一條邏輯鏈路,從而實現增加鏈路帶寬的目的。同時,這些捆綁在一起的鏈路通過相互間的動態備份,可以有效地提高鏈路的可靠性。

如圖 1所示,Device A與Device B之間通過三條以太網物理鏈路相連,將這三條鏈路捆綁在一起,就成爲了一條邏輯鏈路Link aggregation 1,這條邏輯鏈路的帶寬等於原先三條以太網物理鏈路的帶寬總和,從而達到了增加鏈路帶寬的目的;同時,這三條以太網物理鏈路相互備份,有效地提高了鏈路的可靠性。

圖 1 鏈路聚合示意圖

 

 

基本概念

1. 聚合組、成員端口和聚合接口

將多個以太網接口捆綁在一起所形成的組合稱爲聚合組,而這些被捆綁在一起的以太網接口就稱爲該聚合組的成員端口。每個聚合組唯一對應着一個邏輯接口,我們稱之爲聚合接口。聚合組/聚合接口可以分爲以下兩種類型:

l              二層聚合組/二層聚合接口:二層聚合組的成員端口全部爲二層以太網接口,其對應的聚合接口稱爲二層聚合接口(Bridge-aggregation Interface,BAGG)。

l              三層聚合組/三層聚合接口:三層聚合組的成員端口全部爲三層以太網接口,其對應的聚合接口稱爲三層聚合接口(Route-aggregation Interface,RAGG)。

 

l   不同型號的設備支持的聚合組/聚合接口的類型不同,請以設備的實際情況爲準。

l   聚合組與聚合接口的編號是一一對應的,譬如聚合組1對應於聚合接口1。

l   在創建了三層聚合接口之後,還可以繼續創建該三層聚合接口的子接口(簡稱三層聚合子接口)。三層聚合子接口也是一種邏輯接口,工作在網絡層,主要用來在三層聚合接口上支持收發攜帶VLAN Tag的報文。不同型號的設備對三層聚合子接口的支持情況不同,請以設備的實際情況爲準。

l   聚合接口的速率和雙工模式取決於對應聚合組內的選中端口(請參見“2. 成員端口的狀態”):聚合接口的速率等於所有選中端口的速率之和,聚合接口的雙工模式則與選中端口的雙工模式相同。

 

2. 成員端口的狀態

聚合組內的成員端口具有以下兩種狀態:

l              選中(Selected)狀態:此狀態下的成員端口可以參與用戶數據的轉發,處於此狀態的成員端口簡稱爲“選中端口”。

l              非選中(Unselected)狀態:此狀態下的成員端口不能參與用戶數據的轉發,處於此狀態的成員端口簡稱爲“非選中端口”。

3. 操作Key

操作Key是系統在進行鏈路聚合時用來表徵成員端口聚合能力的一個數值,它是根據成員端口上的一些信息(包括該端口的速率、雙工模式等)的組合自動計算生成的,這個信息組合中任何一項的變化都會引起操作Key的重新計算。在同一聚合組中,所有的選中端口都必須具有相同的操作Key。

4. 配置分類

根據對成員端口狀態的影響不同,我們可以將成員端口上的配置分爲以下三類:

(1)        端口屬性類配置:包含速率、雙工模式和鏈路狀態(up/down)這三項配置內容,是成員端口上最基礎的配置內容。

(2)        第二類配置:包含的配置內容如表 1所示。在聚合組中,只有與對應聚合接口的第二類配置完全相同的成員端口才能夠成爲選中端口。

表 1 第二類配置的內容

配置項   內容

端口隔離      端口是否加入隔離組、端口所屬的端口隔離組

QinQ配置    端口的QinQ功能開啓/關閉狀態、VLAN Tag的TPID值、添加的外層VLAN Tag、內外層VLAN優先級映射關係、不同內層VLAN ID添加外層VLAN Tag的策略、內層VLAN ID替換關係

VLAN配置   端口上允許通過的VLAN、端口缺省VLAN ID、端口的鏈路類型(即Trunk、Hybrid、Access類型)、基於IP子網的VLAN配置、基於協議的VLAN配置、VLAN報文是否帶Tag配置

MAC地址學習配置    是否具有MAC地址學習功能、端口是否具有最大學習MAC地址個數的限制、MAC地址表滿後是否繼續轉發

 

 

l   在聚合接口上所作的第二類配置,將被自動同步到對應聚合組內的所有成員端口上。當聚合接口被刪除後,這些配置仍將保留在這些成員端口上。

l   由於成員端口上第二類配置的改變可能導致其選中/非選中狀態發生變化,進而對業務產生影響,因此當在成員端口上進行此類配置時,系統將給出提示信息,由用戶來決定是否繼續執行該配置。

 

(3)        第一類配置:是相對於第二類配置而言的,包含的配置內容有GVRP、MSTP等。在聚合組中,即使某成員端口與對應聚合接口的第一類配置存在不同,也不會影響該成員端口成爲選中端口。

 

在成員端口上所作的第一類配置,只有當該成員端口退出聚合組後才能生效。

 

5. 參考端口

參考端口從成員端口中選出,其端口屬性類配置和第二類配置將作爲同一聚合組內的其它成員端口的參照,以確定這些成員端口的狀態。

6. LACP協議

基於IEEE802.3ad標準的LACP(Link Aggregation Control Protocol,鏈路聚合控制協議)協議是一種實現鏈路動態聚合的協議,運行該協議的設備之間通過互發LACPDU(Link Aggregation Control Protocol Data Unit,鏈路聚合控制協議數據單元)來交互鏈路聚合的相關信息。

(1)        LACP協議的功能

根據所使用的LACPDU字段的不同,可將LACP協議的功能分爲基本功能和擴展功能兩大類,如表 2所示。

表 2 LACP協議的功能分類

類別       說明

基本功能      利用LACPDU的基本字段可以實現LACP協議的基本功能,基本字段包含以下信息:系統LACP優先級、系統MAC地址、端口聚合優先級、端口編號和操作Key。

動態聚合組內的成員端口會自動使能LACP協議,並通過發送LACPDU向對端通告本端的上述信息。當對端收到該LACPDU後,將其中的信息與本端其它成員端口收到的信息進行比較,以選擇能夠處於選中狀態的成員端口,使雙方可以對各自接口的選中/非選中狀態達成一致,從而決定哪些鏈路可以加入聚合組以及某鏈路何時可以加入聚合組。

擴展功能      通過對LACPDU的字段進行擴展,可以實現對LACP協議的擴展。譬如,通過在擴展字段中定義一個新的TLV(Type/Length/Value,類型/長度/值)數據域,可以實現IRF(Intelligent Resilient Framework,智能彈性架構)中的LACP MAD(Multi-Active Detection,多Active檢測)機制。對於支持LACP協議擴展功能的設備來說:

l     如果同時支持IRF,則該設備可以作爲成員設備或中間設備來參與LACP MAD

l     如果不支持IRF,則該設備只能作爲中間設備來參與LACP MAD

 

(2)        LACP優先級

根據作用的不同,可以將LACP優先級分爲系統LACP優先級和端口聚合優先級兩類,如表 3所示。

表 3 LACP優先級的分類

類別       說明       比較標準

系統LACP優先級      系統LACP優先級用於區分兩端設備優先級的高低。要想使兩端設備的選中端口一致,可以使一端具有較高的優先級,另一端則根據優先級較高的一端來選擇本端的選中端口  優先級數值越小,優先級越高

端口聚合優先級  端口聚合優先級用於區分各成員端口成爲選中端口的優先程度   

 

(3)        LACP超時時間

LACP超時時間是指成員端口等待接收LACPDU的超時時間。在三倍LACP超時時間之後,如果本端成員端口仍未收到來自對端的LACPDU,則認爲對端成員端口已失效。LACP超時時間只有短超時(1秒)和長超時(30秒)兩種取值。

7. 聚合模式

 

不同型號的設備支持的聚合模式不同,請以設備的實際情況爲準。

 

根據成員端口上是否啓用了LACP協議,可以將鏈路聚合分爲靜態聚合和動態聚合兩種模式,它們各自的特點如表4所示。

表 4 不同聚合模式的特點

聚合模式      成員端口是否開啓LACP協議 優點       缺點

靜態聚合模式      否   一旦配置好後,端口的選中/非選中狀態就不會受網絡環境的影響,比較穩定 不能根據對端的狀態調整端口的選中/非選中狀態,不夠靈活

動態聚合模式      是   能夠根據對端和本端的信息調整端口的選中/非選中狀態,比較靈活  端口的選中/非選中狀態容易受網絡環境的影響,不夠穩定

 

處於靜態聚合模式和動態聚合模式下的聚合組分別稱爲靜態聚合組和動態聚合組,動態聚合組內的選中端口以及處於up狀態、與對應聚合接口的第二類配置相同的非選中端口均可以收發LACPDU。

靜態聚合模式

在靜態聚合模式下,聚合組內的成員端口上不啓用LACP協議,其端口狀態通過手工進行維護。靜態聚合模式的工作機制如下:

1. 選擇參考端口

當聚合組內有處於up狀態的端口時,先比較端口的聚合優先級,優先級數值最小的端口作爲參考端口;如果優先級相同,再按照端口的全雙工/高速率->全雙工/低速率->半雙工/高速率->半雙工/低速率的優先次序,選擇優先次序最高、且第二類配置與對應聚合接口相同的端口作爲該組的參考端口;如果優先次序也相同,則選擇端口號最小的端口作爲參考端口。

2. 確定成員端口的狀態

靜態聚合組內成員端口狀態的確定流程如圖 2所示。

圖 2 靜態聚合組內成員端口狀態的確定流程

 

 

 

l   靜態聚合組內選中端口的最大數量與設備的型號有關,請以設備的實際情況爲準。

l   當一個成員端口的端口屬性類配置或第二類配置改變時,其所在靜態聚合組內各成員端口的選中/非選中狀態可能會發生改變。

l   當靜態聚合組內選中端口的數量已達到上限時,後加入的成員端口即使滿足成爲選中端口的所有條件,也不會立刻成爲選中端口。這樣能夠儘量維持當前選中端口上的流量不中斷,但是由於設備重啓時會重新計算選中端口,因此可能導致設備重啓前、後各成員端口的選中/非選中狀態不一致。

 

動態聚合模式

 

本特性的支持情況與設備的型號有關,請以設備的實際情況爲準。

 

在動態聚合模式下,聚合組內的成員端口上均啓用LACP協議,其端口狀態通過該協議自動進行維護。動態聚合模式的工作機制如下:

1. 選擇參考端口

(1)       首先,從聚合鏈路的兩端選出設備ID(由系統的LACP優先級和系統的MAC地址共同構成)較小的一端:先比較兩端的系統LACP優先級,優先級數值越小其設備ID越小;如果優先級相同再比較其系統MAC地址,MAC地址越小其設備ID越小。

(2)        其次,對於設備ID較小的一端,再比較其聚合組內各成員端口的端口ID(由端口的聚合優先級和端口的編號共同構成):先比較端口的聚合優先級,優先級數值越小其端口ID越小;如果優先級相同再比較其端口號,端口號越小其端口ID越小。端口ID最小的端口作爲參考端口。

2. 確定成員端口的狀態

在設備ID較小的一端,動態聚合組內成員端口狀態的確定流程如圖 3所示。

圖 3 動態聚合組內成員端口狀態的確定流程

 

 

與此同時,設備ID較大的一端也會隨着對端成員端口狀態的變化,隨時調整本端各成員端口的狀態,以確保聚合鏈路兩端成員端口狀態的一致。

 

l   動態聚合組內選中端口的最大數量與設備的型號有關,請以設備的實際情況爲準。

l   當動態聚合組內同時存在全雙工端口和半雙工端口時,全雙工端口將優先成爲選中端口;只有當所有全雙工端口都無法成爲選中端口,或動態聚合組內只有半雙工端口時,才允許從半雙工端口中選出一個成爲選中端口,且只有一個半雙工端口可成爲選中端口。

l   當一個成員端口的端口屬性類配置或第二類配置改變時,其所在動態聚合組內各成員端口的選中/非選中狀態可能會發生改變。

l   當本端端口的選中/非選中狀態發生改變時,其對端端口的選中/非選中狀態也將隨之改變。

l   當動態聚合組內選中端口的數量已達到上限時,後加入的成員端口一旦滿足成爲選中端口的所有條件,就會立刻取代已不滿足條件的端口成爲選中端口。

 

聚合負載分擔類型

通過採用不同的聚合負載分擔類型及其組合,可以靈活地實現對聚合組內流量的負載分擔。聚合負載分擔的類型包括以下幾種:

l              根據報文的MAC地址進行聚合負載分擔

l              根據報文的VLAN標籤進行聚合負載分擔

l              根據報文的服務端口號進行聚合負載分擔

l              根據報文的入端口進行聚合負載分擔

l              根據報文的IP地址進行聚合負載分擔

l              根據報文的IP協議類型進行聚合負載分擔

l              根據報文的MPLS標籤進行聚合負載分擔

     用戶可以指定系統按照上述聚合負載分擔類型的其中之一或其組合來進行負載分擔,此外用戶也可以指定系統按照報文類型(如二層、IPv4、IPv6、MPLS等)自動選擇聚合負載分擔的類型,還可以指定系統對每個報文逐包進行聚合負載分擔。

    多個端口進行鏈路聚合, 採用上述負載分擔算法並不一定能夠達到帶寬疊加的作用, 例如流量中某種報文佔用帶寬很大, 因爲相同報文采用某種算法得到的hash值是不變的所以該流量會固定從某個接口出, 當該口流量到達閾值會發生丟包。

  

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章