这不是网关,而是互联网上的局域网?
几乎所有 VPN软件都可以这样做。实际上,这通常是默认值。只是不要将服务器配置为首先提供默认路由,就是这样 - 您将获得仅适用于其特定子网的VPN。
也就是说,如果你想要一个网格:
通常的建议是Tinc(甚至可能是1.1分支)。它似乎能够在IP层或以太网层(交换机模式)中建立具有中继的任意网状拓扑。支持广播(组播数据包作为广播处理)。
ZeroTier位于中间位置:它尽可能尝试使用直接连接(甚至通过NAT进行打孔),但是会回退到通过超级节点进行中继。虽然很少需要,但可以托管自己的控制器和超级节点。支持多播和广播(带限制)。
然后是OpenVPN,它基于客户端服务器。(它有一个客户端到客户端标志,但没有NAT打孔功能。)一个普通的OpenVPN服务器听起来好像适合你,但是如果你在tap模式下设置它(而不是默认设置)TUN),那么它会传达,而不是仅限于IP任意以太网业务。
(以上所有工作都在Linux,FreeBSD和Windows上进行。)
最后,根据操作系统,有很多轻量级,手动配置的隧道类型 - 例如GRE或L2TP。一旦网络增长,它们就会变得有点笨拙,因为你必须手动设置每个点对点链接(没有打孔;除非你添加IPsec,否则不加密),但......它们基本上是网络的胶带。
请注意,可能没有任何软件支持所有平台,因此在某些情况下,您只需要在2或3个网络之间路由数据包。例如,您可能希望在PC上运行Tinc,但通过iPhone从OpenVPN连接。这很好,只要OpenVPN服务器有一个Tinc子网的路由,反之亦然。(“Internet over LAN”和常规 LAN 之间的路由也是如此。)