网卡绑定bond

网卡绑定

bond模式:

  • Mode=0(balance-rr) 表示负载分担round-robin,和交换机的聚合强制不协商的方式配合。cisco交换机要设置Etherchannel

  • Mode=1(active-backup) 表示主备模式,只有一块网卡是active,另外一块是备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包是丢弃的。

  • Mode=2(balance-xor) 表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy) cisco交换机要设置Etherchannel

  • Mode=3(broadcast) 表示所有包从所有interface发出,这个不均衡,只有冗余机制...和交换机的聚合强制不协商方式配合。 cisco交换机要设置Etherchannel

  • Mode=4(802.3ad) 表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy)和 Etherchannel

  • Mode=5(balance-tlb) 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave

  • Mode=6(balance-alb) 在5的tlb基础上增加了rlb。

5和6不需要交换机端的设置,网卡能自动聚合。4需要支持802.3ad。0,2和3理论上需要静态聚合方式

但实测中0可以通过mac地址欺骗的方式在交换机不设置的情况下不太均衡地进行接收。

常用的有三种

  • mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址

  • mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。

  • mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。

参考 http://5503845.blog.51cto.com/5493845/962580

http://www.cnblogs.com/nulige/p/6714183.html?utm_source=itdadao&utm_medium=referral

二:案例一:mode=1(active-backup):一个网卡处于活动状态 ,一个处于备份状态,所有流量都在主链路上处理。当活动网卡down掉时,启用备份的网卡。

1:[root@lyt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 dhcp也可以设置成none 或 static (一下几个要一样)

img

MASTER=bond0 对应绑定名称bond0

SLAVE=yes

root@lyt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

img

MASTER=bond0 对应绑定名称bond0

SLAVE=yes

2:[root@lyt ~]# cd /etc/sysconfig/network-scripts/

[root@lyt network-scripts]# cp ifcfg-eth0 ifcfg-bond0 #生成一个bond0的虚拟网卡

[root@lyt network-scripts]# vim ifcfg-bond0 #编辑该网卡内容

img

3:[root@lyt network-scripts]# vim /etc/modprobe.conf #编辑该配置文件

下图中1表示系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0;miimon=100表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线

路;mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。

img

[root@linux ~]# vim /etc/modprobe.d/bonding.conf #此文件是自己创建,名字可以随便取

alias bond0 bonding

options bond0 miimon=100 mode=1

options bond0 miimon=100 mode=1 primary=eth0 参数指定主网卡

2.加载模块(重启系统后就不用手动再加载了)

[root@test ~]# modprobe bonding

4:[root@lyt network-scripts]# vim /etc/rc.local #编辑该开机脚本,将eth0和eth1网卡进行绑定

img

5:[root@lyt network-scripts]# init 6

img

[root@lyt ~]# ifconfig #查看网卡信息,在此处三块网卡的mac地址是一样的

img

[root@lyt ~]#vim /proc/net/bonding/bond0 #查看模式及网卡信息。实际mac地址是不一样的

img

将网卡eth0断掉后,系统使用备份网卡eth1,此时eth1处于活动状态

img

直接切换活动网卡,不出现丢包

ifenslave -c bond0 eth1

案例二:mode=0(round robin):所有链路处于负载均衡状态,这模式的特点增加了带宽,同时支持容错能力。

1:在案例一的基础上,只需要修改/etc/modprobe.conf 配置文件:

img

2:vim /proc/net/bonding/bond0 #查看使用的模式及网卡信息,如图:

img

测试

img

注意:

留心:前面只是2个网口绑定成一个bond0的情况,如果我们要设置多个bond口,比如物理网口eth0和eth1组成bond0,eth2和eth3组成bond1,

那么网口设置文件的设置方法和上面第1步讲的方法相同,只是/etc/modprobe.d/bonding.conf的设定就不能像下面这样简单的叠加了:

alias bond0 bonding

options bonding mode=1 miimon=200

alias bond1 bonding

options bonding mode=1 miimon=200

正确的设置方法有2种:

第一种,你可以看到,这种方式的话,多个bond口的模式就只能设成相同的了:

alias bond0 bonding

alias bond1 bonding

options bonding max_bonds=2 miimon=200 mode=1

第二种,这种方式,不同的bond口的mode可以设成不一样:

alias bond0 bonding

options bond0 miimon=100 mode=1

install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0

仔细看看上面这2种设置方法,现在如果是要设置3个,4个,甚至更多的bond口,你应该也会了吧!

后记:简单的介绍一下上面在加载bonding模块的时候,options里的一些参数的含义:

miimon 监视网络链接的频度,单位是毫秒,我们设置的是200毫秒。

max_bonds 配置的bond口个数

mode bond模式,在一般的实际应用中,0和1用的比较多。

----------------------------------------------------------------------------------------------------------------------------------------------------

在CentOS 7 / RHEL 7中配置NIC(网络接口卡)绑定

# 如果bonding模块没有加载到你的Linux机器上,那么使用下面的命令来加载。

modprobe bonding

步骤:1创建bond接口文件

$ cat /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

TYPE=Bond

NAME=bond0

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.1.70

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

BONDING_MASTER=yes

BONDING_OPTS="mode=6 miimon=100"

步骤:2编辑NIC接口文件

# ifcfg-enp0s3

[root@openstack ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

TYPE=Ethernet

BOOTPROTO=none

DEVICE=enp0s3

ONBOOT=yes

MASTER=bond0

SLAVE=yes

# ifcfg-enp0s8

[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s8

TYPE=Ethernet

BOOTPROTO=none

DEVICE=enp0s8

ONBOOT=yes

MASTER=bond0

SLAVE=yes

步骤:3修改配置文件

# vi /etc/modprobe.d/bonding.conf

alias bond0 bonding

步骤:4关闭和停止NetworkManager服务

systemctl stop NetworkManager.service #停止NetworkManager服务

systemctl disable NetworkManager.service #禁止开机启动NetworkManager服务

重启网卡

systemctl restart network

posted @ 2021-10-27 00:58  博客萨斯州  阅读(502)  评论(0编辑  收藏  举报