前景须知:
在redhat6 中网卡叫bond,在redhat7及centos7中改名team,此处只记录centos7中双网卡主备搭建过程。
应用情景:实现网络的高可用,防止一条网线或交换机故障影响该物理机进行数据交互。
Linux NIC Bonding 采用模式(命令行模式):
mode=6 (balance-alb):双独立槽位2口物理网卡分别配置1单口两两相组1对bond;平衡负载模式、自动备援
centos 7注意事项:
注: ip地址配置在bond0上, 物理网卡不需要配置ip地址。
实施过程:(网卡名称、IP地址、DNS、网关、子网掩码信息依实际情况而修改)
1、关闭和停止NetworkManager服务(一定要关闭,不关会对做bonding有干扰)
systemctl stop NetworkManager.service #停止NetworkManager服务
systemctl disable NetworkManager.service #禁止开机启动NetworkManager服务
2、加载bonding模块
modprobe --first-time bonding 或 modprobe bonding
没有提示说明加载成功, 如果出现 modprobe: ERROR: could not insert 'bonding': Module already in kernel 说明你已经加载了这个模块, 就不用管了
你也可以使用lsmod | grep bonding查看模块是否被加载
lsmod | grep bonding bonding 136705 0
3、启用rc.local开机启动项
chmod +x /etc/rc.d/rc.local
在文件中写入modprobe bonding
4、主Bond0 mode=6配置文件书写,在(
/etc/sysconfig/network-scripts/)目录下:ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.2.*
PREFIX=255.255.255.0 或写成 NETMASK=255.255.255.0
GATEWAY=192.168.2.254
DNS1=0.0.0.0
DNS2=1.1.1.1
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=6 miimon=100"
5、编辑NIC接口文件,在(
/etc/sysconfig/network-scripts/)目录下:ifcfg-em1*、ifcfg-em2*;具体以实际查询网卡名称进行更改。
vim ifcfg-em1
TYPE=Ethernet
BOOTPROTO=none
DEVICE=em1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
vim ifcfg-em2
DEVICE=em2
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
PS:因实际情况略微不同,暂时不做这一步;如无法实现再添加。
vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=6
6、重启网络服务:systemctl restart network.service 或重新加载网络配置 nmcli connection reload && systemctl restart network.service
7、测试和验证bond接口:ifconfig查看网卡状态
8、查看绑定接口设置(绑定模式和从接口):cat /proc/net/bonding/bond0
9、测试容错:停掉一个网卡,看是否能够访问服务器以及接口状态:ifdown em1或em2
10、ifconfig查看网络状态,并验证应用级程序与数据交互状态。
Linux 多网卡Bond(Team)高可用知识点补充:
bond模式:
Mode=0(balance-rr)表示负载分担round-robin
Mode=1(active-backup)表示主备模式,只有一块网卡是active,另外一块是备的standby
Mode=2(balance-xor)表示XOR Hash负载分担
Mode=3(broadcast)表示所有包从所有接口发出,这个不均衡
Mode=4(802.3ad)表示支持802.3ad协议,和交换机的聚合LACP方式配合
Mode=5(balance-tlb)是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave
Mode=6(balance-alb)在5的tlb基础上增加了rlb。
0、2、3理论上需要静态聚合方式;5和6不需要交换机端的设置,网卡能自动聚合;4需要支持802.3ad;
但实测中0可以通过mac地址欺骗的方式在交换机不设置的情况下不太均衡地进行接收。
常用的有三种
mode=0:平衡负载模式,有自动备援,但需要交换机配合
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援
mode=6:平衡负载模式,有自动备援,不需要交换机配合
延续命令:
11、删除 bond 设备
查看网络设备
[root@localhost ~]# ls /sys/class/net/
bond0 bond1 bonding_masters eno16777736 eno33554960 eno50332184 eno67109408 eno83886632 lo
删除bond网络设备
直接删除bond0,会提示无权限。
可以通过bonding_masters文件删除bond设备,但是bonding_masters文件是无法直接修改的。
[root@localhost ~]# echo -bond0 >/sys/class/net/bonding_masters
echo 后面的 ‘-’ 是删除设备,‘+’是增加设备
您的支持与鼓励,是我前行的动力;希望可以解决您的问题。