前言

在现网中,设备间如果通过一条链路连接,如果这条链路故障了,那么设备两端的终端就不能够通信了。有什么办法可以解决该问题呢?答案是——链路聚合

链路聚合的基本原理(如何提高网络链路可靠性)(1)

本示例中,两台交换机LSW1和LSW2之间通过一条链路互相连接,如果链路故障,那么PC1和PC2则不能够通信,通过部署链路聚合,可以确保LSW1和LSW2之间的链路故障了一条,可以走另外一条链路。

假设LSW1和LSW2之间的流量很大,超过了接口的带宽1G,通过部署链路聚合,可以确保SWA和SWB之间的链路不会产生拥塞。

正文

1什么是链路聚合?

链路聚合的基本原理(如何提高网络链路可靠性)(2)

从端口的角度定义:

链路聚合(Link Aggregation)是指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负载分担方式决定数据包从哪个成员端口发送到对端的交换机。

从链路的角度定义:

链路聚合(Link Aggregation)是把两台设备之间的多条物理链路聚合在一起,当做一条逻辑链路来使用。这两台设备可以是一对路由器,一对交换机,或者是一台路由器和一台交换机。一条聚合链路可以包含多条成员链路,默认最多为8条。

2链路聚合的作用:

3几个概念:

4链路聚合工作模式链路聚合包含两种模式:手动负载均衡模式静态LACP(Link Aggregation Control Protocol)模式。

手工负载分担模式:

使用场景:

当需要在两个直连设备间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工负载分担模式。

静态LACP模式:

两种链路聚合模式的主要区别:

5链路聚合的条件:

在一个聚合口中,聚合链路两端的物理口(即成员口)的所有参数必须一致,包括物理口的数量,传输速率,双工模式和流量控制模式。成员口可以是二层接口或三层接口。

6负载分担的方式:

链路聚合带来数据包乱序问题

数据流在聚合链路上传输,数据顺序必须保持不变。一个数据流可以看做是一组MAC地址和IP地址相同的帧

两台设备间的SSH或SFTP连接可以看做一个数据流。

如何解决数据包乱序

为了避免数据包乱序的问题,Eth-Trunk采用逐流负载分担的机制。

这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同。

这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担,即逐流的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。

负载分担的类型

7链路聚合的配置案例:

链路聚合的基本原理(如何提高网络链路可靠性)(3)

如上图所示,在两台交换机之间配置手劢模式的链路聚合 :

[LSW1]interface Eth-Trunk 1

[LSW1-Eth-Trunk1]interface GigabitEthernet0/0/1

[LSW1-GigabitEthernet0/0/1]eth-trunk 1

[LSW1-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2

[LSW1-GigabitEthernet0/0/2]eth-trunk 1

[LSW2]interface Eth-Trunk 1

[LSW2-Eth-Trunk1]interface GigabitEthernet0/0/1

[LSW2-GigabitEthernet0/0/1]eth-trunk 1

[LSW2-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2

[LSW2-GigabitEthernet0/0/2]eth-trunk 1

检查链路聚合是否成功:

链路聚合的基本原理(如何提高网络链路可靠性)(4)

执行display interface eth-trunk <trunk-id>命令,可以确认两台设备间是否已经成功实现链路聚合。也可以使用这条命令收集流量统计数据,定位接口故障。

如上图所示,在两台交换机之间配置静态LACP模式的链路聚合 :

[LSW1]interface Eth-Trunk 1

[LSW1-Eth-Trunk1] mode lacp-static

[LSW1-Eth-Trunk1]interface GigabitEthernet0/0/1

[LSW1-GigabitEthernet0/0/1]eth-trunk 1

[LSW1-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2

[LSW1-GigabitEthernet0/0/2]eth-trunk 1

[LSW2]interface Eth-Trunk 1

[LSW2-Eth-Trunk1] mode lacp-static

[LSW2-Eth-Trunk1]interface GigabitEthernet0/0/1

[LSW2-GigabitEthernet0/0/1]eth-trunk 1

[LSW2-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2

[LSW2-GigabitEthernet0/0/2]eth-trunk 1

检查链路聚合是否成功:

链路聚合的基本原理(如何提高网络链路可靠性)(5)

执行display interface eth-trunk 1命令,可以确认两台设备间是否已经成功实现链路聚合。端口处于select状态表示是激活端口

,