“一箭易断,十箭难折”—— 从单链路到 MC-LAG

“一箭易断,十箭难折。”

这是小时候常常听到的谚语故事,字面意思是一支箭很容易折断,多支箭捆在一起则难以被摧毁,这告诉了我们“团结合作”的重要性。

在承载领域,也有这则故事的妙用,让我们一起来看看吧~

单链路,一箭易断 

在 IP 网络发展的早期,两台网络设备(A 和 B)之间一般通过建立单条链路通信。

很明显,使用单链路连接有如下缺陷:

存在带宽瓶颈,设备 A、B 之间的总带宽等于这条单链路的带宽。

链路没有冗余备份,这条链路一旦出现问题,设备 A、B 之间可能会出现通信中断。

即使单链路有着明显的缺陷,但在那个对网络要求不高的年代,依然可以满足大众需求。

随着网络规模的发展,单链路已经无法满足网络对带宽和可靠性的要求,人们想到了将多条链路像“箭”那样进行“捆绑”。由此,链路聚合技术应运而生。

链路聚合,十箭难折 

链路聚合通过将两个设备之间的多条链路进行“捆绑”,形成一个聚合组,聚合组内的多条链路此时可以被看作一条逻辑链路。

此时,这两个设备间的流量就可以分担在聚合组内的各条链路上。

那么,链路聚合可以对网络带来哪些好处呢?

增加了网络带宽

将 A、B 之间多条链路捆绑成为一条逻辑链路,捆绑后的带宽是所有链路的带宽总和。

举个例子,A、B 之间有 3 条链路做链路聚合,每条链路带宽为 10 Gbps,则此聚合组的带宽最大就可以达到 30 Gpbs。

提高了网络连接的可靠性

假如 A、B 间有一条链路出现故障而中断,流量会自动在剩下链路间重新分配,不会引起 A、B 之间的流量中断。

实现流量的负载均衡

链路聚合可以把 A、B 之间的流量平均分到所有成员链路中去,最大限度地降低了每个成员链路产生流量阻塞链路的风险。

避免产生二层环路

当 A、B 之间链路采用链路聚合时,这些链路不再是单条链路独立工作,对外成为一条逻辑链路。因此,不使用 STP(Spanning Tree Protocol,生成树协议)也不会产生环路,有效避免了 A、B 之间产生二层环路的风险。

基于上述诸多优点,链路聚合在 IP 网络中得到了非常广泛的应用。

MC-LAG,更可靠的“捆绑”

进入移动互联时代,互联网与我们的日常生活越发密切,在我们享受网络便捷的同时,也给网络带来了海量数据的交互处理,对网络的带宽和可靠性提出了更高要求。

而传统的链路聚合技术仅限于一对一的两台设备之间,不能实现一对多台设备之间的链路聚合。

于是,为了提供更可靠的网络,MC-LAG(Multi-Chassis Link Aggregation Group,跨设备链路聚合组)产生了。

当一台接入设备(可以是服务器或交换机)与上层两台网络设备 A 和 B 对接时,可采用 MC-LAG 技术组成跨设备链路聚合组。

MC-LAG 的基本思想是让两台网络设备 A、B 以同一状态与接入设备进行链路聚合,在接入设备看来,就如同与同一台网络设备建立了链路聚合关系。这样就将链路聚合技术从一对一的设备对接,扩展到了可以同时接入对端两台设备,并组成了一个双活系统。

下面我们一起看这个双活系统是如何工作的?

MC-LAG 工作过程

了解 MC-LAG 工作过程之前,先学习一些 MC-LAG 技术涉及的基础概念。

DFS Group 即动态交换服务组(Dynamic Fabric Service Group),主要用于对组成 MC-LAG 的两台网络设备(图中 A 和 B)之间的配对,对这两台设备的接口状态、表项等信息进行同步。

在 DFS Group 中,设备 A 和 B 的角色区分为主和备,在正常情况下,主备设备同时进行业务流量的转发。

Peer-link 是两台 MC-LAG 设备 A、B 之间的直连二层链路,用于协商报文的交互以及部分流量的传输。

Keepalive 是 MC-LAG 两台设备之间的心跳链路,承载心跳数据包,主要作用是在主备设备间发送双主检测报文,进行双主检测,防止设备 A、B 出现双主用的情况。

MC-LAG 成员接口是两台网络设备 A 和 B 上连接接入设备的接口。

了解了 MC-LAG 基础概念之后,我们进一步了解 MC-LAG 的建立过程,包括如下 5 个步骤。

MC-LAG 两端设备在配置完成后,两端设备会通过 Peer-link 定期发送 Hello 报文,Hello 报文中携带了各自的 DFS Group ID、协议版本号、系统 MAC 等信息。

在收到对端的 Hello 报文后,判断对端的 DFS Group ID 是否与自己相同,如果相同,则配对成功。

配对成功后选举主 / 备设备。根据 MC-LAG 优先级进行选举,优先级高的为主;如果 MC-LAG 优先级相同则比较两台设备的系统 MAC,MAC 小的为主。

主备设备间发送同步报文进行信息同步。

主 / 备设备通过 Keepalive 链路发送心跳检测报文,主要是用于在 Peer-link 故障时进行双主检测。

完成了上述建立过程,MC-LAG 就可以正常工作了。

MC-LAG 流量转发

MC-LAG 主要应用于双归接入场景,即接入侧设备 C 通过 MC-LAG 技术,接入网络侧设备 A 和 B。正常工作时,上行流量和下行流量采用负载均衡方式经设备 A、B 转发。

如果上面网络出现故障,MC-LAG 又是如何保护网络正常工作呢?

成员接口链路故障

如果 MC-LAG 某成员接口故障,例如,设备 B 的成员接口出现故障。接入侧设备 C 感知到设备 B 成员接口故障,将所有上行流量均发送给设备 A,由设备 A 转发。

设备 B 收到从网络侧发往接入侧设备 C 的流量,会通过 Peer-link 将流量交给正常工作的设备 A 转发到接入侧设备 C。

MC-LAG 设备故障

如果一台 MC-LAG 设备出现故障,例如,设备 B 出现故障。此时设备 B 无法进行流量转发,则所有流量均由设备 A 转发。

Peer-link 出现故障

如果发生 Peer-link 故障,这时设备 A、B 不能同时转发流量,否则会导致广播风暴、MAC 漂移等一系列问题,所以只允许一台设备转发流量。

此时,MC-LAG 的备设备(这里是设备 B)会将自己除了 Peer-link 接口和管理网口之外的所有物理接口进行 Error-down 处理。此时,所有流量都只会通过 MC-LAG 主设备进行转发。

结语

通过前面的介绍,可以了解到 MC-LAG 技术相对于传统链路聚合技术有更多的优势,在增强了网络可靠性的同时,简化了组网,实现了设备级的高可用冗余保护以及多路径转发。

此外,MC-LAG 两台网络设备独立运行,可以分别进行升级,升级过程只要保证一台设备正常工作,对运行的业务几乎不会产生影响。

目前,MC-LAG 技术在新型 IP 城域网和云数据中心正被广泛使用,可以在采用 Spine-Leaf 网络架构的同时,部署 MC-LAG 来保证网络的可靠性。

在 5G 的演进过程中,MC-LAG 技术必将为 IP 承载网络提供更加可靠的保障。

本文来自微信公众号:中兴文档 (ID:ztedoc),作者:中兴文档

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注