收起左侧

NAS 启动后 Docker 容器无网络连接,需手动重启容器恢复

1
回复
56
查看
[ 复制链接 ]

1

主题

0

回帖

0

牛值

江湖小虾

2025-7-4 00:40:14 显示全部楼层 阅读模式
  1. Bug 标题

NAS 启动后 Docker 容器无网络连接,需手动重启容器恢复(100% 复现,多版本存在)

  1. 系统环境
  • 系统版本: fnOS 0.9.12 (问题在过往版本同样存在)

  • 硬件配置: Intel N100 处理器

  • 网口配置:

    • 板载 i226v × 2: enp3s0, enp4s0
    • PCIe x540T2 × 2: enp1s0f0, enp1s0f1
  • 网络模式: Docker 容器使用 host 模式

  • 特殊配置: enp3s0 启用 OVS 网桥

  1. Bug 现象
  • 核心问题: NAS 冷启动/重启后,所有 Docker 容器完全无网络连接(内外网均不可访问),但宿主机网络正常
  • 临时解决方案: 必须手动逐个重启容器才能恢复网络
  • 复现概率: 100% 复现(每次系统启动均出现)
  • 版本影响: 此问题在 fnOS 0.9.12 及更早版本均存在
  1. 关键配置与操作

尝试的 OVS 网桥配置(重启后失效):

ovs-vsctl add-port enp3s0 enp4s0

ovs-vsctl add-port enp3s0 enp1s0f0

ovs-vsctl add-port enp3s0 enp1s0f1

关键发现:

  • 无论是否执行上述 OVS 配置,Docker 容器均无网络
  • OVS 网桥配置重启后自动丢失
  1. 问题等级

严重 (Severity 1)

  • 导致依赖网络的容器服务(如数据库、Web应用)完全不可用
  • 必须人工干预,违反自动化运维原则
  1. 根因分析(猜测)

核心缺陷: Docker 服务启动时序早于物理网卡就绪和 OVS 初始化完成

  1. 需求清单

优先级 | 需求描述 | 详细说明

P0 | 修复容器无网络问题 | 确保 Docker 在所有物理/虚拟网络接口就绪后启动

P1 | 实现 OVS 网桥配置持久化 | 提供配置文件支持多网口绑定(如 /etc/fnos/network.conf)

P1 | 增加虚拟交换机功能 | 支持在 Web 界面将 enp4s0/enp1s0f0/enp1s0f1 加入 OVS 网桥

  1. 复现步骤(全版本通用)

  2. 基础环境准备(任何支持 OVS 的 fnOS 版本)

    fnos-version # 确认版本 <= 0.9.12

    docker run -d --network=host nginx # 启动 host 模式容器

  3. 触发问题

    reboot # 重启系统

    docker exec ping 1.1.1.1 # → 100% 失败

  4. 临时修复

    docker restart # → 网络恢复

  5. 硬件/网络拓扑

[OVS 网桥结构]

enp3s0 (OVS 网桥) 连接:

  • 板载 i226v enp4s0
  • PCIe x540T2 enp1s0f0
  • PCIe x540T2 enp1s0f1

Docker 容器(host 模式)依赖 enp3s0 OVS 网桥

测试支持: 可提供访问权限,配合远程调试或测试补丁

联系方式:FNos37群AE86

收藏
送赞 1
分享

43

主题

8429

回帖

0

牛值

管理员

已收到反馈,我们先尝试复现一下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则