- Bug 标题
NAS 启动后 Docker 容器无网络连接,需手动重启容器恢复(100% 复现,多版本存在)
- 系统环境
- Bug 现象
- 核心问题: NAS 冷启动/重启后,所有 Docker 容器完全无网络连接(内外网均不可访问),但宿主机网络正常
- 临时解决方案: 必须手动逐个重启容器才能恢复网络
- 复现概率: 100% 复现(每次系统启动均出现)
- 版本影响: 此问题在 fnOS 0.9.12 及更早版本均存在
- 关键配置与操作
尝试的 OVS 网桥配置(重启后失效):
ovs-vsctl add-port enp3s0 enp4s0
ovs-vsctl add-port enp3s0 enp1s0f0
ovs-vsctl add-port enp3s0 enp1s0f1
关键发现:
- 无论是否执行上述 OVS 配置,Docker 容器均无网络
- OVS 网桥配置重启后自动丢失
- 问题等级
严重 (Severity 1)
- 导致依赖网络的容器服务(如数据库、Web应用)完全不可用
- 必须人工干预,违反自动化运维原则
- 根因分析(猜测)
核心缺陷: Docker 服务启动时序早于物理网卡就绪和 OVS 初始化完成
- 需求清单
优先级 | 需求描述 | 详细说明
P0 | 修复容器无网络问题 | 确保 Docker 在所有物理/虚拟网络接口就绪后启动
P1 | 实现 OVS 网桥配置持久化 | 提供配置文件支持多网口绑定(如 /etc/fnos/network.conf)
P1 | 增加虚拟交换机功能 | 支持在 Web 界面将 enp4s0/enp1s0f0/enp1s0f1 加入 OVS 网桥
-
复现步骤(全版本通用)
-
基础环境准备(任何支持 OVS 的 fnOS 版本)
fnos-version # 确认版本 <= 0.9.12
docker run -d --network=host nginx # 启动 host 模式容器
-
触发问题
reboot # 重启系统
docker exec ping 1.1.1.1 # → 100% 失败
-
临时修复
docker restart # → 网络恢复
-
硬件/网络拓扑
[OVS 网桥结构]
enp3s0 (OVS 网桥) 连接:
- 板载 i226v enp4s0
- PCIe x540T2 enp1s0f0
- PCIe x540T2 enp1s0f1
Docker 容器(host 模式)依赖 enp3s0 OVS 网桥
测试支持: 可提供访问权限,配合远程调试或测试补丁
联系方式:FNos37群AE86