VirtualBox:双网卡绑定
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双网卡绑定高可用。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性