bond模式详解与配置(2)
文章转载自:
1. bond网卡
1.1 bond网卡概述
Bond网卡是指使用Linux系统中的Bonding技术创建的虚拟网络接口。
Bonding技术允许将多个物理网卡(也称为接口或端口)绑定在一起,形成一个虚拟的网络接口,以增加网络带宽、提高网络容错性和负载均衡能力。
在Linux中,可以使用工具如ifenslabe
、ifconfig
、ip
等来配置和管理Bonding接口。
1.2 Linux网卡的绑定模式
-
mode=0: load-balancing负载均衡方式,两个网卡都工作,最简单常用
-
mode=1: 冗余模式,只有主工作,从监听,主挂了,从才工作
-
mode=2: 平衡策略,既能提供负载均衡,也有容错能力,冗余的升级版
-
mode=3: 网卡的广播策略,极少用
-
mode=4: 动态链聚合(连接交换机)
-
mode=5: 也是负载均衡模式(定制模式,很少见)
-
mode=6: 适配器的负载均衡,也很少用
1.3 配置简单Bond网卡
要求:新增一个网络适配器到虚拟机,配置网卡,使虚拟机的两个网卡实现Bond网卡。
公用IP地址: 20.0.0.30
实现步骤:
1) 新增网卡后,ifconfig查看新增网卡的设备名为ens36
2) 对两个网卡(ens33、ens36)的配置文件进行修改
- 修改ens33网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#配置文件内容如下
TYPE=Ethernet
DEVICE=ens33 #当前设备名
ONBOOT=yes
BOOTPROTO=none #不设置IP地址
MASTER=bond0 #主设备为bond0
SLAVE=yes #从属于bond0
USERCTL=no #禁止普通用户启用/禁止设备
- 修改ens36网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-ens36
#配置文件内容如下
TYPE=Ethernet
DEVICE=ens36 #当前设备名
ONBOOT=yes
BOOTPROTO=none #不设置IP地址
MASTER=bond0 #主设备为bond0
SLAVE=yes #从属于bond0
USERCTL=no #禁止普通用户启用/禁止设备
3) 创建虚拟网卡bond0
vim /etc/sysconfig/network-scripts/ifcfg-bond0
#配置文件内容如下
TYPE=Ethernet
DEVICE=bond0 #虚拟网卡设备bond0
ONBOOT=yes
BOOTPROTO=static #静态IP地址
IPADDR=20.0.0.30
NETMASK=255.255.255.0
GATEWAY=20.0.0.2
DNS1=218.2.135.1
BONDING_OPTS="miimon=100 mode=0 fail_over_mac=1"
最后一行的解释:绑定的模式和选项
"miimon=100 mode=0 fail_over_mac=1"
-
miimon=100 :检查所有从设备的连接状态,100表示100ms,即每隔100ms检查从设备网卡的连接状态
-
mode=0: 绑定网卡的mode=0
-
fail_over_mac=1 :表示在故障切换时,备用接口会获取主接口的MAC地址,减少切换过程中可能出现的故障。如果计算机连接交换机,交换机不需要重新学习MAC地址。ens33,ens36都知道对方的MAC地址。
4) 刷新bond配置,重启网卡
modprobe bonding #刷新bond配置
systemctl restart network
ifconfig查看网卡信息:
可以看到:
-
ens33和ens36都没有IP地址,它们共用bond0的IP地址
-
bond0、ens33、ens36具有相同的mac地址
5)测试连通性、查看数据流向
tcpdump -i ens33
tcpdump -i ens36
可以看到两个网卡都有数据,实现简单的负载均衡。
tcpdump :Linux自带的抓包工具
-i :接设备名,抓取指定设备的数据包流量
也可以ifdown 关掉一个网卡,网络依然可以联通。