链路聚合
1 链路聚合原理及适用场景
- 链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理端口捆绑为一个逻辑端口,达到增加链路带宽的目的;在实现增大带宽目的的同时,链路聚合采用备份链路的机制,可以有效地提高设备之间链路的可靠性。另外,在生成树中,聚合链路被看作一条链路,所有链路都可以转发业务流量,从而提高了交换机之间链路的利用率。
- 应用在交换机、路由器、服务器间链路。
- 分为三层链路聚合和二层链路聚合。
1.1 链路聚合的名词解释
-
- 链路聚合组(Link Aggregation Group):将多条相同的以太链路捆绑在一起形成的逻辑链路,华为通常称其为Eth-Trunk。
-
- 链路聚合端口:聚合组形成的一个逻辑端口,该逻辑端口被称为Eth-Trunk端口。
-
- 成员端口和成员链路:
- 成员端口:在Eth-Trunk组中的每个物理端口。
- 成员链路:每个成员端口对应的链路。
-
- 活动端口和非活动端口以及活动链路和非活动链路。
- 活动端口:在Eth-Trunk组中处于转发数据状态的端口。
- 非活动端口:在Eth-Trunk组中处于不转发数据状态的端口,和活动端口正好相反。
- 活动链路:活动端口所在的链路。
- 非活动链路:非活动端口所在的链路。
1.2 链路聚合原理
- 链路聚合(Link Aggregation)是将一组相同属性的物理端口捆绑在一起形成一个逻辑端口来增加带宽和可靠性的一种方法。链路聚合具有如下优势 :
- 增加带宽:链路聚合端口的最大带宽可以达到各成员端口带宽之和。
- 提高冗余度:当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合端口的冗余度和稳定性;其中一条物理链路断开并不会给拓扑带来变化,生成树不需要重新收敛。
- 分担负载:在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。根据硬件的配置不同实现活动链路上的负载分担,例如,基于源、目的MAC地址或者基于源、目的IP地址实现负载分担。
- 节省成本:管理员不需要升级链路的速率,只需要对已有端口进行捆绑.。
- 配置量少:大部分的配置在Eth-Trunk上完成即可,不需要在每个端口上配署, 只要确保两端交换机一致即可。
链路聚合如下图所示,该图展示了一个链路聚合(Eth-Trunk)技术实现的例子。
- 在图中,DeviceA与DeviceB之间通过3条以太网物理链路相连,将这3条链路绑在一起,就形成一条Eth-Trunk逻辑链路,该逻辑链路的带宽等于原先3条以太网物理网络的带宽总和,例如,3条100Mbps的物理链路,现在捆绑成为一条300Mbps的Eth-Trunk 逻辑链路,从而达到了增加链路带宽的目的:同时,这3条以太网物理链路相互备份,其任意一条链路失效都不影响该Eth-Trunk链路转发数据,有效地提高了链路的可靠性。
- 特别需要注意的是,是不是所有的以太链路都可以进行捆绑呢?答案肯定是否定的。 口有具有相同属性的链路才能捆绑成功,两个端口的配置参数不一致也会导致不能形成Eh-Irunk链路。下面就给大家总结一下形成Eth-Trunk链路的基本要求,每个Eth-Trunk端几下最多可以包含8个成员端口。
- 成员端口不能配置任何业务和静态MAC地址。
- 当成员端口加入Eth-Trunk链路时,必须为默认的Hybrid类型端口。
- Eth-Trunk端口不能嵌套,即成员端口不能是Eth-Trunk端口。
- 一个以太网端口只能加入一个Eth-Trunk端口,如果需要加入其他Eth-Trunk端口, 必须先退出原来的Eth-Trunk端口。
- 一个Eth-Trunk端口中的成员端口必须是同一类型,例如,FE端口和GE端口不能加入同一个Eth-Trunk端口。
- 可以将不同端口板上的以太网端口加入同一个Eth-Trunk端口。
- 如果本地设备使用了Eth-Trunk端口,与成员端口直连的对端端口也必须捆绑为Eth-Trunk端口,这样两端才能正常通信,
- 当成员端口的速率不一致时,实际使用中速率小的端口可能会出现拥塞,导致丢包。 当成员端口加入Eth-Trunk端口后,在学习MAC地址时是按照Eth-Trunk端口来学习的,而不是按照成员端口来学习的。
在华为和思科设备中,链路聚合(Eth-Trunk/LACP)对成员端口的类型要求有所不同:
1.2.1华为设备(Eth-Trunk)
成员端口要求:
- 必须为Hybrid类型端口(默认类型),不能是Access或Trunk端口。
- 原因:Hybrid端口更灵活,可以同时处理带Tag和不带Tag的流量,适合聚合链路的多场景需求。
- 配置示例:
interface GigabitEthernet0/0/1 port link-type hybrid # 必须设为Hybrid eth-trunk 1 # 加入Eth-Trunk
逻辑端口(Eth-Trunk):
- Eth-Trunk接口本身可以配置为Access、Trunk或Hybrid模式,根据实际需求决定。
1.2.2思科设备(Port-Channel)
成员端口要求:
- 无强制端口类型限制(可以是Access、Trunk或动态协商模式)。
- 成员端口的模式(Access/Trunk)必须与Port-Channel逻辑接口的模式一致,否则会导致聚合失败或流量异常。
- 配置示例:
interface GigabitEthernet1/0/1 switchport mode trunk # 成员端口需与Port-Channel模式一致 channel-group 1 mode active # 加入Port-Channel(LACP)
关键区别:
- 思科不要求成员端口为特定类型,但要求所有成员端口的VLAN模式与Port-Channel接口一致。
- 如果Port-Channel是Trunk,成员端口也必须配置为Trunk。
1.2.3对比总结
特性 | 华为(Eth-Trunk) | 思科(Port-Channel) |
---|---|---|
成员端口类型 | 必须为Hybrid | 无强制要求,但需与Port-Channel一致 |
配置灵活性 | Hybrid支持多场景 | 依赖Port-Channel的统一模式 |
典型配置命令 | port link-type hybrid + eth-trunk |
switchport mode trunk + channel-group |
1.2.4注意事项
华为:
- 若成员端口不是Hybrid,需先修改类型才能加入Eth-Trunk。
- Eth-Trunk接口本身的模式决定最终流量行为(如允许哪些VLAN通过)。
思科:
- 成员端口模式不一致会导致错误(如
%Error: Gi1/0/1 not compatible with Po1
)。 - 动态协商协议(如LACP)要求两端配置匹配。
- 成员端口模式不一致会导致错误(如
1.2.5常见问题
- Q:为什么华为强制Hybrid?
A:Hybrid端口可以同时处理Tagged/Untagged流量,简化聚合链路的VLAN配置(如服务器多VLAN场景)。 - Q:思科能否用Access端口做聚合?
A:可以,但Port-Channel也必须为Access模式,且仅能承载单个VLAN流量。
1.3 链路聚合模式
- 链路聚合模式在华为系统中可以分为手工负载分担和LACP(Link Aggregation Control
Protocol,链路聚合控制协议)两种模式。1.3.1手工负载分担模式
- 手工配置Eth-Trunk和成员端口不需要链路聚合控制协议的参与。在手工负载分担模式下,所有活动链路都参与数据转发,平均分担流量,因此被称为负载分担模式,如下图所示,。如果某条活动链路发生故障,链路聚合组会自动在剩余的活动链路中平均分担流量。 当设备不支持LACP模式时,可以使用手工负载分担模式。
图中,SwitchA与SwitchB两台设备之间需要设置Eth-Trunk1,而SwitchB不支持LACP,此时可在设备SwitchA和SwitchB上创建手工负载分担模式的Eth-Trunk,并加入多个成员端口来增加设备间的带宽和可靠性。手工负载分担模式允许所有的端口均处于转发状态,分担负载的流量。
1.3.2 LACP基础
1.3.2.1 LACP模式出现的背景
- 作为链路聚合技术,手工负载分担模式可以将多个物理端口聚合成一个Eth-Trunk口来提高带宽,同时能够检测出同一聚合组内的成员链路有断路等有限故障,但是无法检测出链路层故障和链路错连等故障。为了提高Eth-Trunk的容错性,并且能提供备份功能,保证成员链路的高可靠性,出现了链路聚合控制协议(Link Aggregation Control Protocol, LACP),LACP模式就是采用LACP的一种链路聚合模式。
1.3.2.2 LACP模式名词解释
- (1)系统优先级
系统优先级用于区分两端设备优先级的高低。在LACP模式下,两端设备所选择的活动端口必须保持一致,否则链路聚合组就无法建立。如果其中一端具有更高的优先级,另一端根高优先级的一端来选择活动.端口。系统优先级的取值越小优先级越高。默认情况下,系统LACP优先级为32768,在两端设备中选择系统LACP优先级高的一端作为主动端,如果系统LACP优先级相同则选择MAC地址较小的一端作为主动端。 - (2)端口优先级
端口优先级用于区别不同端口被选为活动端口的优先.程度,优先级高的端口将优先被选为活动端口。优先级低的端口将成为非活动端口,默认情况下,端口的LACP优先级是32768。端口优先级取值越小,端口的优先级越高。 - (3)成员端口备份
LACP模式链路聚合由LACP协商确定哪些是活动链路和非活动(备份)链路,华为称为M:N模式,即M条活动链路与N条备份链路的模式。这种模式提供了更高的链路可靠性,并且可以在M条链路中实现不同方式的负载均衡。
如图所示为备份示意图,一共有3条链路。其中,两条处于活动状态,一条处于非活动状态,M:N=2:1。在聚合链路上转发流量时,在两条活动链路上分担载,另外的一条链路不转发流量,这条链路提供备份功能,是备份链路。此时链路的实际带宽为两条链路的总和,但是能提供的最大带宽为2+1条链路的总和。当两条链路中有一条链路发生故障时,LACP会用备份链路替换故障链路。此时链路的实际带宽还是两条链路的总和, 但是能提供的最大带宽就变为2+1-1条链路的总和。
1.3.2.3 LACP模式工作原理
- LACP基于标准协议IEEE 802.3ad,通过链路聚合控制协议数据单元(Link Aggregation Control Protocol Data Unit,LACPDU)与对端交互信息,当原端口加入Eth-Trunk后,这些端口将通过发送LACPDU向对端通告自己的系统优先级、MAC地址、端口优先级、 端口号和操作Key等信息。对端接收到这些信息后,将这些信息与自身端口所保存的信息进行比较以选择能够聚合的端口,双方对哪些端口能够成为活动端口达成一致后, 定活动链路。
- LACP模式建立过程如下所述。
-
- DeviceA和DeviceB如图11-6所示互相发送LACPDU 报文,创建Eth-Trunk,配置LACP模式,将端口接入到绑定的组中,这样端口就启用了LACP,就可以发达LACPDI 报文了。
-
- 在图11-7中,先比较系统优先级,系统优先级高的成为主动端,选出DeviceA成为主动端;再根据端口优先级比较选出哪些是活动链路,哪些是非活动链路,选出端口1和2 为活动端口,3为非活动端口。
1.3.2.4 LACP模式分类
- LACP模式可以分为二层链路聚合和三层链路聚合。
- (1)二层链路聚合
Eth-Trunk技术可以用来捆绑相同类型的端口,在一个二层的交换机上,一般把接入层交换机与分布层交换机之间的链路进行成二层链路聚合,如果接入的终端设备也支持Eth-Trunk和 Trunk技术,我们也可以汇聚Access端口,比如服务器端能支持Eth-Trunk和Trunk技术,那么接入层交换机就能配置Eth-Trunk链路,每个Eth-Trunk链路可以被看成一个逻辑连接,因此Eth-Trunk中的成员端口可以在所有正常传递流量的链路上对流量进行负载分担。在配置二层Eth-Trunk时,要求两端的端口使用相同的方式配置,都是交换端口(Access端口、Trunk端口、hybrid端口),保持端口的参数一致就能形成二层的Eth-Trunk。
- (2)三层链路聚合
在三层交换机上,可以把端口变成三层路由端口,值得注意的是,华为eNSP S系列交换机(比如 S3700和S5700系列的交换机)是三层交换机,但不能把端口变成三层端口, 只能使用VLANIF端口作为三层端口,因此S系列的交换机是软三层交换机,并不是硬三层交换机。华为数据中心的交换机是硬三层交换机,可以用undo portswitch命令将端口变成三层端口,这些端口不再执行二层交换功能,而是成为与路由平台上端口类似的三层端口。三层端口也可以像二层端口一样执行Eth-Trunk功能。在多层交换机上配置Eth-Trunk 是比较容易的,具体的配置取决于交换机所连接的设备和所在网络的位置,三层Eth-Trunk 用于分布层到分布层以及分布层到核心层的部署。在配置Eth-Trunk时要求链路两边的端口使用相同的配置方式,都具有路由端口属性。
1.3.2.4 总结
- 静态聚合模式
- 端口不与对端设备交互信息。
- 选择参考端口根据本端设备信息。
- 用户命令创建和删除静态聚合组。
- 动态聚合模式
- 端口的LACP协议自动使能,与对端设备交互LACP报文。
- 选择参考端口根据本端设备与对端设备交互信息。
- 用户命令创建和删除动态聚合组。