网络绑定是一种组合或聚合物理和虚拟网络接口的方法,以提供高吞吐量或冗余的逻辑接口。网络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