trunk聚合
Eth-Trunk又叫以太网链路聚合Eth-Trunk,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路。达到增加链路带宽的目的。在实现增大带宽目的的同时,Eth-Trunk采用备份链路的机制,可以有效的提高设备之间链路的可靠性。每个聚合组唯一对应着一个逻辑接口,这个逻辑接口称之为链路聚合接口或Eth-Trunk接口。链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。
两种模式
根据是否启用链路聚合控制协议LACP(Link Aggregation Control Protocol),Eth-trunk的模式分为手工模式和LACP模式。
- 手工模式Eth-Trunk
手工模式Eth-Trunk,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。当需要在两个直连设备之间提供一个较大的链路带宽,而其中一端或两端设备都不支持LACP协议时,可以配置手工模式Eth-Trunk。
DeviceA与DeviceB之间创建Eth-Trunk,手工模式下三条活动链路都参与数据转发并分担流量。当一条链路故障时,故障链路无法转发数据,链路聚合组自动在剩余的两条活动链路中分担流量。
- LACP模式Eth-Trunk
LACP是基于IEEE802.3ad标准的一种实现链路动态聚合与解聚合的协议,以供设备根据自身配置自动形成聚合链路并启动聚合链路收发数据,LACP模式就是采用LACP的一种链路聚合模式。聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整链路聚合。
DeviceA与DeviceB之间创建Eth-Trunk,需要将DeviceA上的四个接口与DeviceB捆绑成一个Eth-Trunk。由于错将DeviceA上的一个接口与DeviceC相连,这将会导致DeviceA向DeviceB传输数据时可能会将本应该发到DeviceB的数据发送到DeviceC上。而手工模式的Eth-Trunk不能及时检测到此故障。
如果在DeviceA和DeviceB上都启用LACP协议,经过协商后,Eth-Trunk就会选择正确连接的链路作为活动链路来转发数据,从而DeviceA发送的数据能够正确到达DeviceB。
接口LACP优先级是为了区别同一个Eth-Trunk中的不同接口被选为活动接口的优先程度,优先级高的接口将优先被选为活动接口。
注意:只通过比较主动端的各接口接口优先级确定活跃链路
LACP抢占机制
如上图:若LACP开启抢占机制,假如一条主链路发生故障,此时备用链路就会被启用,进行数据转发。假设过了一段时间之后发生故障的主链路回复正常,则端口开始抢占,在抢占延时超时后,成为活跃端口,进入转发状态。备份链路不再转发数据。
为什么要设置抢占延时:
避免由于某些原因链路状态频繁变化而导致的链路聚合数据传输不稳定。(主动链路恢复后,立马抢占,然后突然又故障,有恢复。在恢复和故障之间来回徘徊)
注意:
若未开启抢占机制,则活跃端口故障恢复之后,不抢占,不会重新成为活跃端口,而是成为备份端口。
若希望手动修改端口优先级来指定原本优先级低的端口成为活跃端口,则需要先开启抢占功能,不然调高了优先级也不会切换成活跃端口。
配置方法
- 手工负载分担模式
当两台设备中至少有一台设备不支持LACP协议时,我们可以使用手工负载分担模式来增加设备间的带宽以及可靠性。
在手工负载模式下,加入Eth-Trunk的链路都进行数据的转发。
手工负载分担模式配置
创建手工负载分担模式Eth-Trunk:
在系统视图中执行命令interface Eth-Trunk trunk-id,创建Eth-Trunk接口并进入Eth-Trunk接口视图。
执行命令portswitch,将Eth-Trunk接口切换为二层模式。(默认为二层模式)
执行命令undo portswitch,将Eth-Trunk接口切换为三层模式。
配置Eth-Trunk的工作模式:mode manual load-balance配置当前Eth-Trunk工作模式为手工负载分担模式。 (默认为手工负载分担模式)
Eth-Trunk中加入成员接口:
方法一:在Eth-Trunk视图下,
执行trunkport interface-type { interface-number1 [ to interface-number2 ] } &<1-16>命令,批量增加成员接口。
执行trunkport interface-type interface-number命令,增加一个成员接口。
在成员接口视图下:
进入想要加入Eth-Trunk的接口视图,执行eth-trunk trunk-id命令,将当前接口加入Eth-Trunk。
- 创建LACP模式Eth-Trunk
执行interface eth-trunk trunk-id命令,创建Eth-Trunk。
执行命令portswitch,将Eth-Trunk接口切换为二层模式。(默认为二层)
配置Eth-Trunk的工作模式:
在Eth-Trunk接口视图。执行命令mode lacp-static,配置Eth-Trunk的工作模式为LACP模式。
Eth-Trunk接口负载分担
Eth-Trunk接口进行负载分担时,可以选择IP地址或者包作为负载分担的散列依据;同时还可以设置成员接口的负载分担权重。
接口负载分担 | 特点 |
---|---|
逐流负载分担 | 当报文的源IP地址、目的IP地址都相同或者报文的源MAC地址、目的MAC地址都相同时,这些报文从同一条成员链路上通过。 |
逐包负载分担 | 以报文为单位分别从不同的成员链路上发送。 |
两种散列依据造成的问题:
假如主机A向主机B发送一个数据比较大的100个包。
逐流负载分担的处理方式是:这100个包都从一条物理链路发送。这时可能会造成一条物理链路负载较大,一条物理链路空闲。
逐包负载分担的处理方式是:可能第1,3,5…个包从一条物理链路发送;第2,4,6…个包从另一条物理链路发送。此时数据包可能不能按顺序到达目的端,可能会造成数据乱码。
配置命令
进入Eth-Trunk接口视图,执行命令load-balance { ip | packet-all },配置Eth-Trunk接口的散列依据。(缺省情况下,当Eth-Trunk接口根据IP进行散列。)
负载分担权重
配置成员接口的负载分担权重,某成员接口的权重值占所有成员接口负载分担权重之和的比例越大,该成员接口承担的负载就越大。
- 配置命令
进入以太网接口视图。执行命令distribute-weight weight-value,配置Eth-Trunk成员接口的负载分担权重。(缺省情况下,成员接口的负载分担权重为1。)
————————————————
原文链接:https://blog.csdn.net/qq_46254436/article/details/105140125