链路聚合基本原理
以太网链路聚合Eth-Trunk,简称链路聚合,通过多条物理接口捆绑成一条逻辑接口,在不进行硬件升级的情况下达到提高带宽的目的。
链路聚合基本术语/概念
- 聚合组 Link Aggregation Group,LAG: 若干条链路捆绑在一起所形成的逻辑链路。每个聚合组唯一对应着一个逻辑接口,这个逻辑接口又被称为链路聚合接口或者Eth-Trunk接口。
- 成员接口和成员链路:组成Eth-Trunk接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路
- 活动接口与活动链路:活动接口又叫选中接口,是参与数据转发的成员接口。活动接口对应的链路称为链路活动链路
- 非活动接口和非活动链路:又叫非选中接口,是不参与转发数据的成员接口。非活动接口对应的链路被称为非活动链路。
- 聚合模式:根据是否开启LACP(链路聚合控制协议),链路聚合分为手工模式和LACP模式。
- 其他概念:活动接口上限阈值和活动接口下限阈值。
- 链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口进行数据转发。
一个聚合组内要求成员接口一下参数相同:
- 接口速率
- 双工模式
- VLAN配置:接口类型都是Trunk或者Access,如果为Access接口的default VLAN需要一致,如果为Trunk接口,接口放通的VLAN、缺省VLAN需要一致。
手工模式
- 手工模式:Eth-Trunk的建立、成员接口的加入均由手动配置、双方系统之间不使用LACP进行协商。
- 正常情况下所有链路都是活动链路,该模式下所有活动链路都参与数据的转发,平均分担流量,如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。
- 当聚合的两端设备中存在一个不支持LACP协议时,可以使用手工模式。
为了使链路聚合接口正常工作,必须保证本端链路聚合接口中所有成员接口的对端接口
- 属于同一设备
- 加入同一链路聚合接口
- 设备之间没有报文互动,因此只能通过管理员人工确认。
- 设备只能通过物理层状态判断对端接口是否正常工作
LACP模式
- LACP模式:采用LACP协议的一种链路聚合模式。设备间通过链路聚合控制协议数据单元进行交互,通过协议协商确保对端是同一台设备、同一个聚合接口的成员接口。
LACPDU报文中包含设备优先级、MAC地址、接口优先级、接口号等。
系统优先级
- 两端设备所选择的活动接口数目必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端成为主动端,另一端根据主动端选择活动接口。
通过系统LACP优先级确定主动端,值越小优先级越高。
接口优先级
选出主动端后,两端都会以主动端的接口优先级来选择活动接口,优先级高的接口将优先被选为活动接口。接口LACP优先级值越小,优先级越高。
最大活动接口数
- LACP模式支持配置最大活动接口数目,当成员接口数目超过最大活动接口数目时会通过比较接口优先级、接口号选举较优的接口成为活动接口,其余的则成为备份端口,同时对应的链路分别成为活动链路、非活动链路。交换机只会从活动接口中发送、接收报文。
当活动链路中出现链路故障时,可以从非活动链路中找出一条优先级最高的链路替换故障链路,实现总体带宽不发生变化、业务的不间断转发。
负载分担
- 基于包的负载分担:在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,如果每个数据帧在不同的链路上转发,则有可能导致数据帧到达对端时间不一致,从而引发数据乱序。
基于流的负载分担:Eth-Trunk推荐采用逐流负载分担的方式,即一条相同的流负载到一条链路,这样既保证了同一数据流的数据帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。
负载分担模式
- 常见的模式有:源IP、源MAC、目的IP、目的MAC、源目IP、源目MAC。
- 业务流量中某种参数变化越是频繁,选择与此参数相关的负载分担方式就越容易实现负载均衡。
典型使用场景
- 为保证交换机之间的链路带宽以及可靠性,可以在交换机之间部署多条物理链路并使用Eth-Trunk。
- 为了提高服务器的接入带宽和可靠性,将两个或者更多的物理网卡聚合成一个网卡组,与交换机建立链路聚合。
- 堆叠系统使得两台交换机成为一台逻辑上的设备,交换机与堆叠系统通过链路聚合互联可以组建高可可靠,无环的网络。
- 防火墙双机热备组网中使用心跳线来检测对端设备的状态,为防止单端口、单链路故障导致的状态监测错误可以部署Eth-Trunk,使用Eth-Trunk作为检测状态的心跳线。
链路聚合配置
- 创建链路聚合组
[sw]interface eth-trunk trunk-id
创建Eth-Trunk接口,并进入Eth-Trunk接口视图 - 配置链路聚合模式
[sw-eth-trunk1]mode {lacp/manual load-balance}
mode lacp 配置链路聚合模式为lacp模式,mode manual-balance 配置链路聚合模式为手工模式。PS:需保持两端链路聚合模式一致 - 将接口加入链路聚合组中
[sw-g0/0/1] eth-trunk trunk-id
在接口视图下,把接口加入到Eth-Trunk中。[sw-eth-trunk1] trunkport interface-type {interface-number}
在Eth-Trunk视图中将接口加入到链路聚合组中。 - 使能允许不同速率端口加入同一Eth-Trunk接口的功能
[sw-eth-trunk1] mixed-rate link enable
缺省情况下,设备未使能允许速率端口加入同一Eth-Trunk接口功能,缺省相同速率才能加入同一聚合组。 - 配置系统LACP优先级
[sw] lacp priority priority
系统LACP优先级值越小优先级越高,缺省系统LACP优先级为32768 - 配置接口LACP优先级
[sw-g0/0/1] lacp priority priority
缺省接口lacp优先级为32768,值越小越优
只有在接口已经加入到链路聚合才可以配置该命令 - 配置最大活动接口
[sw-eth-trunk1] max active-linknumber {number}
配置时需注意保持本端和对端的最大活动接口一致,只有LACP模式支持配置最大活动接口数。 - 配置最小活动接口
[sw-eth-trunk1] least active-linknumber {number}
本端和对端设备的活动接口下限阈值可以不同,手动模式、LACP模式都支持配置最小活动接口数。
配置最小活动接口数目的是为了保证最小带宽,当前活动链路数目小于下限阈值时,Eth-Trunk接口的状态转为down。
本文章参考华为数据通信HCIA教材
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。