kvm+bond+bridge 实现多网卡的网桥搭建
针对多网卡的kvm网桥设置
问题背景: 需要双网卡进行bonding,又存在kvm虚拟机,需要配置网桥。所以需要将bonding 和 bridge结合。
解决思路: 先将双网卡绑定在同一个bond下,再将bond与bridge相连接。
环境情况
os: centos 7.4
网卡数: 2 ens33 ens37
bond: bond0
网桥: br0
配置网桥
cd /etc/sysconfig/network-scripts
vi ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.1.193
GATEWAY=192.168.0.2
NETMASK=255.255.0.0
配置bond捆绑
cd /etc/sysconfig/network-scripts
vi ifcfg-bond
DEVICE=bond0
NAME=bond0
TYPE=Bond
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
BONDING_MASTER=yes
BONDING_OPTS="mode=6 miimon=100"
BRIDGE=br0
参数解释
miimon 是用作链路监控的,单位为毫秒,这里设置为100ms,也就是说,系统将每100ms检测一次链路的连接状态,如果有一条线路不通,就会转接至另一条线路。
模式使用情况常用的主要是用的 0,1,6
mode=0 是平衡抡循环策略,传输数据包的策略是依次传输,比如第一个包走的是eth0,第二个就走eth1,然后进行循环,知道数据包传输完毕。提供容错和负载平衡。但是存在一个问题,就是当数据包从不同的接口发出时,中途会经过不同的链路,所以很有可能在客户端出现数据包无序到达的问题,而无序的数据包需要被要求重新发送,此时网络的吞吐量就会随之下降。
mode=1 是主-备份策略,只会有一个设备处于活动状态,当一个宕掉后,另一个会马上转变为主设备继续工作,bond的mac地址是唯一的,防止交换机发生混乱,此模式只提供容错。主要优点是提高了网络链接的可用性,但是缺点也很明显,就是资源利用率低,存在N个设备的话,资源的利用率仅仅为1/N。
mode=6 是适配器适应性负载均衡模式,两个网卡都进行工作,该模式下无需对交换机进行配置,此时两张网卡的MAC地址是不同的。此模式下的网络分配是不均匀的,先会把eth0占满,然后再占用eth1,eth2以此类推。所以情况就是在mode6情况下,会出现一个口占用率很高,而其他口占用率很低的情况。
配置网卡
两张网卡除了DEVICE不同,其他的配置一致。主要是将网卡绑定在同一个bond下。
vi ifcfg-ens33
DEVICE=ens33
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none