从仅IPv4到仅IPv6的VPN

疯子

我想随时随地访问我的家庭网络,但只能从外部通过IPv6进行访问。我想从中访问的网络通常只有IPv4。(如何)我能否在其中包含服务器的情况下访问整个家庭网络?

让我们假设以下内容:

网络A(首页):

  • 内部IP范围:192.168.0.0/24(我想暂时在内部保留IPv4)
  • 机器A:aaa:bbbb:cccc:dddd(可从外部访问IPv6)
  • 机器A(内部):192.168.0.1

网络B(远程):

  • 内部IP范围:192.168.178.0/24
  • 机器B(内部):192.168.178.2
  • 公用IP:1.2.3.4(路由器)

服务器:

  • IPv4:2.3.4.5
  • IPv6:bbbb:cccc:dddd:eeee

现在我想从192.168.178.2(网络B)访问192.168.0.3(网络A)。是否可以使用OpenVPN /(SSH)隧道/ iptables /路由来完成?如果是这样:如何?

抱歉,通常我会半途而废,或者至少对解决问题的想法有所了解,但是我整天都在想这件事,脑子里只有乱七八糟的东西。所以我最好从头开始。(当然,我的想法是服务器将IPv6网络A与IPv4网络B连接起来。但是如何?)

如果网络A和服务器之间以及服务器和网络B(阅读:Internet)之间的所有流量都已加密,则奖励积分。

桑德·斯特凡(Sander Steffann)

您没有提到您使用的是哪个操作系统,所以我只能为您提供一般性的建议:

您必须设置两个隧道:

  • 机器A和服务器之间的IPv4-over-IPv6隧道
  • 机器B和服务器之间的IPv4-over-IPv4隧道

在家庭网络上,您必须将流量路由192.168.178.0/24到机器A。如果机器A是默认网关,那么情况已经如此。否则,您必须在默认网关上添加一条静态路由,才能将该流量发送到计算机A。在计算机A上,您必须配置一条静态路由,用于192.168.178.0/24到达服务器的IPv4 over IPv6隧道。

在远程网络上,您必须将流量路由192.168.0.0/24到计算机B。如果计算机B是默认网关,那么情况已经如此。否则,您将不得不在默认网关上添加一条静态路由,以将该流量发送到计算机B。在计算机B上,您必须配置一条静态路由,用于192.168.0.0/24到达服务器的IPv4 over IPv4隧道。

服务器将需要两条静态路由:

  • 192.168.0.0/24 朝向到机器A的IPv4 over IPv6隧道
  • 192.168.178.0/24 朝向到机器B的IPv4 over IPv4隧道

现在,家庭网络上的计算机将其数据包发送192.168.178.0/24到默认网关。如果不是机器A,则默认网关会将它们转发到机器A。机器A将通过IPv4 over IPv6隧道将它们转发到服务器。服务器将通过IPv4-over-IPv4隧道将它们转发到机器B,机器B将把数据包转发到远程网络。

现在,远程网络上的计算机会将其数据包发送192.168.0.0/24到默认网关。如果不是机器B,则默认网关会将它们转发到机器B。机器B将通过IPv4 over IPv4隧道将它们转发到服务器。服务器将通过IPv4-over-IPv6隧道将它们转发到机器A,机器A将把数据包转发到家庭网络。

我明确记录了双向的路径的每一跳。仅在上述每个步骤都有效的情况下,通信才有效。

您可以使用许多协议和应用程序来建立隧道。普通的IPvX-in-IPvY隧道是最简单的,但不提供加密。GRE隧道也是如此。OpenVPN设置起来有点困难,但确实提供了加密。查看Linux Advanced Routing How-ToLinux IPv6 How-ToTunnel部分,以了解如何设置隧道。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章