Linux网卡绑定模式深度解析:7种Bond模式详解

Linux系统绑定多网卡的7种bond模式介绍

网卡绑定模式有七种(0-6):bond0、bond1、bond2、bond3、bond4、bond5、bond6。

常用的模式有3种。

mode= 0:具有自动冗余的平衡负载模式,但需要“开关”支持和配置。
mode=1:自动备份模式。
如果一条线路断开,另一条线路将自动备份。
mode=6:均衡负载模式,自动备份,无需“开关”支持和配置。

请注意,如果要实现 mode0 负载均衡(这两个端口必须聚合),仅设置 optionsbond0miimon=100mode=0 是不够的。
)),用于bonding的两个网卡使用的是同一个MAC地址,所以我们从原理上分析一下。
其外观如下(绑定在模式 0 下运行):

绑定到模式 0 绑定的网卡的 IP 与连接到同一交换机的网卡的 IP 相同。
,它们都更改为相同的 MAC 地址。
交换机的arp表中有多个与该MAC地址对应的端口。
如果收到发往该MAC地址的数据包,交换机应该将其转发到哪个端口? 一般情况下,MAC地址是全局唯一的,一个MAC地址对应多个端口肯定会让交换机感到困惑。
因此,如果mode0 bond连接到交换机,则交换机上的端口必须聚合(cisco称为以太网通道,Foundry称为端口组)。
这是因为交换机聚合后,聚合中的部分端口也被捆绑为一组。
mac地址。
我们的解决方案是将两个网卡连接到不同的交换机。

由于用于bonding的两个网卡使用不同的MAC地址,因此无需将交换机设置为mode6模式。

七种组合模式说明:

第一种模式:mod=0,即:(balance-rr)Round-robinpolicy

特点:传输数据包的顺序是顺序发送的(即第一个包发送到eth0,下一个包发送到eth1,以此类推,直到最后一个发送完成)。
然而,这种模式提供了负载平衡和容错能力。
当连接或会话数据包通过不同接口发送并沿途经过不同链路时,您很可能会在客户端遇到乱序数据包到达问题,而乱序数据网络吞吐量为减少是因为数据包必须再次发送。
Decline

第二种模式:mod=1,即:(active-backup)Active-backuppolicy(主备策略)

特点:只有一台设备成为活跃Masu。
如果其中一个发生故障,另一个会立即从备用设备切换到主设备。
苹果。
绑定的 MAC 地址是唯一的,因为该地址是外部可见的,并且可以避免交换机内的混淆。
该模式仅提供容错功能。
该算法的优点是网络连接的高可用性,但是对于N个网络接口,我们知道只有一个接口是可操作的。
资源利用率为1/N。

第三种模式:mod=2,即:(balance-xor)XORpolicy(平衡策略)

功能:根据指定的出局HASH发送策略包。
默认策略为:(源MAC地址异或目的MAC地址)%从机号。
其他传输策略可以通过 xmit_hash_policy 选项指定。
该模式提供负载平衡和容错。

第四种模式:mod=3,即广播(广播策略)

功能:每个数据包在每个从接口上发送。
该模式提供容量。
误差函数

第五种模式:mod=4,即:(802.3ad)IEEE802.3adDynamiclinkaggregation

功能:创建聚合组。
共享相同的速度和双工设置。
根据802.3ad规范,多个从设备在同一个激活的聚合下运行。

出站流量的从站选择基于传输哈希策略,可以使用 xmit_hash_policy 选项从默认的 XOR 策略更改为其他策略。
请注意,并非所有传输策略都与 802.3ad 兼容,特别是考虑到 802.3ad 标准第 43.2.4 章中提到的数据包重新排序问题。
不同的实现可能具有不同的适应性。

所需条件:

条件1:ethtool支持检索每个slave的速度和双工设置

条件2:交换机(switch)支持3adDynamiclinkaggregation。

条件 3:大多数交换机需要特定配置才能支持 802.3ad 模式。

第6种模式:mod=5,即:(balance-tlb)Adaptivetransmitloadbalancing

特点:通道绑定不需要特殊的交换机支持,没有。
根据当前负载(根据速度计算)将传出流量分配到每个从站。
如果从站接收数据失败,另一个从站将接管失败从站的 MAC 地址。

该模式必需:ethtool支持获取每个从机的速率

第7种模式:mod=6,即:(balance-alb)Adaptiveloadbalancing(适配器自适应负载均衡)

功能:除了平衡 TLB 模式外,该模式还包括 IPV4 流量的接收负载平衡 (RLB) 和 不需要支持。
接收负载均衡是通过ARP协商实现的。
绑定驱动程序拦截本地计算机发送的 ARP 响应并将其发送到源硬件。
将地址重写为绑定中从站的唯一硬件地址。
这允许不同的对等点使用不同的硬件地址进行通信。

来自服务器的传入流量也是平衡的。
当本地计算机发送 ARP 请求时,bonding 驱动程序会从 ARP 数据包中复制并存储对等方的 IP 信息。
当来自对等方的 ARP 响应到达时,绑定驱动程序会提取其硬件地址并向绑定中的从属设备发起 ARP 响应。
使用 ARP 协商进行负载均衡的一个问题是,每次广播 ARP 请求时都会使用 bond 的硬件地址,因此对等方获悉此硬件地址后,所有收到的流量都会流向当前从属设备。
这个问题可以通过向所有包含唯一硬件地址的对等点发送更新(ARP 响应)来解决,以便可以重新分配流量。
如果将新的从属设备添加到绑定中或重新激活不活动的从属设备,则还必须重新分配接收到的流量。
接收到的负载按顺序(循环)分配给绑定中最快的从站。

当链路重新连接或新的从属设备添加到绑定时,接收到的流量将分发到所有当前从属设备。
所有活动从站都将重新分配,并使用指定的 MAC 地址为每个客户端发起 ARP 响应。
为了保证交换机不会阻塞发送给对方的ARP响应,下面介绍的uplay参数必须设置为大于或等于交换机的转发时延。

所需条件:

条件1:ethtool支持获取每个slave的速率。

条件2:底层驱动支持设置设备的硬件地址。
,这保证了总有一个从机(curr_active_slave)使用bond的硬件地址,同时保证bond中的每个slave都有唯一的硬件地址。
如果 curr_active_slave 发生故障,其硬件地址将由新选出的 curr_active_slave 接管。

其实mod=6和mod=0的区别是:mod=6先填充eth0流量,然后再占用。
eth1 ,….ethX; 可以看到,mod=0 时,两个端口的流量非常稳定,带宽基本相同。
当mod=6时,可以看到第一个端口的流量非常大,而第二个端口只占很小的一部分流量。

Linux网口绑定

网口绑定(bond)技术轻松实现网口冗余和负载均衡,实现高可用性和可靠性。
同意先决条件:

两个物理网络端口:eth0、eth1

绑定虚拟端口:Bond0

服务器IP:0.100

首先配置步骤,配置文件。

复制代码如下:/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BO OTPROTO=None

ONBOOT=Yes

IPADDR=192.168.0.100

NETMASK=255.255.255.0

NETWORK=192.168.0.0

BROADCAST=192.168.0.255

#BROADCAST广播地址

/etc/sysc onfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

MASTER=bond0

SLAVE=yes 第二步,修改modprobe相关配置文件,加载bonding模块。

1. 直接创建专用配置文件/etc/modprobe.d/bonding.conf用于bonding加载。

复制代码如下:[root@test~]#vi/etc/modprobe.d/bonding.conf

#Append

aliasbond0bonding

optionsbondingmode=0miimon=2002 加载模块(重新启动系统)。
安装后无需手动重新加载系统。
)复制代码如下:[root@test~]#modprobebonding3。
检查模块是否加载成功。
复制代码如下: [root@test] ~]#lsmod|grepbonding

bonding1000650 第三步,重启网络,查看情况。
复制代码如下:[root@test~]#/etc/init.d/networkrestart

[root@test~]#cat/proc/net/bonding/bond0

EthernetChannelBondingDriver:v3.5.0(2008 年 11 月 4 日)

BondingMode:fault-tol erance(主动备份)

PrimarySlave:无

当前ActiveSlave:eth0

……

[root@test~]#i fconfig|grepHWaddr

bond0Linkencap:EthernetHWaddr00:16:36:1B:BB:74

eth0Linkencap:EthernetHWaddr0 0:16:36:1B:BB:74

eth1Linkencap:以太网HWaddr00:16:36:1B:BB:74 上述验证信息揭示了三个重要信息:

1. 目前组合模型公式为active-backup

2. 当前处于活动状态的网口为eth0

3.bond0。
eth1的物理地址与eth0的物理地址相同。
这是为了避免与顶部开关混淆。

拔掉网线并尝试再次访问服务器,检查网络是否仍然畅通。

第四步,系统启动自动绑定,添加默认网关。

复制代码如下:[root@test~]#vi/etc/rc.d/rc.local

#Add

ifenslavebond0eth0eth1

>

routeadddefaultgw192.168.0.1

#如果您可以访问互联网,则无需添加路由。
0.1 地址根据环境而变化。
------------ --------------------- ---- ------------- --------

注:前面的情况只是两个网口绑定一个Bond0的情况。
假设您要配置多个A bond端口。
例如,物理网口eth0和eth1组成Bond0,eth2和eth3组成Bond1。

之后配置网口配置文件的方法与上面步骤1相同,但/etc/modprobe.d/bonding.conf中的设置不能简单重叠,如下所示。

复制代码如下:aliasbond0bonding

optionsbondingmode=1miimon=200

aliasbond1bonding

optionsbondingmode=1miimon=200 正确设置为 2有一个。

第一种设置方法。
这样我们就可以看到,多个bond端口的模式只能设置为相同的模式。

复制代码如下:aliasbond0bonding

aliasbond1bonding

optionsbondingmax_ Bond=2miimon=200mode=1 在第二种方法中,可以使用不同的bond端口模式来设置到不同的值。
复制代码如下:aliasbond0bonding

optionsbond0miimon=100mode =1

installbond1/sbin/modprobebonding-obond1miimon=200mode=0 其中3个、4个或更多bond端口,我们取一个仔细看看上面的两种配置方法。
您也可以!

PS:这是加载上面的绑定模块时一些可选参数含义的快速解释。

miimon 监控网络链接的频率。
单位为毫秒,应设置为 200 毫秒。

max_bonds设置的bond端口数量

modebond模式主要有: 在常见的实际应用中,经常使用0和1。

如果想要深入了解这些模型的特点,就应该依靠读者自己去验证信息并付诸实践。

Linux网卡聚合linux多网卡绑定聚合之bond模式原理

将多个Linux网络端口绑定为一个可以提高网络性能。
例如,对于一个一晚上需要备份几TB数据的备份服务器来说,如果使用单个千兆网口,这将是一个非常严重的瓶颈。
其他应用程序,例如FTP服务器和高负载下载网站也存在类似的问题。
因此,使用Linux teaming或bond将多个网卡绑定为逻辑网络端口并配置单个IP地址将显着提高服务器的网络吞吐量(I/O)。
Linux的多网卡bonding功能使用的是内核中的“bonding”模块。
对于该模块,您可以参考LinuxEthernetBondingDriver文档。
然而,在当前发布的所有 Linux 版本中,不需要该模块重新编译内核。
Linux绑定驱动提供了将多个网卡绑定/集成(bonding)成一个虚拟逻辑网络端口的功能。
并且需要注意的是,保税网口(bonded)有多种工作模式; 一般分为热备和负载均衡。
在 Redhat/Fedora 和其他 Redhat Linux 中配置它相对容易。
1、创建bond0配置文件 vi /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0--物理设备名称 IPADDR=192.168.1.2--IP地址 NETMASK= 255.255.255.0--子网掩码 GATEWAY=192.168.1.1--网关

DNS=8.8.8.8--DNSONBOOT=yes--随机启动

NAME=bond0BOOTPROTO=no neUSERCTL=no--是否为非root允许用户控制设备2.修改绑定的eth0和eth1配置文件 vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE='eth0'USERCTL=noONBOOT=yesMASTER=bond0SLAVE=yesBOOTPROTO=noneHWADDR=00:15:17:CC:FC:35 eth1 的配置文件相同,只是 eth1 中的 device 值发生了变化。
3. 要安装bonding模块驱动程序,请编辑/etc/modprobe.conf或/etc/modules.conf文件并添加以下以在系统启动时加载bonding模块驱动程序。
注意: 1) .miimon=100 用于链路监控。
即每100ms监测一次链路状态。
绑定仅监视主机和交换机之间的链路。
如果从交换机出来的链路有问题,但交换机本身没有问题,bonding就会认为链路没有问题,继续使用。
2).mode=1表示提供冗余功能。
另外,还可以是0、2、3,共四种模式。
0 表示负载均衡 4. 在 /etc/rc.d/rc.local 文件中添加以下语句,让系统自动运行 ifenslavebond0eth0eth1routeadd-net192.168.1.254netmask255.255.255.0bond0# 仅在必要时添加此路由 5. 验证配置时,首先执行加载bonding模块的命令:modpr ObeyBonding 重启网络服务,确认 bond0 正确启动: servicenetworkrestart 确认设备加载正确: less /proc/net/bonding/bond0 列出所有网络端口 :ifconfig 至此,bond 技术使用流程的设置基本就完成了完毕,感谢您的阅读,希望能够对大家有所帮助,请继续关注,期待我们分享更多优秀文章。
会努力的。

相关推荐

简述云计算的基本特征有哪些

简述云计算的基本特征有哪些

简述云计算模式与传统的自采自购模式的区别?1.云计算是如何产生的?“数据”是一种信号HOW企业经常使用“信号”来决定做什么、何时做以及使用什么方法来做。可以说,没有数据

云计算核心技术与应用解析

云计算核心技术与应用解析

云计算哪些技术云计算技术包括虚拟化技术、云存储技术、云计算平台管理技术、自动化运维技术等。1.虚拟化技术虚拟化技术通过虚拟化计算资源和存储来实现物理硬件和操作

Word文档如何缩小单元格中两行文本间距?

Word文档如何缩小单元格中两行文本间距?

我现在做一个WORD,在单元格里,有两行字,我想让它们之间的距离缩小一些,但是不知道怎么设置,在WORD中,如果想缩小单元格中两行文本之间的间距,可以按以下方法进行调整。