Linux进阶03:双网卡绑定

时间:2024-03-31 19:12:34

昨天有位亲问询我Linux关于双网卡绑定的事,以前折腾过,这回的折腾记录在此。

环境

测试环境是CentOS6.6的虚拟机,添加了一个网卡,网络连接模式NAT。

关闭服务

NetworkManager服务是供界面使用网盘配置服务,其会影响网络服务的运行,故关闭之。

1
2
3
4
# service NetworkManager stop
# chkconfig NetworkManager off
# chkconfig --list NetworkManager
NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off

配置脚本

新建bond0网卡文件,内容如下。

1
2
3
4
5
6
7
8
9
10
11
12
# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.80.6
PREFIX=24
GATEWAY=192.168.80.1
DNS1=192.168.80.1
IPV6INIT=no
NAME="System bond0"
ARPCHECK=NO

修改eth0eth1网卡文件内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

在文件/etc/modprobe.d/dist.conf文件下添加如下内容。

1
2
alias bond0 bonding
options bond0 mode=1 miimon=100

mode=0是负载均衡模式,即双网卡分流网络负载。若两个网卡接入同一个交换机,交换机需将这两个网口用聚合方式绑定。
mode=1是主备模式,一个网卡工作,一个网卡备用,某个网卡断掉,另一个网卡启动工作。
miimon=100是链路检测时间,100毫秒检测一次。

测试

重启虚拟机。

1
# reboot

查看运行信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

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: 00:0c:29:8c:f7:3d
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:8c:f7:47
Slave queue ID: 0

Currently Active Slave: eth0现在主要工作的是eth0
虚拟机断开网卡1的连接。
Linux进阶03:双网卡绑定
再查看信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

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

Slave Interface: eth0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: 00:0c:29:8c:f7:3d
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:8c:f7:47
Slave queue ID: 0

eth0MII Status: down,所以现在Currently Active Slave: eth1ping一下连通性没有问题,中间断了一下,是那个ICMP包正好处于链路检测时间内,系统尚未判断eth0挂掉,也就还没有启动eth1,导致了无响应。
Linux进阶03:双网卡绑定
此时,如果再断开网卡2,则网络全部挂掉;或若重启网卡1,由于网卡2工作正常,网卡1变为备用网卡。通过命令cat /proc/net/bonding/bond0均能看到其详细信息。

其他

本章未亲自测试过。
A. CentOS7的双网卡绑定可以采用Team模式,或者旧有的bond模式
B. 多网卡绑定多个bond,只是在/etc/modprobe.d/dist.conf的内容有所不同。
多个bond设置成相同的模式。

1
2
3
alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=2 miimon=200 mode=1

多个bond设置成不同的模式。

1
2
3
alias bond0 bonding
options bond0 miimon=100 mode=1
install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0

具体设置方法可以参考这篇

~~ EOF ~~