Linux双网卡绑定实现高可用
看看一般情况下网卡基本配置是怎么样的?
使用DHCP自动获取IP:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
NAME=eth0
TYPE=Ethernet
IPV6INIT=no
HWADDR=xx:xx:xx:xx:xx:xx
如果是手工配静态IP:
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
ONBOOT=yes
IPADDR=192.168.1.1
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS=192.168.100.1
配置双网卡高可用:
方法一:teaming
常用的两种策略:轮询式(roundrobin)的流量负载均衡;热备份(activebackup)连接冗余
①建立虚拟网卡team0 ,可参考 man teamd.conf
nmcli connection add type team con-name team0 ifname team0 autoconnect yes
config '{"runner": {"name": "activebackup"}}'
解析:nmcli connection 添加 类型 team 配置文件名 team0 网卡名 team0 开机自动启用
team的工作模式为热备份,若手误敲错,可将其删除 nmcli connection delete team0
②为team0添加两块真实网卡(team-slave)
nmcli connection add type team-slave con-name team0-1 ifname eth1 master team0
nmcli connection add type team-slave con-name team0-2 ifname eth2 master team0
nmcli con modify team0-1 connection.autoconnect yes
nmcli con modify team0-2 connection.autoconnect yes
若手误敲错,可将其删除 nmcli connection delete team0-1
③配值虚拟网卡team0的IP地址
nmcli connection modify team0 ipv4.method manual ipv4.addresses 192.168.1.1/24 connection.autoconnect yes
④激活网卡
nmcli connection up team0
nmcli connection up team0-1
nmcli connection up team0-2
⑤查看绑定状态
teamdctl team0 state
方法二:bonding
①网卡一配置文件内容:
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=eth0
MASTER=bond0
SLAVE=yes
②网卡二配置文件内容:
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=eth1
MASTER=bond0
SLAVE=yes
③创建绑定网卡
vim /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=bond0
IPADDR=192.168.1.1
PREFIX=24
NM_CONTROLLED=no
DNS=xxxx
GATEWAY=xxxx
BONDING_OPTS="mode=6 miimon=100" ##等同于步骤⑤
④让内核支持网卡绑定驱动
modprobe --first-time bonding
lsmod |grep bonding
⑤创建一个网卡绑定内核驱动文件(若做了步骤③可省略此步)
vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=6
解析:定义网卡绑定为mode6平衡负载模式,且当出现故障时自动切换时间为100毫秒
常见的网卡绑定驱动模式有:
mode0平衡负载模式:平时两块网卡均工作,且自动备援,采用交换机设备支援。
mode1自动备援模式:平时只有一块网卡工作,故障后自动替换为另外的网卡。
mode6平衡负载模式:平时两块网卡均工作,且自动备援,无须交换机设备支援
⑥重启网络生效
systemctl restart network
⑦查看验证
ifconfig ; ip a s ;
cat /proc/net/bonding/bond0
作者:Jaxgogo
链接:https://www.jianshu.com/p/862c42a6765d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。