构建为每个设备分配本地 IP 的 VPN

构建为每个设备分配本地 IP 的 VPN

我正在尝试构建一个 VPN,既可以用于站点到站点,也可以用于点到站点。我需要网络为每个设备提供一个唯一的 IP(不必是静态的)来识别它们。也就是说,如果总部有三台设备,分支机构有两台设备,一台在家工作,那么它们的 IP 地址都是 10.0.0.X。如果主站点中的服务器收到数据包,它仅根据网络层信息就能判断分支机构的哪个特定设备发送了该数据包。

例如,我现在正在查看 OpenVPN 的关于构建站点到站点 VPN 的文档:https://openvpn.net/vpn-server-resources/site-to-site-routing-explained-in-detail/ 这是一个很好的例子,说明了我所不希望发生的事情。当主站点上的服务器收到数据包时,它看起来好像来自 VPN 访问服务器(事实也确实如此),而我希望数据包具有原始发送者的 IP 地址。

我的问题是:1.从技术上讲,这可行吗?2.使用软件解决方案可行吗,还是我需要特定的硬件?出于某些原因,我不能简单地使用 Cisco 设备。如果存在这样的设备,它的术语是什么,以便我可以搜索其他供应商的产品?

(我知道如果我只是从应用层进行操作,即使 IP 经过 NAT,也可以辨别发送者的身份。但我有理由不这样做。)

(如果我写的东西听起来像个白痴,那是因为我不是网络工程师。我为所犯的任何错误感到抱歉。我的老板不是很通情达理,我不能直接告诉他停止这个项目,直到他雇到专家。)

答案1

是的,您所寻找的是可能的。您需要一个桥接 VPN:通过在您的总部和 VPN 之间使用网络桥接,每个发出 DHCP 请求的网络客户端都会从您的主 DHCP 服务器(服务于 10.0.0.X 网络)接收 IP。这样,所有三个网络都链接在一起,您可以访问所有三个位置,而无需处理路由。

查看 openvpn 的网站以太网桥接

而且您不需要特定的硬件 - 除了 VPN 隧道端点需要在插入正确网络的网络设备上运行。(可以非常小:Raspberry Pi 足以完成这样的任务)OpenVPN 兼容的 VPN 解决方案存在于软件中,并包含在许多防火墙中。

答案2

实施 IPv6,这使得无需 NAT、网桥或 DHCP 即可完成此操作。

/64子网路由到 OpenVPN 服务器,用于池。从这些子网分配的 IP 将是全局唯一的。保留 IP 并将其放入 DNS 中。

如果客户端2001:0db8:ee00:abcd::1247将数据包发送到某个地方,那么无论数据包到达哪里,该地址都是源地址。因为从隧道服务器到目的地只是路由。

请注意,由于缺乏 NAT,IPv6 的端到端连接意味着所有设备都有自己的 IP。即使没有 VPN,也可以通过互联网。但是,VPN 可能仍然是强制网络配置或添加加密的理想选择。

答案3

接受答案中描述的桥接解决方案非常麻烦,并且难以设置。您只需使用代理 arp 技术

我甚至可以说,OpenVPN 有效地破坏了 VPN 生态系统,因为它给出了对真实 VPN 设置应该是什么样子的错误理解,因为它是一个软件路由器(而不仅仅是一个 VPN 实现)。

相关内容