前言

在去年我完成了 DN42 网络的搭建后,为了方便管理和安全,我在各个节点都安装了 podman 和 ufw。而这个决定,将我代入了一个深渊巨坑之中。

表象

我的网络架构还是比较简单的:

graph TD

A[LAX RR]
B[HKG]
C[AMS]
D[DEU]

E[Homelab]

subgraph Full-mesh Overlay
    A <--> B
    A <--> C
    A <--> D
end

A <--> E

四个主要节点使用 wg 组成 full-mesh 网络,其中 LAX 节点作为 Router Reflector, Homelab 仅与 HKG 建立了 p2p.

而在此后的很长一段时间里,我经常遇到一些奇怪的问题:

为什么我 ping/trace 不通对方的 IP,即使是建立了 Peer 也不行?

又为什么我抓包发现,对面可以 ping/trace 通我,但我却不能,而且抓包没有一个回包的。

1
2
3
4
traceroute 172.20.62.161
1 10.22.44.8 122ms # NAT 网关
2 172.20.62.171 125ms # SessNetwork
3 * * * # 之后全超时

又又为什么我在 LAX 节点上可以 ping/trace 通,但在 HKG 节点上却 ping/trace 不通?

诊断

我先是考虑过 ufw 防火墙