路由器链路聚合技术(Eth-Trunk、Ip-Trunk)

路由器链路聚合技术(Eth-Trunk、Ip-Trunk)


  随着网络规模不断扩大,运营商对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口实现增大链路带宽的目的。在实现增大带宽目的的同时,链路聚合采用备份链路的机制,可以有效的提高设备之间链路的可靠性。


  一、链路聚合技术(Eth-Trunk、Ip-Trunk)的概念


  链路聚合是将-组物理接口捆绑在一起作为一个逻辑接口来增加带宽及可靠性的方法。例如两台路由器通过3个100M以太网接口直连,将这3个以太网接口捆绑,可形成一个300M带宽的Eth-Trunk逻辑接口,这就是链路聚合技术。


  1、链路聚合组


  将若干条物理链路捆绑在一起所形成的逻辑链路称之为链路聚合组(LAG)或者Trunk.如果这些被捆绑链路都是以太网链路,该聚合组被称为以太网链路聚合组,简写为Eth-Trunk,该聚合组接口称之为Eth-Trunk接口;如果这些被捆绑链路都是POS链路,该聚合组被称为POS链路聚合组,简写为IP-Trunk.该聚合组接口称之为IP-Trunk接口。


  2、成员接口


  组成Trunk的各个接口称之为成员接口。例如:Eth-Trunk接口可以作为普通的以太网接口来使用,它与普通以太网接口的差别只在于:转发的时候Eth-Trunk需要从众多成员接口中选择一个或多个接口来进行转发。所以,除了一些必须在物理接口下配置的特性,可以像配置普通以太网接口那样配置Eth-Trunk逻辑接口。不能把已有的Trunk成员接口再捆绑成为其它Trunk的成员。


  3、活动接口和非活动接口


  链路聚合存在活动接口和非活动接口两种。转发数据的接口称为活动接口,而不转发数据的接口称为非活动接口。活动接口对应的链路称为活动链路,非活动接口对应的链路称为非活动链路。


  在链路聚合中为了提高链路的可靠性,引入了备份链路的机制。而这些备份链路对应的接口通常情况下担当了非活动接口的角色,只有当前活动接口出现故障时,备份的接口才可以由非活动接口转变为活动接口。


  4、活动接口数上限阈值


  在Eth-Trunk中,如果配置了活动接口数上限阈值,当活动接口数达到这个值后,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目。


  5、活动接口数下限阈值


  设置活动接口数下限阈值主要目的是保证Eth-Trunk链路的带宽。防止由于活动接口数目过少而使这些链路负载过大,出现传输数据丢包的情况。


  在Eth-Trunk中,如果配置了活动接口数下限阈值,当活动接口数目低于该值时,Eth-Trunk接口状态将变为Down,此时所有Eth-Trunk中的成员接口不再转发数据。


  6、链路聚合的分类


  链路聚合根据是否启用链路聚合控制协议分为两种类型:


  1)手工负载分担模式链路聚合


  手工负载分担模式是一种最基本的链路聚合方式,在该模式下,Eth-Trunk的建立,成员接口的加入,以及哪些接口作为活动接口完全由手工来配置,没有链路聚合控制协议的参与。该模式下所有活动接口都参与数据的转发,分担负载流量,因此称为负载分担模式。


  手工负载分担模式下所有的成员接口可以平均分担数据流量,也可以配置成员接口的权重,使部分接口分担更多的流量,实现非平均的流量分担。


  如果活动链路中出现故障链路,链路聚合组自动在剩余的活动链路中平均分担或按权重分担数据流量。


  2)LACP协议链路聚合


  LACP(Link Aggregation Control Protocol)协议链路聚合包含两种类型:


  静态LACP模式链路聚合


  静态LACP模式下,Eth-Trunk的建立,成员接口的加入,都是由手工配置完成的。但与手工负载分担模式链路聚合不同的是,该模式下LACP协议报文参与活动接口的选择。也就是说,当把一组接口加入Eth-Trunk后,这些成员接口中哪些接口作为活动接口,哪些接口作为非活动接口还需要经过LACP协议报文的协商确定。


  动态LACP模式链路聚合


  动态LACP模式下,Eth-Trunk的建立,成员接口的加入,活动接口的选择完全由LACP协议通过协商完成。这就意味着启用了动态LACP协议的两台直连设备上,不需要创建Eth-Trunk,也不需要指定哪些接口作为聚合组成员接口,两台设备会通过LACP协商自动完成链路的聚合操作。
  8、Trunk接口的约束条件


  把多条物理链路在逻辑上等同于一条逻辑链路,而又对上层数据传输透明,必须遵循一定的规则,主要有下列几条。


  1)物理接口的物理参数必须一致


  Eth-Trunk链路两端相连的物理接口数量必须一致


  Eth-Trunk链路两端相连的物理接口的速率必须一致


  Eth-Trunk链路两端相连的物理接口的双工方式必须一致


  Eth-Trunk链路两端相连的物理接口的流控方式必须一致


  2)必须保证数据的有序性


  数据流就是具有相同源MAC地址、目的MAC地址、源网络层地址、目的网络层地址以及相同的四层源和目的端口号的一组数据包。例如,两台设备之间的Telnet或FTP连接就是一个数据流。


  如果要求属于同一个数据流的二层数据帧必须按照顺序到达,在没使用Eth-Trunk接口时是可以保证的,因为两台设备之间只有一条物理连接。但如果把多条物理链路聚合起来而不采取一定的措施,这个要求就不能被保证了。因为两台设备之间有多条物理链路,如果第一个数据帧在第一条链路上传播,第二个数据帧在第二条链路上传播,这样就可能第二个数据帧比第一个数据帧先到达对端设备。


  为了避免这种数据包乱序的情况发生,在实现Eth-Trunk的时候引入了一种数据包转发机制,确保属于同一个数据流的数据帧按照发送的先后顺序到达目的地。这种机制根据MAC地址或IP地址来区分数据流,将属于同一数据流的数据帧通过同一条物理链路发送到目的地。

你可能感兴趣的:(linux,trunk)