我在 eu-west-1(都柏林)和 ap-southeast-2(悉尼)有双栈 ALB。
- 端口 80 重定向到 https
- 端口 443 转发至目标组 (IPv4)
通过直接进入 ALB(在每个区域),我就可以顺利地到达 IPv4 和 IPv6 上的两个目标组。
现在我创建一个双栈 GA,其端点指向这两个 ALB。
- 端点被标记为健康
- 我可以从 GA IPv4 地址获得正常响应。我的流量被发送到其中一个 ALB。
- 我明白了没有什么当我尝试通过 GA IPv6 地址连接时(TCP 连接超时)。
- 我可以 ping IPv6 GA 地址
- 我已经检查了 ACL、安全组等。
- 失败似乎不应该由目标组、安全组或 VPC 引起,因为我可以通过直接进入 ALB(IPv6)来访问所有内容。
有什么提示吗?我遗漏了什么?
已更新... VPC 流日志通常显示 srcaddr 为 0:0:0:0:0:0:0:0(接受 OK),然后回复 dstaddr 0:0:0:0:0:0:0:0(拒绝 OK)。
- 可能是因为 0:0:0:0:0:0:0:0 不是一个有效的地址?
- 我不知道为什么我会看到 srcaddr 0:0:0:0:0:0:0:0
然而,有时我会看到正确的 IPv6 srcaddr(接受 OK)后跟对正确 dstaddr 的回复(接受 OK),但是,在我的家庭 IPv6 地址或具有公共 IPv6 地址的 EC2 实例上运行的 curl 仍然会显示“连接超时”。
- 我通过以下方式验证我具有良好的 IPv6 访问权限
curl -6 https://yahoo.com
答案1
我最终能够通过更改 VPC ACL 来实现这一点,包括全部TCP 流量(terraform 中的端口 0 到 65535)::/0
,而不仅仅是端口 80 和 443。
在 ACL 中允许端口 80 和 443 有效没有但是,由于全球加速器端点 (eni) 连接到 VPC 的方式,ACL 中的目标端口实际上是来自全球加速器的源端口。
- 我在之前的调查中没有注意到全部允许 IPv4 流量,但仅允许 IPv6 端口 80 和 443。