> 文章列表 > CentOS7 虚拟机 双网卡绑定

CentOS7 虚拟机 双网卡绑定

CentOS7 虚拟机 双网卡绑定

一、网卡绑定模式

模式 类型 特点
mode0 round-robin(平衡轮询策略) 基于per packet方式,轮询往每条链路发送报文。提供负载均衡和容错的能力,当有链路出问题,会把流量切换到正常的链路上。交换机端需要配置聚合口。
mode1 active-backup(主-备份策略)

一个端口处于主状态 ,一个处于从状态,所有流量都在主链路上处理,从链路不会有任何流量。当主端口down掉时,从端口接手主状态。不需要交换机端支持。

mode2 balance-xor(平衡策略) 该模式将限定流量,以保证到达特定对端的流量总是从同一个接口上发出。目的地是通过MAC地址来决定的,因此该模式在“本地”网络配置下可以工作得很好。交换机端需要配置聚合口。
mode3 brodcast(广播策略) 在每个slave接口上传输每个数据包,适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。
mode4 IEEE 802.3ad(动态链接聚合) 802.3ad模式是IEEE标准,因此所有实现了802.3ad的对端都可以很好的互操作。802.3ad 协议包括聚合的自动配置,因此只需要很少的对交换机的手动配置(要指出的是,只有某些设备才能使用802.3ad)。802.3ad标准也要求帧按顺序(一定程度上)传递,因此通常单个连接不会看到包的乱序。
mode5 Balance-tlb(适配器传输负载均衡) 不需要交换机支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。
mode6 Balance-alb(适配器适应性负载均衡) 模式包含了上一个模式,同时加上针对IPV4流量的接收负载均衡,而且不需要任何交换机的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。

日常生产环境中常用的模式是mode4。

二、常用配置项

# primay 指定哪个slave成为主设备,只针对mode-1
# updelay 指定当发现一个链路恢复时,在激活该链路之前的等待时间,以毫秒计算。
# arp_interval 指定ARP链路监控频率,单位是毫秒(ms)。
# arp_ip_target 指定一组IP地址用于ARP监控的目标,它只在arp_interval > 0时有效。
# downdelay 指定一个时间,用于在发现链路故障后,等待一段时间然后禁止一个slave,单位是毫秒(ms)。
# lacp_rate 指定在802.3ad模式下,我们希望的链接对端传输LACPDU包的速率。有如下选项:
# 1)slow 或者 0 请求对端每30s传输LACPDU
# 2)fast 或者 1 请求对端每1s传输LACPDU
# 3)缺省值是slow
# max_bonds    为bonding驱动指定创建bonding设备的数量。
# miimon 指定MII链路监控频率,单位是毫秒(ms)。
# mode 指定bonding的策略。

三、bond0

1)关闭Networking服务

[root@localhost network-scripts]# systemctl stop NetworkManager

2)配置ens33

[root@localhost network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
UUID=8bf9b3d0-2885-4740-927a-c6e03ebd5e41
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes

3)配置ens37

[root@localhost network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens37
UUID=55e27294-0578-364d-acc6-1077fd83cb21
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes

4)配置bond0

[root@localhost network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=bond
BOOTPROTO=none
DEFROUTE=yes
NAME=bond4
DEVICE=bond4
ONBOOT=yes
IPADDR=192.168.56.136
NETMASK=255.255.255.0
GATEWAY=192.168.56.2
DNS1=8.8.8.8
BONDING_MASTER=yes
USERCTL=no
BONDING_OPTS="mode=0 miimon=100 primary=ens37 updelay=60000"# 设置自动加载配置
[root@localhost network-scripts]# vi /etc/modprobe.d/bonding.conf
alias bond0 binding
options bond0 mode=0 miimon=100 primary=ens37 updelay=60000

5)开启混杂模式

[root@localhost network-scripts]# ip link set ens33 promisc on
[root@localhost network-scripts]# ip link set ens37 promisc on# 设置开机自动将网卡设为混杂模式
[root@localhost network-scripts]# vi /etc/rc.local
ip link set ens33 promisc on
ip link set ens37 promisc on

6)测试

重启服务,分别移除不同的网络适配器,验证bond的高可用。

四、bond1

1)配置ens33

[root@localhost network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
UUID=8bf9b3d0-2885-4740-927a-c6e03ebd5e41
DEVICE=ens33
ONBOOT=yes
MASTER=bond4
SLAVE=yes

2)配置ens37

[root@localhost network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE=Ethernet
BOOTPROTO=none
NAME=ens37
DEVICE=ens37
UUID=55e27294-0578-364d-acc6-1077fd83cb21
ONBOOT=yes
MASTER=bond4
SLAVE=yes

3)配置bond1

[root@localhost network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-bond1
TYPE=bond
BOOTPROTO=none
DEFROUTE=yes
NAME=bond4
DEVICE=bond4
ONBOOT=yes
IPADDR=192.168.56.136
NETMASK=255.255.255.0
GATEWAY=192.168.56.2
DNS1=8.8.8.8
BONDING_MASTER=yes
USERCTL=no
BONDING_OPTS="mode=1 miimon=100 primary=ens37 updelay=60000"# 设置自动加载配置
[root@localhost network-scripts]# vi /etc/modprobe.d/bonding.conf
alias bond1 binding
options bond1 mode=1 miimon=100 primary=ens37 updelay=60000

4)测试

分别断开网卡,使用ping命令测试网络连通性