当前位置:首页 > 操作系统 > 正文内容

Linux系统下bonding配置方法

李云召9个月前 (09-06)操作系统919

由于每次使用都需要搜索查找,所以就搞来一篇文章记录下,方便后续使用,顺便也琢磨了下各个bond模式的区别。接下来先简单介绍下七种工作模式,常用的模式有 0、1、4、6,每种工作模式都有其各自的优缺点:

一、bond工作模式:

1、mode=0(balance-rr):Round-robin policy(平衡轮询策略)

特点:传输数据包顺序是依次传输,比如第一个包走 eth0,第二个包走 eth1,直到数据包发送完毕。增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。

缺点:需要接入交换机做端口聚合。

2、mode=1(active-backup):Active-backup policy(主-备份策略)

特点:当一个宕掉另一个马上由备份转换为主设备。冗余性高,不需要交换机端支持。

缺点:资源利用率较低,只有一个接口处于工作状态。

3、mode=2(balance-xor):XOR policy(平衡策略)

特点:基于指定的传输 HASH 策略传输数据包。此模式提供负载平衡和容错能力。

缺点:需要交换机配置端口聚合。

4、mode=3(broadcast):broadcast(广播策略)

特点:在每个 slave 接口上传输每个数据包,此模式提供了容错能力。

5、802.3ad(mode=4):IEEE 802.3adDynamic link aggregation(IEEE 802.3ad 动态 链接聚合)

创建一个聚合组,它们共享同样的速率和双工设定。根据 802.3ad 规范将多个slave工作在同一个激活的聚合体下。

特点:

(1)ethtool支持获取每个slave的速率和双工设定。

(2)交换机支持IEEE 802.3ad Dynamic link aggregation。

(3)交换机需经过特定配置才能支持 802.3ad模式。

6、mode=5(balance-tlb):Adaptive transmit load balancing(适配器传输负载均衡)

特点:不需要任何特别的交换机支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。

7、mode=6(balance-alb):Adaptive load balancing(适配器适应性负载均衡)

特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance,rlb),而且不需要任何交换机的支持。

二、配置举例

参考如下信息进行配置举例:

操作系统: Centos7网卡: ens1、ens2

bond1:192.168.0.100 

负载模式: mode=1 #主备模式

1、关闭NetworkManager服务

[root@localhost ~]# systemctl stop NetworkManager #停止服务
[root@localhost ~]# systemctl disable NetworkManager #禁用服务

2、加载 bonding 模块

[root@localhost ~]# modprobe --first-time bonding

3、创建基于 bond1 接口的网卡配置文件

配置文件 ifcfg-bond1的内容如下:

DEVICE=bond1
TYPE=Bond
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.100  #根据自己的需求进行更换
GATEWAY=192.168.0.1   #根据自己的需求进行更换
DNS1=192.168.1.0     #根据自己的需求进行更换
PREFIX=24         #根据自己的需求进行更换,也可以替换为NETMASK=255.255.255.0
USERCTL=no
BONDING_OPTS="mode=1 miimon=100 primary=ens2" #将ens2设置为主用网卡

BONDING_OPTS参数解释:
miimon参数:指定网卡故障时的切换时间间隔以ms为单位。
primary参数:指定默认的主网卡设备。
mode参数:指定工作模式
xmit_hash_policy参数:(此参数对mode参数中的2、4模式有影响):
    layer1-通过MAC地址进行HASH计算。
    layer3+4-通过TCP及UDP端口及其IP地址进行HASH计算。

如果使用mode4的方式配置bond4如下

vi /etc/sysconfig/network-scripts/ifcfg-bond4 
IPADDR=192.168.0.100  #根据自己的需求进行更换
GATEWAY=192.168.0.1   #根据自己的需求进行更换
DNS1=192.168.1.0      #根据自己的需求进行更换
PREFIX=24             #根据自己的需求进行更换,也可以替换为NETMASK=255.255.255.0
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast xmit_hash_plicy=laye3+4"  #其中mode=4说明该为bond4,且lacp_rate和xmit_hash_plicy参数只有bond4需要。

laye3+4:源目IP+源目端口算法,用于三、四层网络环境,可根据源目端口来区分同一源目IP不同连接的数据,做的四层负载分担。
laye2+3:源目MAC地址+源目IP算法,用于二、三层网络环境,用于三层转发情况下,源目mac地址唯一,源目IP地址不同情况。
fast:表示lacp链路协商模式为快模式,表示每隔1s发送l次lacpdu,超时时间是3s (slow模式是发送时间30s,超时时间90s)

4、修改 ens1、ens2接口文件的内容

修改ens1内容如下:

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vi ifcfg-ens1

###具体内容内容如下###
DEVICE=ens1
MASTER=bond1
SLAVE=yes
USERCTL=no
ONBOOT=yes
BOOTPROTO=none

修改ens2 内容如下:

[root@localhost network-scripts]# vi ifcfg-ens2

###内容如下###
DEVICE=ens2
MASTER=bond1
SLAVE=yes
USERCTL=no
ONBOOT=yes
BOOTPROTO=none

5、加载 bond1 接口到内核

###(1)创建加载bonding的文件###
[root@localhost network-scripts]# vi /etc/modprobe.d/bonding.conf
###内容如下###
lias bond1 bonding
options bonding mode=1 miimon=200

###(2)加载模块(或重启系统)###
[root@localhost network-scripts]# modprobe bonding
libkmod: kmod_config_parse:/etc/modprobe.d/bonding.conf line 1: ignoring bad line starting with 'lias'

###(3)检查模块是否加载成功###
[root@localhost network-scripts]# lsmod | grep bonding
bonding 141566 0

6、重启网络,查看网卡绑定信息

[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2023)
Bonding Mode: fault-tolerance (active-backup)  # bonding模式为 active-backup(mode=1)
Primary Slave: None
Currently Active Slave: ens2  #网卡ens2为Active状态
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:00:00:00:00:01
Slave queue ID: 0
Slave Interface: ens1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:00:00:00:00:00
Slave queue ID: 0


  • 测试了下最少代码条数:

vi /etc/sysconfig/network-scripts/ifcfg-bond1
###内容###
BOOTPROTO=static
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
BONDING_OPTS="mode=1 miimon=100"

vi /etc/sysconfig/network-scripts/ifcfg-ens1
###内容###
DEVICE=ens1
ONBOOT=yes
MASTER=bond0
SLAVE=yes

vi /etc/sysconfig/network-scripts/ifcfg-ens2
###内容###
DEVICE=ens2
ONBOOT=yes
MASTER=bond1
SLAVE=yes

bond.png

声明:本文由云召博客收集发布,如有侵权,请联系我们,我们将第一时间进行处理。

本文链接:https://liyunzhao.com/post/128.html

标签: LinuxBond
分享给朋友:

“Linux系统下bonding配置方法” 的相关文章

任务管理器进程不显示用户名的解决方法!

任务管理器进程不显示用户名的解决方法!

       打开任务管理器后,发现进程里面没有用户名,感觉已中病毒,因为公司的系统全部是我安装的,安装的时候都是有进程的,本想直接恢复系统的,因为单位系统全部有备份,恢复个系统也就几分钟,我懒得杀毒,但是想研究一下,如果把进程的用户名显示...

如何删除桌面上在回收站

如何删除桌面上在回收站

看着电脑桌面上的回收站是不是有点多余呢,如果多余可已删除,今天召哥搜集了个方法,可以将它送至“回收站”中哦如何找回[1.运行组策略,方法是:单击“开始”\\运行”,在“打开”框中键入“gpedit.msc...

性能测试知多少--系统计数器与硬件分析

性能测试知多少--系统计数器与硬件分析

性能计数器(Performance Counter),也叫性能监视器。一个人健康状况如何,我们通过对其做各项体检获得相关的状况指标,如血压、心跳,肺活量等。那么在做性能测试过程中,整个系统的软硬件进行监控也必不可少,监控所获得的数据也是我们分析系统性能的主要依据。在整个系统中,对于不同的软件和硬件,...

Windows server 2008 R2 更新补丁失败进入恢复模式

Windows server 2008 R2 更新补丁失败进入恢复模式

故障现象:由于安全需要,需要再现网的服务器上安装系统补丁,Windows 2008 R2,但是升级补丁后,重启进入了恢复页面,正常进入系统,多次重启仍然无法正常进入系统。解决方法:经过确认,仅仅是修补了相关补丁,导致此问题发生,那么我们按照如下操作进行修复下:1、可使用USB WinPE系统引导,也...

Windows 7 访问部分网站提示非安全链接问题解决

Windows 7 访问部分网站提示非安全链接问题解决

Windows 7 操作系统是一款大家非常熟悉从操作系统,虽然官方已经在2020年1月14日全面停止对Windows 7的支持,然而,直到现在还有很多人在使用,有些程序的兼容性在Windows 7上也非常的优秀,不过在重新安装windows 7后不知大家是否碰到过类似的问题,访问淘宝、京东,甚至百度...

如何在Windows下使用CMD命令查询域名的DNS解析

如何在Windows下使用CMD命令查询域名的DNS解析

使用cmd命令查询域名的 DNS解析记录,可以用于验证域名所有者身份,例如你生成一个随机字符串,要求域名所有者将字符串添加到他所属域名(liyunzhao.com)的 _dnsauth 二级域名中(即 _dnsauth.liyunzhao.com),记录类型要求使用TXT,当用户响应添加成功后,你可...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。