企业应用中通常为了避免单点故障,多张网卡绑定后在一起使用。一个网卡坏了会启用备用网卡,保证网络正常。Linux系统中通过bond实现。
以下便是bond的配置:
首先要看linux是否支持bonding:
modinfo bonding #这个命令自己去百度
新建虚拟网卡bond0对外提供服务:touch /etc/sysconfig/network-scripts/ifcfg-bond0
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
HOTPLUG=no
NETMASK=255.255.255.0
IPADDR=10.51.2.23
GATEWAY=10.51.2.254
TYPE=Ethernet
USERCTL=yes
将eth1和eth2绑定成虚拟网卡bond0:
配置eth1:vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
HWADDR=5c:f3:fc:4a:11:02
ONBOOT=yes
HOTPLUG=no
TYPE=Ethernet
SLAVE=yes
USERCTL=yes
MASTER=bond0
配置eth2:vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
BOOTPROTO=none
HWADDR=E4:1F:13:D6:F9:F8
ONBOOT=yes
HOTPLUG=no
TYPE=Ethernet
USERCTL=yes
SLAVE=yes
MASTER=bond0
因为linux的虚拟网卡是在内核模块中实现的,
修改/etc/modules.conf,(如果没有这个文件,在/etc/modprobe.d/dist.conf里面进行修改)
最后加上以下内容
alias bond0 bonding
options bond0 miimon=100 mode=1
其中miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡
mode=1表示主备模式,也就是只有一块网卡是active的,只提供失效保护如果mode=0则是负载均衡模式的,所有的网卡都是active,还有其他一些模式很少用到
primary=eth0表示主备模式下eth0为默认的active网卡.
执行Modprobe bonding
最后,在/etc/rc.local中加入
ifenslave bond0 eth1 eth2
开机自动启动。
重启后,可以用 cat /proc/net/bonding/bond0
查看bond0的工作状态: