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

Linux系统下bonding配置方法

李云召1年前 (2023-09-06)操作系统1349

由于每次使用都需要搜索查找,所以就搞来一篇文章记录下,方便后续使用,顺便也琢磨了下各个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://www.liyunzhao.com/post/128.html

标签: LinuxBond
分享给朋友:

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

Windows 8.1 Flash For IE 修复方法

Windows 8.1 Flash For IE 修复方法

在Windows8.1的操作系统上,IE打开各种视频网站基本都能播放,但是打开部分网站的时候提示需要升级Flash插件或者是安装Flash插件,但是下载下来有提示如下图:可以采用如下的方式进行修复:1、将32位,64位的flash文件夹分别拷贝到C:\Windows\System32\Macrome...

对硬盘进行分区时,GPT和MBR有什么区别?

对硬盘进行分区时,GPT和MBR有什么区别?

在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区。GPT是一种新的标准,并在逐渐取代MBR。GPT带来了很多新特性,但MBR仍然拥有最好的兼容性。GPT并不是Windows专用的新标准—— Mac OS X,Linux,及其他操作系统同样使用GPT。在使用新磁盘...

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,当用户响应添加成功后,你可...

Mac远程Win桌面工具【Microsoft Remote Desktop for mac】

Mac远程Win桌面工具【Microsoft Remote Desktop for mac】

微软官方很早就专为Mac用户提供了一款类Windows mstsc的远程桌面工具——Microsoft Remote Desktop for mac,专门用于局域网内,远程控制Windows桌面。但是。苹果Appstore中国区确是长期屏蔽该软件。长久以来,大部分使用Microsoft Remote...

统信UOS桌面操作系统【汇总目录】

统信UOS桌面操作系统【汇总目录】

随着各类的国产化,桌面操作系统也开始逐渐国产化,使用习惯了Windows,突然转变,还是很有必要去适应下,也从网上整理了下材料(正月十六工作室),以免自己用的时候不好找,后续可能会根据需求持续更新。信创操作系统–统信UOS桌面版(系统安装:分别在虚拟机、物理机和Win10上安装,驱动安装)保姆级教程...

发表评论

访客

看不清,换一张

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