链路聚合背景:
- 拓扑组网需要冗余,增加冗余容易出现环路,所以部署STP协议破除环路
- 为网络增加冗余是需要的一部分
- 但网络为了符合用户增长的流量,需要增加带宽
- 为了节省网络组建的成本,增加带宽通过添加链路来实现
- 添加链路相当于增加了链路冗余,会被STP阻塞掉
- 以太网链路聚合Eth-Trunk:简称链路聚合,通过将多个物理接口捆绑成为一个逻辑接口,可以在不进行硬件升级的条件下,达到增加链路带宽的目的。
- 链路聚合基本术语/概念
- 链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。
- 一个聚合组内要求成员接口以下参数相同:
- 接口速率
- 双工模式
- VLAN配置:接口类型都是Trunk或者Access,如果为Access接口的default VLAN需要一致,如果为Trunk接口,接口放通的VLAN、缺省VLAN需要一致。
- 链路聚合:Eth-trunk,通过虚拟化(多虚一)将多条物理链路 逻辑上 变为一条链路
- 逻辑上的链路是STP计算的链路(即STP不会在计算物理链路)
- Eth-trunk设计了相应的机制防止多条物理链路出现环路-----(被虚拟的这几条链路他们的数据不能相互转发)
在一个链路捆绑组中的物理接口1 收到的数据,不会再从链路捆绑组中的其他物理接口转发
- [S1]interface Eth-Trunk 1 创建一个聚合组
- [S1-Eth-Trunk1]mode manual load-balance 设置工作模式为手工静态(默认的模式)
- [S1-Eth-Trunk1]trunkport GigabitEthernet 0/0/2 0/0/3 将物理接口添加进聚合组
- [S1]interface GigabitEthernet 0/0/1
- [S1-GigabitEthernet0/0/1]eth-trunk 1 将物理接口添加进聚合组
- [S1]display interface Eth-Trunk 1 查看eth-trunk接口的相关信息 上面是本端下面是对端的
- 聚合组(Link Aggregation Group,LAG):若干条链路捆绑在一起所形成的的逻辑链路。每个聚合组唯一对应着一个逻辑接口,这个逻辑接口又被称为链路聚合接口或Eth-Trunk接口。
- 成员接口和成员链路:组成Eth-Trunk接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路。
- 活动接口和活动链路:活动接口又叫选中(Selected)接口,是参与数据转发的成员接口。活动接口对应的链路被称为活动链路(Active link)
- 非活动接口和非活动链路:又叫非选中(Unselected)接口,是不参与转发数据的成员接口。非活动接口对应的链路被称为非活动链路(Inactive link)。
- 聚合模式 :根据是否开启LACP(Link Aggregation Control Protocol,链路聚合控制协议),链路聚合可以分为手工模式和LACP模式。
- 其他概念:活动接口上限阈值和活动接口下限阈值。
手工模式
- 手工模式: Eth-Trunk的建立、成员接口的加入均由手动配置,双方系统之间不使用LACP进行协商。
- 正常情况下所有链路都是活动链路,该模式下所有活动链路都参与数据的转发,平均分担流量,如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。
- 当聚合的两端设备中存在一个不支持LACP协议时,可以使用手工模式。
手工模式的Eth-trunk:
1.链路两端不能相互检测,容易造成单通问题(一边认为我是正常一边不知道)
1.没有报文检测机制
2.只要接口是UP状态,就认为对方可达
Dis cu int 查看接口的eth
Dis stp b查看stp
LACP模式
链路聚合(LACP模式):
1.通过交互LACPDU检测链路两端的接口状态
2.还可以设置备份链路
- 链路聚合的一端要求是同速率、同带宽的链路
- 链路聚合的两端 不是同速率、同带宽的链路 (一端为百兆链路、一端为千兆链路) 向下兼容
- 链路聚合的两端 聚合组号没有一致性要求
- [S1]interface Eth-Trunk 1 设置的聚合组号 链路两端是没有一致性要求的
- [S1-Eth-Trunk1]mode lacp-static 设置链路聚合的模式为LACP
- [S1-Eth-Trunk1]trunkport GigabitEthernet 0/0/1 0/0/2 0/0/3
- [S2-Eth-Trunk1]max active-linknumber 2 设置最大活跃链路为2(默认为8)(不能指定是哪个接口)
- [S2-Eth-Trunk1]load-balance 设置流量负载分担的方式
一端配置了lacp聚合另一端没有配置就是down状态下STP不会计算LACP聚合链路,两端都配置才会进入UP状态
在聚合组中如何确定接口成为备份接口?
- 每一个接口都有对应的LACP接口优先级 优先级值越小越优先
- 优先级值相等,则比较接口编号,越小越优先
- [S2-GigabitEthernet0/0/1]lacp priority <0-65535> 默认值为32768
- 如果已经确定了备份链路,则优先级没有比较的意义
在聚合链路的两端,需要选举一个主动端设备来确定备份接口的选择
被动端使用主动端选举的结果(备份两边接口不一样怎么办?)
如果选举主动端?
- 每一个运行了LACP的交换机都会存在 LACP系统优先级,优先级值越小越优先
- 优先级值相同,则比较MAC地址,越小越优先
- [S2]lacp priority <0-65535> 默认值为32768
链路聚合的成员接口都会通告LACPDU (不管是活跃链路还是非活跃链路)
在多个活跃的成员接口中,会随机选择一个接口发送STP报文
数据的负载分担:
1.基于包的:例:来100个包 有三条链路每条链路30个包
2.基于流的(华为设备默认基于流转发)例:第一个流走链路1 第二个2------
负载分担模式
- Eth-trunk支持基于报文的IP地址或MAC地址来进行负载分担,可以配置不同的模式(本地有效,对出方向报文生效)将数据流分担到不同的成员接口上。
- 常见的模式有:源IP、源MAC、目的IP、目的MAC、源目IP、源目MAC。
- 实际业务中用户需要根据业务流量特征选择配置合适的负载分担方式。业务流量中某种参数变化越频繁,选择与此参数相关的负载分担方式就越容易实现负载均衡。
- [S2-Eth-Trunk1]load-balance 设置流量负载分担的方式
同组报文抓包
最大活动口数
- LACP模式支持配置最大活动接口数目,当成员接口数目超过最大活动接口数目时会通过比较接口优先级、接口号选举出较优的接口成为活动接口,其余的则成为备份端口(非活动接口),同时对应的链路分别成为活动链路、非活动链路。交换机只会从活动接口中发送、接收报文。
- 当活动链路中出现链路故障时,可以从非活动链路中找出一条优先级最高(接口优先级、接口编号比较)的链路替换故障链路,实现总体带宽不发生变化、业务的不间断转发。
配置命令介绍
接口优先级
- LACP模式下,两端设备所选择的活动接口数目必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端成为主动端,另一端(被动端)根据主动端选择活动接口。
- 通过系统LACP优先级确定主动端,值越小优先级越高。
接口优先级
- 选出主动端后,两端都会以主动端的接口优先级来选择活动接口,优先级高的接口将优先被选为活动接口。接口LACP优先级值越小,优先级越高。
手工模式链路聚合配置举例
LACP模式链路聚合配置举例