我有两个 Proxmox 节点,位于两个不同的位置。它们通过两个站点(A 和 B)之间的 Wireguard 隧道连接。这会将所有发往另一个站点的流量通过隧道传输到这两个站点。
- 节点 A 上的所有服务器都使用范围 10.0.0.0/24。
- 节点 B 上的所有服务器都使用范围 10.10.0.0/24
任何从 A 发往 B 的流量,例如 10.10.0.100,都会通过 Wireguard 隧道 (wgAMS) 到达 B。从节点 B 发往 B 的流量反之亦然(通过 wgLON)。
但是:我在节点 A(wg0 接口)上还运行了另一个 Wireguard 接口。我使用它来允许从移动设备、笔记本电脑等进行远程访问。
通过此 wg0 接口(10.7.0.0/24)连接到节点 A 的客户端可以毫无问题地访问节点 A 上的所有内容,但是无法访问节点 B 中的任何内容。我尝试了几种不同的方法,但仍然无法使它们正确路由。
节点 A的输出ip route
如下。
default via <WAN_IP> dev vmbr0 proto kernel onlink
10.0.0.0/24 dev vmbr2 proto kernel scope link src 10.0.0.1
10.7.0.0/24 dev wg0 proto kernel scope link src 10.7.0.1
10.10.0.0/24 dev wgAMS scope link
10.10.9.0/31 dev wgAMS proto kernel scope link src 10.10.9.0
由此来看,在我看来,这些客户应该能够访问 10.10.0.0/24(节点 B) - 但不能。在 wg0 接口上运行 tcpdump,我可以看到示例 ICMP/ping 流量,但没有响应。
我尝试添加 PostUp 规则以通过 wgAMS 为节点 B IP 路由 wg0 接口配置上的流量,但这也无济于事。
我基本遵循本指南用于站点到站点隧道,以供参考。