【问题标题】:IPv4 to IPv6 UDP HolepunchingIPv4 转 IPv6 UDP 打孔
【发布时间】:2019-04-16 22:26:12
【问题描述】:

所以我正在编写一个 P2P 多人游戏。服务器与每个玩家建立连接(UDP),然后让玩家直接相互连接(使用 UDP Holepunching 技术)。

然后我在我父母家进行了测试,然后就停止了工作。

原因是我父母的路由器不兼容 IPv6。

问题

是否可以在具有不同 ip 协议的用户之间进行 UDP Holepunching?

又名

  • 用户 A: 在具有 IPv4 地址的路由器后面(无法将 UDP 消息发送到 IPv6)。
  • 用户 B: 有 IPv6 地址。可以向 IPv4 和 IPv6 地址发送 UDP 消息。

或者这种设置注定要失败?

【问题讨论】:

  • IPv4 和 IPv6 是完全独立的、不兼容的协议。主机可以运行双栈(IPv4 和 IPv6),但 IPv4 和 IPv6 不能直接通信。
  • @RonMaupin - 是的,我明白这一点。我的手机似乎同时具有 IPv4 地址和 IPv6 地址(因为服务器可以接受来自任一协议的连接)。但是我的Mac在这个路由器下只有一个IPv4地址,无法发送UDP数据报到IPv6地址。
  • "我的 Mac 在这个路由器下只有一个 IPv4 地址,无法将 UDP 数据报发送到 IPv6 地址。" 那是正确的。您将需要其他可以翻译的东西(杂物),但仅 IPv4 的设备无法直接与仅 IPv6 的设备通信,反之亦然。我们已经接近 2018 年底,设备应该是双栈的以使用任一协议。
  • @RonMaupin - 感谢您的反馈。互联网上缺乏有关 IPv4/IPv6 UDP Holepunching 的信息并不是一个好兆头。我还没有找到任何好的资源。
  • @RonMaupin - 我已经隔离了问题的根源。我的手机(游戏客户端)同时具有 IPv6 和 IPv4 地址(由手机提供商提供)。当我向 IPv4 地址发送 udp 数据包时,单元提供商充当路由器并为我提供端口。但是,与普通路由器不同,它会在我将 udp 数据包发送到不同的 IPv4 地址时随机更改端口。我通过运行 2 个服务器并连接到这两个服务器发现了这一点,IPv4 地址是相同的,但是端口会发生变化(即使我的本地 udp 端口​​对于两条消息都是相同的)。现在需要一起解决问题。

标签: udp ipv6 p2p ipv4


【解决方案1】:

不,不能直接在 IPv4 和 IPv6 之间建立连接。 如果它不是基于实时的多人游戏,则有一些可能的(非常复杂的)解决方法。

  1. 用户 A 可以配置像 Teredo 这样的东西,它可以有效地将 IPv6 地址分配给他的设备。[1]
  2. 两个用户都可以连接到 VPN,其中负责建立连接的服务器可以通过两种协议(双栈)访问,或者两个用户都使用 IPv4 进行连接。
  3. 两个用户都可以尝试在 IPv4 上使用 NAT 穿越(如果用户 A 需要这样做)。正如您已经体验过的那样,and described in your third comment UDP 打孔(对于用户 B,IPv4 CGNAT)是一团糟。
  4. 用户 A 可以询问他的 ISP to finish deploying IPv6
  5. 如果用户 A 能够打开端口,用户 B 可以尝试通过 IPv4 连接到用户 A。一些 CGNAT 实现然后将连接保持 30 秒,因此您必须确保传输某种保持活动的数据报,例如以 25 秒为间隔。
  6. 用户 B 可以使用端口映射器服务。使用您最喜欢的搜索引擎:portmapper ds-lite。该服务提供一个 IPv4 地址,所有到特定端口的连接都“连接”到用户 B 的 IPv6 地址(和特定端口)。

[1] 根据个人经验,我可以告诉您,一些不同的可用 Teredo 服务器是不可靠的。我不得不尝试三种不同的 Teredo 服务器配置,实际上需要在其中两种之间切换,因为它们都无法访问 IPv6 互联网的所有设备 - 一些设备可以通过 teredo.trex.fi 访问,其中一些通过 teredo .remlab.net - 然后有时它会转过来。

在我看来,最简单的选项是 4。

如果 5 不起作用,我会说用户 A 没有 Internet 访问权限,但只是稍微增强了 Web 访问权限。

【讨论】:

  • 我的一些项目目前因完全相同的问题而失败。我什至想对 TCP 连接使用打孔。我已经切换了我的移动 ISP,因为旧的拒绝了 4。现在我有两个完全正常的 IPv4 互联网连接和两个 IPv6+CGNAT IPv4 互联网连接(住宅 1,我朋友的 ISP 之一,住宅 2 和移动)。
猜你喜欢
  • 2011-06-14
  • 2014-10-17
  • 2019-04-11
  • 2012-11-30
  • 2019-01-13
  • 2011-06-05
  • 2013-01-29
  • 2012-02-26
  • 2011-10-11
相关资源
最近更新 更多