我在两个独立的 VPC 中拥有三个实例。我在 VPC 之间设置了对等连接,两个 VPC 都启用了 DNS 解析和 DNS 主机名,对等连接启用了“允许对等 VPC [...] 的 DNS 解析”,并且两个 VPC 的路由表都有条目可以通过对等连接路由到对方 VPC 的地址空间。
我们将它们称为实例 1(位于 VPC A 中)以及实例 2 和 3(位于 VPC B 中)...
使用我当前的设置,nslookup ec2-[instance2].compute-1.amazonaws.com
调用实例 1 将返回实例 2 的 10.xxx 地址,调用实例 3 的 amazonaws.com 主机名将返回实例 3 的 10.xxx 地址。这是预期的。
但是,当我从实例 2 或实例 3 调用时nslookup ec2-[instance1].compute-1.amazonaws.com
,它返回实例 1 的 54.xxx 公共地址,而不是其 10.xxx 地址。
我遗漏了什么或做错了什么?我以前 (很多个月前) 就能够做到这一点,我不明白为什么现在它不起作用了。
答案1
当同一个 AWS 账户同时拥有“请求者”和“接受者”VPC 时,控制台似乎不允许您在连接的两侧进行此项配置,因此单向解析似乎是您唯一可以从控制台实际配置的内容 - 只能解析请求者 VPC 的主机。
看来您可以使用 aws-cli 解决此问题。
aws ec2 modify-vpc-peering-connection-options \
--vpc-peering-connection-id 'pcx-xxxxxxxx" \
--requester-peering-connection-options '{"AllowDnsResolutionFromRemoteVpc":true}' \
--accepter-peering-connection-options '{"AllowDnsResolutionFromRemoteVpc":true}' \
--region us-east-1
为了清楚起见,请换行,使用 选项为您的 VPC 区域提供--region
,并使用 为您的对等连接 ID 提供--vpc-peering-connection-id
。
确实,上述操作确实改变了返回的值aws ec2 describe-vpc-peering-connections
,之前在控制台中选中该框后,一边显示 false,另一边显示 true。
有些功能不包含在控制台中,而只能通过 API 访问,这有点不寻常,但并非闻所未闻。