gpt4 book ai didi

ios - 为 IPv6 兼容性配置服务器(用于被拒绝的 iOS 应用程序使用的 API)

转载 作者:可可西里 更新时间:2023-11-01 04:43:17 25 4
gpt4 key购买 nike

我意识到 Stack Overflow 上已经有很多用户提出问题,他们的 iOS 应用程序被 Apple 拒绝,因为它们不能在纯 IPv6 网络上运行。

我已经检查了我的代码以确保没有硬编码的 IP 地址(绝对没有)并且没有使用旧的可达性(根本没有)或其他低级网络框架(我们只使用 NSURLSession)。我已经在我的机器上通过了 NAT64 测试网络,应用程序(似乎)运行良好。

这是一个通过 HTTPS(没有其他网络连接)与 API 通信的 Xamarin 应用。

我找到的一些答案表明解决这个问题需要更改服务器配置。

所以我的问题很笼统,需要更改哪些配置?更具体地说,您是否需要域上的 AAAA 记录?如果可以,应该如何配置?

我更多地是以软件开发人员的身份来解决这个问题,所以没有详细了解 IPv6 的工作原理以及需要进行哪些服务器更改。

最佳答案

您的服务器不需要更改。 NAT64 应该负责 IPv4-only 服务器的转换,而 DNS64 应该确保您获得主机名的正确地址。因此,当使用主机名而不是硬编码地址并且您使用 IP 版本中立的 API 时,它通常应该可以正常工作。

它可能会失败的一种情况是,当人们试图更加遵守 Apple 的政策并在他们的 DNS 区域中放置一些虚拟/伪造/错误的 AAAA 记录时。这些实际上会阻止 DNS64 生成正确的记录,因为它认为服务器具有真正的 IPv6 并且不需要转换服务。

MacOS 中内置的 DNS64 没有“真正的”IPv6 互联网连接,因此会忽略此类错误的 AAAA 记录,但真正的 DNS64 不会。因此,在这种情况下,您的本地测试似乎可以正常工作,但 Apple 会发现它失败了。

我在 https://nat64check.org/ 构建了一个测试工具,您可以使用它来检查具有真实 DNS64 和 NAT64 服务的网站。 .请随意使用它。

虽然这不是强制性的,但如果您希望您的 Web 服务具有最佳可达性,那么建议 ity 实际上使您的服务器可通过 IPv6 访问并提供 AAAA 记录。这将使您的服务独立于 NAT64 和 DNS64 转换服务,从而提高可靠性和性能。它还将改善其他拥有 IPv6 的用户的情况,因为它允许他们绕过 ISP 目前需要部署的技巧来弥补 IPv4 地址的不足(如 CGN、DS-Lite 等)。

它还将防止 DNSSEC 出现问题:NAT64 需要生成“假”AAAA 需要使服务在 IPv6 上运行,而 DNSSEC 旨在防止任何人对 DNS 记录撒谎。如果您提供真实的 AAAA 记录,那么 NAT64 就不需要撒谎,DNSSEC 也不会受到影响。

总结一下:最好的办法是让您的服务器可以通过 IPv6 访问,并在具有 AAAA 记录的 DNS 中发布其地址。这将使每个人受益。但不要发布虚假的 AAAA 记录(例如以 ::ffff:2001:db8:64:ff9b:fcfd)。这些会伤害所有拥有 IPv6 的人,而现在有相当多的人。当您通过 IPv6 提供您的服务时,请将其视为生产服务并正确执行。

关于ios - 为 IPv6 兼容性配置服务器(用于被拒绝的 iOS 应用程序使用的 API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41281211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com