使用网络捆绑聚合多个接口¶
本指南介绍如何配置 systemd 以使用 bonding 驱动程序。
网络捆绑是指将多个网络接口组合成一个逻辑接口,从而提供冗余和带宽聚合。
Clear Linux* OS 包含 Linux Bonding driver 和 Team driver。
该示例演示了如何:
- 在 802.3ad 模式下,捆绑四端口网卡的所有四个端口。
- 启用巨型帧来优化本地网络上的大量数据传输。
您的网卡和网络交换机必须支持 802.3ad 模式和巨型帧。该示例解释了如何为这两种功能配置网卡。您的交换机可能需要额外的配置。查阅交换器文档以了解详细信息。
注解
您必须以 root 用户身份运行本指南中的所有命令。
登录并获得 root 特权。
sudo -s
创建
/etc/systemd/network
目录。mkdir -p /etc/systemd/network
/etc/systemd/network
目录包含虚拟设备及其底层物理接口的配置文件和网络设置。将 systemd 配置为创建一个名为 bond1 的虚拟网络设备。使用文本编辑器创建一个名为
30-bond1.netdev
的文件。[NetDev] Name=bond1 Kind=bond [Bond] Mode=802.3ad TransmitHashPolicy=layer3+4 MIIMonitorSec=1s LACPTransmitRate=fast
有关
30-bond1.netdev
文件语法,请参阅 systemd.netdev 手册页。本示例基于手册页上的示例 9。根据您的配置修改示例。配置从属接口。创建一个名为
30-bond1-enp1s0.network
的文本文件。将从属接口分配给虚拟 bond1 设备,并使用 systemd.network 中所示的语法。[Match] Name=enp1s0f* [Network] Bond=bond1 [Link] MTUBytes=9000
本示例将四端口网卡的所有四个端口捆绑为 bond1 从属接口。本示例使用通配符匹配,因为网卡名称在 enp1s0f0-enp1s0f3 范围内。如果网卡名称不兼容通配符,请为每个网卡创建一个单独的
.network
文件。为了获得最佳效果,请勿为单个网卡分配地址或 DHCP 支持。
MTUBytes 设置支持高达 9000 字节的巨型帧。您的交换机可能需要额外的配置来支持此设置。
在名为
30-bond1.network
的文件中配置捆绑接口。[Match] Name=bond1 [Network] BindCarrier=enp1s0f0 enp1s0f1 enp1s0f2 enp1s0f3 Address=192.168.1.201/24 [Link] MTUBytes=9000
bond1 是一个没有物理链路状态的虚拟接口。
BindCarrier 表示 bond1 链路状态由所列从属设备的状态决定。
Address 包含分配给逻辑接口的一个 IP 地址。DHCP 捆绑接口十分复杂,不在本示例的讨论范围内。
要成功处理巨型帧,所有从属接口和捆绑接口上的 MTUBytes 必须设置为 9000。如果所有接口上的 MTUBytes 设置并不相同,将使用这些设置中的最小值。
使用以下命令应用新的网络配置:
systemctl restart systemd-networkd
除非重启或使用 ifconfig 等实用程序手动应用设置,否则 MTUBytes 设置不会生效。