使用 OpenVPN 服务器设置正确的路由

使用 OpenVPN 服务器设置正确的路由

首先,我不是网络方面的专家,但我们办公室里没有网络技术人员,所以我负责安装和运行这个系统。以下是网络拓扑:

互联网-->思科路由器-->内部网络(192.168.1.0/24)

在这个内部网络上有一个运行 pfSense 的盒子,它有双网卡(LAN 和 WAN),它的唯一用途就是作为一个 OpenVPN 盒子;没有其他流量通过它。现在我已经在 Cisco 路由器中正确配置了 ACL,并且能够使用 OpenVPN 客户端毫无问题地连接到 pfSense 盒子,但客户端所能达到的程度就这么多了。客户端看不到内部网络上的任何盒子。

如上所述,我们的内部网络是 192.168.1.0/24 网络,我用于 VPN 的地址池是 10.10.11.0/24(尽管出于某种原因,VPN 服务器将掩码设置为 255.255.255.252)我设置了 1:1 NAT,以便来自 10.10.11.0/24 的请求转到 192.168.1.0/24,但仍然无法正常工作。在我看来,我需要对 Cisco 进行额外的操作才能使其正常工作,但我不确定这些操作是什么。

有人有想法吗?

答案1

关于 OpenVPN 连接如何工作的解释可以在这里找到这里。由于您的 OpenVPN 服务器在 10.10.11.0/24 子网中分发地址,并且您的内部 LAN 位于 192.168.1.0/24,因此没有默认路由允许连接的客户端“看到”隧道另一端的 IP 地址。

为了实现这一点,您需要将路由“推送”到客户端。在您的特定情况下,这意味着您的服务器配置必须包含如下语句:

推送路由 192.168.1.0/24

现在,话虽如此:这只有在您的客户端不在同一子网中时才会起作用。如果他们在同一个子网中,那么他们实际上将失去整个子网,因为现在(使用新路由)到该子网中任何地址的所有流量都会通过隧道。出于这个原因(以及大多数人选择 192.168.1.0/24 作为私有 LAN 的事实),我个人已停止使用这个特定子网。我建议您考虑将办公室 LAN 更改为 192.168.x.0/24,其中 x 是 2 到 253 之间的任何数字。

您还应该考虑是否希望 VPN 客户端通过 VPN 转发所有公共 IP 地址的流量,还是仅转发办公室 LAN 的流量。有关此内容的更多详细信息,请阅读 OpenVPN 文档。

答案2

OpenVPN 在路由方面做了一些奇怪的事情(与其他 VPN 解决方案相比) - 客户端获得的连接是在每个单独的客户端上的 /30 网络上,以便更容易与 Windows 兼容,所以这就是您看到 252 网络掩码的原因。如果您的所有客户端都使用 Linux,您可以更改此行为。

思科路由器是否知道这些路由?内部网络上所有盒子的默认路由是什么?我遇到过类似的问题,我们的核心路由器获取了所有流量,然后将其丢弃,因为 a) 它是不可路由的地址,并且 b) 它不知道正确的路由是什么。

我认为您需要做的是在思科路由器中为整个 10.10.11.0/24 子网创建一个静态路由,并将网关设为 openvpn 服务器的 192.168.1.X 地址。

确保在 openvpn 框中启用了数据包转发(即路由),这样就好了。

TL;DR:路由需要双向定义(静态或动态),听起来你需要向你的思科盒子添加一条路由,告诉它在哪里可以找到 10.10.11.0/24

答案3

您可能已经在 OpenVPN GUI 配置中将 192.168.1.0/24 网络作为“本地网络”路由。您可能缺少 Cisco 上的路由,无法将 OpenVPN 隧道网络指向 pfSense 上的 LAN IP。

答案4

更简单的设置是仅启用第 2 层隧道。无需进一步设置,您的客户端将看起来位于同一物理网络中,并将从办公室的 DHCP 服务器获取其 IP。您可以在 open-vpn 网络界面中找到它:“配置 -> VPN 模式”

希望这可以帮助。

相关内容