linux服务-Bonding网卡绑定工具

Linux 网卡绑定工具 Bonding

本章重点: 网卡绑定的安装使用,绑定检查,一部分常见故障

参考:Linux双网卡绑定bond详解Linux双网卡绑定bond详解豆包ai

Bonding 是 Linux 系统中常用的网卡绑定技术,通过将多块物理网卡虚拟为单一设备并共享同一 IP 地址,可实现带宽扩容、负载均衡或高可用,核心原理是统一多网卡的 MAC 地址,避免直接设置同一 IP 导致的网络冲突。

一、Bonding 核心优势

  • 负载均衡:多网卡协同工作,分摊网络流量,缓解单 IP 高负载场景下的服务器网络压力,常见于文件服务器等流量密集型应用。
  • 冗余高可用:绑定后的网卡形成冗余链路,当某块物理网卡故障时,备用网卡自动接管服务,保障网络连接不中断。

二、常见绑定模式详解

模式编号 模式名称 核心策略 优点 缺点 适用场景
Mode 0 balance-rr(轮转) 按顺序在所有从属网卡上轮流发送数据包,链路故障自动切换 流量翻倍,带宽利用率高 需交换机配置端口聚合,否则可能丢包 高带宽需求(如文件服务器)
Mode 1 active-backup(主备) 仅一块网卡活动,其余备用,故障时自动激活备用网卡 冗余性强,切换稳定,无需交换机配置 链路利用率低(仅单卡工作) 高可用需求(如数据库服务器)
Mode 3 broadcast(广播) 在所有从属网卡同步传输所有报文 容错能力突出,数据传输可靠 带宽占用高,无负载均衡效果 数据冗余传输(如关键指令下发)
Mode 2 balance-xor(异或) 基于源 MAC + 目标 MAC 哈希算法分配流量 无需交换机聚合,支持负载均衡 流量分配依赖哈希结果,可能不均 无交换机聚合条件的负载场景
Mode 4 802.3ad(LACP) 动态聚合,遵循 IEEE 802.3ad 标准,协商聚合链路 动态调整聚合链路,负载均衡更优 需交换机支持 LACP 协议,配置复杂 企业级高可用 + 高带宽场景
Mode 5 balance-tlb(传输负载均衡) 基于网卡负载动态分配 outgoing 流量 无需交换机配置,自动适配负载 仅优化出站流量,入站仍单卡接收 出站流量密集的应用(如 Web 服务)
Mode 6 balance-alb(自适应负载均衡) 同时优化入站 + 出站流量,支持 ARP 协商分发入站流量 无需交换机,负载均衡效果全面 配置稍复杂,依赖 ARP 协议 无交换机聚合的全能型场景

三、Bonding 内核模块加载方法(CentOS 7)

  1. 临时加载(重启后失效)

    bash 复制代码
    # 加载bonding模块
    [root@localhost ~]# modprobe bonding
    
    # 验证加载结果(显示bonding相关记录即为成功)
    [root@localhost ~]# lsmod | grep bonding
    bonding               152656  0 
  2. 永久加载(开机自动生效)

    1. 通过 modules-load.d 配置

      bash 复制代码
      # 创建bonding模块加载配置文件
      echo "bonding" >> /etc/modules-load.d/bonding.conf
      
      # 验证配置文件
      cat /etc/modules-load.d/bonding.conf
      
      # 立即加载模块(无需重启)
      systemctl restart systemd-modules-load
    2. 通过 modprobe.d 配置(兼容旧版系统)

      bash 复制代码
      # 创建modprobe配置文件
      echo "alias bond0 bonding" >> /etc/modprobe.d/bonding.conf
      
      # 加载模块
      modprobe bonding
    3. 加载多 Bond 设备(如需创建多个 bond 接口)

      bash 复制代码
      # 临时加载并支持2个bond设备(bond0、bond1)
      modprobe bonding max_bonds=2
      
      # 永久配置多Bond设备(修改modules-load.d配置)
      echo "bonding max_bonds=2" >> /etc/modules-load.d/bonding.conf

四、CentOS7实现Bonding配置

  1. 准备工作

    • 执行 ip a 命令查询系统中待绑定的物理网卡名称(如示例中的 ens33、ens36)。

    • CentOS 7 默认启用 NetworkManager,建议临时禁用(避免配置冲突):

      bash 复制代码
      [root@localhost ~]# systemctl stop NetworkManager && systemctl disable NetworkManager
      Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
      Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
      Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
      Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
    • 确保系统加载 bonding

      bash 复制代码
      [root@localhost ~]# modprobe bonding
      [root@localhost ~]# lsmod | grep bonding
      bonding               152656  0 
  2. 创建配置文件

    1. 环境查看

      bash 复制代码
      # 准备两块网卡
      2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc 
          inet 192.168.189.129/24 brd 192.168.189.255 scope global noprefixroute dynamic ens33
      3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
          inet 192.168.189.131/24 brd 192.168.189.255 scope global noprefixroute dynamic ens36
    2. 进入配置目录: cd /etc/sysconfig/network-scripts/

    3. 创建bond0配置文件(以Mode 0为例,可替换为其他模式)

      bash 复制代码
      [root@localhost network-scripts]# cat > ifcfg-bond0 << EOF
      DEVICE=bond0
      TYPE=Bond
      BONDING_OPTS="mode=0 miimon=100"  # 模式为轮转,100ms链路检测间隔
      IPADDR=192.168.189.132
      PREFIX=24
      GATEWAY=192.168.189.1
      DNS1=114.114.114.114  # 可选配置DNS
      ONBOOT=yes
      BOOTPROTO=none
      EOF
    4. 创建从属网卡ens33配置文件

      bash 复制代码
      # 先备份一下配置
      [root@localhost network-scripts]# mv ifcfg-ens33{,.bak}
      [root@localhost network-scripts]# mv ifcfg-ens36{,.bak}
      
      [root@localhost network-scripts]# cat > ifcfg-ens33 << EOF
      TYPE=Ethernet
      BOOTPROTO=none
      NAME=ens33
      DEVICE=ens33
      ONBOOT=yes
      MASTER=bond0  # 关联至bond0设备
      SLAVE=yes     # 标记为从属网卡
      EOF
      
      # 在复制一张给 ens36
      [root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
      [root@localhost network-scripts]# sed -i "s@ens33@ens36@gi" ifcfg-ens36
  3. 启动并验证配置

    • 重启网络服务

      bash 复制代码
      # (CentOS 7推荐使用network服务), 重启完之后用 bonding地址登陆 
      systemctl restart network
    • 查看网卡状态

      bash 复制代码
      [root@localhost ~]# ip a
      2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
          link/ether 00:0c:29:fa:dc:ff brd ff:ff:ff:ff:ff:ff
      3: ens36: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
          link/ether 00:0c:29:fa:dc:ff brd ff:ff:ff:ff:ff:ff
      4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
          link/ether 00:0c:29:fa:dc:ff brd ff:ff:ff:ff:ff:ff
          inet 192.168.189.132/24 brd 192.168.189.255 scope global bond0
      
      # BROADCAST,MULTICAST,MASTER,UP,LOWER_UP 注意看这里的状态
    • 查看Bonding详细信息(模式、链路状态、网卡速度等)

      bash 复制代码
      [root@localhost ~]# cat /proc/net/bonding/bond0
      Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
      
      Bonding Mode: load balancing (round-robin)
      MII Status: up
      
      Slave Interface: ens33
      MII Status: up
      Speed: 1000 Mbps
      
      Slave Interface: ens36
      MII Status: up
      Speed: 1000 Mbps
    • 单独验证绑定模式

      bash 复制代码
      [root@localhost ~]# cat /sys/class/net/bond0/bonding/mode
      balance-rr 0
    • 验证成功后,将看到 bond0 设备处于 UP 状态,ens160、ens192 为 SLAVE 状态,三者 MAC 地址一致,共用 192.168.9.31IP。

      bash 复制代码
      ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP>
      ens36: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP>
      bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> 
      MAC地址: link/ether 00:0c:29:fa:dc:ff brd ff:ff:ff:ff:ff:ff
  4. 故障切换测试

    bash 复制代码
    # 关闭其中一块从属网卡,验证备用网卡是否正常接管:
    [root@localhost ~]# ip link set ens36 down
    [root@localhost ~]# cat /proc/net/bonding/bond0 
    Bonding Mode: load balancing (round-robin)
    MII Status: up
    
    Slave Interface: ens33
    MII Status: up
    
    Slave Interface: ens36
    MII Status: down     <--- 注意状态
    Speed: 1000 Mbps
    
    [root@localhost ~]# ip link set ens36 up
    [root@localhost ~]# cat /proc/net/bonding/bond0 
    Slave Interface: ens36
    MII Status: up		  <--- 注意状态

五、交换机聚合配置

  1. 静态聚合(适配 Mode 0) --> 以华为 Quidway 系列交换机为例:

    bash 复制代码
    # 清空接口原有配置(如GigabitEthernet0/0/5)
    interface GigabitEthernet0/0/5
    undo port link-type access
    undo port default vlan
    undo ntdp enable
    undo ndp enable
    undo bpdu enable
    
    # 创建Eth-Trunk 2聚合接口
    interface Eth-Trunk 2
    port link-type access
    port default vlan [VLAN ID]  # 替换为实际业务VLAN
    
    # 将接口加入聚合组
    interface GigabitEthernet0/0/5
    eth-trunk 2
    interface GigabitEthernet0/0/6
    eth-trunk 2
    
    # 查看聚合状态
    dis interface Eth-Trunk
  2. LACP 动态聚合(适配 Mode 4)

    bash 复制代码
    # 交换机创建Eth-Trunk并启用LACP
    interface Eth-Trunk 2
    port link-type access
    port default vlan [VLAN ID]
    mode lacp-static  # 启用静态LACP模式
    
    # 接口加入聚合组
    interface GigabitEthernet0/0/5
    eth-trunk 2
    interface GigabitEthernet0/0/6
    eth-trunk 2
    
    # 查看LACP协商状态
    dis lacp eth-trunk 2

六、常见错误排查手册

  • 网络服务重启失败(Job for network.service failed)
    • 排查方向:配置文件语法错误、网卡名称与实际不符、端口被占用。
    • 解决步骤:
      1. 检查配置文件格式,确保无多余空格、引号闭合:cat /etc/sysconfig/network-scripts/ifcfg-bond0
      2. 再次执行 ip a 确认网卡名称(如 ens33 而非 ens160),同步修改配置文件中的 DEVICE 和 NAME 字段。
      3. 查看网络服务日志定位错误:journalctl -xe | grep network
  • 从属网卡未显示为 SLAVE 状态
    • 排查方向:从属网卡配置缺失 MASTER/SLAVE 字段、NetworkManager 未完全禁用。
    • 解决步骤:
      1. 检查从属网卡配置文件,确保包含 MASTER=bond0SLAVE=yes 字段。
      2. 彻底禁用 NetworkManager:systemctl stop NetworkManager && systemctl disable NetworkManager && systemctl mask NetworkManager
      3. 重启网络服务:systemctl restart network,再次通过 ip a 验证。
  • Bond0 无 IP 地址或无法 ping 通网关
    • 排查方向:bond 配置文件 IP/Gateway 错误、防火墙拦截、路由表异常。
    • 解决步骤:
      1. 核对 ifcfg-bond0 中的 IPADDR、PREFIX、GATEWAY 是否与网段匹配,避免子网掩码错误。
      2. 临时关闭 firewalld 测试:systemctl stop firewalld,若能通信则配置防火墙放行 bond0 接口。
      3. 查看路由表:ip route,确认默认路由指向配置的网关,缺失则手动添加:ip route add default via 192.168.9.1 dev bond0
  • Mode 0 模式下流量未负载均衡(丢包 / 卡顿)
    • 排查方向:交换机未配置端口聚合、聚合模式不匹配。
    • 解决步骤:
      1. 确认交换机已创建 Eth-Trunk 聚合组,且所有从属网卡对应的交换机端口已加入该组。
      2. 检查交换机聚合模式是否为静态聚合(Mode 0 需静态聚合配合),避免动态聚合协议不兼容。
      3. 通过 ethtool -S bond0 查看网卡流量统计,确认多网卡是否均有数据传输。
  • 网卡故障切换失败
    • 排查方向:miimon 参数配置不当、物理网卡硬件问题。
    • 解决步骤:
      1. 调整 bond 配置中的 miimon 值(建议 50-200ms),如 BONDING_OPTS="mode=0 miimon=200",重启网络服务。
      2. 检查故障网卡硬件状态:ethtool ens160,查看 Link detected 是否为 yes,若为 no 则检查网线、交换机端口。
      3. 查看 Bonding 故障计数:cat /proc/net/bonding/bond0,若 Link Failure Count 持续增加,更换网线或网卡测试。
  • 重启系统后 Bonding 配置失效
    • 排查方向:bonding 模块未开机自动加载、网络服务未设置开机启动。
    • 解决步骤:
      1. 配置 bonding 模块开机加载:echo "bonding" >> /etc/modules-load.d/bonding.conf
      2. 设置 network 服务开机启动:systemctl enable network
      3. 验证:reboot 后通过 lsmod | grep bondingip a 确认配置生效。

七、专属注意事项

  1. 配置文件差异:CentOS 7 的 bond 配置文件需添加TYPE=Bond字段,与 CentOS 6 的配置格式区分。
  2. 网络服务管理:优先使用network服务而非NetworkManager,避免配置不生效。
  3. 内核模块:若系统未自动加载 bonding 模块,可通过/etc/modules-load.d/bonding.conf配置开机自动加载。
  4. 防火墙放行:若启用 firewalld,需确保 bond0 接口的相关端口或服务放行,避免网络不通。
  5. 模式选择:根据业务需求选择合适模式,无需交换机配置可优先选 Mode 1/5/6,需高带宽 + 高可用可选 Mode 4(LACP)。

八、Bonding 配置验证工具脚本

  • 示例

    bash 复制代码
    #!/bin/bash
    # Bonding配置验证工具(CentOS 7)- 修复版
    # 修复点:1. 精准识别bond接口 2. 增加参数空值校验 3. 优化从属网卡检测逻辑
    
    # 定义颜色输出
    RED="\033[31m"
    GREEN="\033[32m"
    YELLOW="\033[33m"
    BLUE="\033[34m"
    RESET="\033[0m"
    
    # 检查脚本运行权限(需root)
    if [ "$(id -u)" -ne 0 ]; then
        echo -e "${RED}[ERROR] 请使用root权限运行脚本(sudo ./bond_verify.sh)${RESET}"
        exit 1
    fi
    
    # 1. 基础环境验证(模块+网络服务)
    echo -e "\n${BLUE}===== 1. 基础环境验证 =====" ${RESET}
    echo -n "验证bonding内核模块加载:"
    if lsmod | grep -q "bonding"; then
        echo -e "${GREEN}[OK]${RESET}"
        MODULE_STATUS=0
    else
        echo -e "${RED}[FAIL]${RESET}"
        echo -e "${YELLOW}[WARNING] bonding模块未加载,尝试临时加载...${RESET}"
        modprobe bonding >/dev/null 2>&1
        if lsmod | grep -q "bonding"; then
            echo -e "${GREEN}[SUCCESS] 临时加载bonding模块成功${RESET}"
            MODULE_STATUS=0
        else
            echo -e "${RED}[ERROR] 加载bonding模块失败,请检查内核配置${RESET}"
            MODULE_STATUS=1
        fi
    fi
    
    echo -n "验证network服务状态:"
    if systemctl is-active --quiet network; then
        echo -e "${GREEN}[OK]${RESET}"
    else
        echo -e "${RED}[FAIL]${RESET}"
        echo -e "${YELLOW}[WARNING] network服务未启动,尝试启动...${RESET}"
        systemctl start network >/dev/null 2>&1
        if systemctl is-active --quiet network; then
            echo -e "${GREEN}[SUCCESS] network服务启动成功${RESET}"
        else
            echo -e "${RED}[ERROR] network服务启动失败,日志:journalctl -xe | grep network${RESET}"
            exit 1
        fi
    fi
    
    # 2. Bond接口存在性验证(仅识别bond开头的接口,修复核心问题)
    echo -e "\n${BLUE}===== 2. Bond接口验证 =====" ${RESET}
    # 仅过滤名称为bond0、bond1等的接口,排除物理网卡
    BOND_INTERFACES=$(ip -o link show | awk '{print $2}' | sed 's/://' | grep -E '^bond[0-9]+$')
    if [ -z "$BOND_INTERFACES" ]; then
        echo -e "${RED}[ERROR] 未检测到真实的bond接口(需命名为bond0、bond1等)${RESET}"
        echo -e "${YELLOW}[提示] 请先配置bond接口,再运行脚本验证${RESET}"
        exit 1
    else
        echo -e "检测到有效bond接口:${GREEN}$BOND_INTERFACES${RESET}"
    fi
    
    # 3. 详细验证每个bond接口
    for BOND in $BOND_INTERFACES; do
        echo -e "\n${BLUE}----- 验证bond接口:$BOND -----${RESET}"
        
        # 3.1 接口状态验证
        echo -n "接口状态(UP/DOWN):"
        if ip link show "$BOND" | grep -q "UP"; then
            echo -e "${GREEN}[UP]${RESET}"
        else
            echo -e "${RED}[DOWN]${RESET}"
            echo -e "${YELLOW}[WARNING] 尝试激活接口:ip link set $BOND up${RESET}"
            ip link set "$BOND" up >/dev/null 2>&1
        fi
        
        # 3.2 IP配置验证
        echo -n "IP地址配置:"
        IP_ADDR=$(ip -4 addr show "$BOND" | grep -oP '(?<=inet\s)\d+(\.\d+){3}/\d+' | head -1)
        if [ -n "$IP_ADDR" ]; then
            echo -e "${GREEN}$IP_ADDR${RESET}"
        else
            echo -e "${RED}[未配置]${RESET}"
            echo -e "${YELLOW}[WARNING] bond接口未配置IP,请检查ifcfg-$BOND文件${RESET}"
        fi
        
        # 3.3 从属网卡验证(优化读取逻辑,避免报错)
        echo -n "从属网卡数量:"
        if [ -f "/proc/net/bonding/$BOND" ]; then
            # 精准提取从属网卡名称,排除空行
            SLAVE_LIST=$(grep -E '^Slave Interface:' /proc/net/bonding/$BOND | awk '{print $3}')
            SLAVE_NICS=$(echo "$SLAVE_LIST" | wc -w)
            if [ "$SLAVE_NICS" -ge 2 ]; then
                echo -e "${GREEN}$SLAVE_NICS 块${RESET}"
                echo -e "从属网卡列表:$SLAVE_LIST"
            else
                echo -e "${RED}$SLAVE_NICS 块(不足2块,无法实现冗余/负载均衡)${RESET}"
                echo -e "当前从属网卡:$SLAVE_LIST"
            fi
        else
            echo -e "${RED}[读取失败]${RESET}"
            echo -e "${YELLOW}[WARNING] 未找到/proc/net/bonding/$BOND,可能配置未生效${RESET}"
        fi
        
        # 3.4 绑定模式验证
        echo -n "绑定模式:"
        if [ -f "/proc/net/bonding/$BOND" ]; then
            BOND_MODE=$(grep "Bonding Mode:" /proc/net/bonding/$BOND | awk -F': ' '{print $2}')
            if [ -n "$BOND_MODE" ]; then
                echo -e "${GREEN}$BOND_MODE${RESET}"
            else
                echo -e "${RED}[未知]${RESET}"
            fi
        else
            echo -e "${RED}[读取失败]${RESET}"
        fi
        
        # 3.5 链路检测间隔验证(增加空值校验,修复整数表达式错误)
        echo -n "链路检测间隔(miimon):"
        MIIMON_PATH="/sys/class/net/$BOND/bonding/miimon"
        if [ -f "$MIIMON_PATH" ]; then
            MIIMON=$(cat "$MIIMON_PATH")
            # 校验是否为整数
            if [[ "$MIIMON" =~ ^[0-9]+$ ]]; then
                if [ "$MIIMON" -ge 50 ] && [ "$MIIMON" -le 200 ]; then
                    echo -e "${GREEN}$MIIMON ms(正常范围)${RESET}"
                else
                    echo -e "${YELLOW}$MIIMON ms(建议调整为50-200ms)${RESET}"
                fi
            else
                echo -e "${RED}$MIIMON(非整数,配置异常)${RESET}"
            fi
        else
            echo -e "${RED}[未配置]${RESET}"
            echo -e "${YELLOW}[WARNING] 请在ifcfg-$BOND中添加BONDING_OPTS=\"miimon=100\"${RESET}"
        fi
        
        # 3.6 连通性测试(ping网关)
        if [ -n "$IP_ADDR" ]; then
            echo -n "网关连通性测试:"
            GATEWAY=$(ip route show default | awk '{print $3}' | head -1)
            if [ -n "$GATEWAY" ]; then
                ping -c 2 -W 1 "$GATEWAY" >/dev/null 2>&1
                if [ $? -eq 0 ]; then
                    echo -e "${GREEN}[可达](网关:$GATEWAY)${RESET}"
                else
                    echo -e "${RED}[不可达](网关:$GATEWAY)${RESET}"
                fi
            else
                echo -e "${YELLOW}[无默认网关]${RESET}"
            fi
        fi
    done
    
    # 4. 故障切换功能测试(可选)
    echo -e "\n${BLUE}===== 3. 故障切换测试(可选) =====" ${RESET}
    read -p "是否执行故障切换测试?(会临时关闭一块从属网卡,y/n):" TEST_CHOICE
    if [ "$TEST_CHOICE" = "y" ] || [ "$TEST_CHOICE" = "Y" ]; then
        BOND_TEST=$(echo "$BOND_INTERFACES" | head -1)
        if [ -f "/proc/net/bonding/$BOND_TEST" ]; then
            SLAVE_TEST=$(grep -E '^Slave Interface:' /proc/net/bonding/$BOND_TEST | awk '{print $3}' | head -1)
            if [ -n "$SLAVE_TEST" ]; then
                echo -e "\n${YELLOW}[TEST] 临时关闭从属网卡:$SLAVE_TEST${RESET}"
                ip link set "$SLAVE_TEST" down
                sleep 2
                
                echo -n "故障切换后bond状态:"
                if ip link show "$BOND_TEST" | grep -q "UP"; then
                    echo -e "${GREEN}[正常]${RESET}"
                    echo -e "详细状态(从属网卡):"
                    grep -A 3 "Slave Interface:" /proc/net/bonding/$BOND_TEST | grep -E "Slave Interface|State"
                else
                    echo -e "${RED}[异常]${RESET}"
                fi
                
                echo -e "\n${YELLOW}[TEST] 恢复从属网卡:$SLAVE_TEST${RESET}"
                ip link set "$SLAVE_TEST" up
            else
                echo -e "${RED}[ERROR] $BOND_TEST 无可用从属网卡用于测试${RESET}"
            fi
        else
            echo -e "${RED}[ERROR] 无法读取$BOND_TEST 配置,测试终止${RESET}"
        fi
    fi
    
    # 5. 总结报告
    echo -e "\n${BLUE}===== 验证总结 =====" ${RESET}
    if [ "$MODULE_STATUS" -eq 0 ] && [ -n "$BOND_INTERFACES" ]; then
        echo -e "${GREEN}[整体状态:正常]${RESET}"
        echo -e "建议:定期通过 ./bond_verify.sh 检查bond状态,确保高可用"
    else
        echo -e "${RED}[整体状态:异常]${RESET}"
        echo -e "请根据上述错误提示修复配置后重新验证"
    fi
    
    exit 0
  • 测试

    bash 复制代码
    [root@localhost ~]# bash check.sh 
    
    ===== 1. 基础环境验证 ===== 
    验证bonding内核模块加载:[OK]
    验证network服务状态:[OK]
    
    ===== 2. Bond接口验证 ===== 
    检测到有效bond接口:bond0
    
    ----- 验证bond接口:bond0 -----
    接口状态(UP/DOWN):[UP]
    IP地址配置:192.168.189.132/24
    从属网卡数量:2 块
    从属网卡列表:ens33
    ens36
    绑定模式:load balancing (round-robin)
    链路检测间隔(miimon):100 ms(正常范围)
    网关连通性测试:[不可达](网关:192.168.189.1)
    
    ===== 3. 故障切换测试(可选) ===== 
    是否执行故障切换测试?(会临时关闭一块从属网卡,y/n):y
    
    [TEST] 临时关闭从属网卡:ens33
    故障切换后bond状态:[正常]
    详细状态(从属网卡):
    Slave Interface: ens33
    Slave Interface: ens36
    
    [TEST] 恢复从属网卡:ens33
    
    ===== 验证总结 ===== 
    [整体状态:正常]
    建议:定期通过 ./bond_verify.sh 检查bond状态,确保高可用
相关推荐
云边有个稻草人2 小时前
Windows 里用 Linux 不卡顿?WSL + cpolar让跨系统开发变简单
linux·运维·服务器·cpolar
打不了嗝 ᥬ᭄2 小时前
【Linux】网络层协议
linux·网络·c++·网络协议·http
卓码软件测评2 小时前
软件数据库测试:【数据库质量保障:从单元测试到性能优化】
运维·数据库·测试用例·压力测试
LXY_BUAA3 小时前
将linux操作系统装入U盘20251107
linux·运维·服务器
IDC02_FEIYA3 小时前
Discuz论坛管理员怎么重置修改用户密码?
运维·服务器
九河云3 小时前
华为云ECS与Flexus云服务器X实例:差异解析与选型指南
大数据·运维·服务器·网络·人工智能·华为云
kaoa0003 小时前
Linux入门攻坚——53、drbd - Distribute Replicated Block Device,分布式复制块设备-2
linux·运维·服务器
007tg3 小时前
Telegram SCRM 系统构建指南:自动化营销与客户管理实战
大数据·运维·自动化
King's King3 小时前
自动化化WMS和WCS投标模板
运维·自动化