双网卡绑定,也称作双网卡捆绑。就是将服务器的2个网卡绑定成一个虚拟网卡,使服务器的2块网卡连接到2台交换机上,并配置同一个IP地址,这样可以有效防止某个交换机或者网卡、网线坏掉时,影响服务器的正常工作。
现在主要介绍RedHat Enterprise Linux 7(或者Centos7)进行双网卡绑定的方法,这里先介绍常用的bond方式绑定。后续有使用HedHat 7推荐的team方式,再增加相关的操作方法。
详情,附件还有
一、查看网卡情况
服务器上一般会配置有多块网卡,可以通过插入网线的方式确定网卡的编号。查看网线有没有插上,可以使用ip l或者nmcli命令。注意nmcli需要启动NetworkManager服务,使用Bond方式做网卡绑定会停用这个服务,nmcli命令无法使用。
ip l 命令,注意网线连接状态会显示LOWER_UP,网线断开状态会显示<NO-CARRIER>。
nmcli命令较明显的显示连接和断开状态。
二、Bond方式绑定
双网卡绑定的工作模式,共有七种模式,主要修改的是负载均衡方式和主备方式,需要和客户的网络工程师确认,常用主备方式。
确定了网卡编号,就可以用Bond方式进行双网卡绑定了,以下以绑定eno1和eno2为例进行配置。
-
配置eno1网卡配置文件注意:文件名根据实际情况vi,DEVICE=eno1需要按实际命名。
[root@linux7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno1
DEVICE=eno1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
-
配置eno2网卡配置文件注意:文件名根据实际情况vi,DEVICE=eno2需要按实际命名。
[root@linux7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno2
DEVICE=eno2
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
-
创建网卡bond0的配置文件注意:IPADDR、NETMASK、GATEWAY需要根据实际情况配置,primary=eno1根据设计来配置使用哪个为主网卡。
[root@linux7~]# touch /etc/sysconfig/network-scripts/ifcfg-bond0
[root@ linux7~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.122.27
NETMASK=255.255.255.0
GATEWAY=192.168.122.1
NAME=bond0
BONDING_OPTS="miimnotallow=100 mode=1 primary=eno1 fail_over_mac=1"
-
加载模块,使系统支持bond模式miimon是用来进行链路监测的,比如miimnotallow=100,那么系统每100ms监测一次链路连接状态,如果线路不通就转入另一条线路;mode表示双网卡绑定的工作模式,共有七种模式,常用的为0,1两种。mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。
注意:如果文件不存在,需要手动创建。尽量选择mode=1主备方式。
[root@linux7~]# cat /etc/modprobe.conf
alias bond0 bonding
options bond0 miimnotallow=100 mode=1 fail_over_mac=1
-
在/etc/rc.d/rc.local 加入以下内容,重启时自动执行网卡绑定操作。注意:eno1和eno2根据实际情况配置。
ifenslave bond0 eno1 eno2
-
执行以下命令,加载bond module,激活bonding驱动。[root@linux7~]# modprobe bonding
可以使用lsmod | grep bonding命令,确认模块是否加载成功。
-
禁用NetworkManager服务,并重启网络服务。[root@linux7~]# systemctl stop NetworkManager
[root@linux7~]# systemctl disable NetworkManager
[root@linux7~]# systemctl restart network
- 检查双网卡绑定状态使用ifconfig -a命令,或者ip a命令查询网卡状态。注意bond0显示LOWER_UP状态,显示IP信息。
- 测试双网卡绑定是否完全成功
首先在另一台能连通此服务器的服务器,一直ping此IP,确认网络已经通畅。
然后使用ifdown eno1或ifconfig down eno1,断开网卡eno1,测试网卡eno2是否正常(恢复命令ifup eno1或ifconfig up eno1),观察ping是否正常。并以同样的方式,测试断开网卡eno2,测试网卡eno1是否正常。