1
ranaanna 237 天前
192.168.6.0/24 设备之所以能访问 192.168.10.0/24 ,是因为 192.168.0.1 对来自 192.168.6.0/24 的流量进行了 SNAT 或 masquerading 。所以要能访问 192.168.12.0/24 ,需要 192.168.2.1 也做同样的事情。这是 iptables nat 表的事情。
|
2
ranaanna 237 天前
没用过华硕的固件,但是感觉这个 vpn director 就是干这件事的,即让一端的 lan 通过隧道到另一端出去。这是单向的。所以要实现双向,需要增加一条隧道。
|
3
ranaanna 237 天前
抱歉应该和 vpn director 没有关系。似乎 iptables rules 可以解决?
··· iptables -t nat -A POSTROUTING -s 192.168.6.0/24 -d 192.168.10.0/24 -j SNAT --to-source 192.168.0.1 iptables -t nat -A POSTROUTING -s 192.168.6.0/24 -d 192.168.12.0/24 -j SNAT --to-source 192.168.2.1 ··· |
4
MuJian OP @ranaanna
我开始也以为是 nat 的事,但是我查了 dat 表也是一样的。 Chain POSTROUTING (policy ACCEPT 4770 packets, 314K bytes) pkts bytes target prot opt in out source destination 201K 14M PUPNP all -- * ppp0 0.0.0.0/0 0.0.0.0/0 107K 7637K MASQUERADE all -- * ppp0 !120.4.83.xxx 0.0.0.0/0 71 3355 MASQUERADE all -- * eth4 !192.168.10.2 0.0.0.0/0 381 78173 MASQUERADE all -- * br0 192.168.0.0/24 192.168.0.0/24 |
5
MuJian OP 增加了 snat 也是不通
Chain POSTROUTING (policy ACCEPT 111 packets, 7052 bytes) pkts bytes target prot opt in out source destination 2268 182K PUPNP all -- * ppp0 0.0.0.0/0 0.0.0.0/0 862 87511 MASQUERADE all -- * ppp0 !120.4.83.169 0.0.0.0/0 20 1200 MASQUERADE all -- * eth4 !192.168.12.4 0.0.0.0/0 979 79728 MASQUERADE all -- * br0 192.168.2.0/24 192.168.2.0/24 0 0 SNAT all -- * * 192.168.6.0/24 192.168.12.0/24 to:192.168.2.1 |
6
ranaanna 236 天前
先不管其他设备( VPN director ),隧道的地址只有两个:192.168.6.1 (假设服务器的地址)和 192.168.6.2 。192.168.6.2 这边应该没有问题,12 本来就可以访问,10 通过 nat 访问。但是 192.168.6.1 ,按照规则转换为 eth4 10 的地址,当然就访问不了 12 的地址了。还是 nat 的问题,并不是两边一样就可以访问的。
最简单粗暴的解决办法是再增加一条隧道。 |
7
ranaanna 236 天前
或者说大多数情况下 VPN 都是选择一个 remote gateway 出去。像这样 multiple gateways 的情况,估计需要额外的 nat 设计才能达到目的
|