M-lag:跨设备链路聚合组,是一种实现跨设备链路聚合的机制。将一台设备与另外两台设备进行跨设备链路聚合,从而把链路的可靠性从单板级提升到设备级,组成双活系统。
基本概念:
peer-link链路:是一条聚合链路(可靠性),用于协商报文及传输部分流量。
keepalive链路(双主检测链路):三层互通链路,推荐使用MGMT接口。用于m-lag主备设备之间按照1s的周期发送双主检测报文,用于peer-link故障时进行双主检测。keepalive不参与m-lag的任何转发行为。
M-lag成员接口之间状态需要同步,使用dfs-group(动态交换服务组协议)进行同步。
防环机制:
?单向隔离机制:从对等体收到的广播/组播流量,不会再发回与给m-lag成员接口。
M-lag的建立:
一. m-lag两端设备配置完成后,会进行匹配。两端设备汇总peer-link上定期发送到hello报文,hello报文携带自己的dfs-group id、协议版本号、系统mac等信息。
二. 收到对端的hello报文后,会判断dfs-group id是否相同,如果相同则匹配成功。
三. 匹配成功后,会选举主备设备。
?选取顺序:??
?1 优先级(选大)(默认:100,可修改)
?2 系统mac(选小)
?四. 匹配成功后,设备间会发送同步报文信息进行信息同步。
??需要同步的信息:设备名、系统mac、软件版本、m-lag状态、stp bpdu信息、mac、arp、igmp表项等。
?五. 设备配置成功后,会通过keepalive链路发送心跳(heart beat)(三层)。心跳只要用于peer-link故障时,双主检测使用。
流量路径:
?一. 来自M-lag成员接口的组播/广播流量:
? M-lag A收到成员接口发来的流量后,会将流量发送到设备A的所有接口,当B设备收到来自A设备的流量后,会发送给除了成员接口的其他所有接口(防环:单项隔离机制)
二. 来自非M-lag 成员接口的组播/广播流量:
?M-lag A设备收到流量后会向所有接口发送流量,当设备B接收到设备A发送的流量时,由于单项隔离机制,会发送给除成员接口的其他所有接口。
链路故障:
由于双规接入普通以太网时,双主检测报文一般走管理网络,故不影响m-lag主设备的双主检测,流量通过m-lag主设备,经过peer-link链路进行转发。
M-lag设备主备状态不会发生变化,流量会切换到另一条链路上进行转发。发生故障的eth-trunk链路状态变为down,双归场景变为单归场景。
M-lag备设备升级为主设备,其设备侧eth-trunk链路仍为up,流量转发状态不变,继续转发流量。m-lag主设备侧eth-trunk链路变为down,双归场景变为单归场景。
当M-lag应用处于普通以太网络、vxlan网络或者IP网络的双规接入时peer-link故障双主检测正常会触发状态为备的设备上除管理网口、peer-link接口、堆叠接口以外的接口处于error-down状态。一旦peer-link故障恢复,处于error-down的接口默认在2min后自动恢复up状态。
M-lag和堆叠的特点:
堆叠:控制面单一。
M-lag:双控制平面,稳定性更高。
独立升级,不影响业务。