我有一台服务器 A,作为某个内联网的网关运行eth0
。A 通过 WireGuard 连接到多个“中继节点”,例如 B、C、D……。
假设 IP 设置如下:
主持人 | 地址 |
---|---|
A | 10.0.0.1/24 |
乙 | 10.0.0.2/24 |
C | 10.0.0.3/24 |
A 路线一些流量通过 WG。以下是 A 的路由表的一部分:
...
172.16.0.0/16 via 10.0.0.2 dev wg0
172.17.0.0/16 via 10.0.0.3 dev wg0
...
我想允许所有流量路由通过B(10.0.0.2
),同时阻止路由流量通过C.使用伪代码,我的想法是这样的:
-A FORWARD -o wg0 --via 10.0.0.2 -j ACCEPT
-A FORWARD -o wg0 --via 10.0.0.3 -j DROP
# ^^^^^^^^^^^^^^
路由表中有很多项目我不想在 iptables 规则中重复。另一个问题是 WG 内部没有 MAC(或一般来说 L2)。
有什么方法可以让它工作吗?