H3C M-LAG配置
普通聚合的链路只能够在一台设备上,只能提供链路级的保护,当设备故障以后,普通聚合将无法工作,所以需要设备级保护的技术。M-LAG(Multichassis link aggregation,跨设备链路聚合)是基于IEEE P802.1AX协议的跨设备链路聚合技术。M-LAG将两台物理设备虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。
概述
普通聚合的链路只能够在一台设备上,只能提供链路级的保护,当设备故障以后,普通聚合将无法工作,所以需要设备级保护的技术。M-LAG(Multichassis link aggregation,跨设备链路聚合)是基于IEEE P802.1AX协议的跨设备链路聚合技术。M-LAG将两台物理设备虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。
IRF 与 M-LAG对比
优点
M-LAG作为一种跨设备链路聚合的技术,除了具备增加带宽、提高链路可靠性、负载分担的优势外,还具备以下优势:
- 无环拓扑:M-LAG提供无环拓扑,即使在M-LAG组网中部署STP,M-LAG组网中的接口也不会被STP阻塞。
- 更高的可靠性:把链路可靠性从单板级提高到了设备级。
- 双归接入:允许设备双归接入,将两台设备的链路进行聚合,实现流量负载分担。
- 用户流量不中断:M-LAG组网中的接口、链路或者设备发生故障时,可将用户流量快速切换到正常设备/链路转发,确保用户业务不中断。
- 简化组网及配置:提供了一个没有环路的二层拓扑,同时实现冗余备份,不再需要繁琐的防环协议配置,极大地简化了组网及配置。
- 独立升级:两台设备可以分别进行升级,保证有一台设备正常工作即可,对正在运行的业务几乎没有影响。
应用
M-LAG主要应用于双归接入组网,将可靠性从链路级提高到设备级。
原理
Device D接入到Device A和Device B组成的M-LAG系统,通过Device A和Device B共同进行流量转发,保证网络的可靠性。
M-LAG的角色区分为主和备,正常情况下,主设备和备设备同时进行业务流量的转发,转发行为没有区别,仅在故障场景下,主备设备的行为会有差别。
M-LAG设备间通过交互DRCP(Distributed Relay Control Protocol,分布式聚合控制协议)报文和Keepalive报文建立和维护M-LAG系统。在M-LAG系统正常工作时,M-LAG系统的主备设备负载分担共同进行流量转发。如果M-LAG系统中出现故障(无论是接口故障、链路故障还是设备故障),M-LAG系统都可以保证正常的业务不受影响。
术语
- M-LAG主设备:部署M-LAG且状态为Primary的设备,优先级越小越优,或者MAC小优。
- M-LAG备设备:部署M-LAG且状态为Secondary的设备。
- peer-link链路:M-LAG设备间的交互M-LAG协议报文及传输数据流量的链路。peer-link可以是聚合链路,也可以是Tunnel隧道,管理员需要根据不同组网环境选择peer-link链路。当采用聚合链路作为peer-link链路时,建议将多条链路进行聚合。一个M-LAG系统只有一条peer-link链路。
- peer-link接口:peer-link链路对应的接口,可以是二层聚合接口,也可以是Tunnel接口。每台M-LAG设备只有一个peer-link接口。
- Keepalive链路:M-LAG主备设备间的一条三层互通链路,用于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接口编号。
网络模型
Device D设备和Server分别双归接入Device A与Device B组成的M-LAG系统。Device A与Device B形成负载分担,共同进行流量转发,当其中一台设备发生故障时,流量可以快速切换到另一台设备,保证业务的正常运行。
M-LAG系统建立及工作过程
- DRCP协商:当M完成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表项,从而确保任意一台设备故障都不会影响流量的转发,保证业务不会中断。
Keepalive实现机制
- Keepalive down , peer-link up ,主备设备正常工作,打印日志提示Keepalive异常
- Keepalive up, 5s超时前,收到peer-link up,M-LAG恢复正常
- Keepalive up, 5s超时前,未收到peer-link up/down 的报文,则M-LAG分裂,重新选举
- 重新选举1: 本端设备为主设备时,如果本端设备上存在处于up状态的M-LAG口,则本端仍为主设备;否则,本端设备角色变为None角色。
- 重新选举2: 本端设备为备设备时,则升级为主设备。此后,只要本端设备上存在处于up状态的M-LAG口,则保持为主设备,否则本端设备角色变为None角色。
MAD机制
peer-link链路故障后,为了防止备设备继续转发流量,M-LAG提供MAD(Multi-Active Detection,多Active检测)机制,即在M-LAG系统分裂时将设备上部分接口置为M-LAG MAD DOWN状态,仅允许M-LAG口、peer-link接口等接口转发流量,避免流量错误转发,尽量减少对业务影响。
M-LAG防环机制
M-LAG本身具有防环机制,可以构造出一个无环网络。如图所示,从接入设备或网络侧到达M-LAG设备的单播流量,会优先从本地转发出去,peer-link链路一般情况下不用来转发数据流量。当流量通过peer-link链路转发到对端M-LAG设备,在peer-link链路与M-LAG接口之间设置单方向的流量隔离,即从peer-link接口进来的流量不会再从M-LAG接口转发出去,所以不会形成环路,这就是M-LAG单向隔离机制。
M-LAG双活网关
在M-LAG双归接入三层网络的场景中,两台M-LAG设备需要同时作为三层网关,必须保证M-LAG设备上存在相同的IP地址和MAC地址的逻辑接口,以便实现:
1.当一条接入链路发生故障时,流量可以快速切换到另一条链路,保证可靠性。
2.两条接入链路可以同时处理用户流量,以提高带宽利用率,使流量在两条接入链路上负载分担。
配置
-
peer-link 链路
peer-link 链路除了交互协议报文外,还作为上行链路的备份路径。
框式设备上部署 M-LAG,建议部署多个业务板的端口加入 peer-link 接口所在的聚合组
框式设备上部署 M-LAG,建议 peer-link 聚合组至少有一个成员口与上行口不在同一单板上。
盒式带子卡设备部署 M-LAG,建议采用多个子卡上的接口作为 peer-link 聚合组的成员端口。
盒式带子卡设备部署 M-LAG,建议 peer-link 聚合组至少有一个成员口与上行口不在同一子卡上。
盒式固定端口设备部署 M-LAG,建议至少配置两个物理接口作为 peer-link 聚合组的成员端口。
配置 link-delay 命令,且配置取值不为 0 的相同的 delay-time,以减少接口震荡对上层业务的影响。
peer-link 聚合组的成员端口需要使用相同速率端口。 -
Keepalive
Keepalive 链路通过交互 Keepalive 报文来进行 peer-link 故障时的双主检测。
建议 M-LAG 设备间单独建立一条直连链路,作为 Keepalive 链路,不与其他链路复用,同时需保证该链路二三层均可达。
Keepalive 链路接口可以为管理用以太网接口、三层以太网接口、三层聚合接口、绑定 VPN实例的接口。
不建议使用 VLAN 接口作为 Keepalive 链路接口,如确有此使用需求,需要将对应 VLAN 从peer-link 链路允许通过的 VLAN 中去掉,否则 peer-link 链路和 Keepalive 链路之间会形成环路。
• 对于多单板/多子卡设备:建议和 peer-link 链路接口部署在不同的单板/子卡上。
• Keepalive 链路接口(包括物理口和逻辑口)请务必配置为 M-LAG 保留接口(当 peer-link 链
路故障时不会被 MAD down)。 -
M-LAG 互通限制
M-LAG 不支持与友商互通 -
园区场景基于 M-LAG 的 VRRP 组网配置举例
注意事项:
同一分布式聚合组中,所有M-LAG设备的系统MAC地址必须相同
同一分布式聚合组中,所有M-LAG设备应配置不同的系统编号
同一分布式聚合组中,所有M-LAG设备的系统优先级必须相同
当M-LAG系统分裂时,为了避免M-LAG系统中的两台设备都作为主设备转发流量的情况,可以在M-LAG系统分裂前配置本功能。配置本功能后,如果M-LAG系统分裂,peer-link链路和Keepalive链路均处于DOWN状态,此时从设备会立即切换到独立运行模式。
-
维护
TYPE 1 类型配置不一致,M-LAG无法建立
TYPE 2 类型配置不一致,主要是业务类配置,不影响M-LAG的建立,不影响其他模块
实验图:
SWA与SWB组M-LAG,1和2口为peer-link口,3口为m-lag组100,24口为Keepalive
Keepalive IP段为1.1.1.0/30
#SWA配置
[SWA]m-lag system-mac a08e-80d2-0100 #相同,建议选主设备为系统MAC
[SWA]m-lag system-number 1 #主设备为1,备设备为2
[SWA]m-lag system-priority 123 #相同优先级
[SWA]m-lag keepalive ip destination 1.1.1.2 source 1.1.1.1 #对端调换源目IP
[SWA]int g1/0/24
[SWA-GigabitEthernet1/0/24]po li rou
[SWA-GigabitEthernet1/0/24]ip add 1.1.1.1 30
[SWA]m-lag mad exclude int g1/0/24 #设置keepalive口为保留口,不会被shutdown
[SWA]int br 1 #peer-link口
[SWA-Bridge-Aggregation1]link mo dy #动态模式
[SWA]int rang g1/0/1 g1/0/2
[SWA-if-range]po li gr 1
[SWA]int br 1
[SWA-Bridge-Aggregation1]port m-lag peer-link 1 #设置为peer-link口
[SWA]int br 100 #下联的m-lag口
[SWA-Bridge-Aggregation100]link mo dy
[SWA]int g1/0/3
[SWA-GigabitEthernet1/0/3]po li gr 100
[SWA]int br 100
[SWA-Bridge-Aggregation100]port m-lag group 100 #设置m-lag组为100
#SWB配置
[SWB]m-lag system-mac a08e-80d2-0100 #相同,建议选主设备为系统MAC
[SWB]m-lag system-number 2 #主设备为1,备设备为2
[SWB]m-lag system-priority 123 #相同优先级
[SWB]m-lag keepalive ip destination 1.1.1.1 source 1.1.1.2
[SWB]int g1/0/24
[SWB-GigabitEthernet1/0/24]po li rou
[SWB-GigabitEthernet1/0/24]ip add 1.1.1.2 30
[SWB]m-lag mad exclude int g1/0/24 #设置keepalive口为保留口,不会被shutdown
[SWB]int br 1 #peer-link口
[SWB-Bridge-Aggregation1]link mo dy #动态模式
[SWB]int rang g1/0/1 g1/0/2
[SWB-if-range]po li gr 1
[SWB]int br 1
[SWB-Bridge-Aggregation1]port m-lag peer-link 1 #设置为peer-link口
[SWB]int br 100 #下联的m-lag口
[SWB-Bridge-Aggregation100]link mo dy
[SWB]int g1/0/3
[SWB-GigabitEthernet1/0/3]po li gr 100
[SWB]int br 100
[SWB-Bridge-Aggregation100]port m-lag group 100 #设置m-lag组为100
#备注
本实验中,SWB的配置与SWA相比较,仅以下不同
(1)系统编号不同
(2)Keepalive配置不同,如接口IP和源目IP
#SWC配置
[SWC]int br 100
[SWC-Bridge-Aggregation100]link mo dy
[SWC-Bridge-Aggregation100]int rang g1/0/1 g1/0/2
#如果HCL模拟器的M-LAG起不来,两边配置以下命令,忽略一致性检查
#仅实验目的,生产环境需谨慎
m-lag consistency-check disable
#看状态
(1)[SWA]display m-lag keepalive
Neighbor keepalive link status (cause): Up
Neighbor is alive for: 1003 s 776 ms
Keepalive packet transmission status:
Sent: Successful
Received: Successful
Last received keepalive packet information:
Source IP address: 1.1.1.2
Time: 2023/06/28 17:58:38
Action: Accept
M-LAG keepalive parameters:
Destination IP address: 1.1.1.2
Source IP address: 1.1.1.1
Keepalive UDP port : 6400
Keepalive VPN name : N/A
Keepalive interval : 1000 ms
Keepalive timeout : 5 sec
Keepalive hold time: 3 sec
(2)[SWA]display m-lag summary
Flags: A -- Aggregate interface down, B -- No peer M-LAG interface configured
C -- Configuration consistency check failed
Peer-link interface: BAGG1
Peer-link interface state (cause): UP
Keepalive link state (cause): UP
M-LAG interface information
M-LAG IF M-LAG group Local state (cause) Peer state Remaining down time(s)
BAGG100 100 UP UP -
参考:
H3C M-LAG白皮书:http://www.h3c.com/cn/Service/Document_Software/Document_Center/Home/Public/00-Public/Learn_Technologies/White_Paper/M-LAG_White_Paper-Long/
H3C M-LAG配置:
https://www.h3c.com/cn/d_202208/1660556_30005_0.htm
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)