链路聚合
不同品牌厂商原理大致都是想通的,只是配置命令区别
链路聚合就是把多条物理线路捆绑成一条逻辑线路,来实现以下功能
作用:
1、增加带宽,由原先的一条线路变成二条以上的捆绑的逻辑线路
2、提高可靠性,多条线路捆绑,断掉其中一根不会影响通讯
3、链路负载均衡,链路上实现多条线路同时传输进行分担流量
聚合模式
截图华为
理解路由的话就很好理解,手动就是静态路由,LACP就是动态路由
手动模式:
不占用系统资源,稳定性高,配置简单
LACP模式:
能检测到捆绑组内其他线路故障,提供备链路,基于标准协议能实现一些其他需求,比如堆叠,虚拟化等
系统LACP优先级
区别设备的高低优先级,优先级高的设备拥有定义活动接口权限,低设备需要匹配高优先级(没有选择权)
接口LACP优先级
选中活动端口的优先程度
成员工作模式
活动端口(传输端口)和非活动端口(备用端口)
聚合边缘
交换机采用LACP模式,服务器未配置或者不支持LACP情况下,对方端口UP情况下,需要把端口改为转发状态,保证服务器能正常
二or三层接口聚合
区分二层接口还是三层接口,命令存在区别而已
总结:常见都是手动配置,不会占用多余接口,如果出现问题情况下不能在现场或者机房条件不好的情况下,针对一些要实现特殊功能的,那就需要考虑选择动态模式来提供线路的冗余性,一般都是需要结合zabbix来配置报警策略
负载分担方式
只要有负载分担存在就需要考虑(包括服务器)方式,也是最重要的概念,不然好事自会变成坏事
基于流的负载分担:根据源目MAC、IP、端口,区分相同流走一个线路上
基于包的负载分担:不区分数据流,数据包分担到各个线路上
交换机默认基于流转发
路由器默认基于包转发
最好是跟厂家确定,避免不必要的麻烦
数据传输过程中需要进行解包和封包过程,如果基于包的话就会对语音或一些针对延迟很高的需求上就会存在解包后数据传递到对端设备的时间延迟乱序,导致服务出现问题,尤其是udp协议
举例:1
华为手动配置链路聚合
LSW1
interface eth-trunk 0
trunkport gigabitethernet 0/0/1 to 0/0/3
很简单的配置,创建聚合逻辑接口,加入物理端口成员
LSW2
interface eth-trunk 0
trunkport gigabitethernet 0/0/1 to 0/0/2
基于后面端口的作用配置,都是要基于逻辑口eth-trunk 0来配置
负载分担方式,模拟器的路由器是不支持下面的命令
已经提示聚合口采用基于流,默认方式
配置基于什么区分流
interface Eth-Trunk 0
load-balance src-dst-ip 默认方式
这边配置还是要根据业务类型找到最稳定的方式,尽量避免经常切换,造成网络的不稳定,如果IP地址经常的改动变换,可以改为基于MAC,如果是业务上,最不会变动的是源MAC地址等等很多,主要目的是为了尽量让同一种区分的流在一条线路上稳定传输,避免频繁的切换线路
到这个阶段链路聚合已经创建好,可以通过命令查看状态
上面的可以看到,有个问题就是我第一个设备成员接口是3个,第二个设备是2个,问题就是手动配置是无法识别到同组员线路是否正常的,端口UP状态默认就是正常的,这样就会导致数据会被传递到3号接口成员那边,导致通讯出现问题
当然这里主要是说明手动配置会存在这个问题,一把情况下不可能自己配置成这样
举例2:
华为动态LACP配置链路聚合
LSW1
int Eth-Trunk 0
mode lacp-static
这里注意是需要先改模式后再加成员,不然会报错,接口需要退出聚合才能改模式**(接口下undo eth-trunk退出聚合)**
trunkport g 0/0/1 to 0/0/4
max active-linknumber 2
设定最大活动接口数
系统视图下:
lacp priority 10
修改LACP的系统优先级,设备为主动端,越小优先级越大,默认为32768
interface gigabitethernet 0/0/1
lacp priority 10
interface gigabitethernet 0/0/2
lacp priority 10
让1和2口成为活动端口,优先级高的优先
LSW2
int Eth-Trunk 0
mode lacp-static
这里注意是需要先改模式后再加成员,不然会报错,接口需要退出聚合才能改模式(接口下undo eth-trunk退出聚合)
trunkport g 0/0/1 to 0/0/3
max active-linknumber 2
最大活动接口数
从设备优先级可以不配置,使用默认的级别32768
观察现象
现象1
LSW1
可以看到接口3成员也是未选择状态,下面对端的信息也是没有的,LACP协议是能检测到链路状态情况的
现象2
LSW2
我从设备的3号口优先级改为10,从信息明显看到跟随主动端选择活动端口,而不是优先级来选择
现象3
尝试更改主设备0/0/4的接口优先级为1
结果:接口组员信息不会发生改变,只有当重启设备后才会改变,相应的从设备也会发生改变
其实结果很简单,为什么不能改完优先级立即生效,厂商考虑的前提是不能导致数据的中断,其实很多的动态路由协议也是这样的原理。
思考1:
LACP抢占问题
模拟线路中断,观察恢复后是否会抢占成为活动接口状态
结果:不用想,肯定是不会抢占,跟修改优先级一样,但是可以手动开启抢占,默认关闭
int Eth-Trunk 0
lacp preempt enable
不建议开启,这样会导致传输的数据中断,如果接口存在问题的话,会发生一会抢占一会中断情况出现
思考2:
如果配置了抢占,还需要考虑抢占时间
避免发生端口问题引起的频繁抢占和断开,导致网络传输问题
int Eth-Trunk 0
lacp preempt enable
lacp preempt delay 180 (默认30秒)
负载分担参考手动模式配置即可,配置其实很简单,但是需要考虑到好技术必然会有存在风险点的,避免风险的情况下使用才是真正要考虑到的