拓扑图
规划
M-LAG:
- peer-link链路-BAGG100:XGE0/49和XGE0/50
- keepalive链路 管理接口M-GE0/0
- 双归接口XGE0/51(下BAGG12),XGE0/1(上BAGG112)
- M-LAG1为主,M-LAG2为备
业务VLAN:
- vlan10: 10.1.10.254/24
- vlan20: 10.1.20.254/24
VRRP:
- M-LAG1为vlan10的主
- M-LAG2为vlan20的主
OSPF:
- R1上配置三层链路聚合
- M-LAG1与M-LAG2与R1相连的链路加入M-LAG,所属vlan30
- 通过虚拟地址与R1创建OSPF邻接关系
配置流程
配置M-LAG系统参数
配置M-LAG系统MAC地址:M-LAG系统中相互配对的M-LAG接口的系统MAC地址必须相同。
配置M-LAG系统编号:M-LAG系统中不同M-LAG设备的系统编号必须不同。
配置M-LAG系统优先级:M-LAG系统使用M-LAG系统优先级作为LACPDU中的系统LACP优先级与对端设备交互聚合组信息。
配置M-LAG设备的角色优先级:
- 设备角色优先级用于两台设备间进行主从协商,值越小优先级越高,优先级高的为主设备。
- 如果优先级相同,那么比较两台设备的桥MAC地址,桥MAC地址较小的为主设备。
配置peer-link
- 配置二层聚合接口为peer-link接口时,该聚合接口不能是M-LAG接口,且peer-link接口的带宽要大于M-LAG接口的带宽。
- 一台M-LAG设备上只能配置一个peer-link接口。
- 配置聚合接口为peer-link接口时,如果该聚合接口上VLAN配置为缺省配置,则该聚合接口的链路类型改为Trunk类型,且允许所有VLAN通过该Trunk端口。否则,VLAN配置不进行改变。
- 建议在peer-link接口上配置link-delay命令,以减少接口震荡对上层业务的影响。
配置keepalive链路
M-LAG设备间通过Keepalive链路检测邻居状态,即通过交互Keepalive报文来进行peer-link链路故障时的双主检测。
如果在指定时间内,本端M-LAG设备收到对端M-LAG设备发送的Keepalive报文:
- 如果peer-link链路状态为down,则本端和对端M-LAG设备根据收到的Keepalive报文选举主从设备,保证M-LAG系统中仅一台M-LAG设备转发流量,避免两台M-LAG设备均升级为主设备。
- 如果peer-link链路状态为up,则M-LAG系统正常工作。
如果在指定时间内,本端M-LAG设备未收到对端M-LAG设备发送的Keepalive报文时:
- 如果peer-link链路状态为down,则认为对端M-LAG设备状态为down:
-
- 本端设备为主设备时,如果本端设备上存在处于up状态的M-LAG接口,则本端仍为主设备;否则,本端设备角色变为None角色。
- 本端设备为从设备时,则升级为主设备。此后,只要本端设备上存在处于up状态的M-LAG接口,则保持为主设备,否则本端设备角色变为None角色。
- 如果peer-link链路状态为up,则认为Keepalive链路状态为down。此时主从设备正常工作,同时设备打印日志信息,提醒用户检查Keepalive链路。
配置M-LAG保留接口
peer-link故障,设备通过keepalive选举主从,从设备的部分接口置为M-LAG MAD DOWN状态,设置保留接口后,接口状态依旧为UP。
配置M-LAG接口
- 创建二层聚合接口。
- 二层聚合接口加入M-LAG组。
- 一个二层聚合接口只能加入一个M-LAG组。
配置动态路由接入M-LAG
通过配置M-LAG虚拟IP地址,实现动态路由接入M-LAG。
配置
配置M-LAG系统
keepalive链路使用管理口创建,并划入到VPN-Instance中
将keepalive链路作为M-LAG保留接口
M-LAG1:
sysname M-LAG1
#
ip vpn-instance keepalive
#
address-family ipv4
#
vlan 10
#
vlan 20
#
m-lag system-mac 6-6-6
m-lag system-number 1
m-lag system-priority 666
interface Bridge-Aggregation100
link-delay up msec 600
link-aggregation mode dynamic
#
int range Ten-GigabitEthernet 1/0/49 Ten-GigabitEthernet 1/0/50
port link-aggregation group 100
#
interface Bridge-Aggregation100
port link-type trunk
port trunk permit vlan all
port m-lag peer-link 1
#
interface M-GigabitEthernet0/0/0
ip binding vpn-instance keepalive
ip address 10.1.12.1 255.255.255.252
#
m-lag keepalive ip destination 10.1.12.2 source 10.1.12.1 vpn-instance keepalive
#
m-lag mad exclude interface M-GigabitEthernet0/0/0
#
int Bridge-Aggregation 12
port link-type trunk
port trunk permit vlan 10 20
port m-lag group 12
#
interface Ten-GigabitEthernet1/0/51
port link-aggregation group 12
#
M-LAG2:
sysname M-LAG2
#
ip vpn-instance keepalive
#
address-family ipv4
#
vlan 10
#
vlan 20
#
m-lag system-mac 6-6-6
m-lag system-number 2
m-lag system-priority 666
interface Bridge-Aggregation100
link-delay up msec 600
link-aggregation mode dynamic
#
int range Ten-GigabitEthernet 1/0/49 Ten-GigabitEthernet 1/0/50
port link-aggregation group 100
#
interface Bridge-Aggregation100
port link-type trunk
port trunk permit vlan all
port m-lag peer-link 1
#
interface M-GigabitEthernet0/0/0
ip binding vpn-instance keepalive
ip address 10.1.12.2 255.255.255.252
#
m-lag keepalive ip destination 10.1.12.1 source 10.1.12.2 vpn-instance keepalive
#
m-lag mad exclude interface M-GigabitEthernet0/0/0
#
interface Bridge-Aggregation12
port link-type trunk
port trunk permit vlan 10 20
port m-lag group 12
#
interface Ten-GigabitEthernet1/0/51
port link-aggregation group 12
#
ACC1:
sysname ACC1
#
vlan 10
#
vlan 20
#
int Bridge-Aggregation 12
#
int range Ten-GigabitEthernet 1/0/49 Ten-GigabitEthernet 1/0/50
port link-aggregation group 12
#
interface Bridge-Aggregation12
port link-type trunk
port trunk permit vlan 10 20
#
interface GigabitEthernet1/0/1
port access vlan 10
#
interface GigabitEthernet1/0/2
port access vlan 20
#
查看M-LAG系统状态
peer-link、keepalive及M-LAG接口链路状态
VRRP配置
M-LAG1:
interface Vlan-interface10
ip address 10.1.10.253 255.255.255.0
vrrp vrid 10 virtual-ip 10.1.10.254
vrrp vrid 10 priority 105
#
interface Vlan-interface20
ip address 10.1.20.253 255.255.255.0
vrrp vrid 20 virtual-ip 10.1.20.254
#
M-LAG2:
interface Vlan-interface10
ip address 10.1.10.252 255.255.255.0
vrrp vrid 10 virtual-ip 10.1.10.254
#
interface Vlan-interface20
ip address 10.1.20.252 255.255.255.0
vrrp vrid 20 virtual-ip 10.1.20.254
vrrp vrid 20 priority 105
#
查看VRRP
M-LAG动态路由配置
R1:
sysname R1
#
ospf 1 router-id 10.1.112.254
area 0.0.0.0
network 6.6.6.6 0.0.0.0
network 10.1.112.254 0.0.0.0
#
interface Route-Aggregation112
ip address 10.1.112.254 255.255.255.0
#
int range GigabitEthernet 0/0/0 GigabitEthernet 0/0/1
port link-aggregation group 112
#
M-LAG1:
vlan 30
#
ospf 1 router-id 10.1.112.1
silent-interface Vlan-interface10
silent-interface Vlan-interface20
area 0.0.0.0
#
interface Bridge-Aggregation112
port access vlan 30
port m-lag group 112
#
interface GigabitEthernet1/0/1
port link-aggregation group 112 force
#
interface Vlan-interface30
ip address 10.1.112.12 255.255.255.0
ospf 1 area 0.0.0.0
ospf peer sub-address enable 10.1.112.1
port m-lag virtual-ip 10.1.112.1 255.255.255.0 active
mac-address 0012-0012-0012
#
interface Vlan-interface10
ospf 1 area 0.0.0.0
#
interface Vlan-interface20
ospf 1 area 0.0.0.0
#
M-LAG2:
vlan 30
#
ospf 1 router-id 10.1.112.2
silent-interface Vlan-interface10
silent-interface Vlan-interface20
area 0.0.0.0
#
interface Bridge-Aggregation112
port access vlan 30
port m-lag group 112
#
interface GigabitEthernet1/0/1
port link-aggregation group 112 force
#
interface Vlan-interface30
ip address 10.1.112.12 255.255.255.0
ospf 1 area 0.0.0.0
ospf peer sub-address enable 10.1.112.2
port m-lag virtual-ip 10.1.112.2 255.255.255.0 active
mac-address 0012-0012-0012
#
interface Vlan-interface10
ospf 1 area 0.0.0.0
#
interface Vlan-interface20
ospf 1 area 0.0.0.0
#
查看聚合链路
查看ospf邻接关系
查看路由
PC配置
测试
PC1 ping 6.6.6.6 60000个包
PC2 ping 6.6.6.6 60000个包
模拟下行链路故障
删除M-LAG1与ACC1的连线或删除M-LAG2与ACC1的连线
删除M-LAG1与ACC1的连线
流量未中断
模拟上行链路故障
删除M-LAG1与R1的连线或删除M-LAG2与R1的连线
删除M-LAG1与R1的连线
流量未中断
模拟peer-link链路故障
删除peer-link链路
主设备无法看到对端的信息
主设备接口状态
从设备除保留接口外的接口被置为mad error down,保证只有主设备转发
流量未中断
恢复peer-link链路
接口状态仍为mad down,需要等待恢复延迟时间后恢复UP,可通过m-lag restore-delay value 调整,缺省情况下,延迟恢复时间为300秒。
本定时器用来设置设备作为从设备加入M-LAG系统时进行MAC地址表项等信息同步的最大时间。定时器超时之前,业务口(除M-LAG保留接口以外的接口)状态为M-LAG MAD DOWN。定时器超时后,业务口状态变为up。
经过一段时间后恢复
模拟keepalive链路故障
keepalive链路故障不影响业务流量转发,会提示keepalive链路故障,当peer-link链路故障时,无法进行mad检测
模拟keepalive和peer-link链路故障
可配置独立运行模式,避免双主造成网络故障
- 当M-LAG系统分裂时,为了避免M-LAG系统中的两台设备都作为主设备转发流量的情况,可以在M-LAG系统分裂前配置本功能。配置本功能后,如果M-LAG系统分裂,peer-link链路和Keepalive链路均处于DOWN状态,此时从设备会立即或经过一段时间切换到独立运行模式。
- M-LAG设备切换到独立运行模式后,聚合接口发送的LACP报文中携带的M-LAG系统参数还原为聚合接口的LACP系统MAC地址和LACP系统优先级,使同一M-LAG组中的两个聚合接口的LACP系统MAC地址和LACP系统优先级不一致。这样只有一边聚合接口的成员端口可以被选中,通过被选中的设备转发业务流量,避免流量转发异常。
- 当peer-link链路和Keepalive链路均发生故障时,本功能才会生效。
- m-lag standalone enable [ delay delay-time ],缺省情况下,M-LAG设备独立工作功能处于关闭状态。
未配置独立运行模式,两个设备都成为主设备
配置独立运行模式后,流量中断,没有测试出效果
ACC1 STP/4/STP_DISPUTE: Instance 0's port Bridge-Aggregation12 received an inferior BPDU from a designated port which is in forwarding or learning state. The designated bridge ID contained in the BPDU is 32768.a4eb-097d-0200, and the designated port ID contained in the BPDU is 128.1028.
恢复后
模拟设备故障
将M-LAG系统中其中一台设备关机
M-LAG2成为主设备
可能是模拟器原因,M-LAG2与R1的OSPF邻居down了之后又重建
将M-LAG1关机后,R1与M-LAG1连接的接口显示依旧为UP,有一些延迟之后变为down,中间会丢一些包,当接口down后恢复流量
将M-LAG1启动,M-LAG1将变成从设备,不会抢占,经过恢复定时器到期后,接口有mad down变为UP,开始转发流量