0x0 mlag基础

0x0.1 mlag原理

  • M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制,将一台设备与另外两台设备进行跨设备链路聚合,从而把链路可靠性从单板级提高到了设备级,组成双活系统。

0x0.2 相关优势

  1. 更高的可靠性:把链路可靠性从单板级提高到了设备级。
  2. 简化组网及配置:可以将M-LAG理解为一种横向虚拟化技术,将双归接入的两台设备在逻辑上虚拟成一台设备。M-LAG提供了一个没有环路的二层拓扑同时实现冗余备份,不再需要繁琐的生成树协议配置,极大的简化了组网及配置。
  3. 独立升级:两台设备可以分别进行升级,保证有一台设备正常工作即可,对正在运行的业务几乎没有影响

0x0.3 字段介绍

  1. peer-link:部署M-LAG的两台设备之间必须存在的一条直连链路,支持配置光口,电口,聚合口。。peer-link链路是一条二层链路,用于协商报文的交互及部分流量的传输。接口配置为peer-link接口后,该接口上不能再配置其它业务。
  2. 心跳链路,承载心跳数据包,主要作用是进行双主检测。需要注意的是,keepalive链路和peer-link是不同的两条链路,其作用也不一样。正常情况下,keepalive链路不会参与M-LAG的任何转发行为,只在故障场景下,用于检查是否出现双主的情况。keepalive链路可以通过外部网络承载(比如,如果M-LAG上行接入IP网络,那么两台双归设备通过IP网络可以互通,那么互通的链路就可以作为keepalive)。也可以单独配置一条三层可达的链路来作为keepalive链路(比如通过管理口)。
  3. M-LAG口:即M-LAG成员接口,M-LAG主备设备上连接上下行设备的Eth-Trunk接口。加入同一M-LAG口的接口,对外表现为同一个聚合接口。

0x1 mlag建立过程

1)、DFS Group配对;(首先通过peer-link链路发送DFS Group的Hello报文,然后判断报文中携带的DFS Group编号是否和本端相同)
2)、DFS Group协商主备;(根据报文中携带的DFS Group优先级以及系统MAC地址确定出DFS Group的主备状态;优先级越高越优,MAC地址越小越优。 注:DFS Group的角色区分为主和备,正常情况下,主设备和备设备同时进行业务流量的转发,转发行为没有区别,仅在故障场景下,主备设备的行为会有差别。)
3)、M-LAG成员接口协商主备:在DFS Group协商出主备状态后,M-LAG的两台设备会通过peer-link链路发送M-LAG设备信息报文,报文中携带了M-LAG成员接口的配置信息。在成员口信息同步完成后,确定M-LAG成员接口的主备状态。(与对端同步成员口信息时,状态由Down先变为Up的M-LAG成员接口成为主M-LAG成员口,对端对应的M-LAG成员口为备,且主备状态默认不回切,即:当M-LAG成员接口状态为主的设备故障恢复后,先前由备状态升级为主状态的接口仍保持主状态,恢复故障的M-LAG成员接口状态为备,此处与DFS Group协商主备状态不一致。 注:仅在M-LAG接入组播场景下,M-LAG成员接口的主备角色存在转发行为差异。)
4)、双主检测:协商出M-LAG主备后,两台设备之间会通过双主检测链路按照1s的周期发送M-LAG双主检测报文,一旦设备感知peer-link故障,会按照100ms的周期发送三个双主检测链路报文,加速检测。当两台设备均能够收到对端发送的报文时,双活系统即开始正常的工作。(正常情况下,双主检测链路不会参与M-LAG的任何转发行为,只在DFS Group配对失败或者peer-link故障场下,用于检查是否出现双主的情况。)
5)、M-LAG同步信息:正常工作后,两台设备之间会通过peer-link链路发送M-LAG同步报文实时同步对端的信息,M-LAG同步报文中包括MAC表项、ARP表项以及STP、VRRP协议报文信息等,并发送M-LAG成员端口的状态,这样任意一台设备故障都不会影响流量的转发,保证正常的业务不会中断。

0x2 mlag流量转发机制