CloudEdge SAM:OCI Ubuntu 镜像的防火墙引导

实验性功能(CloudEdge SAM)。这是主机引导/提供商镜像行为问题,不是 routerd 数据平面的问题。适用于作为 SAM 路由器使用的 OCI Canonical Ubuntu 镜像。
症状
在 OCI 中,Canonical Ubuntu 24.04 镜像在启动时启用了 iptables-nft 过滤规则,reject SSH/ICMP 以外的入站流量,并 reject 所有 FORWARD 流量。在此默认设置下,SAM 路由器:
- 即使 OCI 安全列表允许
UDP/51820且 VNIC 设置了skipSourceDestCheck=true,也无法接收 WireGuard 握手 — 主机防火墙在入站 WireGuard 数据包到达wg-hybrid监听器之前就将其丢弃。 - 无法转发捕获/overlay 流量 — 默认的
FORWARDreject 阻止了 VNIC 接口和wg-hybrid之间的 SAM 交付路径。
这与云端安全列表 / VNIC 的 source-dest-check 无关。它们在 fabric 层运作。来宾 OS 防火墙是独立的层,需要单独许可 SAM 路径。
所需许可(来宾 OS)
在每台 OCI SAM 路由器上,确保主机防火墙许可以下内容:
- 到
wg-hybridWireGuard 监听器的入站UDP/51820。 - OCI VNIC 接口(如
ens3)和wg-hybrid之间的双向FORWARD。
这些应作为路由器配置中主机引导的一部分以声明方式记述,而不是依赖临时的 iptables 规则(重建时会丢失)(与其他"路由器前提条件"一样,要能在干净主机上证明)。
诊断方法
routerctl doctor hybrid 会检测来宾防火墙中阻止 WireGuard / SAM 路径的 reject-all FORWARD/INPUT 模式,因此许可遗漏会以报告形式显示,而不是静默的"无握手"。部署后在 OCI 路由器上运行:
routerctl doctor hybrid
如果 WireGuard 端点未显示握手但对端正在发送 keepalive,请先检查来宾防火墙(本 How-to),然后检查 OCI 安全列表,再检查 VNIC 的 source-dest-check。
相关内容
- Selective Address Mobility
- OCI Ubuntu 镜像的默认
iptables-nft配置与 AWS/Azure 镜像不同。AWS/Azure 的 SAM 冒烟测试未出现此问题,是因为那些镜像默认不会对FORWARD做 reject-all。