最近,苹果强制要求所有使用其 mobile-api 的供应商必须支持 IPv6,而 aws vpc 不提供 IPv6 支持。我该如何实现这一点。我已经检查过了,https://aws.amazon.com/blogs/aws/elastic-load-balancing-ipv6-zone-apex-support-additional-security/
但我不知道该怎么做。
我需要专家的建议。
答案1
不幸的是,AWS严重忽视有意义的 IPv6 支持。他们的“解决方案”(如果可以这么称呼的话)是将非 VPC ELB 放在应用程序前面。出于多种原因,对于许多用例而言,这是一个站不住脚的解决方案。
作为权宜之计,我看到有几家组织使用的策略是与另一家提供商合作建立支持 IPv6 的 VPS,将记录指向AAAA
那里,然后使用 haproxy 或其他类似软件包将请求代理到您的 IPv4 基础设施。是的,这是一种非常尴尬且不可否认的糟糕做法,但在 AWS 发布有意义的 IPv6 支持之前,没有太多其他选择。
编辑:
关于 Craig 的断言,所有 ELB(VPC 或其他)都有 IPv6 地址。是的,这是正确的,但在我的测试中以及与其他 AWS 专家的讨论中,ELB 实际上并不监听这些 IP 上的流量。我猜,像他们所做的那样在 ELB 上启用 IPv6 是朝着在某个时候提供全面 IPv6 支持的第一步。我怀疑他们会在 2016 年 12 月第一周的 re:Invent 会议期间或之前宣布这一点。
答案2
ipv6.
您可以通过在 ELB 的公共主机名前面添加 IPv6 记录来为 ELB 创建 IPv6 记录。
由于它是客户环境,因此主机名和 IP 已被编辑 - 这是在非默认 VPC 中的 eu-west-1 区域。
craig@zeus:~$ dig AAAA ipv6.blah-0000000000.eu-west-1.elb.amazonaws.com +short
2a01:xxx:3::xxx:3314
2a01:xxx:3::xxx:ff14
2a01:xxx:3::xxx:7f20
craig@zeus:~$ dig A blah-0000000000.eu-west-1.elb.amazonaws.com +short
54.xxx.xxx.xxx
52.xxx.xxx.xxx
54.xxx.xxx.xxx
请注意,您还可以使用dualstack
前缀来返回ELB 的A
和记录。AAAA
答案3
在美国东部,我使用 IPv6 隧道代理来提供 IPv6 隧道,允许使用 IPv6 地址直接寻址实例。由于隧道代理的接入点在本地与 Amazon 交叉连接,因此这只会增加大约 1ms 的延迟。
缺点是,为了将 IPv6 发送到子网中的其他实例,您必须自行进行路由(例如使用 radvd)。
答案4
放云Flare在您的应用程序前面。它们将接受 IP6 上的请求,但将流量路由到您的 IP4 ELB。