欢迎光临
我们一直在努力

Ubuntu 24.04 双网卡 bond0 绑定

Ubuntu 24.04 双网卡 bond0 绑定

一、前期准备:添加双网卡(VMware 虚拟机+物理机)

(一)VMware 虚拟机添加双网卡(详细步骤+原理)

步骤1:关闭虚拟机

操作:选中目标 Ubuntu 24.04 虚拟机 → 右键 → 电源 → 关闭客户机
原因:VMware 硬件变更(添加/修改网卡)需虚拟机完全关机,挂起或开机状态下无法生效,且可能导致系统识别异常。

步骤2:添加第一块物理网卡(若已有可跳过)
  • 选中虚拟机 → 点击「编辑虚拟机设置」;
  • 硬件列表中点击「添加」→ 选择「网络适配器」→ 点击「下一步」;
  • 网络连接选择(2块网卡需一致):
    • 桥接模式:直接连接物理网络,可与宿主机/外网通信(推荐测试用);
    • 仅主机模式:仅与宿主机及同网络虚拟机通信;
  • 勾选「启动时连接」→ 点击「完成」→ 「确定」。
    原因:
    • 网络适配器是虚拟机与外部通信的硬件基础,需先创建第一块网卡作为绑定的基础设备;
    • 勾选「启动时连接」确保开机后网卡自动启用,无需手动激活;
    • 2块网卡必须同网络模式,否则属于不同网络域,无法实现绑定(绑定要求从设备在同一网络环境)。
    步骤3:添加第二块物理网卡

    操作:重复步骤2的所有操作,确保网络连接模式与第一块网卡完全一致(如均为桥接),最后点击「确定」。
    原因:双网卡绑定需至少2块物理网卡,一块承担主流量,一块备用或分担流量(负载均衡模式),缺少第二块网卡无法实现高可用/带宽叠加功能。

    步骤4:开机验证网卡识别(关键)

    启动Ubuntu虚拟机,执行以下命令确认2块网卡已被系统识别:

    ip addr # 查看所有网络设备信息

    命令解析:

    • ip:Ubuntu 内置的网络配置工具,功能覆盖 ifconfig;
    • addr:address 的缩写,用于查看网卡IP、设备名等信息;
      预期输出:
    • 显示2块以太网网卡(类型为 ether),设备名通常为 ens33、ens37(或 eth0、eth1),记录这两个网卡名(后续配置需用到);
    • 网卡状态可能为 DOWN 或 UP,无需手动激活,后续配置会自动处理。

    (二)物理机添加双网卡(简要说明)

  • 关闭物理机电源,打开机箱,将第二块网卡插入空闲PCIe插槽;
  • 开机后执行 ip addr 命令,确认系统已识别新增网卡(识别逻辑与虚拟机一致);
  • 若未识别,需安装网卡驱动(通常Ubuntu会自动适配主流网卡)。
  • 二、配置 bond0 绑定(balance-rr 轮询模式+命令解析)

    步骤1:安装辅助工具(可选但推荐)

    sudo apt update && sudo apt install -y ifenslave

    命令解析:

    • sudo:以管理员权限执行(网络配置需root权限);
    • apt update:更新软件包索引,确保获取最新的工具版本;
    • apt install -y ifenslave:安装网卡绑定辅助工具,-y 自动确认安装(无需手动输入y);
      原因:ifenslave 可辅助管理bond从设备,增强绑定稳定性,虽非必需,但能减少配置异常概率。

    步骤2:备份原有网络配置(避免冲突)

    sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.bak

    命令解析:

    • cp:复制文件命令;
    • /etc/netplan/01-network-manager-all.yaml:Ubuntu 默认网络配置文件路径;
    • .bak:备份文件后缀,确保后续可恢复原始配置;
      原因:避免新配置与原有配置冲突,若绑定失败可快速回滚。

    步骤3:创建 bond0 专属配置文件

    sudo vim /etc/netplan/bond0.yaml

    命令解析:

    • vim:Ubuntu 内置文本编辑器(若不习惯,可替换为 nano);
    • /etc/netplan/bond0.yaml:新建 bond0 配置文件(Netplan 会自动加载该目录下的所有 .yaml 文件);
      写入配置(替换 ens37、ens38 为实际网卡名):

    network:
    version: 2 # Netplan 配置版本(固定为2)
    renderer: networkd # 使用 systemd-networkd 管理网络(而非 NetworkManager,更稳定)
    ethernets:
    ens37: # 第一块物理网卡名
    addresses: [] # 物理网卡不单独配置IP(IP由bond0统一分配)
    dhcp4: false # 禁用DHCP(避免自动获取IP导致冲突)
    ens38: # 第二块物理网卡名
    addresses: []
    dhcp4: false
    bonds:
    bond0: # 绑定后的虚拟网卡名
    addresses: [192.168.8.124/24] # bond0 静态IP(示例:IP+子网掩码)
    gateway4: 192.168.8.1 # 网关(根据实际网络修改)
    nameservers:
    addresses: [223.5.5.5, 119.29.29.29] # DNS服务器(解析域名)
    interfaces: [ens37, ens38] # 绑定的2块物理网卡
    parameters:
    mode: balancerr # 轮询负载均衡模式
    mii-monitor-interval: 100 # 每100毫秒检测一次网卡链路状态

    配置原理解析:

    • balance-rr 模式:流量按顺序交替从2块网卡发送(如第1个数据包走 ens37,第2个走 ens38),实现负载均衡,提高带宽利用率(需交换机支持,无交换机也可工作,但负载效果稍差);
    • mii-monitor-interval: 100:MII(Media Independent Interface)是网卡物理层检测机制,每100ms检测一次网卡是否正常,故障时快速切换,减少业务中断时间;
    • 物理网卡 addresses: []:确保物理网卡不单独占用IP,所有网络流量通过 bond0 转发,避免IP冲突。

    步骤4:应用配置并生效

    sudo netplan apply

    命令解析:

    • netplan apply:Netplan 核心命令,用于加载并应用新的网络配置;
    • 无需重启系统,配置即时生效;
      原因:触发系统创建 bond0 虚拟网卡,将2块物理网卡绑定为从设备,并加载IP、网关等配置。

    三、验证 bond0 绑定效果(步骤+命令解析)

    测试1:查看 bond0 基本状态

    ip addr show bond0

    命令解析:

    • ip addr show 设备名:查看指定设备的详细网络信息;
      预期输出:
    • 显示 inet 192.168.8.124/24(bond0 已配置静态IP);
    • 状态为 UP,LOWER_UP(网卡已启用且链路正常);
      原因:确认 bond0 虚拟网卡创建成功且IP配置正确。

    测试2:查看绑定详细参数

    cat /proc/net/bonding/bond0

    命令解析:

    • cat:读取文件内容并输出;
    • /proc/net/bonding/bond0:系统内核维护的 bond0 状态文件,记录绑定模式、从设备状态等关键信息;
      关键输出解析:
    • Bonding Mode: load balancing (round-robin):确认绑定模式为轮询负载均衡;
    • Slave Interface: ens37 和 ens38:均显示 MII Status: up(2块物理网卡均正常工作);
    • MII Polling Interval (ms): 100:验证心跳检测间隔配置生效;
      原因:确认绑定参数与配置一致,从设备正常挂载。

    测试3:验证网络连通性

    # ping 网关(测试内网连通)
    ping 192.168.8.1 -c 4
    # ping 外网(测试DNS与外网访问)
    ping www.baidu.com -c 4

    命令解析:

    • ping:测试网络连通性的工具(发送ICMP数据包,接收响应则表示连通);
    • -c 4:指定发送4个数据包后停止(避免持续ping占用资源);
      预期结果:无丢包,延迟稳定,说明 bond0 网络配置正常;
      原因:验证IP、网关、DNS配置无误,bond0 能正常转发网络流量。

    测试4:负载均衡/故障切换测试

    (1)负载均衡测试(balance-rr 模式)
  • 打开第一个终端,持续ping目标IP(产生稳定流量):
  • ping 192.168.8.200 -f # -f 快速ping,产生大量流量

  • 打开第二个终端,查看2块网卡的流量统计:
  • watch -n 1 ifstat -i ens37 -i ens38

    命令解析:

    • watch -n 1:每1秒刷新一次输出;
    • ifstat:查看网卡流量的工具(若未安装,执行 sudo apt install ifstat);
    • -i 网卡名:指定查看的网卡;
      预期结果:ens37 和 ens38 的 tx(发送)流量基本一致,说明负载均衡生效;
      原因:验证 round-robin 模式能将流量均匀分配到2块网卡。
    (2)故障切换测试
  • 保持ping命令持续运行(ping 192.168.8.1);
  • 禁用其中一块网卡(模拟故障):
  • sudo ip link set ens37 down

    命令解析:

    • ip link set 网卡名 down:禁用指定网卡(链路断开);
  • 观察结果:
    • ping 终端:仅丢1-2个包(切换时间),随后恢复正常;
    • 查看 bond0 状态:
  • cat /proc/net/bonding/bond0 | grep "MII Status"

    预期输出:ens37 显示 down,ens38 显示 up,流量自动切换到 ens38;
    4. 恢复网卡:

    sudo ip link set ens37 up

    原因:验证 bond0 的高可用能力,单网卡故障时业务不中断。

    四、环境还原:取消 bond0 绑定(步骤+命令解析)

    若需恢复单网卡模式,按以下步骤操作:

    步骤1:删除 bond0 配置文件

    sudo rm -f /etc/netplan/bond0.yaml

    命令解析:

    • rm -f:强制删除文件(忽略不存在的文件,无提示);
      原因:Netplan 仅加载 /etc/netplan/ 下的 .yaml 文件,删除后 bond0 配置失效。

    步骤2:恢复原始网络配置

    sudo mv /etc/netplan/01-network-manager-all.yaml.bak /etc/netplan/01-network-manager-all.yaml

    命令解析:

    • mv:移动/重命名文件,将备份文件恢复为原始配置文件;
      原因:恢复到绑定前的网络配置状态。

    步骤3:应用还原配置

    sudo netplan apply

    命令解析:加载恢复后的原始配置,删除 bond0 虚拟网卡,物理网卡恢复独立状态;
    原因:使还原配置生效,系统恢复单网卡工作模式。

    步骤4:验证还原结果

    # 查看bond0是否存在(应提示“未找到设备”)
    ip addr show bond0
    # 查看物理网卡状态(应恢复独立IP或DHCP状态)
    ip addr show ens37
    # 测试网络连通性
    ping www.baidu.com -c 4

    预期结果:bond0 消失,物理网卡恢复独立工作,网络连通正常;
    原因:确认还原操作成功,系统网络状态恢复到绑定前。

    赞(0)
    未经允许不得转载:171主机测评 » Ubuntu 24.04 双网卡 bond0 绑定
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址