找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17|回复: 0

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

[复制链接]

1

主题

10

回帖

146

积分

管理员

积分
146
发表于 2025-10-15 00:49:11 | 显示全部楼层 |阅读模式
  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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站由纳斯五零(NAS50.CN),版权所有,保留部分权利。豫ICP备2023035803号-1

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2025-10-24 04:26 , Processed in 0.096195 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表