连接到 VPN 但无法 ping 通远程网络上的主机

连接到 VPN 但无法 ping 通远程网络上的主机

我将 PC2 连接到我在 R2 上设置的 VPN (L2TP/IPsec) 服务器。我需要 PC2 能够 ping PC3 和 PC4,但它不起作用。当我使用 Windows 计算机连接到 VPN 时,我可以 ping R2 下的主机,但我的 Linux 计算机 (Raspbian Jessie) 却并非如此。我相信解决方案与路由表有关,但我不知道我在那里做什么。

我知道我已从 PC2 连接到 R2,因为当我在浏览器中输入 192.168.1.1 时,我会看到远程路由器的登录屏幕。

组网图

PC2在R1下是192.168.1.125,在R2下是192.168.1.69。 R2 的公共 IP 是 76.73.240.120。以下是当前的路由信息​​:

root@raspberrypi:/home/pi# ip route show
default dev ppp0  scope link
default via 192.168.1.1 dev wlan0  metric 303
76.73.240.120 via 192.168.1.1 dev wlan0
192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.125  metric 303
192.168.1.1 dev ppp0  proto kernel  scope link  src 192.168.1.69

我需要做什么才能让 PC2 能够 ping 通 R2 下的主机?

答案1

这看起来很乱!首先,路由器连接不同的网络在一起。作为简化,如果事物位于同一网络上,那么它们应该能够直接相互通信。您有 2 个网络 192.168.1.0/24。最简单的解决方案是将其中一个(PC1、PC2、R1)重新编号为 192.168.2.0/24。

假设 PC3 位于 192.168.1.10。

这是一个问题的原因是你有 3 个规则来决定如何到达 PC3,其中一个是因为它与 匹配,另外192.168.1.0/24两个是因为它default与也可以写入 0.0.0.0/0 的规则匹配(一旦通过 ppp0 接口(隧道)和一次通过 wlan0 接口)。

规则按顺序排列,因为24比0更具体,因此使用。

所以这个路由表表明PC2可以通过wlan0接口直接与PC3通信。所以当你ping PC3它使用你的无线卡时。

如果您将 PC1、PC2 和 R1 重新编号为位于 192.168.2.0/24 网络上,则 PC2 所在位置的规则会变得更加简单。如果数据包必须发送到 192.168.2.0/24,则通过 wlan0 发送,否则通过 ppp0 发送到 192.168.1.1。

要访问 192.168.1.1,有 4 个选择:0.0.0.0/0 via ppp0、0.0.0.0/0 via wlan0、192.168.1.0/24 via wlan0 和 192.168.1.1/32 via ppp0。 /32 路由是最具体的,因此被选择,这解释了为什么您会看到 R2。

可以为 PC3 和 PC4 添加额外的路由,例如

ip route add 192.168.1.10/32 dev ppp0
ip route add 192.168.1.11/32 dev ppp0

并希望 R2 能够对数据进行足够的整理以使数据包能够返回,但重新编号要简单得多。

相关内容