我在通过 VPN 路由流量时遇到了问题。
这是我的设置
我有 3 个主机,我们称它们为 A、B 和 Z
B 和 Z 在 10.10.10.x 子网中有 VPN 连接 A 和 B 在 10.10.12.x 子网中有直接连接
我希望能够将流量从 A 路由到 Z,例如:
A <= 10.10.12.254 [LAN] 10.10.12.111 => B <= 10.10.10.152 [VPN] 10.10.10.10 => Z
在主机 B 上,我设置了 ip_forwarding:net.ipv4.ip_forward = 1
并在主机 B 上进行路由:
[root@hostB: ~]# ip route
10.10.10.10 dev ppp0 proto kernel scope link src 10.10.10.152
10.10.12.0/24 dev eth1 proto kernel scope link src 10.10.12.111
10.10.10.0/24 dev ppp0 scope link
169.254.0.0/16 dev eth1 scope link
主机 A 上的路由:
[root@hostA: ~]# ip route
10.10.10.0 via 10.10.12.111 dev eth1
10.10.12.0/24 dev eth1 proto kernel scope link src 10.10.12.254
169.254.0.0/16 dev eth1 scope link
default via 192.168.1.1 dev eth0
但仍然无法从主机 A ping 10.10.10.10。
有什么想法吗?我快要抓狂了。
答案1
在 Z 上,假设 10.10.10.10 在 ppp0 上:
route add -net 10.10.12.0 netmask 255.255.255.0 gw 10.10.10.152 dev ppp0
这将为你提供返回 A 的路线
答案2
就像迈克说的...你需要两条路线...在 A ---> Z 上,反之亦然...在 Z ---> A 上....如果你错过其中一条,它们将无法相互通信,因为数据包不知道返回源头的路由...所以你需要在 A 和 Z 上做类似的事情...
在 Z 路由上添加 -net 10.10.12.0 网络掩码 255.255.255.0 gw 10.10.10.152 dev ppp0
在 A 路由上添加 -net 10.10.10.0 网络掩码 255.255.255.0 gw 10.10.12.111 dev ppp0
让我们知道!