双网卡绑定-bond
网卡绑定共有七种模式
mode=0与mode=1比较常用,mode=6负载均衡方式两块网卡都工作,不需要交换机支持,常用。
1、网卡负载均衡模式mode=0
该模式的特点是增加了带宽,同时支持容错能力,当有某一链路出现问题时,会把所有流量切换到正常的链路上。
特点:
所有链路处于负载均衡状态,以轮询方式向每条链路发送报文,基于per packet方式(按数据分流)发送。
如在配置bond0的服务器ping baidu.com 两个网卡均会有流量发出,流量会负载到两条链路上,说明是基于per packet方式进行的轮训发送。
该模式的特点是增加了带宽,同时支持容错能力,当有某一链路出现问题时,会把所有流量切换到正常的链路上。
2、网卡容错模式mode=1
当主端口down掉时,从端口会接手主端口的状态
特点:
一个端口处于主状态,一个端口处于从状态,所有的流量都会在主链路上处理,从端口不会有任何流量。当主端口down掉时,从端口接手主状态
3、balance-xor需要交换机支持mode=2
需要交换机支持mode=2,通过源和目标mac做hash因子来做xor算法来选择链路
特点:
此模式的特点是一个报文会负载两份王bond下的两个接口分别发送出去,当有对端交换机失效,我们感觉不到任何downtime,但此法过于浪费资源,在所有的slave接口上传送所有的报文。本模式提供容错能力。
4、broadcast广播策略mode=3
广播策略mode=3
此模式需要高可靠性的网络,不允许出现任何问题。本模式提供负载均衡和容错的能力
特点:
此模式的特点是一个报文会负载两份王bond下的两个接口分别发送出去,当有对端交换机失效,我们感觉不到任何downtime,但此法过于浪费资源,在所有的slave接口上传送所有的报文。本模式提供容错能力。
5、动态链路聚合mode=4
6、自适应传输负载均衡模式
balance-tlb自适应传输负载均衡模式mode=5
特点:
自适应传输负载均衡:信道绑定不需要特殊的交换机支持。出口流量的分布取决于当前每个slave的负载(计算相对速度)。进口流量从当前的slave的接收。如果接收salve出错,其他的slave接管失败的slave的MAC地址继续接收。
先决条件:
每个slave的基本驱动支持Ehtool获取速率状态。
7、网卡虚拟化模式mode=6
回复报文数第一个从端口1发第二个从端口2发,以此类推
特点:
此模式包含了自适应传输负载均衡模式,同时加上针对IPV4流量的接收负载均衡,而且不需要任何switch(交换机)的支持。
接收负载均衡是通过ARP协商(地址解析协议)实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。
所有端口都会收到对端的ARP请求报文,回复ARP回时,bond驱动模块会截获所发的ARP回复报文,跟进算法算到相应端口,这时会把ARP回复报文的源Mac,send源Mac都改成相应端口Mac。从抓包情况分析回复报文是第一个从端口1,第二个端口2发,以此类推。
bond-mode0配置
1、修改网卡配置
# 加载bonding模块,并确认已经加载
$ modprobe --first-time bonding
$ lsmod | grep bonding
bonding 152656 0
# 进入网卡配置目录
$ cd /etc/sysconfig/network-scripts/
# 将网卡配置文件备份并删除
$ mv -f ifcfg-ens33 ifcfg-ens33.bak
$ mv -f ifcfg-ens36 ifcfg-ens36.bak
# 重新配置ens33与ens36网卡
$ vim ifcfg-ens33
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=ens33
MASTER=bond0
SLAVE=yes
$ vim ifcfg-ens36
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=ens36
MASTER=bond0
SLAVE=yes
2、配置bond网卡绑定模式
$ vim ifcfg-bond0
TYPE=UnKnown
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=bond0
IPADDR=192.168.96.100
NETMASK=255.255.255.0
GATEWAY=192.168.96.2
DNS1=8.8.8.8
DNS2=223.5.5.5
BONDING_OPTS="miimon=80 mode=0"
3、配置bond文件
$ vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=0
4、配置开机启动
$ vim /etc/rc.local
modprobe bonding miimon=100 mode=0
5、查看结果
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:c2:f3:75 brd ff:ff:ff:ff:ff:ff
3: ens36: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:c2:f3:7f brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:c2:f3:75 brd ff:ff:ff:ff:ff:ff
inet 192.168.96.202/24 brd 192.168.96.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fec2:f375/64 scope link
valid_lft forever preferred_lft forever
Comments | NOTHING