当前位置: 首页 > news >正文

Linux链路聚合工具之ifenslave命令案例解析

目录

1. 基础场景:创建简单链路聚合(模式 0 负载均衡)

1.1 场景说明

1.2 操作步骤

1.2.1 加载 bonding 内核模块

1.2.2 创建 bond0 配置文件        

1.2.3 配置物理网卡(eth0、eth1),使其从属 bond0:

1.2.4 绑定接口并激活

​​​​​​​1.2.5 验证配置:

2. 高可用场景:主备模式(模式 1 冗余备份)

2.1 场景说明

2.2 操作步骤

​​​​​​​2.2.1 加载 bonding 模块

​​​​​​​2.2.2. 配置 bond0 为模式 1

2.2.3 ​​​​​​​物理网卡配置

​​​​​​​2.2.4 绑定接口并激活

2.2.5 ​​​​​​​激活配置并验证

3. 进阶场景:动态链路聚合(模式 4,LACP 协议)

3.1 场景说明

3.2 操作步骤

​​​​​​​3.2.1 加载 bonding 模块

3.2.2 ​​​​​​​配置 bond0 为模式 4(ifcfg-bond0)

​​​​​​​3.2.3 物理网卡配置

3.2.4 交换机配置

​​​​​​​3.2.5 激活并验证

4. 维护场景:添加 / 移除从属接口

4.1 场景说明

4.2 操作步骤

5. 关键注意事项

5.1 ​​​​​​​​​​​​​​模式选择依据

5.2 配置文件一致性

5.3 验证工具

5.4 常见问题


ifenslave 是 Linux 系统中用于配置 链路聚合(Link Aggregation,又称 bonding) 的工具,其核心功能是将多个物理网络接口(如 eth0eth1)绑定为一个逻辑接口(通常命名为 bond0bond1 等),实现 带宽叠加(负载均衡) 或 冗余备份(高可用)

以下是 ifenslave 的典型使用案例,按场景分类说明(基于 RHEL/CentOS 系统,其他发行版配置文件路径可能不同):

1. 基础场景:创建简单链路聚合(模式 0 负载均衡)

1.1 场景说明

        将 2 块物理网卡(eth0eth1)绑定为 bond0,采用 模式 0(balance-rr,轮询模式),实现流量负载均衡(需交换机支持链路聚合,如配置 LACP)。

1.2 操作步骤

1.2.1 加载 bonding 内核模块

必需,链路聚合依赖此模块

modprobe bonding  # 临时加载,重启后失效
echo "bonding" >> /etc/modules-load.d/bonding.conf  # 永久加载(开机自动加载)

1.2.2 创建 bond0 配置文件        

vim  /etc/sysconfig/network-scripts/ifcfg-bond0

TYPE=Bond
DEVICE=bond0
NAME=bond0
BOOTPROTO=static      # 静态IP(或dhcp动态获取)
IPADDR=192.168.1.100  # bond0的IP地址
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes            # 开机自启
BONDING_OPTS="mode=0 miimon=100"  # mode=0:轮询负载均衡;miimon=100:每100ms检测链路状态

1.2.3 配置物理网卡(eth0、eth1),使其从属 bond0:

  • ifcfg-eth0
TYPE=Ethernet
DEVICE=eth0
NAME=eth0
ONBOOT=yes
MASTER=bond0  # 指定主接口为bond0
SLAVE=yes     # 声明为从属接口
BOOTPROTO=none  # 无需单独配置IP(由bond0统一管理)
  • ​​​​​​ifcfg-eth1(与 eth0 配置相同):
TYPE=Ethernet
DEVICE=eth1
NAME=eth1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

​​​​​​​1.2.4 绑定接口并激活

# 绑定eth0和eth1到bond0(若配置文件已指定MASTER/SLAVE,此步可省略,直接重启网络服务)
ifenslave bond0 eth0 eth1# 重启网络服务使配置生效
systemctl restart network  # 或 nmcli connection reload

​​​​​​​1.2.5 验证配置

# 查看bond0状态(确认eth0、eth1已加入,模式正确)
cat /proc/net/bonding/bond0# 查看接口IP(确认bond0已获取IP)
ip addr show bond0

2. 高可用场景:主备模式(模式 1 冗余备份)

2.1 场景说明

        需保证网络接口故障时自动切换(如服务器双网卡冗余),采用 模式 1(active-backup,主备模式):仅主网卡(如 eth0)工作,故障时自动切换到备网卡(eth1),无需交换机特殊配置。

2.2 操作步骤

​​​​​​​2.2.1 加载 bonding 模块

        同基础场景一 。

​​​​​​​2.2.2. 配置 bond0 为模式 1

修改 ifcfg-bond0 的 BONDING_OPTS

BONDING_OPTS="mode=1 miimon=100 primary=eth0"  # primary=eth0:指定eth0为主网卡

(其他配置如 IP、网关等与基础场景一相同)

2.2.3 ​​​​​​​物理网卡配置

同基础场景一,eth0、eth1 均设为 MASTER=bond0SLAVE=yes。

​​​​​​​2.2.4 绑定接口并激活

# 绑定eth0和eth1到bond0(若配置文件已指定MASTER/SLAVE,此步可省略,直接重启网络服务)
ifenslave bond0 eth0 eth1

2.2.5 ​​​​​​​激活配置并验证

systemctl restart network# 查看bond状态(确认“Current Active Slave”为eth0)
cat /proc/net/bonding/bond0# 模拟主网卡故障,测试切换(拔掉eth0网线或禁用接口)
ifconfig eth0 down
# 再次查看bond状态,确认“Current Active Slave”切换为eth1
cat /proc/net/bonding/bond0

3. 进阶场景:动态链路聚合(模式 4,LACP 协议)

3.1 场景说明

        需与交换机配合实现 动态链路聚合(遵循 IEEE 802.3ad 标准),采用 模式 4(802.3ad,LACP 模式),交换机需提前配置对应聚合组(LAG)。

3.2 操作步骤

​​​​​​​3.2.1 加载 bonding 模块

          同基础场景一 。

3.2.2 ​​​​​​​配置 bond0 为模式 4(ifcfg-bond0

BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast"  # lacp_rate=fast:每1秒发送LACP报文(默认30秒)

(IP、网关等配置同上)

​​​​​​​3.2.3 物理网卡配置

        同基础场景一,eth0、eth1 设为从属接口。

3.2.4 交换机配置

关键!以 Cisco 交换机为例:

# 创建聚合组1,开启LACP
Switch(config)# interface range GigabitEthernet0/1 - 2  # 连接服务器eth0、eth1的端口
Switch(config-if-range)# channel-group 1 mode active  # 主动发送LACP报文
Switch(config-if-range)# exit
Switch(config)# interface port-channel 1  # 聚合接口
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10  # 与服务器同VLAN

​​​​​​​3.2.5 激活并验证

systemctl restart network# 查看bond状态(确认“LACP Active”,且与交换机建立聚合)
cat /proc/net/bonding/bond0

4. 维护场景:添加 / 移除从属接口

4.1 场景说明

        已创建 bond0,需临时添加新网卡(如 eth2)或移除故障网卡(如 eth1)。

4.2 操作步骤

  • 添加新从属接口(eth2)
# 临时添加(立即生效,重启后失效)
ifenslave bond0 eth2# 永久生效(创建ifcfg-eth2,配置MASTER=bond0、SLAVE=yes)
cat > /etc/sysconfig/network-scripts/ifcfg-eth2 << EOF
TYPE=Ethernet
DEVICE=eth2
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
EOF# 重启网络服务
systemctl restart network
  • ​​​​​​移除从属接口(eth1)
# 临时移除(立即生效)
ifenslave -d bond0 eth1  # -d:解除绑定# 永久移除(删除ifcfg-eth1或注释MASTER/SLAVE配置)
mv /etc/sysconfig/network-scripts/ifcfg-eth1 /tmp/  # 备份并移除配置文件# 重启网络服务
systemctl restart network

5. 关键注意事项

  • 5.1 ​​​​​​​​​​​​​​模式选择依据

    • 模式 0/6:适合需要提高带宽的场景(模式 0 需交换机支持,模式 6 无需)。
    • 模式 1:适合高可用场景(单链路故障自动切换)。
    • 模式 4:适合企业级环境(与交换机动态协商聚合,更可靠)。
  • 5.2 配置文件一致性

    • 物理网卡必须设置 MASTER=bondX 和 SLAVE=yes,且 BOOTPROTO=none(不单独配置 IP)。
    • bondX 的配置文件需指定 BONDING_OPTS 明确模式和检测参数。
  • 5.3 验证工具

    • cat /proc/net/bonding/bondX:查看 bond 状态、从属接口、模式、故障切换记录。
    • ip addr/ifconfig:确认 bond 接口的 IP 和状态。
    • ethtool bondX:查看 bond 接口的链路状态。
  • 5.4 常见问题

    • 若 bond 接口无 IP:检查配置文件 ONBOOT=yes 和 BOOTPROTO 是否正确。
    • 故障不切换:检查 miimon 参数(建议 100-1000ms),或物理链路是否真的故障。
    • 模式 0/4 带宽不叠加:确认交换机是否配置对应聚合(模式 0 需静态聚合,模式 4 需 LACP)。


文章转载自:

http://Xopfanwx.Lyhrg.cn
http://zehrJEo2.Lyhrg.cn
http://290iogWC.Lyhrg.cn
http://6BqbUkWS.Lyhrg.cn
http://TvfDTZET.Lyhrg.cn
http://ZCm0XV5S.Lyhrg.cn
http://wOigO6Qh.Lyhrg.cn
http://MWk7lDO7.Lyhrg.cn
http://crp9OEcd.Lyhrg.cn
http://dWpFuERs.Lyhrg.cn
http://fhWSOE8I.Lyhrg.cn
http://5qSdhvBX.Lyhrg.cn
http://XIefs9eY.Lyhrg.cn
http://r5F0MNMt.Lyhrg.cn
http://K5JBsZB6.Lyhrg.cn
http://YM5dVGEJ.Lyhrg.cn
http://xsc7lhDR.Lyhrg.cn
http://eN32aQHE.Lyhrg.cn
http://kDN15gD1.Lyhrg.cn
http://m2P2Talg.Lyhrg.cn
http://TpsE8RL7.Lyhrg.cn
http://7VVgC7pJ.Lyhrg.cn
http://u73xD7vU.Lyhrg.cn
http://wCpHuWjV.Lyhrg.cn
http://nrCtByB9.Lyhrg.cn
http://2juXvSSX.Lyhrg.cn
http://t9o9uFo7.Lyhrg.cn
http://F7Zc4L6U.Lyhrg.cn
http://rxCPtd3x.Lyhrg.cn
http://cLaYF1Hh.Lyhrg.cn
http://www.dtcms.com/a/383936.html

相关文章:

  • 资金方视角下的链改2.0:拉菲资本的观察与判断
  • AIPex:AI + 自然语言驱动的浏览器自动化扩展
  • < JS事件循环系列【四】> 事件循环补充概念:从执行细节到性能优化
  • MySQL从入门到精通:基础、安装与实战管理指南
  • 解决:Ubuntu、Kylin、Rocky系统中root用户忘记密码
  • javascript文本长度检测与自动截取,用于标题长度检测
  • 解锁 DALL・E 3:文生图多模态大模型的无限可能
  • 深入理解 LVS-DR 模式与 Keepalived 高可用集群
  • 数据库学习MySQL系列4、工具一 Navicat Premium 图形化软件的使用详细教程
  • RL【10-2】:Actor - Critic
  • MATLAB学习文档(十六)
  • 滑动窗口概述
  • 【C++语法】模版初阶
  • 机械制造工艺指南
  • Wi-Fi技术——Power SAVE模式
  • leetcode39(相同的树)
  • C++(虚函数表原理和菱形继承)
  • 【STM32项目开源】STM32单片机智能语音风扇控制系统
  • [Android]自定义view
  • 线程和进程,以及GCD的简单使用
  • C++_STL和数据结构《1》_STL、STL的迭代器、c++中的模版、STL的容器、列表初始化、三个算法、链表
  • 学习日报|线程池专题学习总结
  • kubectl 报错 couldn‘t get current server API group list:
  • 求最小公倍数(GCD)和最大公约数(LCM)——原理和代码
  • 单调栈数据结构
  • OceanBase V4.3.5 BP3版本Bug:DROP TABLE删表会卡住
  • KDTS迁移工具全流程实战教程:从安装配置到增量同步
  • 苹果本装win10记
  • 电子科学与技术专业考研专业和学校确定
  • 模电基础:三极管的基本原理