双网卡绑定具体作用如下:
1. 增大带宽
2. 保持带宽的稳定性
3. 可以形成网卡冗余阵列、分担负载,双网卡被绑定成“一块网卡”之后,同步一起工作,对服务器的访问流量被均衡分担到两块网卡上,
这样每块网卡的负载压力就小多了,抗并发访问的能力提高,保证了服务器访问的稳定和畅快,当其中一块发生故障的时候,另一块立刻接管全部负载,过程是无缝的,服务不会中断。
Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。
1)查看主机网卡
[root@xiao ~]# cd /etc/sysconfig/network-scripts/
[root@xiao network-scripts]# ll
total 208
-rw-r--r-- 1 root root 235 Jan 7 21:25 ifcfg-eth0
-rw-r--r-- 1 root root 140 Jan 9 11:35 ifcfg-eth1
2)复制ifcfg-bond0
touch ifcfg-bond0
cp ifcfg-eth0 ifcfg-bond0
3)编辑ifcfg-bond0、ifcfg-eth0、ifcfg-eth1
vim ifcfg-bond0
================
DEVICE=bond0
BOOTPROTO=static
IPADDR=10.10.54.50
NETMASK=255.255.255.0
GATEWAY=10.10.54.254
ONBOOT=yes
USERCTL=no
================
vim ifcfg-eth0
=================
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
=================
vim ifcfg-eth1
============
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
===============
4)模块加载
vim /etc/modprobe.d/dist.conf
在最后添加以下内容:
alias bond0 bonding
options bond0 miimon=100 mode=1
#加载bonding模块,对外虚拟网络接口设备为 bond0
说明:
miimon是用来进行链路监测的。 比如:miimon=100,单位是ms(毫秒)这边的100ms,即是0.1秒那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,这里解释两个常用的选项。
mode=0:表示load balancing (round-robin)为负载均衡方式,两块网卡都在工作。
mode=1:表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,其中一块网卡在工作(若eth0断掉),则自动切换到另一个块网卡(eth1做备份)。
bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。
5)重启网络服务,使配置生效
service network restart
6)查看bond0接口状态
cat /proc/net/bonding/bond0
7)查看路由表状态: route -n