无法在 Ubuntu 中通过 VPN 路由特定子网

无法在 Ubuntu 中通过 VPN 路由特定子网

我在通过 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 1​​0.10.10.152 dev ppp0

在 A 路由上添加 -net 10.10.10.0 网络掩码 255.255.255.0 gw 1​​0.10.12.111 dev ppp0

让我们知道!

相关内容