概述
产生背景
在链路聚合的技术背景下 链路级可靠性得到提高. 但是,如果网络设备存在故障 那么任然会导致整个网络的瘫痪 这对于一些医疗或者数据中心等一些对实时性要求高的企业是万万不允许存在的 于是存在了堆叠技术.堆叠技术是讲两台设备逻辑成一台 一主一备 保证网络不中断. 这个技术本来是比较美好的 但是任然存在一些问题: 对于设备版本以及型号要求较为严格. 于是乎出现了M-LAG跨设备链路聚合技术 较好的解决了堆叠的痛点
技术优点
M-LAG 作为一种跨设备链路聚合的技术,除了具备增加带宽、提高链路可靠性、负载分担的优势外, 还具备以下优势:
-
无环拓扑 M-LAG 提供无环拓扑,即使在 M-LAG 组网中部署 STP,M-LAG 组网中的接口也不会被 STP 阻塞。
-
更高的可靠性 把链路可靠性从单板级提高到了设备级。
-
双归接入 允许设备双归接入,将两台设备的链路进行聚合,实现流量负载分担。
-
用户流量不中断 M-LAG 组网中的接口、链路或者设备发生故障时,可将用户流量快速切换到正常设备/链路转 发,确保用户业务不中断。
-
简化组网及配置 提供了一个没有环路的二层拓扑,同时实现冗余备份,不再需要繁琐的防环协议配置,极大地 简化了组网及配置。
-
独立升级 两台设备可以分别进行升级,保证有一台设备正常工作即可,对正在运行的业务几乎没有影响
M-LAG基本概念
-
M-LAG主设备 部署 M-LAG 且状态为 Primary 的设备
-
M-LAG从设备 部署 M-LAG 且状态为 Secondary 的设备
-
peer-link链路 M-LAG 设备间的交互 M-LAG 协议报文及传输数据流量的链路, peer-link可以是聚合链路 ,也可以是Tunnel 隧道 ,一个M-LAG系统只有一条peer-link链路 用于同步主设备与备设备之间的MAC表,ARP表,ND表等表项以及数据转发
-
peer-link接口 可以是聚合口也可以是隧道口 但是设备有且只有一个
-
keepalive链路 M-LAG主备间的三层互通链路 用于检测邻居状态 即通过交互Keepalive报文来进peer-link链路故障时的双主检测
-
M-LAG组 用于部署M-LAG设备之间的配对,M-LAG设备上相同编号的M-LAG接口属于同一M-LAG组
-
M-LAG接口 :M-LAG主备设备与外部设备相连的二层聚合接口 。为了提高可靠性,需要使用动态聚合。M-LAG设备上相同编号的M-LAG接口属于同一M-LAG组。M-LAG组ID为M-LAG接口编号。
M-LAG网络模型
双归接入 M-LAG 网络模型
单归接入 M-LAG 网络模型
M-LAG系统建立与维护
M-LAG设备间通过交互DRCP报文和Keepalive报文建立和维护M-LAG系统, M-LAG系统的主备设备负载分担共同进行流量转发
建立过程
-
DRCP协商
- 当 M-LAG 设备完成 M-LAG 系统参数配置后,两端设备通过 peer-link 链路定期发送 DRCP 报 文。
-
M-LAG配对
- 当本端收到对端的 DRCP 协商报文后,会判断 DRCP 协商报文中的 M-LAG 系统配置是否和 本端相同。如果两端M-LAG系统配置相同,则这两台设备组成 M-LAG 系统。
-
主备协商
- 配对成功后,两端设备会确定出主备状态。依次比较两端 M-LAG 设备的初始角色、M-LAG MAD DOWN 状态、设备的健康值、角色优先级、设备桥 MAC,比较结果更优的一端为主设 备。主备协商后,M-LAG 设备间会进行配置一致性检查
-
双主检测
- 当主备角色确定后,两端设备通过 Keepalive链路周期性地发送 Keepalive报文进行双主检测。
-
M-LAG 系统开始工作后,两端设备之间会通过 peer-link 链路实时同步对端的信息,例如 MAC 地址表项、ARP 表项,从而确保任意一台设备故障都不会影响流量的转发,保证业务不会中 断。
DRCP协议
M-LAG通过DRCP报文已确认是否可以建立MLAG系统
-
两端 M-LAG 设备通过 peer-link 链路定期交互 DRCP 报文。当本端 M-LAG 设备收到对端 M-LAG 设备的 DRCP 协商报文后,会判断 DRCP 协商报文中的 M-LAG 系统配置是否和本端相同。如果两 端的 M-LAG 系统配置均相同,则这两台设备可以组成 M-LAG 系统。
-
DRCP 超时时间是指 peer-link 接口等待接收 DRCPDU 的超时时间。在 DRCP 超时时间之前,如果 本端 peer-link 未收到来自对端 M-LAG 设备的 DRCPDU,则认为对端 M-LAG 设备 peer-link 接口已 经失效。
-
DRCP 超时时间同时也决定了对端 M-LAG 设备发送 DRCPDU 的速率。DRCP 超时有短超时(3 秒)和长超时(90 秒) 两种:
• 若本端 DRCP 超时时间为短超时,则对端 M-LAG 设备将快速发送 DRCPDU(每 1 秒发送 1 个 DRCPDU)。
• 若本端 DRCP 超时时间为长超时,则对端 M-LAG 设备将慢速发送 DRCPDU(每 30 秒发送 1 个 DRCPDU)
Kekpalive机制
M-LAG 设备间通过 Keepalive 链路检测邻居状态 ,即通过交互 Keepalive 报文来进行 peer-link 链路故障时的双主检测
-
心跳线没断,PEER-LINK是DOWN 如果在规定时间内 收到DRCP报文 MLAG恢复正常.超过规定时间没有收到DRCP报文 则说明PEER-LINK线断了 双主分裂 选举主备 防止地址冲突
-
心跳线与PEER-LINK都断了 超过规定时间 则认为对端设备故障 如果本端设备存在MLAG接口 那么本端为主设备 如果没有活跃的MLAG接口 则变为NONE角色 没有超过规定时间收到了DRCP报文那么MLAG恢复正常
MAD机制
-
mad可以选择性指定某些接口在MLAG分裂后保持原状态不变 即M-LAG的保留接口
-
如果希望 M-LAG 系统中有特殊用途的接口(比如 Keepalive 接口)保持 up 状态,可以将其指定为 M-LAG 保留接口。
-
M-LAG 系统分裂时,设备上以下接口不被置为 M-LAG MAD DOWN 状态:
- M-LAG 保留接口(包括用户配置的和系统保留的)。
- 配置了强制端口 up 功能的接口。
系统保留接口
-
peer-link 接口
-
peer-link 接口所对应的二层聚合接口的成员接口
-
M-LAG 接口
-
管理以太网接口
M-LAG放环机制
M-LAG 本身具有防环机制,可以构造出一个无环网络
流量转发
单播流量转发
广播流量/未知单播流量转发
故障处理机制
- 主备切换不存在抢占 主设备故障恢复后,M-LAG 系统中由从状态升级为主状态的设备仍保持 主状态,故障恢复后的设备成为 M-LAG 系统的备设备
- 上行链路故障时 MLAG会根据PEER-LINK同步发送接口 故障 数据转发直接由对端设备转发
基本配置
perl
# 先手配置
m-lag system-number 1 // 设备编号 用于区分设备
m-lag system-mac 0001-0001-0001 // 主设备mac地址 主备需要一致
m-lag system-priority 0 // lacp优先级
m-lag role priority 120 // M-LAG设备主备优先级 用于选举主备 默认32768
# 设定stp优先级
stp priority 4096
# peerlink聚合口
int Bridge-Aggregation 1 // 创建聚合口
link-aggregation mode dynamic // 动态lacp
description peerlink
port m-lag peer-link 1
# keepalive三层互通接口
int g1/0/3
port link-mode route
ip address 1.1.1.1 30
m-lag keepalive ip destination 1.1.1.2 source 1.1.1.1
# 用户保留接口
m-lag mad exclude interface g1/0/3
# 下联或者上联聚合口
int Bridge-Aggregation 2
link-aggregation mode dynamic
port m-lag grounp 2
# 查看m-lag状态或者聚合口状态
display m-lag summary
# 关闭一致性检查
m-lag consistency-check disable
配置举例
双归接入配置举例
- mlag设备配置需要一致 包括接口信息 模拟器 如果前期接口划分错误 导致聚合口处于down 请将聚合口关闭后 再打开
S1
css
[S1]m-lag system-number 1
[S1]m-lag system-mac 8a85-1771-0100
[S1]m-lag system-priority 4096
[S1]m-lag role priority 120
[S1]stp priority 4096
[S1]int Bridge-Aggregation 1
[S1-Bridge-Aggregation1]link-aggregation mode dynamic
[S1-Bridge-Aggregation1]quit
[S1]interface range GigabitEthernet 1/0/1 GigabitEthernet 1/0/2
[S1-if-range]port link-aggregation group 1
[S1-if-range]quit
[S1]int Bridge-Aggregation 1
[S1-Bridge-Aggregation1]description peerlink
[S1-Bridge-Aggregation1]port m-lag peer-link 1
[S1-Bridge-Aggregation1]quit
[S1]interface GigabitEthernet 1/0/3
[S1-GigabitEthernet1/0/3]ip address 1.1.1.1 255.255.255.252
[S1-GigabitEthernet1/0/3]quit
[S1]m-lag keepalive ip destination 1.1.1.2 source 1.1.1.1
[S1]m-lag mad exclude interface g1/0/3
[S1]interface Bridge-Aggregation 2
[S1-Bridge-Aggregation2]link-aggregation mode dynamic
[S1-Bridge-Aggregation2]port m-lag group 2
[S1-Bridge-Aggregation2]quit
[S1]interface Vlan-interface 1
[S1-Vlan-interface1]ip address 192.168.1.1 255.255.255.0
S2
css
[S2]m-lag system-number 2
[S2]m-lag system-mac 8a85-1771-0100
[S2]m-lag system-priority 4096
[S2]stp priority 4096
[S2]int Bridge-Aggregation 1
[S2-Bridge-Aggregation1]link-aggregation mode dynamic
[S2-Bridge-Aggregation1]quit
[S2]interface range GigabitEthernet 1/0/1 GigabitEthernet 1/0/2
[S2-if-range]port link-aggregation group 1
[S2-if-range]quit
[S2]int Bridge-Aggregation 1
[S2-Bridge-Aggregation1]description peerlink
[S2-Bridge-Aggregation1]port m-lag peer-link 1
[S2-Bridge-Aggregation1]quit
[S2]interface GigabitEthernet 1/0/3
[S2-GigabitEthernet1/0/3]ip address 1.1.1.2 255.255.255.252
[S2-GigabitEthernet1/0/3]quit
[S2]m-lag keepalive ip destination 1.1.1.1 source 1.1.1.2
[S2]m-lag mad exclude interface g1/0/3
[S2]interface Bridge-Aggregation 2
[S2-Bridge-Aggregation2]link-aggregation mode dynamic
[S2-Bridge-Aggregation2]port m-lag group 2
[S2-Bridge-Aggregation2]quit
[S2]interface Vlan-interface 1
[S2-Vlan-interface1]ip address 192.168.1.1 255.255.255.0
S3
css
[S3]interface Bridge-Aggregation 2
[S3-Bridge-Aggregation2]link-aggregation mode dynamic
[S3-Bridge-Aggregation2]quit
[S3]interface range GigabitEthernet 1/0/11 GigabitEthernet 1/0/12
[S3-if-range]port link-aggregation group 2
[S3-if-range]quit
[S3]interface Vlan-interface 1
[S3-Vlan-interface1]ip address 192.168.1.2 255.255.255.0
配置验证[建立成功]
如果peer state状态为down 那么请关闭一致性检查 模拟器存在BUG 重启后等待若干时间即可up
查看聚合接口选中信息
查看stp根桥
双主分裂
arduino
[S1]interface Bridge-Aggregation 1
[S1-Bridge-Aggregation1]shutdown
邻居状态变为UNKNOWN
备设备地址以及DOWN
心跳线keepalive任然up