将 IPv6 数据包转换为 IPv4 数据包以到达游戏服务器

将 IPv6 数据包转换为 IPv4 数据包以到达游戏服务器

我使用的是 DS-Lite 系统,因此没有原生 IPv4 地址。但出于好奇,我想知道是否可以在该系统后面设置游戏服务器。更准确地说,是反恐精英全球攻势服务器。

问题:该游戏服务器仅使用 IPv4(欢迎来到未来的 VALVE)。

到目前为止,我所做的工作如下:我通过我的 Fritzbox 和另一个第三方托管商 (feste-ip.net) 设置了一个端口映射器。通过这种组合,我现在能够通过 IPv4 访问服务器。然后,第三方托管商将其转换为 IPv6 数据包,然后将其发送到我的 Fritzbox,然后 Fritzbox 将这些数据包转发到我的服务器。

问题:服务器收到 IPv6 数据包,CS GO 游戏服务器无法处理这些数据包。通过搜索网络,我发现我需要一个 6in4 映射器。对吗?如果是这样,我是否必须在其他服务器上进行设置,或者我可以在运行游戏服务器的服务器上进行设置?

如果您能告诉我如何在 Ubuntu 服务器上设置这样的映射器,我会很高兴。

答案1

您要做的事情可以使用NAT64。您的场景与 NAT64 通常的用途略有不同。但这不会降低它对您而言的实用性。通常 NAT64 与 DNS64 一起使用,但您的用例不需要 DNS64。

您不能使用公共 NAT64,因为您需要 NAT64 连接到 LAN 上的 IPv4 地址。因此,您需要在自己的 LAN 上托管 NAT64。NAT64 通常需要分配 /96 IPv6 前缀。假设您的 ISP 已将 /48 或 /56 路由给您(他们应该这样做),那么您可以轻松地将 /96 分配给 NAT64。

在这样的设置中,互联网连接和 NAT64 之间必须有防火墙。如果没有这样的防火墙,外部人员可以通过 NAT64 连接到 NAT64 可访问的任何 IPv4 地址。

如果 NAT64 有自己的数据包过滤功能,您可能需要禁用该功能。您需要的数据包过滤功能与 NAT64 的通常情况大致相反。您需要允许连接到本地 IPv4 地址,并禁止连接到全局 IPv4 地址。

需要注意的是,服务器不知道客户端的 IPv4 地址。因此,服务器日志不能用于追踪任何滥用行为。

如果需要在客户端之间打 NAT 洞,客户端将需要使用不同的服务,您的服务器无法为他们提供帮助。但是,如果协议仅涉及客户端与服务器之间的通信,而不涉及客户端与客户端之间的直接通信,那么这不是问题。

相关内容