LACP链路聚合

链路聚合包含两种模式:手动负载均衡模式和LACP(Link AggregationControl Protocol)模式。

手工负载分担模式:Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参与。该模式下所有活动链路都参与数据的转发,平均分担流量,因此称为负载分担模式。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。当需要在两个直连设备间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工负载分担模式。ARG3系列路由器和X7系列交换机可以基于目的MAC地址,源MAC地址,或者基于源MAC地址和目的MAC地址,源IP地址,目的IP地址,或者基于源IP地址和目的IP地址进行负载均衡。

LACP模式:链路两端的设备相互发送LACP报文,协商聚合参数。协商完成后,两台设备确定活动接口和非活动接口。在LACP模式中,需要手动创建一个Eth-Trunk口,并添加成员口。LACP协商选举活动接口和非活动接口。LACP模式也叫M:N模式。M代表活动成员链路,用于在负载均衡模式中转发数据。N代表非活动链路,用于冗余备份。如果一条活动链路发生故障,该链路传输的数据被切换到一条优先级最高的备份链路上,这条备份链路转变为活动状态。

两种链路聚合模式的主要区别是:在LACP模式中,一些链路充当备份链路。在手动负载均衡模式中,所有的成员口都处于转发状态。

数据流在聚合链路上传输,数据顺序必须保持不变。配置了链路聚合后,多条物理链路被绑定成一条聚合链路,一个数据流中的帧通过不同的物理链路传输。如果第一个帧通过一条物理链路传输,第二个帧通过另外一条物理链路传输,这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。

为了避免这种情况的发生,Eth-Trunk采用逐流负载分担的机制,这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担,即逐流的负载分担。逐流负载分担能保证包的顺

序,但不能保证带宽利用率。

负载分担的类型主要包括以下几种,用户可以根据具体应用选择不同的负载分担类型。

  1. 根据报文的源MAC地址进行负载分担;

  2. 根据报文的目的MAC地址进行负载分担;

  3. 根据报文的源IP地址进行负载分担;

  4. 根据报文的目的IP地址进行负载分担;

  5. 根据报文的源MAC地址和目的MAC地址进行负载分担;

  6. 根据报文的源IP地址和目的IP地址进行负载分担;

  7. 根据报文的VLAN、源物理端口等对L2、IPv4、IPv6和MPLS报文进行增强型负载分担。

    配置LACP模式的链路聚合示例(交换机之间直连)

    SwitchA的配置文件

    sysname SwitchA

    vlan batch 10 20

    lacp priority 100

    interface Eth-Trunk1
    port link-type trunk
    port trunk allow-pass vlan 10 20
    mode lacp
    max active-linknumber 2

    interface GigabitEthernet1/0/1
    eth-trunk 1
    lacp priority 100

    interface GigabitEthernet1/0/2
    eth-trunk 1
    lacp priority 100

    interface GigabitEthernet1/0/3
    eth-trunk 1

    return

    •SwitchB的配置文件

    sysname SwitchB

    vlan batch 10 20

    interface Eth-Trunk1
    port link-type trunk
    port trunk allow-pass vlan 10 20
    mode lacp

    interface GigabitEthernet1/0/1
    eth-trunk 1

    interface GigabitEthernet1/0/2
    eth-trunk 1

    interface GigabitEthernet1/0/3
    eth-trunk 1

    return

配置跨设备的LACP模式的链路聚合示例

复制代码
•CE1的配置文件
#
sysname CE1
#
vlan batch 10
#
interface Eth-Trunk20
 port link-type trunk
 port trunk allow-pass vlan 10
 mode lacp
#
interface GigabitEthernet1/0/1
 eth-trunk 20
#
interface GigabitEthernet1/0/2
 eth-trunk 20
#
interface GigabitEthernet1/0/3
 eth-trunk 20
#
interface GigabitEthernet1/0/4
 eth-trunk 20
#
return       


•PE1的配置文件
#
sysname PE1
#
vlan batch 100
#
lacp e-trunk system-id 00e0-fc00-0000
lacp e-trunk priority 1
#
bfd
#
interface Vlanif100
 ip address 10.1.1.1 255.255.255.0
#
e-trunk 1
 priority 10
 peer-address 2.2.2.9 source-address 1.1.1.9
 timer hello 9
 timer hold-on-failure multiplier 3
 e-trunk track bfd-session session-name hello1
#
interface Eth-Trunk10
 port link-type trunk
 mode lacp
 e-trunk 1
#
interface GigabitEthernet1/0/1
 eth-trunk 10
#
interface GigabitEthernet1/0/2
 eth-trunk 10
#
interface GigabitEthernet1/0/3
 port link-type trunk
 port trunk allow-pass vlan 100
#
interface LoopBack1
 ip address 1.1.1.9 255.255.255.255
#
bfd hello1 bind peer-ip 2.2.2.9 source-ip 1.1.1.9
 discriminator local 1
 discriminator remote 2
 commit
#
ospf 1
 area 0.0.0.0
  network 1.1.1.9 0.0.0.0
  network 10.1.1.0 0.0.0.255
#
return


•PE2的配置文件
#
sysname PE2
#
vlan batch 200
#
lacp e-trunk system-id 00e0-fc00-0000
lacp e-trunk priority 1
#
bfd
#
interface Vlanif200
 ip address 10.1.2.1 255.255.255.0
#
e-trunk 1
 priority 20
 peer-address 1.1.1.9 source-address 2.2.2.9
 timer hello 9
 timer hold-on-failure multiplier 3
 e-trunk track bfd-session session-name hello2
#
interface Eth-Trunk10
 port link-type trunk
 mode lacp
 e-trunk 1
#
interface GigabitEthernet1/0/1
 eth-trunk 10
#
interface GigabitEthernet1/0/2
 eth-trunk 10
#
interface GigabitEthernet1/0/3
 port link-type trunk
 port trunk allow-pass vlan 200
#
interface LoopBack1
 ip address 2.2.2.9 255.255.255.255
#
bfd hello2 bind peer-ip 1.1.1.9 source-ip 2.2.2.9
 discriminator local 2
 discriminator remote 1
 commit
#
ospf 1
 area 0.0.0.0
  network 2.2.2.9 0.0.0.0
  network 10.1.2.0 0.0.0.255
#
return


•PE3的配置文件
#
sysname PE3
#
vlan batch 100 200
#
interface Vlanif100
 ip address 10.1.1.2 255.255.255.0
#
interface Vlanif200
 ip address 10.1.2.2 255.255.255.0
#
interface GigabitEthernet1/0/1
 port link-type trunk
 port trunk allow-pass vlan 100
#
interface GigabitEthernet1/0/2
 port link-type trunk
 port trunk allow-pass vlan 200
#
interface LoopBack1
 ip address 3.3.3.9 255.255.255.255
#
ospf 1
 area 0.0.0.0
  network 3.3.3.9 0.0.0.0
  network 10.1.1.0 0.0.0.255
  network 10.1.2.0 0.0.0.255
#
return
相关推荐
Piko6148 小时前
H3C IRF2 堆叠实战:打造高可靠核心交换网络
运维·网络·笔记
茯苓gao11 小时前
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解
网络·嵌入式硬件·学习·信息与通信
万联WANFLOW11 小时前
SD-WAN 控制平面高可用怎么做?SDWAN 控制器挂了,全网会发生什么
运维·网络·分布式·架构
酱学编程12 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
风行南方13 小时前
密码学之分组密码
网络·密码学
艾莉丝努力练剑14 小时前
OpenCode AI 编程:Ubuntu 24.04 环境安装与使用指南
linux·服务器·网络·人工智能·tcp/ip·ubuntu
谷雪_65815 小时前
Linux 网络命名空间:从内核原理到企业级容器网络架构全景实战
linux·网络·架构
liulilittle15 小时前
KCC 拥塞控制算法缺陷修复记录(26/07/05)
网络·tcp/ip·计算机网络·c·信息与通信·tcp·通信
Tian_Hang15 小时前
Eclipse Ditto 的权限策略
java·服务器·前端·网络·ide·ubuntu·eclipse
ai生成式引擎优化技术16 小时前
从知识连接到智能组织:WSaiOS认知网络的理论框架与系统设计摘要
网络·python·plotly·django·pygame