如何在 CentOS/Red Hat Linux 中对以太网/网卡进行绑定/分组

NIC bonding/teaming(绑定/分组) 主要用于由于以太网故障转移问题而无法承受连接松动的情况,并且它还有许多其他优点,例如分配带宽、容错等

让我们从配置步骤开始
确保您的 Linux 机器中有两个(至少)物理以太网卡。

使用如下所示的选项编辑两个以太网卡的配置文件

# less /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
MASTER=bond0
USERCTL=no
SLAVE=yes
BOOTPROTO=none
TYPE=Ethernet
ONBOOT=yes
# less /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

在 /etc/sysconfig/network-scripts/ifcfg-bond0 中创建一个新文件,参数如下

# less /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.0.100
GATEWAY=192.168.0.1
NETMASK=255.255.255.0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
PEERDNS=yes

RedHat Linux 5

在下面提到的文件中追加/进行以下更改

# vi /etc/modprobe.conf
alias bond0 bonding
options bond0 mode=1 miimon=100

RedHat Linux 6

我们将找不到 modprobe.conf 文件,因此我们需要在 ifcfg-bond0 配置文件中定义绑定选项,如下所示

# less /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.0.100
GATEWAY=192.168.0.1
NETMASK=255.255.255.0
DNS1=8.8.8.8
BONDING_OPTS="miimon=100 mode=1"
USERCTL=no
PEERDNS=yes
BOOTPROTO=none
ONBOOT=yes

在这里,我们可以为 mode 和 miimon 使用不同的值

可用于 NIC 绑定的不同类型的模式有哪些?

我们可以为各种目的配置 NIC Teaming。
因此,在配置时,我们必须指定要使用 NIC Teaming 的目的。

以下是可用选项列表

balance-rr 或者 0 :为容错和负载平衡设置循环策略。
从第一个可用的开始,在每个绑定的从接口上依次接收和发送传输。

active-backup 或者 1:设置容错的主动备份策略。
通过第一个可用的绑定从接口接收和发送传输。
仅当活动的绑定从接口出现故障时,才使用另一个绑定从接口。

balance-xor 或者 2:为容错和负载平衡设置异或者(异或者)策略。
使用这种方法,接口将传入请求的 MAC 地址与其中一个从属 NIC 的 MAC 地址相匹配。
一旦建立了链路,就会从第一个可用接口开始按顺序发送传输。

broadcast 或者 3:为容错设置广播策略。
所有传输都在所有从接口上发送。

802.3ad 或者 4:设置 IEEE802.3ad 动态链路聚合策略。
创建共享相同速度和双工设置的聚合组。
在活动聚合器中的所有从设备上发送和接收。
需要符合 802.3ad 的交换机

balance-tlb 或者 5:为容错和负载平衡设置传输负载平衡 (TLB) 策略。
根据每个从接口上的当前负载分配出站流量。
当前从站接收传入流量。
如果接收从站出现故障,另一个从站将接管故障从站的 MAC 地址。

balance-alb 或者 6:为容错和负载平衡设置和主动负载平衡 (ALB) 策略。
包括 IPV4 流量的传输和接收以及负载平衡。
通过ARP协商实现接收负载均衡

NICTeaming 中的 miimon 是什么?

miimon 用于指定(以毫秒为单位)发生 MII 链接监控的频率。
如果需要高可用性,这很有用,因为 MII 用于验证 NIC 是否处于活动状态。
要验证特定 NIC 的驱动程序是否支持 MII 工具,请以 root 身份键入以下命令:

# ethtool  | grep "Link detected:"
# ethtool eth0 | grep "Link detected:"
        Link detected: yes
# ethtool eth1 | grep "Link detected:"
        Link detected: yes

因此,这里演示中,我们将使用模式 1 进行容错的 NIC 绑定

现在是时候加载绑定模块了

# modprobe bonding

重新启动网络接口以使更改生效

# service network restart

使用以下命令验证配置是否正常工作

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 5f:5g:56:3v:23:54
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 4f:76:23:v4:76:f6

检查网络状态

# ifconfig
bond0     Link encap:Ethernet  HWaddr R5:4G:45:6H:14:54
          inet addr:192.168.0.100  Bcast:192.168.0.1  Mask:255.255.255.0
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:675166546 errors:0 dropped:0 overruns:0 frame:0
          TX packets:60123345 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:717558660669 (668.2 GiB)  TX bytes:680121390699 (633.4 GiB)
eth0      Link encap:Ethernet  HWaddr 5F:5G:56:3V:23:54
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:675130834 errors:0 dropped:0 overruns:0 frame:0
          TX packets:601230970 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:717553120481 (668.2 GiB)  TX bytes:680121390699 (633.4 GiB)
          Interrupt:169 Memory:96000000-96012800
eth1      Link encap:Ethernet  HWaddr 4F:76:23:V4:76:F6
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:35302 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5540188 (5.2 MiB)  TX bytes:0 (0.0 b)
          Interrupt:122 Memory:94000000-94012800
日期:2020-06-02 22:18:27 来源:oir作者:oir