linux网卡bond的几种模式

本文深入探讨Linux网卡Bond技术,包括其作用、模式及其区别。重点介绍如何通过Bond技术增加带宽与提高可用性,同时总结了Bond模式如active-backup、balance-xor、802.3ad等的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux的网卡bond:将两个物理网卡(或port)映射为具有同一个逻辑ip的接口。bond技术跟交换机之间的端口汇聚以及san技术中常用的存储多路径(multiputh)类似。
作用:增加带宽,例如两个前兆的一台网卡通过bond后可以将本地host的单个ip的带宽增加两倍。
           增加可用性,做HA保护,单个网口down后ip地址仍然可用。
          
        bond接触很久了,最初的项目中心机房的业务服务器跟数据库服务都是设置bond的。目前的项目主要用bond来增加数据带宽。
        网上有非常详细的英文资料介绍:http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding#Requirements_for_specific_modes
        这里总结下几种bond模式的区别:          
mode 1 active-backup
     最简单的主从热备方式,当前只使用bond中的一个物理网口,如果当前主网口down,则立刻启用备用网口。
mode 2 banlance-xor
     最简单的负荷分担模式,当前所有的物理端口均可用,bond驱动简单计算hash值选择数据包的物理端口。规则是取source跟destination的异或值,然后除以bond中物理网口个数取余,结果就是选中的网口的编号。
mode 4 802.3ad
     类似mode2,负荷分担模式,当前所有的物理端口均可用。跟mode2的区别在端口选择策略。mod4采用802.3ad协议规定的xmit_hash_policy。
     要求:ethtool能够识别物理端口的速度和是否双工。
                 switch支持802.3ad协议规定的动态链路聚合。

mode 5 banlance-tlb  

       端口负载选择策略比mode 2智能一些,在做端口hash时考虑了本地不同的bond port速度。不像mode 4一样需要switch的特殊支持。

       要求:ethtool能够识别物理端口的速度和是否双工。

说明:

          mode 2跟mode 5均不需要switch的特殊支持。此种模式下,bond驱动修改了底层的arp协议栈。当配置bond的host主机 回复arp的reply消息时,bond驱动会把arp reply消息中的本地mac地址,修改为bond驱动指定的物理端口的mac。 对于同一个局域网的两个不同的外部主机host2和host3,他们看到配置bond的host1的mac地址可能是不同的。如果配置bond的host1主机跟局域网外部通信,那么所有的mac层包的destination均相同,这种情况采用mode 2、4  、5都会导致只有一个物理端口做收发包。


mode 0 banlance-rr     

        负荷分担模式,唯一一种模式,可以将同一个tcp socket以stripe方式负荷分担到所有物理网口。bond驱动将同一个socket上packet,以rond-robin的方式依次选择不同的物理端口发送出去,类似于raid 0。需要switch支持trunking或etherchannel。

        这种方式可能导致tcp报文的乱序发送和接收,因此需要调整host主机的tcp重传的系统参数:net.ipv4.tcp_reordering 。

         mode 0保证了host主机tcp发包的stripe方式,但是host在收报时是否可以做到stripe,要看switch是否支持tcp的stripe。很多交换机在一个ether channel发包时,仅仅是根据tcp/udp的端口号取个hash值去选择物理端口,这样同一个tcp的socket报文每次只能发到固定物理端口上。此时,mode 0的stripe仅仅是单向而不是双工的。

说明:

          etherchannel其实就是讲多个物理端口映射为同一个逻辑的物理端口,cisco switch的一项技术。802.3ad则是etherchannel的一个公开的标准,是同一个种技术。

<think>嗯,用户问的是如何在Linux系统中配置网卡聚合的bond4模式。首先,我得确认bond4对应的模式名称和编号。记得Linuxbonding驱动有几种模式,比如mode=0是轮询,mode=1是主备,mode=4是IEEE 802.3ad动态链路聚合,也就是LACP。所以bond4应该对应的是mode=4。 接下来,我需要回忆配置bonding的步骤。通常需要加载bonding模块,配置主接口和从属网卡。主接口的配置文件里要设置BONDING_OPTS指定模式,比如mode=4,还有相关的参数,比如lacp_rate。然后每个物理网卡的配置文件需要设置MASTER和SLAVE属性,确保它们属于bond0。 用户提供的引用中有几个相关的例子,比如引用[2]中提到了Slave网卡的配置,ONBOOT=yes,MASTER=bond0,SLAVE=yes。还有引用[3]提到modules.conf的配置,不过可能现在系统用的是modprobe.d目录下的配置文件。需要确认是否需要修改/etc/modprobe.d/bonding.conf来加载bonding模块并指定参数。 另外,bond4需要交换机支持LACP,所以用户需要确保交换机那边也配置了相应的动态聚合。这点很重要,否则bond可能无法正常工作。 然后配置步骤大概是:1. 创建bond0配置文件,设置DEVICE=bond0,TYPE=BondBONDING_OPTS="mode=4 miimon=100 lacp_rate=1"。2. 配置物理网卡如eth1和eth2,设置MASTER=bond0,SLAVE=yes。3. 加载bonding模块,可能需要修改modprobe配置。4. 重启网络服务或重启系统使配置生效。 还需要注意网络管理工具的影响,比如NetworkManager,有些系统需要设置NM_CONTROLLED=no,如引用[2]中的例子。可能还要检查网络服务是否正常运行,使用ifconfig或ip命令查看bond0的状态,以及查看/proc/net/bonding/bond0的信息来确认配置是否成功。 用户可能遇到的问题包括:bond接口没有启动,物理网卡没有正确绑定,或者交换机配置不匹配。需要提醒用户检查这些点,尤其是交换机的LACP配置。 最后,生成相关问题的时候,可以考虑其他bond模式的区别、bond模式的选择依据、如何验证bond是否生效,以及故障排除的步骤。</think>### Linux网卡聚合(bond4)配置步骤 网卡聚合(Bonding)模式4(IEEE 802.3ad动态链路聚合)配置流程如下: 1. **加载bonding驱动** ```bash # 加载bonding模块(若未自动加载) $ modprobe bonding mode=4 lacp_rate=1 ``` 需在`/etc/modprobe.d/bonding.conf`添加: ``` alias bond0 bonding options bonding mode=4 miimon=100 lacp_rate=1 ``` 参数说明:`miimon=100`表示每100ms检测链路状态,`lacp_rate=1`为快速LACP协商[^3][^5] 2. **创建bond主接口配置** 创建`/etc/sysconfig/network-scripts/ifcfg-bond0`: ```bash DEVICE=bond0 TYPE=Bond BONDING_MASTER=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=layer3+4" ONBOOT=yes NM_CONTROLLED=no # 禁用NetworkManager控制[^2] ``` 3. **配置物理网卡** 以eth1和eth2为例,修改对应配置文件: ```bash # /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 MASTER=bond0 SLAVE=yes ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no # 与主接口保持一致 ``` 4. **重启网络服务** ```bash $ systemctl restart network # 验证bond状态 $ cat /proc/net/bonding/bond0 ``` 正常输出应包含: ``` Bonding Mode: IEEE 802.3ad Dynamic link aggregation LACP rate: Fast Aggregator selection policy (ad_select): stable ``` §§注意事项§§ 1. **交换机配置**:必须在交换机端启用LACP动态聚合模式 2. **哈希策略**:`xmit_hash_policy`可选`layer2`(默认)/`layer3+4`(推荐用于IP负载均衡) 3. **物理网卡要求**:必须为相同速率、双工模式且支持以太网通道
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值