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接口上传送所有的报文,提供容错能力
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特
殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需
要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和
EtherChannel
Bonding配置
创建bonding设备的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS= “miimon=100 mode=0”
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
查看bond0状态:/proc/net/bonding/bond0
Bonding配置
miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测
一次链路连接状态,如果有一条线路不通就转入另一条线路
删除bond0
ifconfig bond0 down
rmmod bonding
详细帮助:
/usr/share/doc/kernel-doc- version/Documentation/networking/bonding.txt
https://www.kernel.org/doc/Documentation/networking/bonding.txt
//centOS7上实现bonding:
1.在centos7.5 上准备两块网卡,桥接模式
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.32.77 netmask 255.255.0.0 broadcast 172.20.255.255
inet6 fe80::92c1:7a5c:30a0:4624 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:35:33:6c txqueuelen 1000 (Ethernet)
RX packets 128468 bytes 14049923 (13.3 MiB)
RX errors 0 dropped 30 overruns 0 frame 0
TX packets 2346 bytes 443972 (433.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.138.93 netmask 255.255.0.0 broadcast 172.20.255.255
inet6 fe80::9c62:da56:4de4:a8d2 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:20:c7:92 txqueuelen 1000 (Ethernet)
RX packets 151 bytes 17199 (16.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 31 bytes 4843 (4.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-
计划在centos7.5 bond0网卡上配172.20.0.128
[root@rhel6 ~]#ping 172.20.0.128
PING 172.20.0.128 (172.20.0.128) 56(84) bytes of data.
From 172.20.32.66 icmp_seq=2 Destination Host Unreachable
From 172.20.32.66 icmp_seq=3 Destination Host Unreachable
From 172.20.32.66 icmp_seq=4 Destination Host Unreachable
From 172.20.32.66 icmp_seq=6 Destination Host Unreachable
From 172.20.32.66 icmp_seq=7 Destination Host Unreachable -
// 添加bonding接口, 配上IP 172.20.0.128
[root@centos7 ~]#nmcli conection add type bond con-name mybond0 ifname mybond0 mode active-backup ipv4.method manual ipv4.address 172.20.0.128/16[root@centos7 network-scripts]#less ifcfg-mybond0
BONDING_OPTS=mode=active-backup
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=172.20.0.128
PREFIX=16
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=mybond0
UUID=086e3b03-9b9b-4940-9a3c-db8ad6b35e7f
DEVICE=bond0
ONBOOT=yes//添加从属接口
[root@centos7 ~]#nmcli connection add con-name bond0-ens33 type bond-slave ifname ens33 master mybond0
Connection 'bond0-ens33' (40bca0c5-654a-4667-8d3a-d359605fe078) successfully added.[root@centos7 network-scripts]#less ifcfg-bond0-ens33 // 查看创建好的bond0-ens33配置文件
TYPE=Ethernet
NAME=bond0-ens33
UUID=40bca0c5-654a-4667-8d3a-d359605fe078
DEVICE=ens33
ONBOOT=yes
MASTER_UUID=086e3b03-9b9b-4940-9a3c-db8ad6b35e7f
MASTER=bond0
SLAVE=yes[root@centos7 ~]#nmcli connection add con-name bond0-ens38 type bond-slave ifname ens38 master mybond0
Connection 'bond0-ens38' (116fd3bc-8297-4b25-93ed-650127f595ea) successfully added.[root@centos7 network-scripts]#less ifcfg-bond0-ens38 // 查看创建好的bond0-ens38配置文件
TYPE=Ethernet
NAME=bond0-ens38
UUID=116fd3bc-8297-4b25-93ed-650127f595ea
DEVICE=ens38
ONBOOT=yes
MASTER_UUID=086e3b03-9b9b-4940-9a3c-db8ad6b35e7f
MASTER=bond0
SLAVE=yes
//查看当前bond0 文件状态:
[root@centos7 network-scripts]#cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens33 //当前是ens33网卡工作
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:50:56:35:33:6c
Slave queue ID: 0
Slave Interface: ens38
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:20:c7:92
Slave queue ID: 0
//做测试:先断开ens33网卡
[root@centos7 ~]#cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens38 //ens38网卡瞬间切换为 Active Slave
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens33
MII Status: down //ens33状态: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: 00:50:56:35:33:6c
Slave queue ID: 0
Slave Interface: ens38
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:20:c7:92
Slave queue ID: 0