M-LAG理论基础
定义:
M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制,将一台设备与另外两台设备进行跨设备链路聚合,从而把链路可靠性从单板级提高到了设备级,组成双活系统。
目的:
M-LAG作为一种跨设备链路聚合的技术,除了具备增加带宽、提高链路可靠性、负载分担的优势外,还具备以下优势:
1)、更高的可靠性:把链路可靠性从单板级提高到了设备级。
2)、简化组网及配置:可以将M-LAG理解为一种横向虚拟化技术,将双归接入的两台设备在逻辑上虚拟成一台设备。M-LAG提供了一个没有环路的二层拓扑同时实现冗余备份,不再需要繁琐的生成树协议配置,极大的简化了组网及配置。
3)、独立升级:两台设备可以分别进行升级,保证有一台设备正常工作即可,对正在运行的业务几乎没有影响。
基础概念:
1)、DFS Group:动态交换服务组DFS Group(Dynamic Fabric Service Group),主要用于部署M-LAG设备之间的配对,M-LAG双归设备之间的接口状态,表项等信息同步需要依赖DFS Group协议进行同步。
2)、DFS主/备设备:部署M-LAG且状态为主的设备,通常也称为M-LAG主/备设备。(注:DFS Group的角色区分为主和备,正常情况下,主设备和备设备同时进行业务流量的转发,转发行为没有区别,仅在故障场景下,主备设备的行为会有差别)
3)、双主检测链路:又称为心跳链路,是一条三层互通链路,用于M-LAG主备设备间发送双主检测报文。(注:正常情况下,双主检测链路不会参与M-LAG的任何转发行为,只在故障场景下,用于检查是否出现双主的情况)
4)、peer-link接口:peer-link链路两端直连的接口均为peer-link接口。
5)、peer-link链路:peer-link链路是一条直连链路且必须做链路聚合,用于交换协商报文及传输部分流量。接口配置为peer-link接口后,该接口上不能再配置其它业务。
6)、M-LAG成员接口:M-LAG主备设备上连接用户侧主机(或交换设备)的Eth-Trunk接口。
M-LAG建立步骤:
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成员端口的状态,这样任意一台设备故障都不会影响流量的转发,保证正常的业务不会中断。
M-LAG建立简易流程图如下:
M-LAG防环机制:(单向隔离机制)
1)、当流量通过peer-link链路广播到对端M-LAG设备,在peer-link链路与M-LAG成员口之间设置单方向的流量隔离,即从peer-link口进来的流量不会再从M-LAG口转发出去,所以不会形成环路,这就是M-LAG单向隔离机制。 (注:M-LAG防环机制中的单向隔离仅对广播流量等泛洪流量生效。)
2)、设备通过匹配ACL规则组来对实现peer-link接口与M-LAG成员口之间的单向隔离,隔离有peer-link接口发往M-LAG成员口的广播等泛洪流量。 (ACL下发案例:Rule1:允许通过源端口为peer-link接口,目的端口为M-LAG成员口的三层单播报文; Rule2:拒绝通过源端口为peer-link接口,目的端口为M-LAG成员口的所有报文。)
peer-link故障:
当M-LAG应用于普通以太网络、VXLAN网络或IP网络的双归接入时,peer-link故障但双主检测心跳状态正常会触发备设备上除管理网口、peer-link接口和堆叠口以外的接口处于Error-Down状态。一旦peer-link故障恢复,处于ERROR DOWN状态的M-LAG接口默认将在2分钟后自动恢复为Up状态,处于ERROR DOWN状态的其它接口将立即自动恢复为Up状态。 (注:可通过配置调整端口ERROR DOWN情况。)
基于根桥方式配置M-LAG:
M-LAG主设备和备设备均作为STP网络中的根桥且配置相同的桥ID,将两台设备模拟成同一个根桥,M-LAG主备设备在二层网络中不受其他组网变化的影响,保证正常的工作。 (注:1、将M-LAG主设备和备设备均配置为根桥且配置相同的桥ID;2、必须去使能peer-link接口的STP功能)
基于V-STP方式配置M-LAG:
利用V-STP机制将M-LAG主设备和备设备的STP协议虚拟成一台设备的STP协议,对外呈现为一台设备进行STP协议计算。 (注:必须使能peer-link接口的STP功能同时使能V-STP功能。)
M-LAG配置的注意事项:
在设备重启或单板复位后,接口物理状态切换Up状态,但上层协议模块状态未满足转发要求,导致流量丢包。为了保证故障回切性能,缺省情况下,M-LAG成员端口上报Up状态的延时时间为240秒。若此时同时在VLANIF接口上配置三层协议状态延时Up时间,则需要保证M-LAG成员口的延时Up时间长于VLANIF接口的延时时间,否则ND同步失败的表项依赖于ND Miss触发学习。(缺省情况下,M-LAG接口上报Up状态的延时时间在V200R005C00版本及其之前版本为120s,在V200R005C10版本及其之后版本为240s。)