双网卡绑定为同一个虚拟的网卡(bond), 外界看到的好像是bond网卡在向外界提供服务, 而其实底层是两块真实的网卡在提供服务。
下面介绍一些简单的概念:
1>. Bonding
就是将多块网卡绑定同一IP 地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP 地址是不可能的。通过bonding ,虚拟一块网卡对外提供连接,
物理网卡的被修改为相同的MAC 地址。
2>. Bonding 的工作模式
Mode 0 (balance-rr)
轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力
Mode 1 (active-backup)
活动- 备份(主备)策略:在绑定中,只有一个slave 被激活。当且仅当活动的slave 接失败时才会激活其他slave 。为了避免交换机发生混乱此时绑定的MAC 地址只有一个外部端口上可见
Mode 3 (broadcast)
广播策略:在所有的slave 接口上传送所有的报文。本模式提供容错能力。
我们以centos6.8,将两块网卡设置Mode1模式
1>. 将两块网卡设置为绑定到一块虚拟的网卡上,这种功能可能会受到NetworkManager服务的影响, 上来首先关闭NetworkManager服务,并且关闭开机自启。
[root@centos6 network-scripts]# service NetworkManager stop
Stopping NetworkManager daemon: [ OK ]
[root@centos6 network-scripts]# chkconfig NetworkManager off
2>. 查看当前系统的ip配置
[root@centos6 network-scripts]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:B3:32:CC inet addr:192.168.203.138 Bcast:192.168.203.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:feb3:32cc/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:10486 errors:0 dropped:0 overruns:0 frame:0 TX packets:2862 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:869044 (848.6 KiB) TX bytes:417850 (408.0 KiB) eth1 Link encap:Ethernet HWaddr 00:0C:29:B3:32:D6 inet addr:192.168.203.131 Bcast:192.168.203.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:feb3:32d6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8660 errors:0 dropped:0 overruns:0 frame:0 TX packets:686 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:675217 (659.3 KiB) TX bytes:101974 (99.5 KiB)
显然系统中, 有两块网卡,一块是eth0, 另外一块是eth1。将这两个网卡绑定到一个虚拟的网卡。
3>.生成和配置配置文件/etc/sysconfig/network-scripts/ifcfg-bond0
BONDING_OPTS="miimon=100 mode=1"
miimon=100 100ms检测一次,检测一下对方是否在线
mode=1 指定为主备模式
3>.编辑两块网卡的配置文件
4> 重启network服务
5>.查看bond0虚拟网卡的信息
将两块网卡绑定为一块虚拟网卡bond0。 实验已经成功了。
6>. 测试阶段:
a>. 将eth0关闭了。
b> 查看虚拟网卡bond0的状态
eth1取代了eth0, 这显然起到了高可用的特性。
3>.再将eth0启动起来。
eth0变成了备用网卡,而eth1变成了正在使用的网卡。
转载于:https://blog.51cto.com/9280078/1845678