一、什么是Bonding

    Bonding,就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过Bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。


二、Bonding的几种工作模式

Mode 0 (balance-rr)
轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力    
Mode 1 (active-backup)
活动-备份(主备)策略:在绑定中,只有一个slave被激活。当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
Mode 3 (broadcast)
广播策略:在所有的slave接口上传送所有的报文。本模式提供容错能力。


三、Bonding中的Mode1配置演示

1、首先在虚拟机上添加一块网卡

wKiom1fNDTHBiLnUAAB9n86RGl0599.png

[root@localhost ~]# ifconfig  -a        //ifconfig -a 查看所有的网卡设备
eth0      Link encap:Ethernet  HWaddr 00:0C:29:9C:63:16  
          inet addr:10.1.252.122  Bcast:10.1.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe9c:6316/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:111504 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1487 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8815045 (8.4 MiB)  TX bytes:176077 (171.9 KiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:9C:63:20      添加成功!
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

二、创建bonding设备的配置文件

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
IPADDR=10.1.0.222
NETMASK=255.255.0.0
GATEWAY=10.1.0.1
DNS1=114.114.114.114
BONDING_OPTS="miimon=100 mode=1"

三、创建网卡的配置文件

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth*
DEVICE="eth0"
SLAVE=yes
MASTER=bond0

DEVICE="eth1"
SLAVE=yes
MASTER=bond0

[root@localhost ~]#

四、重新启动网卡的配置文件并测试

wKiom1fNEhSzSO4XAABTnwdsPaw238.png

wKioL1fNEsjwtfC7AAAoBsHruws995.png

    ping10.1.0.222这个主机

wKiom1fNE6-S7j-DAAAON_NaN34375.png

    然后断开eth0这个网卡

wKiom1fNE8uQAz__AAAXI-KOBrg078.png

    查看此时的信息

wKiom1fNFD6j4UXcAAAobPEVL44556.png

wKiom1fNFIvg54sAAAAn9EzHWZY370.png

   再把eth1也断开,然后ping主机

wKioL1fNFVrDPQDWAAAjsrBe0Bk756.png

wKiom1fNFWfjDW8GAAAIMKTOUaU416.png

wKioL1fNFfexX3lhAAAoLs_fTc4351.png   

    因为两块网卡都断开了,所以没有人提供服务了,让我们再次把eth0连上,然后再次ping主机

wKiom1fNFkTxYnGgAAAhePHQ8fI855.png

wKioL1fNFuzw7tnIAAAon3amQo0866.png

wKiom1fNFyXgQGTAAAAn90Ss3hg080.png

    实验成功!!谢谢浏览!!