DPDK-VPP 学习笔记-06 bond 链路聚合 LACP
本笔记主要测试VPP与交换机链路聚合配置&状态:
- Switch: HW CE6880
- NIC: Mellanox CX5
链路聚合简介
以太网链路聚合(Eth-Trunk
)简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。使用上因系统不同, PortChannel
& Bond
等都是链路聚合的别名。
链路聚合工作模式分为手工负载分担模式和LACP模式。
手工负载分担模式
手工负载分担模式下,链路聚合的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参与。该模式下所有活动链路都参与数据的转发,平均分担流量,因此称为负载分担模式。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。当需要在两个直连设备间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工负载分担模式。
LACP模式
链路聚合协议LACP分为静态LACP模式和动态LACP模式
静态LACP模式
静态LACP模式下,链路聚合接口的建立,成员接口的加入,都是由手工配置完成的。但与手工负载分担模式链路聚合不同的是,该模式下活动接口的选择由LACP协议报文负责。也就是说,当把一组接口加入链路聚合接口后,这些成员接口中哪些接口作为活动接口,哪些接口作为非活动接口还需要经过LACP协议报文的协商确定。
静态LACP模式也称为M∶N模式。这种方式同时可以实现负载分担和冗余备份的双重功能。在链路聚合组中M条链路处于活动状态,这些链路负责转发数据并进行负载分担,另外N条链路处于非活动状态作为备份链路,不转发数据。当M条链路中有链路出现故障时,系统会从N条备份链路中选择优先级最高的接替出现故障的链路,同时这条链路状态变为活动状态开始转发数据。
动态LACP模式
静态LACP模式和动态LACP模式在LACP协议交互方面没有区别,区别在于两种模式在LACP协商失败后的处理不一致:
◾静态LACP模式下,LACP协商失败后链路聚合端口变为Down,不能转发数据。
◾动态LACP模式,LACP协商失败后链路聚合端口变为Down,但其成员口继承链路聚合端口的VLAN属性状态变为Indep,可独立进行二层数据转发。
当部署动态LACP模式链路聚合接口的设备能够收到对端的LACP协议报文时,两端设备将通过LACP协议报文进行聚合参数协商。协商成功后的聚合链路功能与两端都配置为静态LACP模式链路聚合接口的链路一样。
VPP bond LACP
VPP bond lacp
模式等同于HW交换机中 LACP模式
, 支持静态mode lacp-static
与动态mode lacp-dynamic
两种模式.
vpp# create bond mode lacp load-balance l23
BondEthernet0
vpp# bond add BondEthernet0 HundredGigabitEthernet5/0/0
vpp# bond add BondEthernet0 HundredGigabitEthernet5/0/1
vpp# set int state BondEthernet0 up
vpp# set int ip address BondEthernet0 10.245.120.42/24
vpp# show bond details
BondEthernet0
mode: lacp
load balance: l23
number of active members: 0
number of members: 2
HundredGigabitEthernet5/0/0
HundredGigabitEthernet5/0/1
device instance: 0
interface id: 0
sw_if_index: 3
hw_if_index: 3
vpp#
vpp# show int
Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count
BondEthernet0 3 up 1500/0/0/0 rx packets 2590
rx bytes 321102
tx packets 1
tx bytes 66
HundredGigabitEthernet5/0/0 1 up 1500/0/0/0 rx packets 1310
rx bytes 161986
tx packets 78
tx bytes 8966
drops 1294
HundredGigabitEthernet5/0/1 2 up 1500/0/0/0 rx packets 1306
rx bytes 161626
tx packets 54
tx bytes 6638
drops 1295
local0 0 down 0/0/0/0 drops 1
vpp#
静态LACP模式
HW CE8850
交换配置:
[~HUAWEI-Eth-Trunk20]disp this
#
interface Eth-Trunk20
undo portswitch
ip address 10.245.120.1 255.255.255.0
mode lacp-static
#
return
[~HUAWEI-Eth-Trunk20]disp eth-trunk 20
Eth-Trunk20's state information is:
Local:
LAG ID: 20 Working Mode: Static
Preempt Delay: Disabled Hash Arithmetic: profile default
System Priority: 32768 System ID: 04bd-706e-b951
Least Active-linknumber: 1 Max Active-linknumber: 16
Operating Status: up Number Of Up Ports In Trunk: 2
Timeout Period: Slow
--------------------------------------------------------------------------------
ActorPortName Status PortType PortPri PortNo PortKey PortState Weight
100GE1/0/3 Selected 100GE 32768 2 5201 10111100 1
100GE1/0/27 Selected 100GE 32768 1 5201 10111100 1
Partner:
--------------------------------------------------------------------------------
ActorPortName SysPri SystemID PortPri PortNo PortKey PortState
100GE1/0/3 65535 9803-9b97-5076 255 1 3 11111100
100GE1/0/27 65535 9803-9b97-5076 255 2 3 11111100
VPP lacp 状态:
vpp# show lacp
actor state partner state
interface name sw_if_index bond interface exp/def/dis/col/syn/agg/tim/act exp/def/dis/col/syn/agg/tim/act
HundredGigabitEthernet5/0 2 BondEthernet0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1
LAG ID: [(ffff,98-03-9b-97-50-76,0003,00ff,0002), (8000,04-bd-70-6e-b9-51,1451,8000,0001)]
RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
HundredGigabitEthernet5/0 1 BondEthernet0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1
LAG ID: [(ffff,98-03-9b-97-50-76,0003,00ff,0001), (8000,04-bd-70-6e-b9-51,1451,8000,0002)]
RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
动态LACP模式
HW CE8850
交换配置:
[~HUAWEI-Eth-Trunk20]disp this
#
interface Eth-Trunk20
undo portswitch
ip address 10.245.120.1 255.255.255.0
mode lacp-dynamic
#
return
[~HUAWEI-Eth-Trunk20]disp eth-trunk 20
Eth-Trunk20's state information is:
Local:
LAG ID: 20 Working Mode: Dynamic
Preempt Delay: Disabled Hash Arithmetic: profile default
System Priority: 32768 System ID: 04bd-706e-b951
Least Active-linknumber: 1 Max Active-linknumber: 16
Operating Status: up Number Of Up Ports In Trunk: 2
Timeout Period: Slow
--------------------------------------------------------------------------------
ActorPortName Status PortType PortPri PortNo PortKey PortState Weight
100GE1/0/3 Selected 100GE 32768 2 5201 10111100 1
100GE1/0/27 Selected 100GE 32768 1 5201 10111100 1
Partner:
--------------------------------------------------------------------------------
ActorPortName SysPri SystemID PortPri PortNo PortKey PortState
100GE1/0/3 65535 9803-9b97-5076 255 1 3 11111100
100GE1/0/27 65535 9803-9b97-5076 255 2 3 11111100
VPP lacp 状态:
vpp# show lacp
actor state partner state
interface name sw_if_index bond interface exp/def/dis/col/syn/agg/tim/act exp/def/dis/col/syn/agg/tim/act
HundredGigabitEthernet5/0 2 BondEthernet0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1
LAG ID: [(ffff,98-03-9b-97-50-76,0003,00ff,0002), (8000,04-bd-70-6e-b9-51,1451,8000,0001)]
RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
HundredGigabitEthernet5/0 1 BondEthernet0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1
LAG ID: [(ffff,98-03-9b-97-50-76,0003,00ff,0001), (8000,04-bd-70-6e-b9-51,1451,8000,0002)]
RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
VPP bond XOR
VPP bond xor
模式等同于HW交换机中 手工负载分担模式
& mode manual load-balance
也是链路聚合的默认模式.
HW CE8850
交换机配置:
[~HUAWEI-Eth-Trunk20]disp this
#
interface Eth-Trunk20
undo portswitch
ip address 10.245.120.1 255.255.255.0
#
return
[~HUAWEI-Eth-Trunk20]disp eth-trunk 20
Eth-Trunk20's state information is:
Working Mode: Normal Hash Arithmetic: profile default
Least Active-linknumber: 1 Max Bandwidth-affected-linknumber: 16
Operating Status: up Number of Up Ports in Trunk: 2
--------------------------------------------------------------------------------
PortName Status Weight
100GE1/0/3 Up 1
100GE1/0/27 Up 1
VPP 配置:
vpp# set int state HundredGigabitEthernet5/0/0 up
vpp# set int state HundredGigabitEthernet5/0/1 up
vpp# create bond mode xor load-balance l23
vpp# bond add BondEthernet0 HundredGigabitEthernet5/0/0
vpp# bond add BondEthernet0 HundredGigabitEthernet5/0/1
vpp# set int state BondEthernet0 up
vpp# set int ip address BondEthernet0 10.245.120.42/24
vpp# show bond details
BondEthernet0
mode: xor
load balance: l23
number of active members: 2
HundredGigabitEthernet5/0/0
HundredGigabitEthernet5/0/1
number of members: 2
HundredGigabitEthernet5/0/0
HundredGigabitEthernet5/0/1
device instance: 0
interface id: 0
sw_if_index: 3
hw_if_index: 3
vpp# show version
vpp v21.01-rc1~3-gf097300c2 built by root on fc29 at 2021-01-21T06:11:27
vpp# show int
Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count
BondEthernet0 3 up 1500/0/0/0 rx packets 26
rx bytes 2510
tx packets 25
tx bytes 2394
drops 1
ip4 25
HundredGigabitEthernet5/0/0 1 up 1500/0/0/0 rx packets 16
rx bytes 1530
tx packets 25
tx bytes 2394
HundredGigabitEthernet5/0/1 2 up 1500/0/0/0 rx packets 10
rx bytes 980
local0 0 down 0/0/0/0 drops 1
vpp#
参考文档
VPP vnet bonding
CloudEngine 12800, 12800E V200R005C00 配置指南-以太网链路聚合配置
链路聚合Eth-Trunk