0

Ubuntu 22 配置链路聚合|Linux Bond多网卡聚合|Bond

Share
Avatar photo
  • 2024 年 6 月 9 日

本文将两张网卡进行链路聚合,操作系统为Ubuntu 22。

Ubuntu 22 采用的网络管理软件为netplan,所以我们的操作都是在netplan中进行的。

Bond 背景

Linux系统下的链路聚合一共有七种模式,详细可见下表:

俗称配置简称英文名中文名解释
bond0balance-rrRound-robin policy平衡轮询策略传输数据包顺序是依次传输,直到最后一个传输完毕,此模式提供负载平衡和容错能力。
bond1active-backupActive-backup policy活动备份策略只有一个设备处于活动状态。一个链路断开后,另一个马上由备份转换为主设备。此模式提供了容错能力。
bond2balance-xorXOR policy平衡策略传输根据 (源MAC地址 xor 目标MAC地址) mod 设备数量 的布尔值选择传输设备。 此模式提供负载平衡和容错能力。
bond3broadcastBroadcast policy广播策略将所有数据包传输给所有设备。此模式提供了容错能力。
bond4802.3adIEEE 802.3ad Dynamic link aggregationIEEE 802.3ad 动态链接聚合创建共享相同的速度和双工设置的聚合组。此模式提供了容错能力。每个设备需要基于驱动的重新获取速度和全双工支持;如果使用交换机,交换机也需启用 802.3ad 模式。
bond5balance-tlbAdaptive transmit load balancing适配器传输负载均衡通道绑定不需要专用的交换机支持。发出的流量根据当前负载分给每一个设备。由当前设备处理接收,如果接受的设 备传不通就用另一个设备接管当前设备正在处理的mac地址。
bond6balance-albAdaptive load balancing适配器负载均衡包括mode5,由 ARP 协商完成接收的负载。bonding驱动程序截获 ARP在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。
– bond 0,bond 2 和 bond 3 理论上需要静态聚合方式,需要配置交换机
– bond 1,bond 5 和 bond 6 不需要交换机端的设置,网卡能自动聚合
– bond 4 需要支持 802.3ad,需要配置交换机

本文选择Bond 2模式,分别对交换机与设备进行聚合配置。

一,交换机配置

上级为华为交换机,首先根据

二,设备配置

创建netplan配置,文件需要创建在目录“/etc/netplan”下,文件后缀为yaml。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      addresses: []
      dhcp4: false
    enp3s0f1:
      addresses: []
      dhcp4: false

  bonds:
    bond0:
      interfaces:
        - enp3s0f0
        - enp3s0f1
      addresses:
        - 【IPv4地址】
        - 【IPv6地址】
      routes:
        - to: 0.0.0.0/0
          via: 【网关】
        - to: ::/0
          via: 【网关】
      nameservers:
        addresses:
          - 223.5.5.5
          - 8.8.8.8
          - 2001:dc7:1000::1
        search:
          - localhost
          - local
      parameters:
        mode: balance-xor
        mii-monitor-interval: 100

执行命令使此配置生效

netplan apply

完毕后,执行ifconfig就可以看到新的bond0网卡了。