VirtualBox:8双网卡绑定

发布时间 2023-08-07 16:13:55作者: ShineLe

学习自:Linux实现双网卡绑定_嗨咯沃得的博客

 1、任务

配置两个网卡,双网卡绑定,共享同一个IP地址10.0.0.13/24。

共享同一个IP地址实现对外访问,实际同样连接两条物理线路到交换机实时双网卡同时工作,分流网络压力,同时提供冗余备份、监控、防止物理线路的单点故障。

2、原理

Linux bonding驱动模块提供了一种方法,用以把多个网络接口(network interface)组合成一个逻辑的bonded接口。Bonded接口的工作方式取决于驱动的模式,不同的模式提供了热备份或负载均衡等不同服务。

驱动模式

①轮询策略(round robin)mode=0

按照设备顺序依次传输数据包,提供负载均衡和容错能力;

②主备策略(active-backup)mode=1

只有主网卡处于工作状态,备用卡处于备用状态主网卡坏掉之后备网卡开始工作,提供容错能力;

③异或策略(load balancing(xor))mode=2

根据源MAC地址目的MAC地址进行异或计算的结果来选择传输设备,提供负载均衡和容错能力

④广播策略(fault-tolerance(broadcast))mode=3

将所有数据包传输给所有接口,通过全部设备传输所有数据,一个报文会复制两份通过bond下的两个网卡分别发送出去,提供高容错能力

⑤动态链接聚合(lacp)mode=4

暗转802.3ad协议的聚合自动配置共享相同的传输速度网卡带宽最高可翻倍,链路聚合控制协议(LACP)自动通知交换机聚合哪些端口,需要交换机支持802.3ad协议,提供容错能力;

⑥输出负载均衡(transmit load balancing)mode=5

只有输出实现负载均衡,输入数据时则只选择其中一块网卡接收,需要网卡和驱动支持ethtool命令

⑦输入/输出负载均衡模式(adaptive load balancing)mode=6

输入输出都支持负载均衡,需要网卡和驱动支持ethtool命令。

3、步骤

1)进入网卡配置目录:cd /etc/sysconfig/network-scripts

2)vi ifcfg-bond0

TYPE=Ethernet
BOOTPROTO=static
NAME=bond0
DEVICE=bond0
ONBOOT=yes
BONDING_OPTS="miimon=100 mode=1 primary=enp0s3 fail_over_mac=1"

IPADDR=10.0.0.13
PREFIX=24
GATEWAY=10.0.0.1

3)vi ifcfg-enp0s3

TYPE=Ethernet
BOOTPROTO=none
NAME=enp0s3
DEVICE=enp0s3
ONBOOT=yes
MASTER=bond0
SLAVE=yes

4)vi ifcfg-enp0s8

TYPE=Ethernet
BOOTPROTO=none
NAME=enp0s8
DEVICE=enp0s8
ONBOOT=yes
MASTER=bond0
SLAVE=yes

5)vi /etc/modprobe.d/dist.conf

alias bond0 bonding
options bond0 miimon=100 mode=1 primary=enp0s3#主网卡名,

解释:

alias bond0 bonding:系统在启动时加载bonding模块对外虚拟网络接口设备bond0

miimon:每100ms监测一次链路状态,如果有一条线路不通,就转入另一条线

mode=1:第2节所讲的驱动模式,这里是主备策略——只有主网卡处于工作状态,备用卡处于备用状态,主网卡坏掉之后备网卡开始工作,提供容错能力;

primary=enp0s3:系统首先将enp0s3作为bond0接口与外界信息的传输接口

6)vi /etc/rc.local

modprobe bonding miimon=100 mode=1

7)重启网络,systemctl restart network或systemctl restart NetworkManage

4、测试

ping baidu.com,通过断开不同的网卡,观察网络是否可用

先ping:

然后断开当前正用的网卡:

 

观察ping是否中断,没有中断,然后我们手动中断ping:

 

发现只丢失了一个ping包,应该是切换网卡的时候丢失的,我们可以通过调整miimon=的值的大小来避免切换丢包发生。综上我们实现了Linux双网卡绑定高可用。