Eth-Trunk(链路聚合)的基本原理与配置
由于本笔记有借鉴其他博文的内容,但仅做学习使用。已在下方给出原文链接,如有侵权,请联系本人进行删除,谢谢。
随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出了越来越高的要求。在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。
采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口,来达到增加链路带宽的目的。在实现增大带宽目的的同时,链路聚合采用备份链路的机制,可以有效的提高设备之间链路的可靠性。
链路聚合应用场景
链路聚合一般部署在核心结点,以便提升整个网络的数据吞吐量。
本示例中,两台核心交换机SWA和SWB之间通过两条成员链路互相连接,通过部署链路聚合,可以确保SWA和SWB之间的链路不会产生拥塞。
在企业网络中,所有设备的流量在转发到其他网络前都会汇聚到核心层,再由核心层设备转发到其他网络,或者转发到外网。因此,在核心层设备负责数据的高速交换时,容易发生拥塞。在核心层部署链路聚合,可以提升整个网络的数据吞吐量,解决拥塞问题。
链路聚合基本原理
链路聚合能够提高链路带宽,增强网络可用性,支持负载分担。
链路聚合,就是把两台设备之间的多条物理链路聚合在一起,当做一条逻辑链路来使用。这两台设备可以是一对路由器,一对交换机,或者是一台路由器和一台交换机。一条聚合链路可以包含多条成员链路。
①链路聚合能够提高链路带宽。理论上,通过聚合几条链路,一个聚合口的带宽可以扩展为所有成员口带宽的总和,这样就有效地增加了逻辑链路的带宽。
②链路聚合为网络提供了高可靠性。配置了链路聚合之后,如果一个成员接口发生故障,该成员口的物理链路会把流量切换到另一条成员链路上。
③链路聚合还可以在一个聚合口上实现负载均衡,一个聚合口可以把流量分散到多个不同的成员口上,通过成员链路把流量发送到同一个目的地,将网络产生拥塞的可能性降到最低。
链路聚合模式
链路聚合包含两种模式:手动负载分担模式和静态LACP(Link Aggregation Control Protocol)模式。手工负载分担模式下所有活动接口都参与数据的转发,分担负载流量; LACP模式支持链路备份。
(1)手工负载分担模式
手工负载分担模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参与。该模式下所有活动链路都参与数据的转发,平均分担流量,因此称为负载分担模式。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。
适合的使用场景:当需要在两个直连设备间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工负载分担模式。
(2)静态LACP模式
静态LACP模式下,链路两端的设备相互发送LACP报文(有链路聚合控制协议的参与),协商聚合参数。协商完成后,两台设备确定活动接口和非活动接口。
在静态LACP模式中,需要手动创建一个Eth-Trunk口,并添加成员口。LACP协商选举活动接口和非活动接口。静态LACP模式也叫M:N模式。M代表活动链路,用于在负载均衡模式中转发数据。N代表非活动链路,用于冗余备份。如果一条活动链路发生故障,该链路传输的数据被切换到一条优先级最高的备份链路上,这条备份链路转变为活动状态。
Tips:两种链路聚合模式的主要区别是:在静态LACP模式中,一些链路充当备份链路。在手动负载均衡模式中,所有的成员口都处于转发状态。
数据流控制
Eth-Trunk链路两端相连的物理接口的数量、速率、双工方式、流控方式必须一致。
在一个聚合口中,聚合链路两端的物理口(即成员口)的所有参数必须一致,包括物理口的数量,传输速率,双工模式和流量控制模式。成员口可以是二层接口或三层接口。
数据流在聚合链路上传输,数据传输顺序必须保持不变。一个数据流可以看做是一组MAC地址和IP地址相同的帧(两台设备间的SSH或SFTP连接可以看做一个数据流)。如果未配置链路聚合,只是用一条物理链路来传输数据且不考虑网络异常的情况下,那么一个数据流中的帧总是能按正确的顺序到达目的地。配置了链路聚合后,多条物理链路被绑定成一条聚合链路,一个数据流中的帧通过不同的物理链路传输。如果第一个帧通过一条物理链路传输,第二个帧通过另外一条物理链路传输,这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。
为了避免这种情况的发生,Eth-Trunk采用逐流负载分担的机制,这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担,即逐流的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。
Tips:负载分担的类型主要包括以下几种,用户可以根据具体应用选择不同的负载分担类型。
①根据报文的源MAC地址进行负载分担;
②根据报文的目的MAC地址进行负载分担;
③根据报文的源IP地址进行负载分担;
④根据报文的目的IP地址进行负载分担;
⑤根据报文的源MAC地址和目的MAC地址进行负载分担;
⑥根据报文的源IP地址和目的IP地址进行负载分担;
⑦根据报文的VLAN、源物理端口等对L2、IPv4、IPv6和MPLS报文进行增强型负载分担。
手工负载分担模式配置方法
(1)二层链路聚合配置方法
命令:interface Eth-trunk <trunk-id>
配置链路聚合。
这条命令创建了一个Eth-Trunk口,并且进入该Eth-Trunk口视图。trunk-id用来唯一标识一个Eth-Trunk口,该参数的取值可以是0到63之间的任何一个整数。如果指定的Eth-Trunk口已经存在,执行interface eth-trunk命令会直接进入该Eth-Trunk口视图。
SWA的配置:
SWB的配置同SWA:
配置验证:查看链路聚合信息
命令:display interface eth-trunk <trunk-id>
可以确认两台设备间是否已经成功实现链路聚合,也可以使用这条命令收集流量统计数据,定位接口故障。
如果Eth-Trunk口处于UP状态,表明接口正常运行。如果接口处于Down状态,表明所有成员口物理层发生故障。如果管理员手动关闭端口,接口处于Administratively DOWN状态。可以通过接口状态的改变发现接口故障,所有接口正常情况下都应处于Up状态。
Tips:配置Eth-Trunk口和成员口,需要注意以下规则:
①只能删除不包含任何成员口的Eth-Trunk口。
②把成员口加入Eth-Trunk口时,二层Eth-Trunk口的成员口必须是二层接口,三层Eth-Trunk口的成员口必须是三层接口。
③一个Eth-Trunk口最多可以加入8个成员口。
④加入Eth-Trunk口的接口必须是hybrid接口(默认的接口类型)。
⑤一个Eth-Trunk口不能充当其他Eth-Trunk口的成员口。
⑥一个以太接口只能加入一个Eth-Trunk口。如果把一个以太接口加入另一个Eth-Trunk口,必须先把该以太接口从当前所属的Eth-Trunk口中删除。
⑦一个Eth-Trunk口的成员口类型必须相同。例如,一个快速以太口(FE口)和一个千兆以太口(GE口)不能加入同一个Eth-Trunk。
⑧位于不同接口板(LPU)上的以太口可以加入同一个Eth-Trunk口。如果一个对端接口直接和本端Eth-Trunk口的一个成员口相连,该对端接口也必须加入一个Eth-Trunk口。否则两端无法通信。
(2)三层链路聚合的配置方法
拓扑图与上图基本一致,但需要将二层设备交换机换成三层设备路由器。
如果要在路由器上配置三层链路聚合,需要首先创建Eth-Trunk接口,然后在Eth-Trunk逻辑口上执行undo portswitch命令,把聚合链路从二层转为三层链路。执行undo portswitch命令后,可以为Eth-Trunk逻辑口分配一个IP地址。
AR1的配置:
AR2的配置也大致相同:
配置验证:查看链路聚合信息
可以看到,两个成员接口已经被绑定到Eth-trunk 1。
静态LACP模式的配置方法
从上面的笔记我们可以知道,链路聚合模式可以分为两种:一种是通过手工配置,每条链路平均分担流量的手工负载分担模式(上面已经给出详细的配置方法),一种是通过链路之间的控制协议,确定拥有冗余备份链路(M:N模式)的静态LACP模式。接下来,我们继续介绍静态LACP模式的配置方法。
拓扑图如下所示:有两台三层设备AR1和AR2,两台设备之间连接了三条链路,现需求将这三条链路配置成链路聚合,使用静态LACP模式配置。
以AR1为例,配置静态LACP模式:
Step 1:创建Eth-Trunk接口,并指定链路聚合模式为静态LACP模式
Step 2:手动定义活动接口阈值
Step 3:配置LACP优先级
静态模式Eth-Trunk 接口建立过程如下所示:
① 两端互相发送 LACPDU 报文。
② 两端设备根据系统 LACP 优先级确定主动端。
③ 两端设备根据接口LACP 优先级确定活动接口,最终以主动端设备的活动接口确定两端的活动接口。
(1)配置系统LACP优先级
静态LACP 模式下,两端设备所选择的活动接口必须保持一致,否则链路聚合组就无法建立。而要想使两端活动接口保持一致,可以使其中一端具有更高的优先级,另一端根据高优先级的一端来选择活动接口即可。系统LACP 优先级就是为了区分两端优先级的高低(确定主动端)而配置的参数。
将AR1配置为主动端:
Tips:系统 LACP 优先级值越小优先级越高,缺省情况下系统LACP 优先级值为32768。
(2)配置接口LACP优先级
接口LACP 优先级是为了区别不同接口被选为活动接口(确定活动接口)的优先程度。
将G0/0/1和G0/0/2配置为活动接口:
Tips:接口LACP 优先级值越小优先级越高。缺省情况下接口LACP 优先级为32768。
不要忘了将G0/0/0也加入到Eth-trunk接口。其优先级为默认的32768。
Step 4:开启抢占功能
若一个活动接口发生故障而转为down状态,那么备份链路(非活动端口)会自动接管成功活动接口。默认情况下,当发生故障的接口恢复后,系统不会自动将活动接口设为原来的接口,所以我们需要配置为抢占模式,这样活动接口才会恢复成原先的那个接口。
Tips:必须两端都配置开启抢占功能才有作用。
Step 5:配置负载分担方式
如下图所示:负载分担的方式有很多种,其中dst指数据目的地,src指数据起源地。Bandwidth指链路带宽,unequal-cost指非等价负载均衡。此处不再展开讨论。
Step 6:配置验证
可以看到,目前的活动接口是GE0/0/1和GE0/0/2,若我们将其中一个接口GE0/0/1关闭,则GE0/0/0会自动接替成为活动接口。
此时,将GE0/0/1重新开启。因为之前已经配置了开启抢占的功能,且GE0/0/1的接口优先级更高,那么GE0/0/1会抢占GE0/0/0再次成为活动接口。
小结
①如果一个管理员希望将千兆以太口和百兆以太口加入同一个Eth-trunk,会发生什么?
一个快速以太口(FE口)和一个千兆以太口(GE口)不能加入同一个Eth-Trunk。如果将两个不同类型的接口加入到同一个Eth-Trunk口,设备会提示发生错误。
②哪种链路聚合方法可以使用链路备份?
只有LACP模式支持备份成员链路。如需建立备份链路,应使用LACP模式的链路聚合。
本文链接:https://www.kinber.cn/post/1855.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: