ETC双网卡绑定
做双网卡绑定前,先建议关闭防火墙,这里有个先后顺序,
原因
不先关防火墙的情况下
由先的物理网卡通讯 。
转变为现在的虚拟网卡bond0
接着,你关闭防火墙,
它会触发关闭规则,默认是不允许任何通讯 。
双网卡绑定目录文件
/etc/sysconfig/network-scripts/目录下
ifcfg-bond0 //新建立的绑定网卡名字,这个bond0是虚拟口
ifcfg-enp2s0 //系统本身的网卡名字,物理口名字
ifcfg-enp4s0 //系统本身的网卡名字,物理口名字
[root@ipc00 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=bond //这里有这个bond,它是个模块,linux天生自带,就是解决网卡绑定的问题,如果是windows系统,则需要接助第三方软件 。
BOOTPROTO=none //这里填写这个,手动获取ip,static是静态ip,如果是dhic是自动获取ip
DEVICE=bond0 //虚拟口名称
ONBOOT=yes //启动接口
IPADDR=10.88.187.237 //设置ip
NETMASK=255.255.255.192 //设置掩码
GATEWAY=10.88.187.193 //设置网关
USERCTL=no //这步表示,需要root权限才能更改这个配置,这步也可以不填写
BROADCAST=192.168.0.255 //这是broadcast广播,可以不填写。这里我举例,随便填写的。实际根据网段填写。
BONDING_MASTER=yes //这步,我看网上有的资料,没填写,设置为主网卡设备,有的配置文件,也没写这项
BONDING_OPTS="mode=1 miimon=100" //表示,模式是1,100毫秒检测一次。这步我看网上有的资料,没填写,大家小心,这个位置,双引号,到底需要吗?我实践中,服务器上绑定,用这个配置,写了双引号,最后systemctl restart network命令重启网络,提示配置错误,直到后来,我用脚本写命令,系统,自动生成,始终,配置文件里没有双引号,所以引起我怀疑。
NETWORK=192.168.0.0 //这是网段号,我看网上有的资料,没填写这步。
[root@ipc00 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp2s0
UUID=f6d53d36-58d0-467c-9820-cebc30ef7f06
DEVICE=enp2s0
ONBOOT=yes
USERCTL=no //这里表示,需要root权限才能修改这个配置
MASTER=bond0 //这里申明,主网卡为bond0
SLAVE=yes //这里申明,本身为从网卡,如果这个不在这里设置,就需要开机执行ifenslave bond0 enp2s0 enp4s0这个命令
[root@ipc00 ~]#
[root@ipc00 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp4s0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp4s0
UUID=befd56f0-b0e7-40f3-bcd7-a01a544ff980
DEVICE=enp4s0
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
[root@ipc00 ~]#
注意,双网卡,本身需要物理两块网卡
以上三个文件都在同一个目录
另外一个文件目录
/etc/modprobe.d/
bonding.conf //新建立的文件,绑定配置文件。
[root@ipc00 ~]# cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bond0 mode=1 miimon=100 //这个设置模式为1,100毫秒监测一次。
备注:如果,有故障,可以试着给这个文件加上权限,chmod 644或者chmod 777,试下
[root@ipc00 ~]#
[root@ipc00 ~]# modprobe bonding //更新加载绑定模块 ,当系统重启后,就不用手动加载了。
[root@ipc00 ~]# lsmod | grep bonding //查看更新加载结果 ,如下显示,表示成功。
bonding 152656 0
[root@ipc00 ~]# systemctl stop NetworkManager //停止网络服务,实战,这个不要输入,害人
[root@ipc00 ~]# systemctl disable NetworkManager //禁用网络服务,实战,这步不要输入,害人
[root@ipc00 ~]# systemctl restart network //重启网络服务
[root@ipc00 ~]#
/etc/init.d/network restart //也可以是这个命令重启网络
[root@ipc00 ~]# cat /proc/net/bonding/bond0 //查看绑定模式及网卡状态信息
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup) //看红色的,表示bonding的模式,因为你设置为mode=1,它就在这里显示这个模式 ,是主备模式的意思。当然你设置为其它模式,这里的显示是不同的。
Primary Slave: None
Currently Active Slave: enp4s0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: enp2s0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: c4:00:ad:3e:ec:01
Slave queue ID: 0
Slave Interface: enp4s0
MII Status: up
Speed: 100 Mbps //看这个位置,表示在工作了。这里就可以看出那个网卡在工作
Duplex: full
Link Failure Count: 0
Permanent HW addr: c4:00:ad:3e:ec:00
Slave queue ID: 0
真机验证方法
手工拔掉工控机任意一根网线,都能通讯,表示ok,记得,现场是两根网线连接交换机。
系统启动自动绑定、增加默认网关:
[root@test ~]# vi /etc/rc.d/rc.local
#追加
ifenslave bond0 eth0 eth1
route add default gw 192.168.0.1
#如可上网就不用增加路由,192.168.0.1地址按环境修改.
看下网上的
[root@cobbler-node1 network-scripts]# paste ifcfg-eth0 ifcfg-eth1 TYPE=Ethernet TYPE=Ethernet BOOTPROTO=none BOOTPROTO=none DEVICE=eth0 DEVICE=eth1 ONBOOT=yes ONBOOT=yes USERCTL=no USERCTL=no #控制用户是否有修改网卡的权限,必须设置为no,只有root用户才可以修改 MASTER=bond0 MASTER=bond0 SLAVE=yes SLAVE=yes
[root@cobbler-node1 network-scripts]# cat /etc/modprobe.d/bonding.conf alias bond0 bonding options bond0 mode=6 miimon=100 注意: #mode=6代表负载均衡;两块网卡同时工作,增加网络带宽,不需要依赖物理交换机设置,大家注意这里,这里是错误的,二层交换机,才不需要配置,三层的交换机是需要配置的。不然不能通过路由。 #mode=1代表主备切换;只有一块网卡处于活动状态,活动网卡故障切换到备用网卡 #miimon=100代表网络链路检测频率100ms检查一次,如果出现问题则切换到备用网卡
[root@cobbler-node1 network-scripts]# vi ifcfg-bond0 TYPE=Bond BOOTPROTO=none DEVICE=bond0 ONBOOT=yes IPADDR=10.129.49.240 NETMASK=255.255.255.0 GATEWAY=10.129.49.1 DNS1=10.112.15.30 DNS2=10.112.15.33 USERCTL=no
留心:前面只是2个网口绑定成一个bond0的情况,如果我们要设置多个bond口,比如物理网口eth0和eth1组成bond0,eth2和eth3组成bond1,
那么网口设置文件的设置方法和上面第1步讲的方法相同,只是/etc/modprobe.d/bonding.conf的设定就不能像下面这样简单的叠加了:
alias bond0 bonding
options bonding mode=1 miimon=200
alias bond1 bonding
options bonding mode=1 miimon=200
正确的设置方法有2种:
第一种,你可以看到,这种方式的话,多个bond口的模式就只能设成相同的了:
alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=2 miimon=200 mode=1
第二种,这种方式,不同的bond口的mode可以设成不一样:
alias bond0 bonding
options bond0 miimon=100 mode=1
install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0
仔细看看上面这2种设置方法,现在如果是要设置3个,4个,甚至更多的bond口,你应该也会了吧!
后记:简单的介绍一下上面在加载bonding模块的时候,options里的一些参数的含义:
miimon 监视网络链接的频度,单位是毫秒,我们设置的是200毫秒。
max_bonds 配置的bond口个数
mode bond模式,主要有以下几种,在一般的实际应用中,0和1用的比较多,
如果你要深入了解这些模式各自的特点就需要靠读者你自己去查资料并做实践了。
特别注意mode=6模式,如果是二层交换机,是不需要交换机配置,但是如果是三层交换机,交换机一定要配置。
nmcli connection up "bond0" //激活bond0网络设备
nmcli connection up "bond-slave-ens33" //激活ens33网络设备
nmcli connection up "bond-slave-ens34" //激活ens34网络设备
注:本笔记出自于一个朋友分享,看完后觉得有必要和大家共享一下,技术没有界限,希望多多交流