皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

在 RHEL 上配置网络绑定(成组)

网络 绑定Bonding成组Teaming) 是 Linux 的一项内核特性,它让我们可以将多个网络接口(例如 ens192ens224)聚合为一个专有的虚拟网络接口,被称为通道绑定(bond0)。这样做能够提升吞吐量并增加冗余备份。

网络绑定一共支持 7 种模式,你可以根据实际需求进行设置。链接聚合控制协议Link Aggregation Control Protocol(LACP), 即模式 4(802.3ad)因其支持链接聚合与冗余而被广泛应用。

在本篇文章中,我们将引导你学习如何在 RHEL 系统中配置网卡(网络)绑定。

LACP 绑定的前置条件

  • 网络团队需要在网络交换机的端口上开启 LACP(802.3ad)来实现链接的聚合。
  • 一个 Linux 系统应该配备至少两个网络接口。
  • 对于物理服务器,我们推荐在板载接口与 PCI 接口间进行绑定配置,以避免在主机端的网络卡出现单点故障。

Bonding 模块

你可以使用 lsmod 命令来确认你的 Linux 系统是否已经加载了 bonding 模块。

  1. lsmod | grep -i bonding
  2. bonding 12451 0

系统应该默认已加载。如果未看到,可以运用 modprobe 命令进行加载。

  1. modprobe bonding

创建绑定接口

在 /etc/sysconfig/network-scripts/ 路径下,创建一个名为 ifcfg-bond0 的绑定接口文件。依据你的网络情况,你可能需要修改诸如 IPMASK 以及 GATEWAY 等值。

  1. vi /etc/sysconfig/network-scripts/ifcfg-bond0
  1. TYPE=Bond
  2. DEVICE=bond0
  3. NAME=bond0
  4. BONDING_MASTER=yes
  5. BOOTPROTO=none
  6. ONBOOT=yes
  7. IPADDR=192.168.1.100
  8. NETMASK=255.255.255.0
  9. GATEWAY=192.168.1.1
  10. BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
< 如显示不全,请左右滑动 >
参数 描述
BONDING_MASTER=yes 表示设备是一个绑定主设备。
mode=4 绑定模式是 IEEE 802.3ad 动态链接聚合(LACP)。
miimon=100 定义以毫秒单位的 MII 链路监测频率,这决定了多久检查每个从属链路的状态一次以寻找失败的链路。0 值将禁用 MII 链路监测。100 是个不错的初始值。
lacp_rate=1 一个设置项,规定我们将以何种频率要求我们的链路伙伴每秒钟发送 LACPDU。默认为慢,即 0

配置第一个子接口

修改你希望添加到绑定中的第一个子接口。请根据你的实际环境使用合适的接口名。

  1. vi /etc/sysconfig/network-scripts/ifcfg-ens192
  1. TYPE=Ethernet
  2. BOOTPROTO=none
  3. DEVICE=ens192
  4. ONBOOT=yes
  5. MASTER=bond0
  6. SLAVE=yes

配置第二个子接口

修改你希望添加到绑定中的第二个子接口。请根据你的实际环境使用合适的接口名。

  1. vi /etc/sysconfig/network-scripts/ifcfg-ens224
  1. TYPE=Ethernet
  2. BOOTPROTO=none
  3. DEVICE=ens224
  4. ONBOOT=yes
  5. MASTER=bond0
  6. SLAVE=yes

重启网络服务

重启网络服务以激活绑定接口。

  1. systemctl restart network

验证绑定配置

你可以借助 ip 命令 来查看绑定接口以及其子接口的情况。可以看到,bond0 现在已启动并在运行。

在 RHEL 上配置网络绑定(成组)

查阅绑定接口状态

检查以下文件,你可以看到绑定接口及其子接口的详细信息。输出结果应该看起来很不错,我们能看到诸如绑定模式,MII 状态,MII 轮询间隔,LACP 速率,端口数量等信息。

  1. cat /proc/net/bonding/bond0
  1. Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
  2. Bonding Mode: IEEE 802.3ad Dynamic link aggregation
  3. Transmit Hash Policy: layer (0)
  4. MII Status: up
  5. MII Polling Interval (ms): 100
  6. Up Delay (ms): 0
  7. Down Delay (ms): 0
  8. 802.3ad info
  9. LACP rate: fast
  10. Min links: 0
  11. Aggregator selection policy (ad_select): stable
  12. System priority: 65535
  13. System MAC address: c8:5b:76:4d:d4:5c
  14. Active Aggregator Info:
  15. Aggregator ID: 1
  16. Number of ports: 2
  17. Actor Key: 15
  18. Partner Key: 32773
  19. Partner Mac Address: e4:a7:a0:32:fc:e9
  20. Slave Interface: ens192
  21. MII Status: up
  22. Speed: 10000 Mbps
  23. Duplex: full
  24. Link Failure Count: 0
  25. Permanent HW addr: c8:5b:76:4d:d4:5c
  26. Slave queue ID: 0
  27. Aggregator ID: 1
  28. Actor Churn State: none
  29. Partner Churn State: none
  30. Actor Churned State: 0
  31. Partner Churned State: 0
  32. details actor lacp pdu:
  33. system priority: 65535
  34. system mac address: c8:5b:76:4d:d4:5c
  35. port key: 15
  36. port priority: 255
  37. port number: 1
  38. port state: 63
  39. details Partner lacp pdu:
  40. system priority: 32667
  41. system mac address: e4:a7:a0:32:fc:e9
  42. oper key: 32773
  43. port priority: 32768
  44. port number: 290
  45. port state: 61
  46. Slave Interface: ens224
  47. MII Status: up
  48. Speed: 10000 Mbps
  49. Duplex: full
  50. Link Failure Count: 0
  51. Permanent HW addr: e4:a7:a0:32:fc:e9
  52. Slave queue ID: 0
  53. Aggregator ID: 1
  54. Actor Churn State: none
  55. Partner Churn State: none
  56. Actor Churned State: 0
  57. Partner Churned State: 0
  58. details actor lacp pdu:
  59. system priority: 65535
  60. system mac address: e4:a7:a0:32:fc:e9
  61. port key: 15
  62. port priority: 255
  63. port number: 2
  64. port state: 63
  65. details Partner lacp pdu:
  66. system priority: 32667
  67. system mac address: c8:5b:76:4d:d4:5c
  68. oper key: 32773
  69. port priority: 32768
  70. port number: 16674
  71. port state: 61

容错/冗余测试

为了验证容错性和连接速度,你可以逐个断开接口,然后检查服务器是否仍旧可达。

  • 测试用例-1:当两个子接口都启动并运行时,使用 ethtool 命令 检查链路速度。
  • 测试用例-2:断开第一个子接口,然后尝试访问系统。
  • 测试用例-3:断开第二个子接口,然后尝试访问系统。

测试用例-1:

如果你想检测下连接速度:没错,我在 bond0 上看到了 20 Gbps 的速度,因为每个子接口支持 10 Gbps。

  1. ethtool bond0
  1. Settings for bond0:
  2. Supported ports: [ ]
  3. Supported link modes: Not reported
  4. Supported pause frame use: No
  5. Supports auto-negotiation: No
  6. Supported FEC modes: Not reported
  7. Advertised link modes: Not reported
  8. Advertised pause frame use: No
  9. Advertised auto-negotiation: No
  10. Advertised FEC modes: Not reported
  11. Speed: 20000Mb/s
  12. Duplex: Full
  13. Port: Other
  14. PHYAD: 0
  15. Transceiver: internal
  16. Auto-negotiation: off
  17. Link detected: yes

测试用例-2:

现在我们将关闭第一个子接口。

  1. ifdown ens192
  1. Device 'ens192' successfully disconnected.

通过 ssh 尝试访问系统。没问题,系统现在是可以访问的。

  1. ssh [email protected]

由于已经有一个子接口关闭,你现在在 bond0 上只能看到 10 Gbps 的速度。

  1. ethtool bond0 | grep -i speed
  1. Speed: 10000Mb/s

现在,我们再次查看绑定接口的状态。可以看出,只有一个子接口处于活跃状态。

  1. cat /proc/net/bonding/bond0

测试用例-3:

我们来关闭第二个子接口,并进行类似测试用例-2 的测试:

  1. ifdown ens224
  1. Device 'ens224' successfully disconnected.

结语

我希望你已经掌握了在 RHEL 上配置 LACP 绑定的方法。

在本教程中,我们为你展示了在 RHEL 系统配置网络绑定或网卡聚合的最简单方式。

如果你有任何疑问或者反馈,欢迎在下面留言。

(题图:MJ/939f6ba6-eb46-480d-8879-3a422c7425d2)


via: https://www.2daygeek.com/configure-network-bonding-nic-teaming-rhel/

作者:Jayabal Thiyagarajan 选题:lujun9972 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

转自 系统运维|在 RHEL 上配置网络绑定(成组) (linux.cn)