志不强者智不达,言不信者行不果。这篇文章主要讲述网卡绑定bond0的实现相关的知识,希望能为你提供帮助。
Bonding是将多块网卡绑定同一ip地址对外提供服务,可以实现高可用或者负载均衡。默认情况下,无法给不同网卡配置同一个ip地址,通过bonding,创建一个虚拟网卡(Master角色)对外提供连接,然后在此虚拟机上绑定多块物理网卡(Slave角色),它们将共用MAC地址。这样一来,流量将以master虚拟网卡为导向分配给各slave物理网卡,从而实现流量的负载均衡或高可用。
【网卡绑定bond0的实现】
不配合交换机的情况下,笔者这边就以mod=1(主-备份策略)的模式来演示双网卡绑定bond0的实现。
- 添加网卡
在VMware Workstation窗口添加网卡,选择要进行bonding的虚拟机,右键选择“设置”,或者虚拟机关机状态下直接点击“设备”部分的“网络适配器”来添加,网络连接选择“NAT模式”(如下图)。
添加完网卡后,执行 ip a 命令,我们可以看到除了eth0网卡外,还多了一个eth1网卡(如下图)。
- 创建bond0
在虚拟机8.3-2上创建bond0,取名mybond0(该处随意,填写其他也行),接口为bond0,类型为bond设备,模式为主-备份策略,选择手动指定ipv4地址10.10.10.100,即执行 nmcli connection add con-name mybond0 ifname bond0 type bond mode active-backup ipv4.method manual ipv4.addresses 10.10.10.100/24 命令,执行 nmcli connection 命令可见多了一个bond0(如下图)。
进入到 /etc/sysconfig/network-scripts目录下可见已自动生成一个ifcfg-mybond0的文件,执行 cat ifcfg-mybond0 命令也可查看这个文件的信息(如下图)。
- 绑定网卡
执行 nmcli connection up bond-slave-eth1 和 nmcli connection up bond-slave-eth1 命令令其生效,切换到centos8.3上也可看到已经能ping通10.10.10.100的地址了(如下图)。
*如果是在xshell上操作的,执行eth0的命令后xshell会断开连接,需登录到10.10.10.100的ip后才可进行后续操作。
- 掐网卡测试
执行 cat /proc/net/bonding/bond0 命令,可见当前bond0的主-备关系中,eth1为主,eth0处于备用状态(如下图)。
先来断开eth0的状态,断网后,centos8.3中仍能ping通10.10.10.100的地址,没有出现丢包现象(如下图)。
接下来重新连上eth0的网络连,断开处于主状态的eth1网络连接,断网后,centos8.3中也能ping通10.10.10.100的地址,没有出现丢包现象。在centos8.3-2主机上执行 cat /proc/net/bonding/bond0 命令,也可见当前处于主状态的改成了eth0,而eth1网卡处于down的状态(如下图)。
只有eth0和eth1都断开网络连接的情况下,centos8.3才无法ping通10.10.10.100的地址(如下图)。
通过这个实验,我们可以发现,mod=1的模式下,虽然两个网卡只有一个处于主状态,即工作状态,在一定程度上会造成浪费,但也减少了网卡出故障时导致的虚拟机不可用和数据丢失等现象。
推荐阅读
- RHCSA考题讲解
- Proxmox VE 7.0升级到Proxmox VE 7.1虚拟机重启失败
- python获取列表长度
- 运维小白成长记——第五周
- XML DOM 节点树概述
- k8s-apiServer鉴权
- ubuntu20.04启用SSH
- docker搭建docker私服仓库nexus
- Docker 安装zabbix 5