链路捆绑将多个封装相同链路层协议的接口捆绑到一起,形成一条逻辑上的数据链路。
链路捆绑的作用如下:
l 流量负载分担:出/入流量可以在多个成员接口之间分担。
l 增加带宽:链路捆绑接口的带宽是各可用成员接口带宽的总和。
提高连接可靠性:当某个成员接口出现故障时,流量会自动切换到其他可用的成员接口上,从而提高整个捆绑链路的连接可靠性。
捆绑接口是一个逻辑接口。一个捆绑接口对应一个捆绑。
捆绑是一组接口的集合。捆绑是随着捆绑接口的创建而自动生成的,其编号与捆绑接口编号相同。
加入捆绑后的接口称为成员接口。
目前,只有POS接口和Serial接口可以加入捆绑,并且加入捆绑的成员接口的链路层协议类型必须是HDLC(High-level Data Link Control,高级数据链路控制)。
成员接口有下列4种状态:
l 初始状态:成员接口的链路层协议处于down状态。
l 协商状态:成员接口的链路层协议处于up状态,但是成员接口不满足选中条件。
l 就绪状态:成员接口的链路层协议处于up状态,且成员接口满足选中条件,但由于最多选中成员接口数目/最少选中成员接口数目/最小激活带宽的限制,使得该成员接口没有被选中,那么该成员接口将处于就绪状态。
l 选中状态:成员接口的链路层协议处于up状态,且成员接口满足选中条件,处于选中状态。只有处于此状态的成员接口才能转发流量。
关于如何确定成员接口的状态,将在“链路捆绑的工作机制”中详细介绍。
成员接口状态的确定原则如下:
(1) 链路层协议处于down状态的成员接口处于初始状态。
(2) 链路层协议处于up状态的成员接口处于协商状态。
(3) 处于协商状态的成员接口经过下面的选择过程可能变为选中状态或就绪状态。根据设备是否允许不同速率的成员接口同时被选中,选择过程分为两种:
l 如果设备不允许不同速率的成员接口同时被选中,则选出速率/波特率最大的成员接口。如果选出的成员接口有M个(其余没有被选出的速率/波特率小的成员接口仍处于协商状态),又分两种情况:① 如果设备没有限制最多选中成员接口数目,则这M个成员接口均处于选中状态。② 如果设备限制最多选中成员接口数目为N,当M<=N时,这M个成员接口均处于选中状态;当M>N时,依次按照成员接口的捆绑优先级和接口索引号来为这些成员接口进行排序(捆绑优先级高的排在前面,接口索引号小的排在前面),排在前N个的成员接口将处于选中状态,排在后面的(M-N)个成员接口将处于就绪状态。
l 如果设备允许不同速率的成员接口同时被选中,也分两种情况:① 如果设备没有限制最多选中成员接口数目,则所有处于协商状态的成员接口(假设接口数为M)均变为选中状态。② 如果设备限制最多选中成员接口数目为N,当M<=N时,这M个成员接口均处于选中状态;当M>N时,依次按照成员接口的速率/波特率、捆绑优先级和接口索引号来为这些成员接口进行排序(速率/波特率大的排在前面、捆绑优先级高的排在前面,接口索引号小的排在前面),排在前N个的成员接口将处于选中状态,排在后面的(M-N)个成员接口将处于就绪状态。
(4) 假设满足上述选中原则的成员接口有P个,而设备限制的最少选中成员接口数目为Q,当P<Q时,这P个成员接口都不会被选中,将处于就绪状态;或者,当这P个成员接口的总带宽小于配置的最小激活带宽时,这P个成员接口也都不会被选中,也将处于就绪状态。
如果捆绑中没有处于选中状态的成员接口,则捆绑接口将处于down状态,不能转发流量;只有捆绑中有处于选中状态的成员接口,捆绑接口才会处于up状态,才能进行流量转发。捆绑的带宽是所有处于选中状态的成员接口的带宽之和。
捆绑是通过选中成员接口来转发流量的。当捆绑中存在多个选中成员接口时,设备会根据负载分担方式来选择某些选中成员接口发送流量。负载分担方式分为逐流负载分担和逐包负载分担两种,原理如下:
l 逐流负载分担:通过五元组(源IP地址、目的IP地址、协议号、源端口、目的端口)将报文分成不同的流,同一条流的报文将在同一个选中成员接口上发送。
l 逐包负载分担:以报文为单位,轮流从所有选中成员接口中选择接口发送报文。