Linux运维使用nmcli工具bonding技术进行双网卡绑定的解决方案

网络绑定是一种组合或聚合物理和虚拟网络接口的方法,以提供高吞吐量或冗余的逻辑接口。网络teaming在Red Hat Enterprise Linux 9中已弃用。推荐使用网络绑定(network bonding)来组合或者整合网络接口,以便提供一个高吞吐量或冗余的逻辑接口。

一、常见双网卡绑定模式

常见的双网卡绑定模式,如下所示:

模式 策略 容错 负载均衡 Switch配置 runner: name 功能&说明
mode=0(balance-rr) Round-robin策略 支持 支持 需要启用静态的 Etherchannel(未启用 LACP 协商) roundrobin 此模式为默认模式,数据包以循环模式按顺序从第一个可用的slave网卡到最后一个可用的slave网卡进行传输和接收。
mode=1(active-backup) Active-backup主备策略 支持 不支持 无需特殊配置 activebakup 只有一个slave网卡处于活动状态,另外一个slave网卡作为备用,当处于活动状态的网卡不能工作时,备用网卡将转为活动slave网卡开始工作。在有N个网络接口的情况下,资源利用率为1/N。
mode=2(balance-xor) XOR策略 支持 支持 需要启用静态的 Etherchannel(未启用 LACP 协商) loadbalance 一旦网卡和匹配的设备建立连接,将始终由这块网卡与目的MAC进行传输和接收,以确保MAC地址保持不变。
mode=3(broadcast) 广播策略 支持 不支持 需要启用静态的 Etherchannel(未启用 LACP 协商) broadcast 所有的数据包在全部的slave接口上发送的,但资源利用率低。通常用于特定情景,如金融业等追求可靠性的网络环境中。
mode=4(802.3ad) IEEE 802.3ad 动态链路策略 支持 支持 需要启用 LACP 协商的 Etherchannel lacp 可创建共享相同速度和双工设置的聚合组,需要和支持IEEE 802.3ad动态链路聚合的交换机配合。
mode=5 balance-tlb) 适配器传输负载均衡策略 支持 支持 无需特殊配置   根据每个slave接口上的负载来分配传出流量,而传入的流量则由当前的slave接口接收,对交换机没有特定的要求。
mode=6(balance-alb) 适配器适应性负载均衡策略 支持 支持 无需特殊配置   与mode=5相比增加了数据接收负载均衡功能,这一功能通过ARP协商得以实现,对交换机没有特定要求。

二、双网卡绑定步骤

1.创建绑定接口

[root@yunweixia.com ~]# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000"
Connection 'bond0' (51195f8b-0dec-408a-9f8e-b903e6be20f7) successfully added.

这个命令会创建一个使用 active-backup 模式、名为 bond0 的绑定,独立接口(MII)监控间隔miimon=1000。

2.显示网络接口以及您要添加到绑定中的接口名称

[root@yunweixia.com ~]# nmcli dev status
DEVICE  TYPE      STATE                                  CONNECTION         
ens192  ethernet  connected                              ens192             
ens224  ethernet  connecting (getting IP configuration)  Wired connection 1 
lo      loopback  unmanaged        

3.创建新的连接配置集

[root@yunweixia.com ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ens192 master bond0
Connection 'bond0-port1' (a228faa0-ad57-434a-9d1d-25a2f8dbc39b) successfully added
[root@yunweixia.com ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname ens224 master bond0
Connection 'bond0-port2' (a2f90b04-3418-482a-95db-8b5c9917d132) successfully added. 

这些命令为ens192和ens224创建新的配置文件,并将它们添加到 bond0 连接中。

4.查看配置文件

[root@yunweixia.com ~]# ll /etc/NetworkManager/system-connections/
total 16
-rw-------. 1 root root 205 Aug 30 15:03 bond0.nmconnection
-rw-------. 1 root root 160 Aug 30 15:07 bond0-port1.nmconnection
-rw-------. 1 root root 160 Aug 30 15:08 bond0-port2.nmconnection
-rw-------. 1 root root 266 Mar  9 11:13 ens192.nmconnection

扩展阅读 要将已有的的连接配置文件分配给绑定可以进行如下操作,例如:已有配置bridge0和bridge1,将这些连接的master参数设为bond0:

[root@yunweixia.com ~]# nmcli connection modify bridge0 master bond0
[root@yunweixia.com ~]# nmcli connection modify bridge1 master bond0
[root@yunweixia.com ~]# nmcli connection up bridge0
[root@yunweixia.com ~]# nmcli connection up bridge1

这些命令将名为bridge0和bridge1的现有连接配置文件分配给bond0连接并重新激活连接。

5.配置IPv4设置

要为 bond0 连接设置静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器设置,请输入:

[root@yunweixia.com ~]# nmcli connection modify bond0 ipv4.addresses '192.168.1.1/24' ipv4.gateway '192.168.1.254' ipv4.dns '192.168.1.254' ipv4.dns-search 'yunweixia.com' ipv4.method manual

扩展阅读 (1).要使用DHCP,不需要进行任何操作,要将这个绑定设备用作其它设备的端口,请输入:

[root@yunweixia.com ~]# nmcli connection modify bond0 ipv4.method disabled

(2).如果要对绑定端口设置任何参数,请使用以下命令:

[root@yunweixia.com ~]# nmcli connection modify bond0-port1 bond-port.

6.配置IPv6设置

要为 bond0 连接设置静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器设置,请输入:

[root@yunweixia.com ~]# nmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64' ipv6.gateway '2001:db8:1::fffe' ipv6.dns '2001:db8:1::fffd' ipv6.dns-search 'yunweixia.com' ipv6.method manual

扩展阅读 (1).要使用DHCP,不需要进行任何操作,要将这个绑定设备用作其它设备的端口,请输入:

[root@yunweixia.com ~]# nmcli connection modify bond0 ipv6.method disabled

(2).如果要对绑定端口设置任何参数,请使用以下命令:

[root@yunweixia.com ~]# nmcli connection modify bond0-port1 bond-port.

7.激活连接

[root@yunweixia.com ~]# nmcli connection up bond0

8.验证端口

[root@yunweixia.com ~]# nmcli device
DEVICE  TYPE      STATE      CONNECTION  
bond0   bond      connected  bond0       
ens192  ethernet  connected  bond0-port1 
ens224  ethernet  connected  bond0-port2 
lo      loopback  unmanaged  --  

扩展阅读 (1).启用绑定时自动启用所有端口,并重新激活连接:

[root@yunweixia.com ~]# nmcli connection modify bond0 connection.autoconnect-slaves 1
[root@yunweixia.com ~]# nmcli connection up bond0

(2).启动绑定后无法连接服务器 显示所有激活的连接并删除bonding用不到的连接,例如已连接的ens192。

[root@yunweixia.com ~]# nmcli connection show
[root@yunweixia.com ~]# nmcli connection del ens192

9.显示绑定状态

[root@yunweixia.com ~]# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v5.14.0-162.6.1.el9_1.x86_64

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens224
MII Status: up
MII Polling Interval (ms): 1000
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0

Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:50:56:bd:de:60
Slave queue ID: 0

Slave Interface: ens192
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:50:56:bd:8d:96
Slave queue ID: 0

原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/linux-nmcli-bonding-dual-nic-solution-guide.html

(0)
运维侠的头像运维侠共建用户
上一篇 2025年8月2日 18:11
下一篇 2025年8月4日 18:11

相关推荐

发表回复

登录后才能评论