一、查看现有网卡
1、什么是bond?
网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。Kernels 2.4.12及以后的版本均供bonding模块,以前的版本可以通过patch实现。
2、实现原理:
网卡工作在混杂(promisc)模式,接收到达网卡的所有数据包,tcpdump工作用的也是混杂模式(promisc),将两块网卡的 MAC地址修改为相同接收特定MAC的数据帧,然后把相应的数据帧传送给bond驱动程序进行处理。
3、通过以下命令确定内核是否支持 bonding:
cat /boot/config-3.10.0-957.el7.x86_64 |grep -i bonding CONFIG_BONDING=m
4、bond的模式
bond的模式常用的有两种:mode=0(balance-rr)
表示负载分担round-robin,并且是轮询的方式比如第一个包走eth0,第二个包走eth1,直到数据包发送完毕。
优点:流量提高一倍
缺点:需要接入交换机做端口聚合,否则可能无法使用
mode=1(active-backup)
表示主备模式,即同时只有1块网卡在工作。
优点:冗余性高
缺点:链路利用率低,两块网卡只有1块在工作
注:默认情况下虚拟机只有一块网卡
二、配置
1、查看系统版本
cat /etc/centos-release CentOS Linux release 7.6.1810 (Core)
2、查看内核版本
uname -r 3.10.0-957.el7.x86_64
3、模拟添加一块物理网卡:
4、查看是否添加完成:
ip a
注:目前可以看到有两块物理网卡;
5、配置网卡文件:
cd /etc/sysconfig/network-scripts/ 进入到网卡文件配置目录 cp ifcfg-ens33 ifcfg-ens36 拷贝一份原网卡文件修改配置 vim ifcfg-en36 修改网卡文件配置 systemctl restart network 修改完成重启网卡 ip a 查看新添加网卡是否有ip,是否识别到新添加的网卡
6.编辑网卡配置文件
网卡1:vim ifcfg-ens33 DEVICE=ens33 #网口名eth0 TYPE=Ethernet #以太网接口 ONBOOT=yes #LINUX在启动时激活该网口 BOOTPROTO=none #使用什么协议激活网口 none表示不使用任何协议 static表示设置静态IP dhcp表示动态获取IP MASTER=bond0 #指定虚拟网口的名字(主人) SLAVE=yes #备用(从设备)
网卡2:vim ifcfg-ens36 DEVICE=ens36 #网口名eth1 TYPE=Ethernet #以太网接口 ONBOOT=yes #LINUX在启动时激活该网口 BOOTPROTO=none #使用什么协议激活网口 none表示不使用任何协议 static表示设置静态IP dhcp表示动态获取IP MASTER=bond0 #指定虚拟网口的名字 SLAVE=yes #备用
bond0网卡文件:vim ifcfg-bond0 DEVICE=bond0 名称 TYPE=Ethernet ONBOOT=yes 状态开启或关闭 BOOTPROTO=static 配置静态或动态 IPADDR=192.168.1.116 IP地址 NETMASK=255.255.0.0 掩码 GATEWAY=192.168.1.1 网关 DNS1= BONDING_OPTS=”miimon=100 mode=0”
查看内核模块的信:modinfo 查看内核是否支持:lsmod 加载模块的信:modprobe --first-time bonding关闭NetworkManager: systemctl stop NetworkManager 查看查看bond0状态:/proc/net/bonding/bond0 重启网卡:systemctl restart network删除bond0:ifconfig bond0 down rmmod bonding
三、直接使用nmcli 命令做双网卡绑定bond0:
nmcli:
OBJECT里我们平时用的最多的就是connection和device,这里就跟大家简单区分一下connection和device connection是连接,偏重于逻辑设置 device叫网络接口,是物理设备 多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。 这样的好处是针对一个网络接口,我们可以设置多个网络连接,比如静态IP和动态IP,再根据需要up相应的connection
3.1命令操作
nmcli device show 查看所有网卡设备信息 后面指定具体网卡名称可以查看某块网卡详细的信息 nmcli connection show 查看所有连接 后面指定具体网卡名称可以查看某块网卡详细的信息 connection show 后跟上 -a 参数是仅显示活动的连接
balance-rr : mode1 轮询 balance-backup :mode0 主备
nmcli con add type bond con-name bond0 ifname bond0 mode balance-rr # 为Bond连接添加从属设备(假设从属设备是eth0和eth1) nmcli con add type ethernet con-name bond-slave-eth0 ifname ens33 master bond0 nmcli con add type ethernet con-name bond-slave-eth1 ifname ens36 master bond0 bond-slave-eth0 网卡名称 ens33 添加的哪块网卡 # 激活Bond连接 重启网卡与bond0 nmcli con up bond0 nmcli con up bond-slave-eth0 nmcli con up bond-slave-eth1
3.2 在命令行输入nmtui进入操作界面按下面步骤进行操作:
使用命令查看bond完成:
nmcli con show