Linux 多网卡绑定bond
一、简介
多网卡 bonding 是指将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一 IP 地址是不可以的,但是可以通过 bonding,虚拟一块网卡对外提供连,物理网卡被修改为相同的MAC地址。
二、bond模式
bond聚合链路模式有 0-6 共 7 种模式,常用的模式为 0、1、3、6。
1、模式 0 (mod=0)
Round-robin policy(轮询)聚合口数据报文按包轮询从物理接口转发。
- 负载均衡:所有链路处于负载均衡状态,轮询方式往每条链路发送报文这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。
- 性能问题:一个连接或者会话的数据包如果从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。
- Bond0在大压力的网络传输下,性能增长的并不是很理想。需要交换机进行端口绑定。
2、模式 1 (mod=1)
Active-backup policy(主-备份策略)只有Active状态的物理接口才转发数据报文。
- 容错能力:只有一个slave是激活的(active)。也就是说同一时刻只有一个网卡处于工作状态,其他的slave都处于备份状态,只有在当前激活的slave故障后才有可能会变为激活的(active)。
- 无负载均衡:此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。
3、模式 3(mod=3)
broadcast(广播策略)这种模式的特点是一个报文会复制两份往bond下的两个接口分别发送出去。
- 当有对端交换机失效,感觉不到任何downtime,但此法过于浪费资源;不过这种模式有很好的容错机制。
- 此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。
4、模式 6(mod=6)
Adaptive load balancing(适配器适应性负载均衡)
- 该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡,而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个物理接口的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。
- 无负载均衡:会先把第一个网卡的流量占满,再依次占第二个网卡。
三、网卡绑定实践
1、前期准备
网卡绑定实践案例的时候,最好将仅主机模式的 dhcp 能力关闭。
一定要确保物理网卡驱动是支持 bonding 技术的,异常测试的时候,推荐使用NAT模式网卡加载网卡绑定环境。
添加两块网卡,网络连接选择“仅主机模式”。
加载 bonding 模块,并查看
2、openEuler 系统双网卡绑定
查看网卡设备信息,新增两块网卡 ens224 和 ens256
2.1、定制 bond 配置
mode=1 # 这指定了绑定的模式为模式1,也称为“活动-备份”(active-backup)模式。
miimon=100 # 设置了链路监控的间隔时间为100毫秒为单位。这意味着系统每100毫秒检查一次物理接口的状态。
fail_over_mac=1 # 绑定接口在故障转移时是否改变其MAC地址。# 1(active)意味着在故障转移到另一个物理接口时,绑定接口的MAC地址会改变为活动接口的MAC地址。这有助于保持网络中的一致性,因为某些网络设备可能基于MAC地址进行过滤或路由决策。
2.2、定制网卡配置
创建新增两张网卡 ens224 和 ens256 的配置文件,MASTER 同时指向 bond0
2.3、应用及查看
重启网络服务 或 重新加载配置
查看 ip 地址
查看网络设备
查看 bond0 绑定的网卡信息
3、Rocky9 系统双网卡绑定
查看网卡设备信息,新增两块网卡 ens224 和 ens192
3.1、定制 bond 配置
添加连接 bond0,设置为主备模式,心跳检测时间间隔为1s,也可直接编辑配置文件
绑定两张网卡,也可直接编辑配置文件
查看配置
3.2、定制网卡配置
设置 ip 地址
查看配置文件
3.3、应用及查看
启用绑定网卡 bond0
启动两个绑定端口
查看网卡设备连接
查看网卡信息
查看网卡绑定信息
4、Ubuntu 系统双网卡绑定
查看网卡设备,新增两块网卡 ens37 和 ens38
4.1、定制 bond 配置
定义网卡绑定的ip地址,bond 模式设置为轮询模式。(配置文件权限必须为600,否则应用会报错)
4.2、应用及查看
应用网卡配置生效
查看网卡 ip 地址
查看网卡连接信息
查看网卡绑定配置效果
5、异常测试(bond主备模式)
在另一台主机长 ping 当前主机(192.168.10.122)
断开 Currently Active Slave 的网卡
查看绑定网卡配置信息,此时只剩下单网卡,且 Currently Active Slave 已经切换到另一个网卡 ens256上。
且 ping 依然可以正常运行,没有单网卡流量异常