以太网链路聚合与交换机堆叠、集群

发布时间 2023-04-23 20:26:40作者: 52Hertz520

随着业务的发展和园区网络规模的不断扩大,用户对于网络的带宽、可靠性要求越来越高。对于这种情况,传统解决方案通过升级设备方式提高网络带宽,同时通过部署冗余链路并辅以STP协议实现高可靠,然而这种方案存在灵活度低、故障恢复时间长、配置复杂、成本高等缺点。为了解决这些问题,我们将思考另一种解决方案:通过链路聚合技术与堆叠、集群技术实现网络带宽提升与高可靠性保障。

网络可靠性需求

网络的可靠性指当设备或者链路出现单点或者多点故障时保证网络服务不间断的能力,网络的可靠性可以从单板、设备、链路多个层面实现。

单板可靠性

框式交换机由机框、电源模块、风扇模块、主控板、交换网板(SFU)、线路板(LPU)构成。
主控板(MPU,Main Processing Unit):负责整个系统的控制平面和管理平面。
交换网板(SFU,Switch Fabric Unit):负责整个系统的数据平面。数据平面提供高速无阻塞数据通道,实现各个业务模块之间的业务交换功能。
线路板(LPU,Line Processing Unit):线路处理单元是物理设备上用于提供数据转发功能的模块,提供不同速率的光口、电口。

框式交换机配置多个主控板、交换网板可保证设备自身的可靠性,单个槽位的交换网板、主控板损坏不影响设备的正常运行,框式交换机的线路板损坏后,该板卡上的接口无法正常转发数据。

设备可靠性(设备冗余)

设备无冗余设计的网络中,下游交换机采用单上行接入,上行交换机的接口故障或设备故障会导致下游网络全部中断。而采取冗余设计,下游交换机双上行接入,主链路上行接口、设备故障可以切换到备份链路,通过备份设备转发。

链路可靠性(链路冗余)

为保证设备间链路可靠性,在设备间部署多条物理线路,为防止环路,STP只保留一条链路转发流量,其余链路成为备份链路。

链路聚合-原理与配置

基本原理

设备之间存在多条链路时,由于STP的存在,实际只会有一条链路转发流量,设备间链路带宽被浪费了,而通过使用以太网链路聚合技术(Eth-Trunk),简称链路聚合,就可以通过将多个物理接口捆绑成为一个逻辑接口,在不进行硬件升级的条件下,达到增加链路带宽的目的。

基本术语
  • 聚合组(Link Aggregation Group,LAG):若干条链路捆绑在一起所形成的的逻辑链路。每个聚合组唯一对应着一个逻辑接口,这个逻辑接口又被称为链路聚合接口或Eth-Trunk接口
  • 成员接口和成员链路:组成Eth-Trunk接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路
  • 活动接口和活动链路:活动接口又叫选中(Selected)接口,是参与数据转发的成员接口。活动接口对应的链路被称为活动链路(Active link)
  • 非活动接口和非活动链路:又叫非选中(Unselected)接口,是不参与转发数据的成员接口。非活动接口对应的链路被称为非活动链路(Inactive link)
  • 聚合模式 :根据是否开启LACP(Link Aggregation Control Protocol,链路聚合控制协议),链路聚合可以分为手工模式LACP模式

链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。
一个聚合组内要求成员接口以下参数相同:1.接口速率2.双工模式3.VLAN配置:接口类型都是Trunk或者Access,如果为Access接口的default VLAN需要一致,如果为Trunk接口,接口放通的VLAN、缺省VLAN需要一致

手工模式

Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议(LACP)的参与,双方系统之间不使用LACP进行协商。

正常情况下所有接口都是活动接口,所有链路都是活动链路,该模式下所有活动链路都参与数据的转发,平均分担流量,如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。

当需要在两个直连设备之间提供一个较大的链路带宽,而其中一端或两端设备都不支持LACP协议时,可以配置手工模式链路聚合。

手工模式缺陷
  • 不支持跨设备的链路聚合,为了使链路聚合接口正常工作,必须保证本端链路聚合接口中所有成员接口的对端接口:属于同一设备,加入同一链路聚合接口。由于设备间没有报文交互,对此只能通过管理员人工确认。
  • 手动模式下,设备只能通过物理层状态判断对端接口是否正常工作。也就是说,只要接口物理状态UP,即使链路有问题无法转发报文,设备也会将此接口视为活动接口。

LACP模式

LACP模式:采用LACP协议的一种链路聚合模式。设备间通过链路聚合控制协议数据单元(Link Aggregation Control Protocol Data Unit,LACPDU)进行交互,通过协议协商确保对端是同一台设备、同一个聚合接口的成员接口。LACPDU报文中包含设备优先级、MAC地址、接口优先级、接口号等。

报文介绍
系统优先级(设备优先级)

LACP模式下,两端设备所选择的活动接口数目必须保持一致,否则链路聚合组就无法建立。为了达成一致需要确定主次,此时可以通过系统LACP优先级确定主动端(值越小优先级越高),另一端(被动端)根据主动端选择活动接口。

系统LACP优先级默认32768,越小越优,通常保持默认。当优先级一致时LACP会通过比较MAC地址选择主动端,MAC地址越小越优。

接口优先级

选出主动端后,两端都会以主动端的接口优先级来选择活动接口,优先级高的接口将优先被选为活动接口(接口LACP优先级值越小,优先级越高)。当主动端某接口被选中为活动接口后,与之链路相连的被动端对应接口也将成为活动接口,无论其优先级高低。

接口LACP优先级默认为32768,越小越优,通常保持默认,当优先级一致时LACP会通过接口编号选择活动接口,越小越优。

最大活动接口数

LACP模式支持配置最大活动接口数目,当成员接口数目超过最大活动接口数目时会通过比较接口优先级、接口号选举出较优的接口成为活动接口,其余的则成为备份端口(非活动接口),同时对应的链路分别成为活动链路、非活动链路,交换机只会从活动接口发送、接收报文。

当活动链路中出现链路故障时,可以从非活动链路中找出一条优先级最高(接口优先级、接口编号比较)的链路替换故障链路,实现总体带宽不发生变化、业务的不间断转发。

活动链路选举
  1. SW1、SW2配置LACP模式的链路聚合,将四个接口加入Eth-Trunk中,接口编号分别为1、2、3、4。SW1、SW2配置Eth-Trunk最大活动接口数目为2,其余配置保持默认(系统优先级、接口优先级)。
  2. SW1、SW2分别从成员接口1、2、3、4对外发送LACPDU。
  3. SW1、SW2收到对端发送的LACPDU,比较系统优先级,都为默认的32768,继续比较MAC地址,SW1 MAC:4c1f-cc58-6d64,SW2 MAC:4c1f-cc58-6d65,SW1拥有更小的MAC地址,优选成为LACP选举的主动端。
  4. SW1在本端通过比较接口优先级、接口编号选举出活动接口,其中1、2号接口在相同的接口优先级下拥有更小的接口编号,成为活动接口。
  5. SW1通过LACPDU将本端活动端口选举结果告知对端。(LACP通过LACPDU中的三个flags来标识该端口的状态(Synchronization,Collecting,Distributing),如果是活跃端口,三个flags的值将会是1,如果是非活跃端口,该三个flags字段的值将为0)
  6. SW2依据SW1的选举结果,明确本端的活动接口,同时对应的链路成为活动链路,至此,Eth-Trunk的活动链路选举过程完成。
负载分担

基于包的负载分担:假设有1、2、3、4四个数据帧,由于聚合组两端设备之间有四条物理链路,因此可以实现每个数据帧在不同的链路上转发,但如果这四个数据帧发往同一端,就会造成数据帧到达对端时间不一致,产生数据乱序问题。因此,我们提出了另一种负载分担方式——基于流的负载分担。

基于流的负载分担:Eth-Trunk推荐采用逐流负载分担的方式,即一条相同的流负载到一条链路,这样既保证了同一数据流的数据帧在同一条物理链路转发,又实现了总体流量在聚合组内各物理链路上的负载分担。

如何定义一个流?什么样的报文被认为是同一个流?要根据负载分担的模式确定。若是基于源MAC的负载分担模式,则A发往C和A发往B被认为是同一个流,负载到一条链路,因为源MAC相同。默认基于源目IP的负载分担模式,同时这种模式也是大多数场景都适用的。

负载分担模式

负载分担模式只对出方向报文生效,通过不同的负载分担模式将要发出的报文分配到不同的成员接口上。常见的模式有:源IP、目的IP、源MAC、目的MAC、源目IP、源目MAC。实际业务中用户需要根据业务流量特征选择配置合适的负载分担方式。业务流量中某种参数变化越频繁,选择与此参数相关的负载分担方式就越容易实现负载均衡

如果负载分担模式选择的和实际业务特征不相符,可能会导致流量分担不均,部分成员链路负载很高,其余的成员链路却很空闲,如在报文源目IP变化频繁但是源目MAC固定的场景下选择源目MAC模式,那将会导致所有流量都分担在一条成员链路上。

负载分担模式在不同设备上可以不同,视情况而定,因为只对出方向报文生效。

堆叠/集群

堆叠(iStack):多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上变成一台交换设备,作为一个整体参与数据转发。
集群(Cluster Switch System,CSS):将两台支持集群特性的交换机设备组合在一起,从逻辑上组合成一台交换设备。
集群只支持两台设备,一般框式交换机支持CSS,盒式设备支持iStack。

堆叠、集群的优势

交换机多虚一:堆叠交换机对外表现为一台逻辑交换机,控制平面合一,简化管理
转发平面合一:堆叠内物理设备转发平面合一,转发信息共享并实时同步。一台物理设备故障,其他设备可以接管转发、控制平台,避免了单点故障,提高网络可靠性
跨设备链路聚合:跨物理设备的链路被聚合成一个Eth-Trunk端口,和下游设备实现互联,充分利用网络链路带宽物理上的无环网络,无需再部署STP