LACP

實現鏈路動態匯聚的協議

LACP,基於IEEE802.3ad標準的LACP(Link Aggregation Control Protocol,鏈路匯聚控制協議)是一種實現鏈路動態匯聚的協議。動態匯聚埠在啟用LACP協議后,其管理Key預設為零。靜態匯聚埠在啟用LACP后,埠的管理Key與匯聚組ID相同。

概述


LACP(Link Aggregation Control Protocol,鏈路聚合控制協議)是一種基於IEEE802.3ad標準的協議。LACP協議通過LACPDU(Link Aggregation Control Protocol Data Unit,鏈路聚合控制協議數據單元)與對端交互信息。
處於動態聚合組中的介面會自動使用LACP協議,該介面將通過發送LACPDU向對端通告自己的系統LACP協議優先順序、系統MAC、埠的LACP協議優先順序、埠號和操作Key。對端接收到LACPDU后,將其中的信息與其他介面所收到的信息進行比較,以選擇能夠處於selected狀態的介面,從而雙方可以對介面處於selected狀態達成一致。
鏈路聚合往往用在兩個重要節點或繁忙節點之間,既能增加互聯帶寬,又提供了連接的可靠性。

原理


採用LACP聚合的雙方(分別稱為Actor和Partner)通過稱之為LACPDU(LACP Data Unit)的協議報文來交互本端(Actor)和對端(Partner)的聚合信息,以對整個鏈路聚合的認識達成一致。協議報文主要包含以下信息:本端和對端系統優先順序、本端和對端系統ID、本端和對端的埠操作key、本端和對端的埠優先順序、本端和對端的埠ID、本端和對端的埠狀態。聚合的雙方就根據這些信息,按照一定的選擇演演算法選擇合適的鏈路,控制聚合的狀態。被選中的成員鏈路可以正常轉發流量,而未被選中的成員鏈路將被置為阻塞狀態,不能轉發任何流量。聚合鏈路的總帶寬等於被選中的成員鏈路的帶寬之和,並且聚合鏈路上的流量會按照一定的規則分擔到各個選中的成員鏈路上,由於LACPDU是周期性交互,即聚合的雙方每隔一段時間便互發一次協議報文,所以當有選中成員鏈路因為某種原因不能工作時,鏈路聚合可以很快的感知到,並重設鏈路狀態,置該鏈路為阻塞,流量被重分配給其他選中成員鏈路。這樣就實現了增加帶寬,鏈路動態備份的功能。

模式


按照聚合方式的不同,鏈路聚合可以分為兩種模式:靜態聚合模式和動態聚合模式。
(1)靜態匯聚。
靜態LACP匯聚由用戶手工配置,不允許系統自動添加或刪除匯聚組中的埠。匯聚組中必須至少包含一個埠,當匯聚組只有一個埠時,只能通過刪除匯聚組的方式將該埠從匯聚組中刪除。
(2)動態匯聚。
動態LACP匯聚是一種系統自動創建/刪除的匯聚,不允許用戶增加或刪除動態LACP匯聚中的成員埠。只有速率和雙工屬性相同、連接到同一個設備、有相同基本配置的埠才能被動態匯聚在一起。即使只有一個埠也可以創建動態匯聚,此時為單埠匯聚。動態匯聚中,埠的LACP協議處於使能狀態。

報文格式


基於IEEE802.3ad標準的LACP,鏈路匯聚控制協議是一種實現鏈路動態聚合與解聚合的協議。LACP協議通過
LACPDU詳細信息
LACPDU詳細信息
LACPDU(Link Aggregation Control Protocol Data Unit)與對端交互信息。
在LACP模式的Eth-Trunk中加入成員介面后,這些介面將通過發送LACPDU向對端通告自己的系統優先順序、MAC地址、介面優先順序、介面號和操作KEY等信息。對端接收到這些信息后,將這些信息與自身介面所保存的信息比較並選擇能夠聚合的介面,雙方對哪些介面能夠成為活動介面達成一致,確定活動鏈路。
LACPDU報文詳細信息如圖1《LACPDU詳細信息》所示。主要欄位信息解釋如表1所示。
主要欄位信息描述
項目描述
Actor_Port/Partner_Port本端/對端介面信息
Actor_State/Partner_State本端/對端狀態
Actor_System_Priority/Partner_System_Priority本端/對端系統優先順序
Actor_System/Partner_System本端/對端系統ID
Actor_Key/Partner_Key本端/對端操作KEY
Actor_Port_Priority/Partner_Port_Priority本端/對端介面優先順序

優點


鏈路聚合技術的使用,使得邏輯鏈路的帶寬增加了大約(n-1)倍,這裡,n為聚合的路數。另外,聚合后,可靠性大大提高,因為,n條鏈路中只要有一條可以正常工作,則這個鏈路就可以工作。除此之外,鏈路聚合可以實現負載均衡。因為,通過鏈路聚合連接在一起的兩個交換機(或其他網路設備),通過內部控制,也可以合理地將數據分配在被聚合連接的設備上,實現負載分擔。