“一箭易断,十箭难折。”
这是小时候常常听到的谚语故事,字面意思是一支箭很容易折断,多支箭捆在一起则难以被摧毁,这告诉了我们“团结合作”的重要性。
在承载领域,也有这则故事的妙用,让我们一起来看看吧~
单链路 一箭易断
在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承载网络提供更加可靠的保障。