网卡bond是通过把多张网卡绑定为一个逻辑网卡(虚拟接口),实现网卡冗余和负载均衡,在生产环境中经常用到。
服务器有两块网卡,用这两块网卡做成一个逻辑网卡bond0
1、确定系统是否已加载bonding模块
lsmod | grep bonding #检查是否已加载bonding模块
#如果命令输出中包含"bonding"字样,则表示bonding模块已加载。
#如果上述命令没有输出,说明bonding模块未加载。
sudo modprobe bonding #手动加载该模块
2、系统启动时自动加载bonding模块
touch /etc/modules-load.d/bonding.conf
vi /etc/modules-load.d/bonding.conf #编辑添加
bonding
:wq! #保存退出,在系统启动时,bonding模块将会自动加载
3、查看编辑网卡信息
ip addr #服务器上有两块网卡ens160和ens224,把这两块网卡绑定为一个逻辑网卡bond0
3.1编辑配置ens160网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens160
DEVICE=ens160
NAME=bond0-slave-ens160
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
NM_CONTROLLED=yes
:wq! #保存退出
3.2编辑配置ens224网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens224
DEVICE=ens224
NAME=bond0-slave-ens224
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
NM_CONTROLLED=yes
:wq! #保存退出
3.3创建一个类型为bond的配置文件/etc/sysconfig/network-scripts/ifcfg-bond0
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.21.101
GATEWAY=192.168.21.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes
BOOTPROTO=static #Maybe use dhcp
IPV4_ROUTE_METRIC=1000
NM_CONTROLLED=yes
PEERDNS=no
BONDING_OPTS="mode=0 miimon=100"
#BONDING_OPTS='mode=active-backup miimon=100'
#BONDING_OPTS='mode=4 miimon=100 xmit_hash_policy=layer3+4'
:wq! #保存退出
3.4开启网卡混杂模式
ip link set ens160 promisc on
ip link set ens224 promisc on
#添加到开机启动,开启网卡混杂模式
vi /etc/rc.local
ip link set ens160 promisc on
ip link set ens224 promisc on
:wq! #保存退出
chmod +x /etc/rc.local #添加执行权限
4、重启网络
#重启网卡(下面的三条命令都可以)
nmcli c up ens160
nmcli c up ens224
sudo systemctl restart systemd-networkd
#不支持network.service服务,需要使用yum install network-scripts命令来安装此服务
yum install network-scripts
systemctl restart network.service #重启网络服务
5、验证网卡是否绑定成功
#关闭任意一个网卡,网络不会中断,说明配置成功
ip addr #查看网络
ifdown ens160 #关闭网卡
ip addr #查看网络
ifup ens160 #启动网卡
ifdown ens224 #关闭网卡
ip addr #查看网络
ifup ens224 #启动网卡
至此,Linux下绑定多个网卡为一个虚拟接口配置完成。