链路聚合原理与配置
链路聚合
链路聚合:通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。
链路聚合出现的原因:
-
网络规模不断扩大使得用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。
-
采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口,从而从达到增加链路带宽的目的,而不是采用硬件升级的方式。在实现增大带宽目的的同时,链路聚合采用备份链路的机制,可以有效的提高设备之间链路的可靠性。(备份机制只有LACP模式下的链路聚合支持),并且捆绑为一个逻辑口的时候,只需要在逻辑口上进行配置,实际上会对在逻辑口内的链路进行批量设置,这样也不会浪费IP地址资源。
链路聚合的优点:
①升级带宽代价小,使用逻辑捆绑替代物理升级
②冗余设计,不会出现由于单点故障导致的断路
③负载分担(逐流、逐包)
Eth-Trunk概念
-
Eth-Trunk是一种将多个以太网接口捆绑成一个逻辑接口的捆绑技术。
Eth-Trunk链路聚合模式:
①手工负载分担模式
(手工负载分担模式用于设备不支持LACP模式时使用,在手工负载分担模式下,为1:1:1的状态,每条链路都进行数据转发)
②LACP模式。
(LACP模式也称为M:N模式,其中M条链路处于活动状态转发数据,N条链路处于非活动状态作为备份链路,在LACP模式下能够达到链路备份的目的,参考最大带宽实际上就是trunk口里面所有的接口带宽总和) -
Eth-Trunk可以用于二层的链路聚合,也可以用于三层的链路聚合。缺省情况下,以太网接口工作在二层模式。如果需要配置二层Eth-Trunk接口,可以通过portswitch命令将该接口切换成二层接口;如果需要配置三层Eth-Trunk接口,可以通过undo portswitch命令将该接口切换成三层接口。
LACP模式活动链路的选取
- 总流程:
①首先在设备之间选取主设备,作为主动端,主动端的作用实际上就是用来判断,将哪几条链路作为活动链路,哪几条链路作为备用链路的设备。当然出现链路失效时,哪个设备优先考虑将自己设备上的备用链路转换为活动链路,也就是以主动端作为衡量标准。
②选取完主动端之后,主动端根据参数,也就是接口的优先级判断活跃链路以及备用链路。
③被动端的链路选择实际上是根据主动端来的。
-
上图描述的场景,实际上是设备之间相连的链路数为3条,设置的最大活跃链路数为2,即2条链路处于转发状态,1条链路处于备份状态。
-
前提概述:
①在两端设备中选择系统LACP优先级较高的一端作为主动端,如果系统LACP优先级相同则选择MAC地址较小的一端作为主动端。
系统LACP优先级的值越小,则优先级越高,缺省情况下,系统LACP优先级的值为32768。
②接口LACP优先级的值越小,则优先级越高。如果接口LACP优先级相同,接口ID(接口号)小的接口被优先选为活动接口。
接口LACP优先级是为了区别同一个Eth-Trunk中的不同接口被选为活动接口的优先程度,优先级高的接口将优先被选为活动接口。 -
LACP模式的抢占机制:
①华为设备默认关闭抢占机制,如果需要打开抢占,可以执行lacp preempt enable命令使能优先级抢占功能。
②抢占时延:
LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态,这就是抢占延时。配置抢占延时是为了避免由于某些链路状态频繁变化而导致Eth-Trunk数据传输不稳定的情况。
Eth-Trunk接口负载分担
①Eth-Trunk接口进行负载分担时,可以选择IP地址或者包作为负载分担的散列依据;同时还可以设置成员接口的负载分担权重。
②Eth-Trunk接口中,某成员接口的权重值占所有成员接口负载分担权重之和的比例越大,该成员接口承担的负载就越大。
- 分担方式差异:
**华为设备负载分担指令**
①配置负载分担方式
执行命令system-view,进入系统视图。
执行命令interface eth-trunk trunk-id,进入Eth-Trunk接口视图。
执行命令load-balance { ip | packet-all },配置Eth-Trunk接口的散列依据。
缺省情况下,当Eth-Trunk接口根据IP进行散列。
说明:
①基于IP的散列算法能保证包顺序,但不能保证带宽利用率。
②基于包的散列算法能保证带宽利用率,但不能保证包的顺序。
配置负载分担权重
执行命令system-view,进入系统视图。
执行命令interface interface-type interface-number,进入以太网接口视图。
执行命令distribute-weight weight-value,配置Eth-Trunk成员接口的负载分担权重。
缺省情况下,成员接口的负载分担权重为1。