HCRM博客

CentOS网卡配置指南,实现网卡MASTER模式设置

CentOS 网卡配置 MASTER:构建高可用网络基石

在 CentOS 服务器运维中,确保网络连接的持续稳定至关重要,尤其对于承担关键业务的主机,单点网卡故障可能导致服务中断,带来严重后果,利用 Linux 内核的 bonding(或 team)驱动,将多块物理网卡聚合为逻辑上的单一接口,并配置 MASTER/SLAVE 主备模式,是实现网络高可用性(High Availability)的经典且高效方案,本文将深入解析 CentOS 下配置网卡为 MASTER 角色的完整流程与核心要点。

理解 MASTER 角色:核心与备援

CentOS网卡配置指南,实现网卡MASTER模式设置-图1

在 bonding 的主备模式(通常为 mode=1)中:

  • MASTER 网卡:这是逻辑聚合接口(bondX)在正常工作状态下唯一激活并承担数据流量的物理网卡,它是网络连接的“主力军”。
  • SLAVE 网卡:作为 MASTER 的热备份,当系统检测到 MASTER 网卡发生故障(如链路断开)时,SLAVE 网卡会自动无缝接管网络流量,保障业务不中断,故障恢复后,流量通常切回 MASTER(取决于配置)。

配置实战:分步打造 MASTER 高可用网卡

确认硬件与驱动

  • 确保服务器至少安装了两块物理网卡(如 eth0, eth1)。
  • 检查内核是否支持 bonding:lsmod | grep bonding,若未加载,执行 modprobe bonding
  • 安装必要工具:yum install -y net-tools (包含 ifconfig) 或确保 iproute2 (ip 命令) 可用。

创建 Bonding 逻辑接口

  • 创建 bond 接口配置文件,使用你熟悉的编辑器(如 vinano)创建文件 /etc/sysconfig/network-scripts/ifcfg-bond0如下:
    DEVICE=bond0
    TYPE=Bond
    NAME=bond0
    BONDING_MASTER=yes
    IPADDR=192.168.1.100      # 替换为你的实际业务IP
    NETMASK=255.255.255.0     # 替换为你的子网掩码
    GATEWAY=192.168.1.1       # 替换为你的网关
    DNS1=8.8.8.8              # 替换为你的DNS
    DNS2=8.8.4.4
    ONBOOT=yes                # 开机启动
    BOOTPROTO=none            # 静态IP
    BONDING_OPTS="mode=1 miimon=100 primary=eth0" # 关键!主备模式,100ms检测,主接口eth0
    • mode=1: 指定 bonding 模式为主备(active-backup)。
    • miimon=100: 每 100 毫秒检查一次 slave 接口的链路状态。
    • primary=eth0: 明确指定 eth0 为 MASTER 角色(主接口),这是将 eth0 配置为 MASTER 的核心设置。

配置 MASTER 物理网卡 (eth0)

  • 修改 /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    TYPE=Ethernet
    NAME=eth0
    ONBOOT=yes
    BOOTPROTO=none
    MASTER=bond0    # 指定所属的bond接口
    SLAVE=yes       # 声明自己是slave(物理角色)
    # 注意:此处的物理网卡eth0被配置为bond0的SLAVE,
    # 但通过bond0的`primary=eth0`参数,它在逻辑上被指定为MASTER(主用)角色。
    • 关键点在于 MASTER=bond0SLAVE=yes,物理网卡本身配置为 SLAVE,隶属于 bond0。MASTER 角色的指定是在 bond0 的配置中通过 primary= 参数实现的。

配置 SLAVE 物理网卡 (eth1)

CentOS网卡配置指南,实现网卡MASTER模式设置-图2
  • 修改 /etc/sysconfig/network-scripts/ifcfg-eth1
    DEVICE=eth1
    TYPE=Ethernet
    NAME=eth1
    ONBOOT=yes
    BOOTPROTO=none
    MASTER=bond0    # 指定所属的bond接口
    SLAVE=yes       # 声明自己是slave(物理角色,同时逻辑上是备援)

重启网络服务 & 验证配置

  • 重启网络服务systemctl restart network (CentOS 7+) 或 service network restart (CentOS 6)。

  • 检查 bond0 状态

    • ip addr show bond0:确认 bond0 已启动并获取了正确的 IP 地址。

    • cat /proc/net/bonding/bond0这是最重要的验证文件! 输出应清晰显示:

      Bonding Mode: fault-tolerance (active-backup) # 主备模式
      Primary Slave: eth0 (if_active)               # 主接口是 eth0 且当前活跃
      Currently Active Slave: eth0                  # 当前活跃的slave是eth0
      MII Status: up                               # MII 状态
      MII Polling Interval (ms): 100
      Up Delay (ms): 0
      Down Delay (ms): 0
      Slave Interface: eth0
      MII Status: up                  # eth0 状态 up
      Link Failure Count: 0           # 链路失败次数
      Permanent HW addr: xx:xx:xx:xx:xx:xx
      Slave Interface: eth1
      MII Status: up                  # eth1 状态 up (作为备份)
      Link Failure Count: 0
      Permanent HW addr: yy:yy:yy:yy:yy:yy
    • 输出明确展示了 eth0 被标识为 Primary SlaveCurrently Active Slave,这就是 MASTER 角色的体现。eth1 作为备份 Slave 在线。

      CentOS网卡配置指南,实现网卡MASTER模式设置-图3

关键测试:模拟故障切换

  • 断开 MASTER (eth0) 物理连接:拔掉 eth0 的网线或在服务器上执行 ifdown eth0
  • 观察切换
    • 立即再次查看 cat /proc/net/bonding/bond0,输出应变为:
      Currently Active Slave: eth1   # 当前活跃的slave已切换到eth1
      Slave Interface: eth0
      MII Status: down               # eth0 状态 down
      ...
      Slave Interface: eth1
      MII Status: up
      ...
    • 测试业务连通性(如 ping 网关或业务地址)。正常情况下,网络应仅出现极其短暂(毫秒级)的中断或无感切换,业务持续可用。
  • 恢复 MASTER (eth0):插回网线或执行 ifup eth0
  • 观察切回(取决于 fail_over_macprimary_reselect 策略,默认通常切回 primary):
    • 查看 cat /proc/net/bonding/bond0,确认 Currently Active Slave 是否变回 eth0(可能需要几秒到几十秒,受 miimon 和链路协商影响)。

配置要点与注意事项

  1. primary= 是关键:在 ifcfg-bond0BONDING_OPTS 中设置 primary=eth0明确指定 eth0 为 MASTER (逻辑主用)角色的唯一方式,物理网卡配置文件 (ifcfg-ethX) 中 MASTER=bond0SLAVE=yes 的配置对所有加入 bond 的物理网卡是相同的。
  2. MAC 地址处理:主备模式下,bond 接口 (bond0) 默认会使用 MASTER 网卡 (eth0) 的 MAC 地址,这通常是期望的行为,避免了交换机学习新 MAC 带来的延迟,可通过 fail_over_mac 参数调整策略。
  3. 切换策略primary_reselect 参数控制主接口恢复后是否以及如何重新成为活动接口,常用值 primary_reselect=always (总是切回主) 或 better (仅当主比当前备好时切回)。
  4. 链路检测 (miimon): miimon=100 是常用且可靠的间隔,确保物理交换机端口也启用了快速链路检测(如 STP PortFast 等)。
  5. 接口命名一致性:CentOS 7+ 可能使用新的接口命名规则 (如 ens192),务必在配置文件中使用实际的接口名称。

个人观点

将关键服务器的核心网卡配置为 bonding MASTER 角色,绝非冗余摆设,而是构建服务韧性的基石,主备自动切换能力,直接决定了业务遭遇硬件故障时的生存底线,每次配置后的严格故障模拟测试,是检验可靠性的唯一标准——稳定性的价值,往往在链路中断的瞬间才真正显现,高可用网络的实现,本质上要求系统管理员具备前瞻性的架构思维和严谨的操作习惯,这比掌握单条命令更为重要。

说明:本文档基于 CentOS 7/8 及 NetworkManager 结合传统 network-scripts 的环境编写,CentOS 流或未来版本若转向 NetworkManagerkeyfilenmcli 原生配置方式,语法会有差异,但 bonding 的核心概念(模式、主接口设定)保持不变,关键永远是理解 primary= 参数的作用和通过 /proc/net/bonding/bondX 验证状态。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/38126.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~