M-LAG协议

一、M-LAG简介

M-LAG既跨设备链路聚合,是一种横向虚拟化技术。通过将两台设备虚拟成一台设备来实现链路聚合。从而提升设备级的冗余保护及流量的负载分担。

二、M-LAG基本概念

M-LAG主设备:部署M-LAG且状态为Primary的设备,优先级越小越优,当优先级一致性,MAC地址越小越优。
M-LAG备设备:部署M-LAG且状态为Secondary的设备。
peer-link链路:M-LAG设备之间用于交互协议报文以及传输数据流量的链路,peer-link链路为二层链路,且需要为逻辑接口,一般采用链路聚合接口或者Tunnel接口。
Keepalive链路:M-LAG设备之间用于检测邻居状态的接口,即通过交互Keepalive报文来进行peer-link链路故障时的双主检测。
M-LAG组:用于部署M-LAG设备之间的配对。
M-LAG接口:M-LAG主备设备与对接设备相连的聚合接口。

三、M-LAG协议交互及建立流程

                                                 M-LAG协议_第1张图片

1、DRCP协商:当完成M-LAG系统参数配置后,两端设备通过peer-link链路定期发送DRCP报文。
2、M-LAG配对:当本端收到对端的DRCP协商报文后,会判断DRCP协商报文中的M-LAG系统配置是否和本端相同。如果两端的M-LAG系统配置相同,则这两台设备组成M-LAG系统。
3、主备协商:配对成功后,两端设备会确定出主备状态。依次比较两端M-LAG设备的初始角色、M-LAG MAD DOWN状态、设备的健康值、角色优先级、设备桥MAC,比较结果更优的一端为主设备。主备协商后,M-LAG设备间会进行配置一致性检查。
4、双主检测:当主备角色确定后,两端设备通过Keepalive链路周期性地发送Keepalive报文进行双主检测。
5、M-LAG系统开始工作后,两端设备之间会通过peer-link链路实时同步对端的信息,例如MAC地址表项、ARP表项,从而确保任意一台设备故障都不会影响流量的转发,保证业务不会中断。

四、M-LAG实现机制

Keepalive实现机制:

1、Keepalive down,peer-link up时,主备设备正常工作,打印日志提示Keepalive异常。
2、Keepalive up,5s超时前,收到peer-link up,M-LAG恢复正常。
3、Keepalive up,5s超时前,收到peer-link up/down的报文,则M-LAG分裂,进行重新选举。
4、重新选举1:本端为主设备时,如果本端设备上存在处于UP状态的M-LAG口,则本端仍为主设备,否则本端设备角色变为None角色。
5、重新选举2:本端为备设备时,则升级为主设备。此后,只要本端设备上处于up状态的M-LAG口,则保持为主设备,否则本端设备角色变为None角色。

MAD实现机制:

当peer-link链路故障时,为了防止备设备继续转发流量,M-LAG提供MAD机制,既在M-LAG分裂时,将设备上的部分接口置为down状态,进允许M-LAG口、peer-link口转发流量,避免流量的错误转发,尽量减少对业务的影响。

防环机制:

M-LAG虽然拓扑成环,但是本身具有单向隔离防环机制,不需要依赖于生成树协议。当某台M-LAG设备接收到流量后,将优先从本地进行转发出去,peer-link链路一般不用来转发流量。但当流量经过peerl-link链路到达对端M-LAG设备时,在peer-link链路与M-LAG口之间有单向的隔离机制,既从peer-link接口进来的流量不会在从M-LAG成员口转发出去,从而不会形成环路。
在M-LAG双活的场景下,设备会按照顺序下发两条ACL配置:
rule1:允许源从peer-link接口,目的为M-LAG成员口的三层单播报文
rule2:拒绝源从peer-link接口,目的为M-LAG成员口的所有报文

五、M-LAG一致性检查

M-LAG是由两台设备组成的一个双活系统,可将M-LAG理解为一种横向虚拟化技术,将M-LAG的两台设备在逻辑上虚拟成一台设备,形成一个统一的二层逻辑节点。这带来了逻辑拓扑的清晰高效,也决定了M-LAG两端设备的某些配置需要保持一致,否则可能会导致M-LAG无法正常工作或者成环等问题。

但M-LAG运用于企业网中时,却面临一个突出的问题:部署企业网数据中心时,通过手工配置、人工比对来保证每一个M-LAG系统两端设备的配置一致性,不仅处理效率低下,更多的是带来诸多潜在的误配置风险。

为了解决上述问题,华为公司提出了M-LAG配置一致性检查的解决方案。该解决方案中,通过M-LAG机制自带的配置一致性检查功能,去订阅M-LAG系统两端设备的各模块配置。我们可以通过检查功能返回的比对结果,及时地调整M-LAG两端设备的配置部署,防止组网成环或者数据丢包等问题发生。

M-LAG配置一致性检查将设备配置分为两类,如表所示,分别为关键配置(Type1)和一般配置(Type 2)。根据对关键配置检查不一致时的处理方式,M-LAG一致性又分为严格模式(strict)和松散模式(loose)。
关键配置(Type 1):如果在M-LAG系统两端设备不一致,会导致成环、状态正常但长时间丢包等问题。严格模式下,如果M-LAG两端设备存在Type 1配置不一致,会导致M-LAG备设备上成员口处于ERROR DOWN状态,且触发设备对Type 1类型配置检查不一致的告警。松散模式下,如果M-LAG两端设备存在Type 1配置不一致,则会触发设备对两种类型配置检查不一致的告警。
一般配置(Type 2):如果在M-LAG系统两端设备不一致,可能会导致M-LAG运行状态异常。与Type 1类型的配置相比较而言,Type 2类型的配置问题更容易被发现,对组网环境的影响也相对较小。无论处于何种模式,如果M-LAG两端设备存在以下Type 2配置不一致,则会触发设备对两种类型配置检查不一致的告警。

六、M-LAG配置(华三交换机)

#SWA配置
[SWA]m-lag system-mac a08e-80d2-0100	#相同,建议选主设备为系统MAC
[SWA]m-lag system-number 1	#主设备为1,备设备为2
[SWA]m-lag system-priority 123	#相同优先级
[SWA]m-lag keepalive ip destination 1.1.1.2 source 1.1.1.1	#对端调换源目IP
[SWA]int g1/0/24
[SWA-GigabitEthernet1/0/24]po li rou
[SWA-GigabitEthernet1/0/24]ip add 1.1.1.1 30
[SWA]m-lag mad exclude int g1/0/24	#设置keepalive口为保留口,不会被shutdown
[SWA]int br 1	#peer-link口
[SWA-Bridge-Aggregation1]link mo dy	#动态模式
[SWA]int rang g1/0/1 g1/0/2
[SWA-if-range]po li gr 1
[SWA]int br 1
[SWA-Bridge-Aggregation1]port m-lag peer-link 1	#设置为peer-link口
[SWA]int br 100	#下联的m-lag口
[SWA-Bridge-Aggregation100]link mo dy
[SWA]int g1/0/3
[SWA-GigabitEthernet1/0/3]po li gr 100
[SWA]int br 100
[SWA-Bridge-Aggregation100]port m-lag group 100		#设置m-lag组为100

#SWB配置
[SWB]m-lag system-mac a08e-80d2-0100	#相同,建议选主设备为系统MAC
[SWB]m-lag system-number 2	#主设备为1,备设备为2
[SWB]m-lag system-priority 123	#相同优先级
[SWB]m-lag keepalive ip destination 1.1.1.1 source 1.1.1.2
[SWB]int g1/0/24
[SWB-GigabitEthernet1/0/24]po li rou
[SWB-GigabitEthernet1/0/24]ip add 1.1.1.2 30
[SWB]m-lag mad exclude int g1/0/24	#设置keepalive口为保留口,不会被shutdown
[SWB]int br 1	#peer-link口
[SWB-Bridge-Aggregation1]link mo dy	#动态模式
[SWB]int rang g1/0/1 g1/0/2
[SWB-if-range]po li gr 1
[SWB]int br 1
[SWB-Bridge-Aggregation1]port m-lag peer-link 1	#设置为peer-link口
[SWB]int br 100	#下联的m-lag口
[SWB-Bridge-Aggregation100]link mo dy
[SWB]int g1/0/3
[SWB-GigabitEthernet1/0/3]po li gr 100
[SWB]int br 100
[SWB-Bridge-Aggregation100]port m-lag group 100		#设置m-lag组为100

#备注
本实验中,SWB的配置与SWA相比较,仅以下不同
(1)系统编号不同
(2)Keepalive配置不同,如接口IP和源目IP

#SWC配置
[SWC]int br 100
[SWC-Bridge-Aggregation100]link mo dy
[SWC-Bridge-Aggregation100]int rang g1/0/1 g1/0/2

#如果HCL模拟器的M-LAG起不来,两边配置以下命令,忽略一致性检查
#仅实验目的,生产环境需谨慎
m-lag consistency-check disable

#看状态
(1)[SWA]display m-lag keepalive
Neighbor keepalive link status (cause): Up
Neighbor is alive for: 1003 s 776 ms
Keepalive packet transmission status:
  Sent: Successful
  Received: Successful
Last received keepalive packet information:
  Source IP address: 1.1.1.2
  Time: 2023/06/28 17:58:38
  Action: Accept

M-LAG keepalive parameters:
Destination IP address: 1.1.1.2
Source IP address: 1.1.1.1
Keepalive UDP port : 6400
Keepalive VPN name : N/A
Keepalive interval : 1000 ms
Keepalive timeout  : 5 sec
Keepalive hold time: 3 sec
(2)[SWA]display m-lag summary
Flags: A -- Aggregate interface down, B -- No peer M-LAG interface configured
       C -- Configuration consistency check failed

Peer-link interface: BAGG1
Peer-link interface state (cause): UP
Keepalive link state (cause): UP

                     M-LAG interface information
M-LAG IF    M-LAG group  Local state (cause)  Peer state  Remaining down time(s)
BAGG100     100          UP                   UP          -

你可能感兴趣的:(网络)