无需互联网连接,通过 IPv4 网络建立 IPv6 连接

无需互联网连接,通过 IPv4 网络建立 IPv6 连接

我在大学里做一个项目,现在出现了以下问题:

我们有一台带有私有 IPv6 网络的服务器 [服务器]。一些传感器(温度、湿度……)通过路由器连接,并且它们在这个私有网络内拥有自己的私有 IPv6 地址。

服务器A连接学校内网,学校内网不支持IPv6,支持IPv4。

我自己的计算机 [客户端] 能够通过 VPN 和 IPv4 访问服务器。

现在我想获取客户端上传感器的状态。服务器和客户端都使用基于 Debian 的操作系统。

(互联网<-->)客户 <--(IPv6 覆盖)IPv4,VPN-->服务器<--IPv6-->传感器

我正在考虑配置一个简单的 6to4 隧道,但是没有互联网连接,服务器就无法访问下一个 6to4 路由器 (192.88.99.1)。

是否有可能“本地”配置 6to4 或者我是否需要互联网连接?

我还能做什么来获得有效的连接?

非常感谢大家的帮助!(特别感谢 Sander,我希望这是提出问题的正确地方 :))

答案1

您想要的不是,6to4而是6in4,也称为协议 41。6to4 允许具有公共 IPv4 地址的互联网连接的设备获得 IPv6 访问权限。这是一种存在严重稳定性问题的协议,不应再使用。您6in4可以使用手动配置 IPv6-in-IPv4 隧道。

您可以6in4像这样在 Debian/Ubuntu 上配置隧道:

auto ipv6tun
iface ipv6tun inet6 v4tunnel
    address 2001:db8::1
    netmask 64
    endpoint 192.0.2.111
    gateway 2001:db8:0f10:99d::1

在没有 IPv6 互联网连接的一端,您还可以添加网关线路,例如:

auto ipv6tun
iface ipv6tun inet6 v4tunnel
    address 2001:db8::2
    netmask 64
    endpoint 192.0.2.222
    gateway 2001:db8::1

您应该将 IPv4 和 IPv6 地址替换为适合您网络的地址。

PS:RFC7059 即将发布。其中包含 IPv6-in-IPv4 隧道机制的概述。披露:我是作者之一。

答案2

你可能把事情搞得太复杂了。如果你有 (IPv4) SSH 访问权限,则可以使用 SSH 端口转发,例如使用以下命令登录服务器:

ssh -L 12345:[2001:db8::6]:4321 <server-ip4-address>

将允许您在 SSH 会话持续期间通过本地机器上的端口 12345 联系传感器(其 IPv6 地址为 2001:db8::6)。

您没有指定如何从传感器获取结果。以上适用于 TCP。对于 UDP,您需要添加一些socat到组合中,或者如果您愿意的话,添加一些netcatmkfifossh -w可能有用,还没有尝试过。

Netcat 或 socat 也可以帮助创建一种替代方案,您可以在服务器上打开一个套接字,将流量转发到内部 IPv6 地址,而无需保持 SSH 会话打开。

相关内容