绑定前准备和说明:
在生产环境中我们为了避免单网卡或者单网络物理链路即网线、光纤线故障导致网络中断我们有必要进行双网卡双链路进行系统上绑定,就是2个网卡配置一个IP地址,在一个网卡或者一根网线、光纤线故障状态下任然可以正常提供服务。
注意:进行双网卡绑定的2个网卡必须在物理服务器上是相同的,相同品牌相同的速率。本文就以ifcfg-eth0和ifcfg-eth1网卡配置文件为例。
在生产环境中如何确定那个物理网卡对应的是那个网卡配置文件呢,这就需要我们用到ethtool命令:
[root@localhost network-scripts]# ethtool -p eth0 #执行此命令后查看服务器那个物理网卡指示灯闪烁表示eth0对应是那个网卡
我们为什么要进行物理网卡和网卡配置文件的对应关系的排查呢,主要目的就是错开2个互相绑定网口在一张网卡上,如果在一张网卡上这张网卡故障双网卡绑定冗余就没有任何意义。
在配置双网卡绑定之前我们先关闭NetworkManager服务此服务为图形配置网络,启用此服务有可能和双网卡服务冲突,我们最好关掉。
systemctl stop NetworkManager
systemctl disable NetworkManager
正式绑定工作:
1. 我们以cfcg-eth0和cfcg-eth1配置文件做双网卡绑定
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ #切换到网络配置目录下
2. 修改网卡配置文件ifcfg-eth0,保证以下内容正确:
[root@localhost network-scripts]# vim ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth0 #设备名字,实际生产中以修改具体配置文件名为准
MASTER=bond0 # 这里我们填写bond0 一定要注意。
SLAVE=yes
ONBOOT=yes
3. 写完以上信息保存退出,下面修改第二个网卡cfcg-eth1
[root@localhost network-scripts]# vim ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth1
MASTER=bond0
SLAVE=yes
ONBOOT=yes
4. 现在我们创建bond0文件以及配置此文件
[root@localhost network-scripts]# touch ifcfg-bond0 #创建为bond0文件
[root@localhost network-scripts]#vim ifcfg-bond0 #打开bond0文件写入以下信息
DEVICE=bond0
TYPE=bond #类型必须为bond模式
ONBOOT=yes
BOOTPROTO=static
IPADDR= # 生产中实际使用的IP
NETMASK= #子网掩码
GATEWAY= #此IP网段的网关
BONDING_MASTER=yes
BONDING_OPTS=”miimon=100 mode=1” #注意这个有双引号
[root@localhost network-scripts]# systemctl restart network #重启网络,如果有报错检查3个文件是否有写错
[root@localhost network-scripts]# cat /proc/net/bonding/bond0 #查看是否生效以及主备网卡启用情况
5. 测试主备切换情况。
[root@localhost network-scripts]# ifdown ifcfg-eth0 #down掉一个网卡再ping 网关
[root@localhost network-scripts]# cat /proc/net/bonding/bond0 #查看网卡信息
# miimon是用来进行链路监测的。比如:miimon=100,单位是ms(毫秒)这边的100,是100ms,即是0.1秒那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。
#mode共有七种(0~6),这里解释两个常用的选项。
#mode=0:(轮询策略)该策略是按照设备顺序依次传输数据包,直到最后一个设备。这种模式提供负载均衡和容错能力,在负载均衡模式下,两块网卡都工作,提供两倍带宽。
#mode=1:(主备策略)该策略只有一个设备处于活动状态。 一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见的。 此模式提供了容错能力。