![在 iptables POSTROUTING 中结合 MASQUERADING 和 NETMAP](https://linux22.com/image/786465/%E5%9C%A8%20iptables%20POSTROUTING%20%E4%B8%AD%E7%BB%93%E5%90%88%20MASQUERADING%20%E5%92%8C%20NETMAP.png)
我们有一些客户端(网络)通过 VPN 连接到我们的服务器网络。假设客户端有 eg,192.168.0.1/32
而我们的服务器网络处于 状态10.1.0.0/24
。
所以现在这个客户端的问题是,他们已经在使用他们10.1.0.0/24
自己,所以我们无法在客户端拥有我们的范围。请注意,配置客户端网络不在我们掌控之中。
为了避免出现问题,我们决定使用以下iptables
规则映射我们的网络
NETMAP all -- any any 10.1.0.0/24 192.168.0.1 to:192.168.101.0/24
为了简单起见,我跳过了其他方向以及 swanctl 配置细节,但连接是双向的。
到目前为止,此设置对我们来说一切都很好。
现在,我们还有另一个网络,假设192.168.1.0/24
它需要访问该客户端和所有其他可用的站点10.1.0.0/24
- 但反之则不行。
因此,为了避免在所有 VPN 和服务器上添加路由,我们使用
MASQUERADE all -- any ens18 192.168.1.0/24 anywhere
替换源 IP。
两条规则都在 VPN 网关上,MASQUERADE
规则优先。
据我了解,MASQUERADE
我在链上设置的规则是终止的,并且是来自的传入包POSTROUTING
期间应用的唯一规则。对吗?POSTROUTING
192.168.1.0/24
这意味着,没有办法一步完成我的软件包MASQUERADING
和'ed?有没有人有解决这个问题的替代方法?NETMAP