这是一个关于解决 VPN 客户端的本地网络与跨 VPN 链接的本地网络之间的 IPv4 子网冲突的规范问题。
通过 OpenVPN 连接到远程位置后,客户端尝试访问位于子网(例如 192.0.2.0/24)上的网络上的服务器。但是,有时,客户端 LAN 上的网络具有相同的子网地址:192.0.2.0/24。由于此冲突,客户端无法通过键入其 IP 来连接到远程服务器。在连接到 VPN 时,他们甚至无法访问公共互联网。
问题是这个子网192.0.2.0/24需要通过VPN路由,但也需要作为客户端的LAN路由。
有谁知道如何缓解这个问题?我可以访问 OpenVPN 服务器。
Ayd*_* K. 24
如果您需要临时解决单个或少数已知服务器 ip 的问题,最简单的解决方案应该是静态客户端路由选项。
就我而言,我通过以下方式将所需的目标服务器(192.168.1.100)添加到我的 linux 客户端上的路由表中:
route add 192.168.1.100 dev tun0
Run Code Online (Sandbox Code Playgroud)
然后,使用 route delete 命令删除此静态路由。
Eri*_*ikE 22
可以使用 NAT 解决这个问题;它只是不是很优雅。
因此,假设您无法通过拥有非常罕见的网络编号以致于永远不会发生冲突的内部网络来解决此问题,以下是原则:
由于本地子网和远程子网都具有相同的网络号,因此来自客户端的流量永远不会意识到它必须通过隧道网关才能到达目的地。即使我们想象它可以,远程主机的情况也会与即将发送答案的情况相同。
所以和我在一起,假装到目前为止,在我写的完全连接时没有附带问题,你需要在隧道内对两端进行 NAT 以区分主机并允许路由。
在这里做一些网:
所以在 VPN 隧道内,办公室主机现在是 198.51.100.x,远程办公室主机是 203.0.113.x。让我们进一步假设所有主机都在其各自 VPN 网关的 NAT 中被 1:1 映射。一个例子:
因此,当远程办公室的主机192.0.2.5/24想要连接到办公室网络中具有相同IP的主机时,需要使用地址198.51.100.5/24作为目的地。发生以下情况:
因此,尽管有解决方案,但要使其在实践中发挥作用,还必须解决许多问题:
所以解决这个问题需要精心设计。如果您的远程办公室真的由公路战士组成,那么您会增加一层问题:
根据您的 VPN 客户端,您可能能够根据本地网段的网络地址自动选择一个 VPN 或另一个。
请注意,在此上下文中所有提及的 NAT 都表示 NAT 功能,可以说是在隧道视角内发生的。在处理过程中,静态 NAT 映射必须在数据包“进入”隧道之前完成,即在它被封装在传输数据包中之前,该数据包将通过互联网将它带到另一个 VPN 网关。
这意味着不得将 VPN 网关的公共 IP 地址(实际上也可能是 NAT:ed,但完全超出了通过 VPN 传输到远程站点的角度)与用作伪装的唯一私有地址混淆对于重复的私有地址。如果这种抽象难以描绘,此处说明了 NAT 如何为此目的与 VPN 网关物理分离:
在重叠网络中使用 NAT。
将相同的图片浓缩为一台机器内部的逻辑分离,能够执行 NAT 和 VPN 网关功能,只是将同一示例更进一步,但更强调手头软件的功能。将它与例如 OpenVPN 和 iptables 一起破解并在此处发布解决方案将是一个有价值的挑战。
软件方面当然是可能的:
PIX/ASA 7.x 及更高版本:LAN-to-LAN IPsec VPN with Overlapping Networks Configuration Example
和:
在具有重复 LAN 子网的路由器之间配置 IPSec 隧道
因此,实际实施取决于许多因素,包括所涉及的操作系统、相关软件及其可能性。但它肯定是可行的。你需要思考和试验一下。
从链接中可以看出,我是从 Cisco 那里学到的。
小智 7
Aydin K. 的答案适用于 Linux。如果您想要 Windows 的相同功能,您可以输入
route ADD 192.168.1.10 <IP of tunnel adapter>
Run Code Online (Sandbox Code Playgroud)
或者
route ADD 192.168.1.10 IF <interface id>
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令获取接口 ID:
route print
Run Code Online (Sandbox Code Playgroud)
是的,这是最糟糕的。对我来说,它一直发生在酒店房间,然后 vpn 管理员意识到他们应该使用更模糊的 ip 范围。10.0.0.0/24 和 10.1.1.1/24 是最差的。如果你能帮助它,它永远不会像那样 ip 无线网络。
所以答案是“修复”wap 以使用不同的内部网络(即 10.255.255.0/24),然后给你一个差异租用(即可以路由回公司 vpn 的范围内的 ip),或者如果你没有/ 无法在 wap 上获得管理员权限,只能去星巴克。或 20 分钟的战争 :)
如果这只是在实验室环境中,只需使用不同的范围。