M-LAG(Multichassis Link Aggregation Group,跨設備鏈路聚合)是一種跨設備鏈路聚合技術,它由兩臺支持鏈路聚合的設備組成雙活系統,等效于一臺設備,該等效設備和下聯設備之間可以通過聚合口互聯。部署M-LAG可以將鏈路可靠性提高到設備級,以滿足高可用性場景的需求。

M-LAG組網示意圖如圖1-1所示。類似的技術還有VSU(Virtual Switching Unit,虛機交換單元)設備虛擬化技術,同樣是將多臺設備虛擬成一臺設備。相比于VSU組網,M-LAG有以下優勢:
l 去堆疊化,僅做二層虛擬化,兩臺設備仍然是獨立設備,降低部署難度,同時也避免了設備堆疊帶來的弊端(如主設備軟件故障可能導致兩臺設備都不可用)。
域編號(Domain ID)是M-LAG系統的唯一標識符,用來區分不同的M-LAG。兩臺設備的Domain ID相同,才能組成M-LAG系統。目前一臺設備只支持配置一個域,一個域內只支持兩臺設備。
M-LAG兩臺設備上,與同一接入設備連接的一對聚合接口,組成虛擬AP組(也稱為VAP),用于接入設備雙歸接入,不同接入設備接入不同的虛擬組。虛擬組內只支持二層聚合接口。
虛擬組的兩個聚合接口在開啟LACP(Link Aggregation Control Protocol,鏈路匯聚控制協議)時,LACP協商時使用相同的LACP系統ID和系統優先級,對于接入設備的上聯設備,M-LAG雙設備邏輯上就是同一臺設備。
說明
虛擬AP組內只支持二層聚合接口。
M-LAG兩臺設備間的鏈路稱為Peer Link鏈路,用于同步數據及傳輸部分流量。Peer Link鏈路兩端直連的接口稱為Peer Link接口,Peer Link接口必須配置為二層聚合接口。為了增加Peer Link鏈路的可靠性,建議Peer Link部署多條物理鏈路。
為增強M-LAG設備間數據傳輸的可靠性,同步數據使用TCP傳輸,需要在Peer Link鏈路之上配置一個SVI口,并配置M-LAG主從設備間三層可達,用于設備間同步數據。
M-LAG兩臺設備在正常運行時會協商出主/備角色,正常情況下,主設備和備設備同時參與轉發,并沒有差別;當故障發生后,主設備和從設備的行為有所差異。比如Peer Link鏈路故障,兩臺設備虛擬AP組斷裂,需要將備角色的設備業務口關閉,強制切換流到主設備,以避免接入設備轉發異常。
加入虛擬AP組的AP接口稱為VAP成員口接口,用于連接接入設備的聚合口。為了增強可靠性,建議使用LACP協議。
雙主檢測鏈路是一條三層通路,用于Peer Link鏈路故障時檢測M-LAG設備的雙主狀態。為保證檢測的實時性,雙主檢測鏈路不參與任何轉發,建議單獨配置一條三層可達的鏈路作為雙主檢測鏈路(比如兩臺設備管理口直連)。
當Peer Link鏈路故障時,設備會啟動心跳保持定時器,等待雙主檢測鏈路上保活機制報文就緒,在定時器到期后,才開始雙主檢測,防止因為報文延遲造成錯誤檢測。
M-LAG兩臺設備的VAP組使用相同的LACP系統ID和系統優先級,設備剛啟動的時候,需要等M-LAG協商成功,獲取到LACP系統ID和系統優先級后,VAP成員口才能開始LACP協商。但如果對端設備下電了,則會一直無法協商成功,造成本地VAP成員口無法正常工作。因此需設定一個協商超時時間,超時時間到期后,認為處于單機工作狀態,則直接使用本設備的LACP系統ID和系統優先級進行LACP協商。
快速收斂模式是指單向隔離且不阻斷單播報文。當VAP成員口故障恢復時,接口上的MAC表項出口會從Peer Link口切換到VAP接口,但當MAC表項較多時,切換期間,發往接入設備的部分流量還會繼續使用Peer Link口,由于MLAG系統的防環機制,對端設備會開啟單向隔離(Peer Link口報文不往下聯口轉),就會造成斷流。為了能快速收斂,采用單向隔離同時不阻斷單播報文,但這樣可能造成下聯接入設備收到重復報文。例如,設備1和設備2通過配置M-LAG組成M-LAG系統。下聯設備的請求報文通過設備1轉發,此時設備1學習到下聯設備的MAC但還未同步至設備2。如果應答報文由設備2轉發,則設備2會將該報文從VAP口和Peer Link口泛洪,設備1從Peer Link口收到報文后查找MAC地址表可以查到下聯設備的MAC,也會通過VAP口轉發報文。此時下聯設備就會收到兩份重復的應答報文。
開啟快速收斂模式時,會加快故障恢復收斂性能,但可能存在瞬間重復報文,當在某些場景時,不希望出現重復報文,則可以選擇關閉快速收斂模式。
配置雙歸接入IP網絡。
圖1-6 配置雙歸接入IP組網圖

l 所有設備配置接口IP地址。
l Device A、Device B和核心配置動態路由協議,如OSPF。
# 在DeviceA上面配置VAP域。
Device A> enable
Device A# configure terminal
Device A(config)# vap domain 1
Device A(config-vap-domain)# exit
# 配置數據備份通道、雙主檢測通道。
Device A(config)# interface loopback 0
Device A(config-if-Loopback 0)# ip address 10.10.10.1/32
Device A(config-if-Loopback 0)# exit
Device A(config)# vap domain 1
Device A(config-vap-domain)# data-sync local 20.20.20.1 peer 20.20.20.2
Device A(config-vap-domain)# peer-keepalive local 192.168.3.1 peer 192.168.3.2
Device A(config-vap-domain)# no fast-convergence
Device A(config-vap-domain)# exit
Device A(config)# int vlan 1
Device A(config-if-VLAN 1)# ip address 20.20.20.1/24
Device A(config-if-VLAN 1)# exit
Device A(config)# ip route 10.10.10.2 255.255.255.255 20.20.20.2
Device A(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# no switchport
Device A(config-if-GigabitEthernet 0/1)# ip address 192.168.3.1/24
# 配置Peer Link AP端口:AP 1,成員GigabitEthernet 0/4、GigabitEthernet 0/5。
Device A(config)# interface aggregateport 1
Device A(config-if-AggregatePort 1)# switchport mode trunk
Device A(config-if-AggregatePort 1)# peer-link
Device A(config-if-AggregatePort 1)# exit
Device A(config)# interface gigabitethernet 0/4
Device A(config-if-GigabitEthernet 0/4)# port-group 1 mode active
Device A(config-if-GigabitEthernet 0/4)# exit
Device A(config)# interface gigabitethernet 0/5
Device A(config-if-GigabitEthernet 0/5)# port-group 1 mode active
# 配置VAP 2:下聯接口GigabitEthernet 0/2加入AP2,且AP2加入虛擬AP組2。
Device A(config)# interface gigabitethernet 0/2
Device A(config-if-GigabitEthernet 0/2)# port-group 2 mode active
Device A(config-if-GigabitEthernet 0/2)# exit
Device A(config)# interface aggregateport 2
Device A(config-if-AggregatePort 2)# switchport access vlan 2
Device A(config-if-AggregatePort 2)# vap 2
# 配置VAP 3:下聯接口GigabitEthernet 0/3加入AP3,且AP3加入虛擬AP組3。
Device A(config)# interface gigabitethernet 0/3
Device A(config-if-GigabitEthernet 0/3)# port-group 3 mode active
Device A(config-if-GigabitEthernet 0/3)# exit
Device A(config)# interface aggregateport 3
Device A(config-if-AggregatePort 3)# switchport access vlan 3
Device A(config-if-AggregatePort 3)# vap 3
# 配置VRRP雙活網關。
Device A(config)# vlan 2
Device A(config-vlan)# exit
Device A(config)# interface vlan 2
Device A(config-if-VLAN 2)# ip address 30.30.2.1/24
Device A(config-if-VLAN 2)# vrrp 1 ip 30.30.2.1
Device A(config-if-VLAN 2)# vrrp mode dual-active
Device A(config-if-VLAN 2)# exit
Device A(config-vlan)# exit
Device A(config)# interface vlan 3
Device A(config-if-VLAN 2)# ip address 30.30.3.1/24
Device A(config-if-VLAN 2)# vrrp 1 ip 30.30.3.1
Device A(config-if-VLAN 2)# vrrp mode dual-active
# 配置Monitor Link,上聯口是GigabitEthernet 0/1,下聯口是GigabitEthernet 0/2和GigabitEthernet 0/3。
Device A(config)# link state track 1 up-delay 60
Device A(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# link state group 1 upstream
Device A(config-if-GigabitEthernet 0/1)# exit
Device A(config)# interface gigabitethernet 0/2
Device A(config-if-GigabitEthernet 0/2)# link state group 1 downstream
Device A(config-if-GigabitEthernet 0/2)# exit
Device A(config)# interface gigabitethernet 0/3
Device A(config-if-GigabitEthernet 0/3)# link state group 1 downstream
# 在DeviceB上面配置。
Device B> enable
Device B# configure terminal
# 配置VAP域。
Device B(config)# vap domain 1
Device B(config-vap-domain)# exit
# 配置數據備份通道、雙主檢測通道。
Device B(config)# interface loopback 0
Device B(config-if-Loopback 0)# ip address 10.10.10.2/32
Device B(config-if-Loopback 0)# exit
Device B(config)# vap domain 1
Device B(config-vap-domain)# data-sync local 20.20.20.2 peer 20.20.20.1
Device B(config-vap-domain)# peer-keepalive local 192.168.3.2 peer 192.168.3.1
Device B(config-vap-domain)# exit
Device B(config)# int vlan 1
Device B(config-if-VLAN 1)# ip address 20.20.20.2/24
Device B(config-if-VLAN 1)# exit
Device B(config)# ip route 10.10.10.1 255.255.255.255 20.20.20.1
Device B(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# no switchport
Device B(config-if-GigabitEthernet 0/1)# ip address 192.168.3.2/24
# 配置Peer Link AP端口:AP 1,成員GigabitEthernet0/4、GigabitEthernet 0/5。
Device B(config)# interface aggregateport 1
Device B(config-if-AggregatePort 1)# switchport mode trunk
Device B(config-if-AggregatePort 1)# peer-link
Device B(config-if-AggregatePort 1)# exit
Device B(config)# interface gigabitethernet 0/4
Device B(config-if-GigabitEthernet 0/4)# port-group 1 mode active
Device B(config-if-GigabitEthernet 0/4)# exit
Device B(config)# interface gigabitethernet 0/5
Device B(config-if-GigabitEthernet 0/5)# port-group 1 mode active
# 配置VAP 2:下聯接口GigabitEthernet 0/2加入AP2,且AP2加入虛擬AP組2。
Device B(config)# interface gigabitethernet 0/2
Device B(config-if-GigabitEthernet 0/2)# port-group 2 mode active
Device B(config-if-GigabitEthernet 0/2)# exit
Device B(config)# interface aggregateport 2
Device B(config-if-AggregatePort 2)# switchport access vlan 2
Device B(config-if-AggregatePort 2)# vap 2
# 配置VAP 3:下聯接口GigabitEthernet 0/3加入AP3,且AP3加入虛擬AP組3。
Device B(config)# interface gigabitethernet 0/3
Device B(config-if-GigabitEthernet 0/3)# port-group 3 mode active
Device B(config-if-GigabitEthernet 0/3)# exit
Device B(config)# interface aggregateport 3
Device B(config-if-AggregatePort 3)# switchport access vlan 3
Device B(config-if-AggregatePort 3)# vap 3
# 配置VRRP雙活網關。
Device B(config)# vlan 2
Device B(config-vlan)# exit
Device B(config)# interface vlan 2
Device B(config-if-VLAN 2)# ip address 30.30.2.2/24
Device B(config-if-VLAN 2)# vrrp 1 ip 30.30.2.1
Device B(config-if-VLAN 2)# vrrp mode dual-active
Device B(config-if-VLAN 2)# exit
Device B(config)# vlan 3
Device B(config-vlan)# exit
Device B(config)# interface vlan 3
Device B(config-if-VLAN 2)# ip address 30.30.3.2/24
Device B(config-if-VLAN 2)# vrrp 1 ip 30.30.3.1
Device B(config-if-VLAN 2)# vrrp mode dual-active
# 配置Monitor Link,上聯口是GigabitEthernet 0/1,下聯口是GigabitEthernet 0/2和GigabitEthernet 0/3。
Device B(config)# link state track 1 up-delay 60
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# link state group 1 upstream
Device B(config-if-GigabitEthernet 0/1)# exit
Device B(config)# interface gigabitethernet 0/2
Device B(config-if-GigabitEthernet 0/2)# link state group 1 downstream
Device B(config-if-GigabitEthernet 0/2)# exit
Device B(config)# interface gigabitethernet 0/3
Device B(config-if-GigabitEthernet 0/3)# link state group 1 downstream
# 查看Device A的VAP接口及其狀態是否正確。
Device A# show vap summary
M-LAG domain : 1
M-LAG role : Master
Local address : 20.20.20.1
Peer address : 20.20.20.2
Negotiation status : ok
Peer keepalive status : alive
Peer-link Status
-----------------------------
Ag 1 UP
Group ID VAP Port Local-Status Peer-Status
--------------------------------------------------
2 Ag 2 UP UP
3 Ag 3 UP UP
# 查看Device B的VAP接口及其狀態是否正確。
Device B# show vap summary
M-LAG domain : 1
M-LAG role : Slave
Local address : 20.20.20.2
Peer address : 20.20.20.1
Negotiation status : ok
Peer keepalive status : alive
Peer-link Status
-----------------------------
Ag 1 UP
Group ID VAP Port Local-Status Peer-Status
--------------------------------------------------
2 Ag 2 UP UP
3 Ag 3 UP UP
l Device A的配置文件
!
link state track 1 up-delay 60
!
interface GigabitEthernet 0/1
no switchport
link state group 1 upstream
ip address 192.168.3.1 255.255.255.0
!
interface GigabitEthernet 0/2
port-group 2 mode active
link state group 1 downstream
!
interface GigabitEthernet 0/3
port-group 3 mode active
link state group 1 downstream
!
interface GigabitEthernet 0/4
port-group 1 mode active
!
interface GigabitEthernet 0/5
port-group 1 mode active
!
interface AggregatePort 1
no mac-address-learning
switchport mode trunk
peer-link
!
interface AggregatePort 2
switchport access vlan 2
vap 2
!
interface AggregatePort 3
switchport access vlan 3
vap 3
!
interface Loopback 0
ip address 10.10.10.1 255.255.255.255
!
interface VLAN 1
ip address 20.20.20.1 255.255.255.0
!
interface VLAN 2
ip address 30.30.2.1 255.255.255.0
vrrp 1 ip 30.30.2.1
vrrp mode dual-active
!
interface VLAN 3
ip address 30.30.3.1 255.255.255.0
vrrp 1 ip 30.30.3.1
vrrp mode dual-active
!
vap domain 1
data-sync local 20.20.20.1 peer 20.20.20.2
peer-keepalive local 192.168.3.1 peer 192.168.3.2
!
l Device B的配置文件
!
link state track 1 up-delay 60
!
interface GigabitEthernet 1/0/1
no switchport
link state group 1 upstream
ip address 192.168.3.2 255.255.255.0
!
interface GigabitEthernet 1/0/2
port-group 2 mode active
link state group 1 downstream
!
interface GigabitEthernet 1/0/3
port-group 3 mode active
link state group 1 downstream
!
interface GigabitEthernet 1/0/4
port-group 1 mode active
!
interface GigabitEthernet 1/0/5
port-group 1 mode active
!
interface AggregatePort 1
no mac-address-learning
switchport mode trunk
peer-link
!
interface AggregatePort 2
switchport access vlan 2
vap 2
!
interface AggregatePort 3
switchport access vlan 3
vap 3
!
interface Loopback 0
ip address 10.10.10.2 255.255.255.255
!
!
interface VLAN 1
ip address 20.20.20.2 255.255.255.0
!
interface VLAN 2
ip address 30.30.2.2 255.255.255.0
vrrp 1 ip 30.30.2.1
vrrp mode dual-active
!
interface VLAN 3
ip address 30.30.3.2 255.255.255.0
vrrp 1 ip 30.30.3.1
vrrp mode dual-active
!
vap domain 1
data-sync local 20.20.20.2 peer 20.20.20.1
peer-keepalive local 192.168.3.2 peer 192.168.3.1
!