M-LAG

M-LAG

M-LAG(Multichassis Link Aggregation)跨设备链路聚合
通过将两个物理设备聚合层一个虚拟设备,来实现跨设备链路聚合
本质和IRF差不多,但是IRF聚合可靠性在大型数据中心会有一定的问题
因此诞生了M-LAG技术

M-LAG的优点

刚刚说到了他是个跨设备链路聚合技术
可以增加带宽、提高链路可靠性、负载分担
还有可以做到

  • 无环拓扑
  • 更高的可靠性
  • 双归接入(允许双设备进行链路聚合)
  • 用户流量不中断(链路故障或中断,可快速切换正常设备)
  • 简化组网配置(二层无环拓扑,无需配置放环协议机制)
  • 独立升级(两台聚合设备,分别进行升级,有一台能正常工作即可,对在线业务没有影响)

M-LAG工作原理

M-LAG组网
主要围绕了这几个机制

M-LAG主设备

部署M-LAG
状态为Primary的设备

M-LAG备设备

部署M-LAG
状态为Secondary的设备

peer-link链路

设备之间交互M-LAG协议报文和数据流量的链路
可以是聚合链路,也可以是Tunnel隧道
一个M-LAG系统只有一个peer-link链路

peer-link接口

前者peer-link链路对应的接口
可以是聚合接口、也可以是是Tunnel接口

Keepalive链路

主设备之间是三层互通链路
交互Keepalive报文
用于邻居状态检测

M-LAG组

用于M-LAG设备之间的配对
相同编号的M-LAG接口属于同一个M-LAG组

M-LAG接口

用于主设备与外部设备连接的一个二层聚合接口
相同编号的M-LAG接口属于同一个M-LAG组
一般使用动态聚合方式

DRCP协议

M-LAG在peer-link上运行DRCP协议
来交换分布式聚合信息,用来确定两个设备是否符合组件M-LAG系统
运行DRCP协议后,设备之间交互DRCPDU分布式聚合控制协议数据单元,来对比两端系统配置是否和本端相同,如果相同则可以组建M-LAG系统

DRCP超时时间

超时时间是指peer-link接口等待接受的DRCPDU报文的超时时间
超时时间决定了本端发送给对端设备DRCPDU报文的速率
超时时间短3秒:对端设备会快速发送DRCPDU(每秒一个)
超时时间超长90秒:对端将慢速发送DRCPDU(每30秒一个)

Keepalive机制

M-LAG通过Keepalive机制检测邻居存活状态
当设备角色为None时,设备不能发送Keepalive报文,且链路状态为down

Keepalive timeout时间内,收到对端的Keepalive报文
  • 如果peer-link链路down,则认为peer-link故障,会启动Keepalive hold timeout定时器
    定时器超时前收到了DRCP报文,则peer-link链路恢复up,M-LAG系统恢复正常
    定时器超时前未收到DRCP报文,则本端和对端,根据Keepalive报文选举主备
  • 如果peer-link链路up,则认为M-LAG系统正常工作
Keeplaive tiemout时间内,未收到对端Keepalive报文
  • 如果peer-link链路down,则认为对方M-LAG状态为down,会启动Keepalive hold timeout定时器
    定时器超时后,本端设备为主设备时,且存在UP状态的M-LAG接口,会保持原有身份,否则变为None角色
    定时器超时后,本端设备为备设备时,会主动升为主设备,只要存在UP的M-LAG接口,就会保持主身份,否则变为None角色
  • 如果peer-link链路状态为up,则认为Keepalive链路状态为down

主设备正常工作会打印日志,提醒检查keepalive链路

MAD机制

在M-LAG中也有分裂的存在,因此也要用到MAD机制
在M-LAG的分裂中,会将设备上部分接口置位M-LAG MAD DOWN状态
只允许peer-link、M-LAG口转发流量数据,可以指定keepalive接口为保留接口
M-LAG分裂后的接口有以下几种状态

分裂后的接口属于M-LAG MAD DOWN状态
分裂后的接口与原状态保持不变
M-LAG保留接口不会DOWN
配置强制UP的接口不会DOWN
保留接口不会DOWN
保留接口:

  • peer-link接口、
  • peer-link接口所对应的二层聚合接口的成员接口
  • M-LAG接口
  • 以太网管理接口

M-LAG角色计算

在M-LAG中有三种角色PrimarySecondaryNone
触发角色计算有以下几个因素

  • M-LAG系统初始化时候
  • peer-link链路UP时,通过peer-link链路计算角色
  • peer-link链路DOWN时,keepalive链路正常,则通过keepalive计算
  • 前两者均故障,根据本端M-LAG设备商的接口状态决定设备角色

涉及以下选举条件,一次排列计算

  1. 优选有可用M-LAG接口的
  2. 优选计算角色前处于Primary状态的
  3. 优选接口没处于M-LAG MAD DOWN状态的
  4. 优选健康值越小的优先
  5. 优选设备优先级高的
  6. 优选桥MAC小的

M-LAG的工作流程

工作流程
大致流程如下:

  • DRCP报文协商M-LAG编号,相同可以组建M-LAG系统
  • 确定主从关系,比较初始角色、MAD DOWN、健康值、优先级、桥MAC
  • 通过Keepalive链路周期发送报文检测邻居状态
  • 数据同步,MAC地址表、ARP表等

M-LAG的工作模式

M-LAG系统工作模式

作为M-LAG系统的设备参与工作
报文的转发、同步数据等

独立工作模式

一般是M-LAG分裂之后,peer-link、Keepalive链路都DOWN的情况下
设备会转为独自工作

M-LAG一致性检测 - Type 1

M-LAG系统建立时,会检测配置一致性,来确保M-LAG设备配置相同和匹配
Type1类型配置:检测的是M-LAG的转发配置
如果不匹配,则设备上的M-LAG口味Down状态

全局Type1配置检测
配置检查内容
peer-link接口链路类型Access、Hybrid、Trunk
peer-link接口的PVIDpeer--link接口的PVID
生成树功能是否开启、为PVST时,才对生成树功能做检测
生成树模式STP、RSTP、MSTP、PVST
MST域相关配置MST域名、MSTP修订级别,和VLAN的映射关系
M-LAG接口Type1配置检测
配置检测内容
聚合组的工作模式动态、静态聚合
接口生成树功能接口是否开启生成树
接口链路类型Access、Hybrid、Trunk
接口PVIDM-LAG接口PVID

M-LAG一致性检测 - Type 2

Type2的检查主要是检测影响业务模块的配置
如果不匹配,M-LAG口依然是UP,只是决定是否关闭一些业务功能

全局Type2配置检测
配置检测内容
接口所属VLANpeer-link接口所属的vlan
VLAN接口接口UP、且peer-link加入该VLAN
VLAN接口状态是否关闭开启
VLAN接口的IP地址VLAN接口IP地址是否配置
M-LAG接口Type2配置检测
配置检测内容
接口所属VLANM-LAG口所属的VLAN
M-LAG接口端口速率为优选选择参考端口M-LGA口上端口速率作为参考端口是否配置
M-LAG几口上的选择中端口时忽略端口速率M-LAG口上选择中端口的速率是否配置

M-LAG安全机制

序列号校验

为了防止伪造的DRCP、Keepalive报文,导致M-LAG分裂
设计并支持了序列号校验,可以识别非法攻击报文

序列号校验

M-LAG中流量转发

来自非M-LAG口的流量

流量转发

收到来自非M-LAG口的流量
会在同一广播域内向相连设备转发
如果收到从peer-link链路收到报文,不会再向M-LAG接口转发
该机制被称为单向隔离机制
(就和交换机的端口进来和出去的端口都是一样的场景一样,会被丢弃)

来自M-LAG口的流量

流量转发

收到来自M-LAG口的流量
会采用负载分担的形式进行转发
同样还是会采用单向隔离机制
流量到达Device E设备后,不会向Device B转发

单播流量转发

同样还是分两个场景
流量转发
单播报文基于目的MAC查MAC地址表转发

  • 如果出接口是本地单挂接口,直接从该接口转发出去
  • 如果是M-LAG接口,就本地优先转发,从本机M-LAG成员口转发
  • 如果是M-LAG对端设备的单挂口,则从peer-link转发

M-LAG故障处理

M-LAG接口故障

M-LAG接口故障
M-LAG接口故障,旁用户不知道,任然会发给所有M-LAG设备
业务流量会通过peer-link链路转发给目的设备
直到接口回复正常

peer-link链路故障

peer-link链路故障
peer-link链路发生故障,会导致从设备除了保留端口以外的其他端口全部变改为M-LAG MAD DOWN状态
所有的数据都会转交给主设备处理
直到keep-link链路恢复正常

设备故障

设备故障
设备发生故障后,主设备上的聚合会down掉,不会转发流量
从设备会升为主设备,代替主设备
直到主设备恢复

上行链路故障

上行链路故障

单边上行链路故障,由其余设备同步相关转发相关表项给故障设备可以配置Monitor Link来组合

M-LAG典型组网

单级M-LAG场景

组网1
二层设备的冗余

多级M-LAG场景

组网2
大二层数据中心网络采用的架构
提高链路利用率的同时扩展了接入网络的规模

M-LAG基础配置

/*配置M-LAG系统的MAC地址*/
[H3C] m-lag system-mac [address]
/*配置M-LAG系统编号*/
[H3C] m-lag system-number [number]
/*配置M-LAG系统优先级*/
[H3C] m-lag system-priority [number]
/*配置Keepalive报文参数*/
[H3C] m-lag keepalive [ip/ipv6] destination [address] source [address]   
/*配置M-LAG保留接口*/
[H3C] m-lag mad exclude interface
/*配置M-LAG接口*/
[H3C-Bridge-Aggregation1] port m-lag group [number]
/*配置peer-link口*/
[H3C-Bridge-Aggregation2] port m-lag peer-link [number]

基础配置实例
实例

设备A
[DeviceA] m-lag system-mac 1-1-1
[DeviceA] m-lag system-number 1
[DeviceA] m-lag system-priority 123
[DeviceA] m-lag keepalive ip destination 1.1.1.1 source 1.1.1.2
[DeviceA-Ten-GigabitEthernet1/0/5] port link-mode route
[DeviceA-Ten-GigabitEthernet1/0/5] ip address 1.1.1.2 24
[DeviceA] m-lag mad exclude interface ten-gigabitethernet 1/0/5
[DeviceA] interface bridge-aggregation 3
[DeviceA-Bridge-Aggregation3] link-aggregation mode dynamic
[DeviceA-Ten-GigabitEthernet1/0/1] port link-aggregation group 3
[DeviceA-Ten-GigabitEthernet1/0/2] port link-aggregation group 3
[DeviceA-Bridge-Aggregation3] port m-lag peer-link 1
[DeviceA-Bridge-Aggregation3] undo mac-address static source-check enable
[DeviceA-Bridge-Aggregation4] link-aggregation mode dynamic
[DeviceA-Ten-GigabitEthernet1/0/3] port link-aggregation group 4
[DeviceA-Ten-GigabitEthernet1/0/4] port link-aggregation group 4
[DeviceA-Bridge-Aggregation4] port m-lag group 4
设备B
[DeviceB] m-lag system-mac 1-1-1
[DeviceB] m-lag system-number 2
[DeviceB] m-lag system-priority 123
[DeviceB] m-lag keepalive ip destination 1.1.1.2 source 1.1.1.1
[DeviceB-Ten-GigabitEthernet1/0/5] port link-mode route
[DeviceB-Ten-GigabitEthernet1/0/5] ip address 1.1.1.1 24
[DeviceB] m-lag mad exclude interface ten-gigabitethernet 1/0/5
[DeviceB-Bridge-Aggregation3] link-aggregation mode dynamic
[DeviceB-Ten-GigabitEthernet1/0/1] port link-aggregation group 3
[DeviceB-Ten-GigabitEthernet1/0/2] port link-aggregation group 3
[DeviceB-Bridge-Aggregation3] port m-lag peer-link 1
[DeviceB-Bridge-Aggregation3] undo mac-address static source-check enable
[DeviceB-Bridge-Aggregation4] link-aggregation mode dynamic
[DeviceB-Ten-GigabitEthernet1/0/3] port link-aggregation group 4
[DeviceB-Ten-GigabitEthernet1/0/4] port link-aggregation group 4
[DeviceB-Bridge-Aggregation4] port m-lag group 4
设备C
[DeviceC] interface bridge-aggregation 4
[DeviceC-Bridge-Aggregation4] link-aggregation mode dynamic
[DeviceC] interface range ten-gigabitethernet 1/0/1 to ten-gigabitethernet 1/0/4
[DeviceC-if-range] port link-aggregation group 4