1. 程式人生 > >數通特性:LACP

數通特性:LACP

部署 替換 ont 無法 保持 post 觸發 設備 OS

為了提高Eth-Trunk的容錯性,並且能提供備份功能,保證成員鏈路的高可靠性,出現了鏈路聚合控制協議LACP(Link Aggregation Control Protocol),LACP模式就是采用LACP的一種鏈路聚合模式。

LACP為交換數據的設備提供一種標準的協商方式,以供設備根據自身配置自動形成聚合鏈路並啟動聚合鏈路收發數據。聚合鏈路形成以後,LACP負責維護鏈路狀態,在聚合條件發生變化時,自動調整或解散鏈路聚合。

如圖1所示,DeviceA與DeviceB之間創建Eth-Trunk,需要將DeviceA上的四個接口與DeviceB捆綁成一個Eth-Trunk。由於錯將DeviceA上的一個接口與DeviceC相連,這將會導致DeviceA向DeviceB傳輸數據時可能會將本應該發到DeviceB的數據發送到DeviceC上。而手工負載分擔模式的Eth-Trunk不能及時檢測到此故障。

如果在DeviceA和DeviceB上都啟用LACP協議,經過協商後,Eth-Trunk就會選擇正確連接的鏈路作為活動鏈路來轉發數據,從而DeviceA發送的數據能夠正確到達DeviceB。

圖1 Eth-Trunk錯連示意圖
技術分享圖片

基本概念

  • 系統LACP優先級

    LACP模式下,兩端設備所選擇的活動接口必須保持一致,否則鏈路聚合組就無法建立。而要想使兩端活動接口保持一致,可以使其中一端具有更高的優先級,另一端根據高優先級的一端來選擇活動接口即可。系統LACP優先級就是為了區分兩端設備優先級的高低而配置的參數,系統LACP優先級值越小優先級越高。

  • 接口LACP優先級

    接口LACP優先級是為了區別同一個Eth-Trunk中的不同接口被選為活動接口的優先程度,優先級高的接口將優先被選為活動接口。接口LACP優先級值越小,優先級越高。

LACP模式實現原理

基於IEEE802.3ad標準的LACP是一種實現鏈路動態聚合與解聚合的協議。LACP通過鏈路聚合控制協議數據單元LACPDU(Link Aggregation Control Protocol Data Unit)與對端交互信息。

在LACP模式的Eth-Trunk中加入成員接口後,這些接口將通過發送LACPDU向對端通告自己的系統優先級、MAC地址、接口優先級、接口號和操作Key(用來判斷各接口相連對端是否在同一聚合組以及各接口帶寬是否一致等)等信息。對端接收到這些信息後,將這些信息與自身接口所保存的信息比較,用以選擇能夠聚合的接口,雙方對哪些接口能夠成為活動接口達成一致,確定活動鏈路。

  • LACP模式Eth-Trunk建立的過程如下:

    1. 兩端互相發送LACPDU報文。

      如圖2所示,在DeviceA和DeviceB上創建Eth-Trunk並配置為LACP模式,然後向Eth-Trunk中手工加入成員接口。此時成員接口上便啟用了LACP協議,兩端互發LACPDU報文。

      圖2 LACP模式鏈路聚合互發LACPDU
      技術分享圖片
    2. 確定主動端和活動鏈路。

      如圖3所示,兩端設備均會收到對端發來的LACPDU報文。以DeviceB為例,當DeviceB收到DeviceA發送的報文時,DeviceB會查看並記錄對端信息,然後比較系統優先級字段,如果DeviceA的系統優先級高於本端的系統優先級,則確定DeviceA為LACP主動端。如果DeviceA和DeviceB的系統優先級相同,比較兩端設備的MAC地址,確定MAC地址小的一端為LACP主動端

      選出主動端後,兩端都會以主動端的接口優先級來選擇活動接口,兩端設備選擇了一致的活動接口,活動鏈路組便可以建立起來,從活動鏈路中轉發數據。

      圖3 LACP模式確定主動端和活動鏈路的過程
      技術分享圖片
  • LACP搶占

    使能LACP搶占功能後,聚合組會始終保持高優先級的接口作為活動接口的狀態。

    如圖4所示,接口Port1、Port2和Port3為Eth-Trunk的成員接口,DeviceA為主動端,活動接口數上限閾值為2,三個接口的LACP優先級分別為10、20、30。當通過LACP協議協商完畢後,接口Port1和Port2因為優先級較高被選作活動接口,Port3成為備份接口。

    圖4 LACP搶占場景
    技術分享圖片

    以下兩種情況需要使能LACP的搶占功能。

    • Port1接口出現故障而後又恢復了正常。當接口Port1出現故障時被Port3所取代,缺省情況下,故障恢復時Port1將處於備份狀態;如果使能了LACP搶占功能,當Port1故障恢復時,由於接口優先級比Port3高,將重新成為活動接口,Port3再次成為備份接口。
    • 如果希望Port3接口替換Port1、Port2中的一個接口成為活動接口,可以使能了LACP搶占功能,並配置Port3的接口LACP優先級較高。如果沒有使能LACP搶占功能,即使將備份接口的優先級調整為高於當前活動接口的優先級,系統也不會進行重新選擇活動接口的過程,不切換活動接口。
  • LACP搶占延時

    配置搶占延時是為了避免由於某些鏈路狀態頻繁變化而導致Eth-Trunk數據傳輸不穩定的情況。搶占延時是LACP搶占發生時,處於備用狀態的鏈路將會等待一段時間後再切換到轉發狀態。

  • 活動鏈路與非活動鏈路切換

    LACP模式鏈路聚合組兩端設備中任何一端檢測到以下事件,都會觸發聚合組的鏈路切換:

    • 鏈路Down事件。

    • LACP協議發現鏈路故障。

    • 接口不可用。

    • 在使能了LACP搶占功能的前提下,更改備份接口的優先級高於當前活動接口的優先級。

    當滿足上述切換條件其中之一時,按照如下步驟進行切換:

    1. 關閉故障鏈路。

    2. 從N條備份鏈路中選擇優先級最高的鏈路接替活動鏈路中的故障鏈路。

    3. 優先級最高的備份鏈路轉為活動狀態並轉發數據,完成切換。

LACP實現方式

鏈路聚合協議LACP分為靜態LACP模式和動態LACP模式,它們各自的特點如下:

    • 靜態LACP模式

      靜態LACP模式是一種利用LACP協議報文進行聚合參數協商,從而確定活動接口和非活動接口的鏈路聚合方式。

      靜態LACP模式下,Eth-Trunk的建立,成員接口的加入,都是由手工配置完成的。但與手工負載分擔模式鏈路聚合不同的是,該模式下活動接口的選擇由LACP協議報文負責。也就是說,當把一組接口加入Eth-Trunk接口後,這些成員接口中哪些接口作為活動接口,哪些接口作為非活動接口還需要經過LACP協議報文的協商確定

      靜態LACP模式也稱為M∶N模式。這種方式同時可以實現負載分擔和冗余備份的雙重功能。在鏈路聚合組中M條鏈路處於活動狀態,這些鏈路負責轉發數據並進行負載分擔,另外N條鏈路處於非活動狀態作為備份鏈路,不轉發數據。當M條鏈路中有鏈路出現故障時,系統會從N條備份鏈路中選擇優先級最高的接替出現故障的鏈路,同時這條鏈路狀態變為活動狀態開始轉發數據。

      如圖5所示,兩臺直接相連的設備都支持LACP協議,在兩臺設備上配置靜態LACP模式Eth-Trunk接口,實現流量的負載分擔與鏈路的冗余備份。靜態LACP模式主要用在只向用戶提供M條鏈路的帶寬,同時又希望提供一定的故障保護能力。當有一條鏈路出現故障時,系統能夠自動選擇一條優先級最高的可用備份鏈路變為活動鏈路。

      圖5 靜態LACP模式Eth-Trunk接口示意圖
      技術分享圖片
    • 動態LACP模式

      靜態LACP模式和動態LACP模式在LACP協議交互方面沒有區別,區別在於兩種模式在LACP協商失敗後的處理不一致:
      • 靜態LACP模式下,LACP協商失敗後Eth-Trunk變為Down,不能轉發數據。
      • 動態LACP模式,LACP協商失敗後Eth-Trunk變為Down,但其成員口繼承Eth-Trunk的VLAN屬性狀態變為Indep,可獨立進行二層數據轉發

      當部署動態LACP模式Eth-Trunk接口的設備能夠收到對端的LACP協議報文時,兩端設備將通過LACP協議報文進行聚合參數協商。協商成功後的聚合鏈路功能與兩端都配置為靜態LACP模式Eth-Trunk接口的鏈路一樣。

      動態LACP模式下的Eth-Trunk通常應用於設備和服務器直連的場景,如圖6所示,服務器A需要通過DeviceA從文件服務器B獲取配置文件。
      • 當服務器A重啟後為空配置時,LACP協商失敗,此時動態LACP協議可保證服務器A通過Eth-Trunk成員口從文件服務器B獲取到配置文件。
      • 當DeviceA收到服務器A的LACP協議報文時,服務器A和DeviceA將通過LACP協議報文進行聚合參數協商。
      圖6 動態LACP模式Eth-Trunk接口示意圖

動態LACP模式Eth-Trunk僅用於華為公司設備與服務器互連的場景。其他場景下,建議部署靜態LACP模式Eth-Trunk,如果部署動態LACP,則網絡會有成環風險。

#
lacp priority 100
#
interface Eth-Trunk1
 mode lacp-static
 lacp max active-linknumber 2
#
interface 10GE1/0/1
 eth-trunk 1
 lacp priority 100
#
interface 10GE1/0/2
 eth-trunk 1
 lacp priority 100
#
interface 10GE1/0/3
 eth-trunk 1

  

#
interface Eth-Trunk1
 mode lacp-static
#
interface 10GE1/0/1
 eth-trunk 1
#
interface 10GE1/0/2
 eth-trunk 1
#
interface 10GE1/0/3
 eth-trunk 1




數通特性:LACP