使用 IPv6 时,我似乎无法让 Route53 正确将 DNS 请求转发到 nat64.net。本例中的主机是 Ubuntu 22(尽管我认为这与 AWS 有关)。
背景如下:
- 我创建了一个 Route53 出站解析器,其接口位于仅 IPv6 子网中。“解析器端点类型”为“IPV6”。
- 与接口关联的安全组允许 VPC 内的所有出站和所有入站。
- 我创建了一个解析器规则,将请求转发
ghcr.io
到在 nat64.net 上找到的三个 IPv6 地址 - 解析器规则与 VPC 关联。
- 我可以从与出站解析器终端节点位于同一子网内的仅 IPv6 EC2 实例成功查询 nat64.net 上的一个 IPv6 地址。换句话说,这是可行的:
$ nslookup ghcr.io 2a01:4f9:c010:3f02::1
Server: 2a01:4f9:c010:3f02::1
Address: 2a01:4f9:c010:3f02::1#53
Non-authoritative answer:
Name: ghcr.io
Address: 140.82.121.34
Name: ghcr.io
Address: 2a01:4f9:c010:3f02:64:0:8c52:7922
Name: ghcr.io
Address: 2a01:4f8:c2c:123f:64:5:8c52:7922
Name: ghcr.io
Address: 2a00:1098:2b::1:8c52:7922
- 这也有效(显示 DNS 在 VPC 内通常正常,并且子网可以通过 IGW 访问 Internet):
$ nslookup google.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: google.com
Address: 142.251.211.238
Name: google.com
Address: 2607:f8b0:400a:807::200e
- 这不起作用。我认为这表明解析器规则正在运行,但出站解析器未联系 nat64.net 地址。
$ nslookup ghcr.io
;; communications error to 127.0.0.53#53: timed out
;; communications error to 127.0.0.53#53: timed out
;; communications error to 127.0.0.53#53: timed out
;; no servers could be reached
- VPC 流日志未显示任何被拒绝的连接
- Reachability Analyzer 不适用于 IPv6(关联)
我还没有找到任何文档表明解析器不能使用互联网。我很想听听社区对此的看法!
更新 1
我在仅 IPv6 子网内的 EC2 实例上安装了 BIND9,并创建了 Route53 规则以将请求转发给ghcr.io
它,并且运行良好 — 使用 BIND9 作为代理时,出站解析器似乎可以成功解析。我还没有弄清楚为什么出站解析器的 IPv6 端点似乎无法直接连接到 VPC 外部的 IPv6 地址,而同一子网中的 EC2 实例可以这样做。