产生背景
随着网络规模的扩大,用户对骨干链路的带宽和可靠性提出了越来越高的要求。
在传统技术中,常用更换高速率的接口板或者更换高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。
采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口,来达到增加链路带宽的目的。在实现增大带宽的同时,链路聚合采用备份链路的机制,可以有效的提高设备之间链路的可靠性。
应用场景
在企业网络中,所有设备的流量再转发到其他网络前都会汇聚到核心层,再由核心区设备转发到其他网络,或者转发到外网。
所以,在核心层设备负责数据的高速交换时,容易发生拥塞。在核心层部署链路聚合,可以提升整个网络的数据吞吐量,解决拥塞问题。
如下:两台交换机SWA和SWB之间通过两条成员链路相互连接,通过部署链路聚合,可以确保SWA和SWB之间的链路不会产生拥塞。
链路聚合
解释
1.链路聚合就是把两台设备之间的多条物理链路聚合在一起,当作一条逻辑链路来使用。
这两台设备可以是一对路由器、一对交换机、或者是一台路由器和一台交换机。一条聚合链路可以包含多条成员链路,(注:在ARG3系列路由器和X7系列交换机上默认最多为8条)
2.链路聚合能够提高链路带宽。理论上,通过聚合几条链路,一个聚合口的带宽可以扩展为所有成员口带宽的总和,这样就有效地增加了逻辑链路的带宽。
3.链路聚合为网络提供了该可靠性。配置了链路聚合后,如果一个成员接口发生故障时,该成员接口的物理链路会把流量切换到另一条成员链路上。
4.链路聚合还可以在一个聚合口上实现负载均衡,一个聚合口可以把流量分散的多个不同的成员口上,通过成员链路把流量发送到一个目的地,将网络产生的拥塞的可能性降到最低。
链路聚合技术的的基本原理
链路聚合模式
链路聚合模式包含两种模式:手工负载均衡模式和静态LACP(Link Aggreation Control Protocol)模式
手工负载分担模式
Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参与。该模式下所有活动链路都参与数据的转发,平均分担流量,因此称为负载分担模式。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。
当需要在两个直连设备之间提供一个较大的链路带宽而设备不支持LACP协议时,可以采用手工负载分担模式。
ARG3系列路由器和X7系列交换机可以基于目的MAC地址,源MAC地址,或者基于源MAC地址和目的MAC地址,源IP地址,目的IP地址,或者基于源IP地址和目的IP地址进行负载均衡。
在静态LACP模式
链路两端的设备相互发送LACP报文,协商聚合参数。协商完成后,两台设备确定活动接口和非活动接口。在静态LACP模式中,需要手动创建一个Eth-Trunk口,并添加成员口。
LACP协商选举活动接口和非活动接口。静态模式也叫M:N模式。M代表活动成员链路,用于在负载均衡中转发数据。N代表非活动链路,用于冗余备份。
如果一条活动链路发生故障,该链路传输的数据被切换到一条优先级高的备份链路上,这条备份链路转变为活动状态。
两种链路聚合模式的主要区别是:在静态LACP模式中,一些链路充当备份链路;在手工负载均衡模式中,所以成员都处于转发状态。
数据流控制
1.在一个聚合口中,聚合链路两端的物理接口(即成员口)的所有参数必须一致,包括物理口的数量,传输速率,双工模式和流量控制模式。所有成员可以是二层接口或三层接口。
2.数据流在聚合链路上传输,数据顺序必须保持不变。一个数据六块可以看作是一组MAC地址和IP地址相同的帧。
eg:两台设备的SSH或SFTP连接可以看作一个一个数据流。如果未配置链路聚合,只是用一条物理链路来传输数据,那么一个数据流中的帧总能按正确的顺序到达目的地。
配置了链路聚合后,多条物理链路被绑成一条聚合链路,一个数据中的帧通过不同的物理链路传输。
如果第一个帧通过一条物理链路传输,第二个帧通过另一条五路链路传输,这样一来,同一数据流的第二个数据帧就可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。
3.为了避免这种情况发生,Etn-Trunk采用逐流负载分担的机制,这种该机制把数据帧的地址通过HASH算法生成HASH-KEY值。
然后,根据这个数值在Etn-Trunk转发表中寻找对的出接口,不同的MAC或IP地址,HASH得到的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。逐流负载分担能保证报的顺序,但不能保证带宽利用率。
注:负载分担的类型主要包括以下几种,用户可以根据具体应用选择不同的负载分担类型
链路聚合的基本配置
二层配置:
注意:
本例中,通过执行interface Eth-trunk 命令配置链路聚合。这条命令创建了-个Eth-Trunk口, 并且进入该Eth-Trunk口视图。trunk_ia用来唯- 标识一个Eth-Trunk, 该参数的取值可以是0到63之间的任何-一个整数。
如果指定的Eth- Trunk口已经存在,执行interface eth-trunk命令 会直接进入该Eth-Trunk口视图。
配置Eth-Trunk口和成员口,需要注意以下规则:
1. 只能删除不包含任何成员口的Eth-Trunk口。
2. 把接口加入Eth-Trunk口时,二层Eth-Trunk口的成员 口必须是二层接口,三层Eth-Trunk口的成员口必须是三层接口。
3. 一个Eth-Trunk口最多可以加入8个成员口。
4.加入Eth-Trunk口的接口必须是hybrid接口 (默认的接口类型)。
5.一个Eth-Trunk口不能充当其他Eth-Trunk口的成员口。
6.一个以太接口只能加入一个Eth-Trunk口。如果把一个以太接口加入另一个Eth- Trunk口,必须先把该以太接口从当前所属的Eth- Trunk口中删除。
7.一个Eth-TrunkO的成员口类型必须相同。例如,一个快速以太口(FEO) 和一个千兆以太口(GEO)不能加入同一个Eth-Trunk。
8.位于不同接口板(LPU)上的以太口可以加入同一个Eh-Tunk口。如果一个对端接口直接和本端Eth-Trunk口的一个成员口相连,该对端接口也必须加入一个Eth-Trunk口。否则两端无法通信。
9.如果成员口的速率不同,速率较低的接口可能会拥塞,报文可能会被丢弃。
10.接口加入Eth-Trunk口后, Eth-Trunk口学习MAC地址,成员口不再学习。
查看链路聚合信息:
执行(display interface eth-trunk)
如果Etn-trunk口处于UP状态,表明接口处于Down状态,表明所有成员接口物理层发生故障。如果管理员手动关闭端口,接口处于Administratively Down状态。
可以通过接口状态的改变发现接口故障,所有接口正常情况下都应处于UP状态。
三层连理聚合配置:
注:
如果要在路由器上配置三层链路聚合,需要首先创建Eth-Trunk接口,然后在Etn-Trunk逻辑口上执行undo portswitch命令,把聚合链路从二层转化为三层链路,执行undo portswitch命令后,可以为Eth-trunk逻辑口分配一个IP地址
查看链路聚合信息:
执行(display interface eth-trunk)
如果Etn-trunk口处于UP状态,表明接口处于Down状态,表明所有成员接口物理层发生故障。如果管理员手动关闭端口,接口处于Administratively Down状态。可以通过接口状态的改变发现接口故障,所有接口正常情况下都应处于UP状态。
链路聚合协议
1.链路聚合协议用于建立和维持链路聚合的协商
2.协议只用于动态链路聚合,静态链路聚合不需要协议(Pagp是思科私有的链路聚合协议)
3.LACP是IEEE 802.3ad标准链路聚合协议
LACP适用场景
LACP , 基于IEEE802.3ad标准的LACP(Link Aggregation Control Protocol,链路汇聚控制协议)是一种实现连理聚合动态汇聚的协议。
1,在带宽比肩紧张的情况下,可以使用逻辑聚合可以扩展带宽到原链路的n倍
2.在需要对链路进行动态备份的情况下,可以通过配置链路聚合实现同一聚合组各个成员端口之间彼此动态备份
LACP,协议通过LACPDU((Link Aggregation Control Protocol Data Unit,链路汇聚控制协议数据单元)与对端交互信息
LACP协商模式:
1.动态汇聚端口在启动LACP协议后,其管理KEY缺省为零。
2.静态汇聚端口在启用LACP后,端口的管理key与汇聚组ID相同。
查看链路聚合配置:
原文标题:高可用技术——链路聚合
文章出处:【微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !