昨天有位亲问询我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
修改eth0
,eth1
网卡文件内容。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
2alias 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的连接。
再查看信息。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
eth0
的MII Status: down
,所以现在Currently Active Slave: eth1
。ping
一下连通性没有问题,中间断了一下,是那个ICMP包正好处于链路检测时间内,系统尚未判断eth0
挂掉,也就还没有启动eth1
,导致了无响应。
此时,如果再断开网卡2,则网络全部挂掉;或若重启网卡1,由于网卡2工作正常,网卡1变为备用网卡。通过命令cat /proc/net/bonding/bond0
均能看到其详细信息。
其他
本章未亲自测试过。
A. CentOS7的双网卡绑定可以采用Team模式,或者旧有的bond模式。
B. 多网卡绑定多个bond
,只是在/etc/modprobe.d/dist.conf
的内容有所不同。
多个bond
设置成相同的模式。1
2
3alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=2 miimon=200 mode=1
多个bond
设置成不同的模式。1
2
3alias bond0 bonding
options bond0 miimon=100 mode=1
install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0
具体设置方法可以参考这篇。
如果本文对你有所帮助,请小额赞助。
~~ EOF ~~