![AWS 私有托管区域设置](https://linux22.com/image/683585/AWS%20%E7%A7%81%E6%9C%89%E6%89%98%E7%AE%A1%E5%8C%BA%E5%9F%9F%E8%AE%BE%E7%BD%AE.png)
我正在尝试在 Amazon 上设置一对 VPC 对等体。其中一个 VPC 已使用一段时间,另一个是我刚刚设置的新 VPC。作为这项工作的一部分,我将现有的 Route 53 私有托管区域与新 VPC 关联。但出于某种原因,新 VPC 中的 EC2 实例无法从私有托管区域执行任何名称查找。
我已为新 VPC 启用 DNS 解析和 DNS 主机名。我无法想象对等连接设置会导致问题,但我已经设置并接受了对等连接,并配置了新 VPC 和现有 VPC 之间的路由。对等连接似乎正在运行,因为我能够打开与旧 VPC 上的 EC2 实例的连接。
我不太清楚断开连接的地方。我尝试了所有我能找到的私有托管区域和 VPC 选项,但还是没有找到任何有希望的。
旧 VPC
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.13.1 0.0.0.0 UG 0 0 0 eth0
10.0.13.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.169.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
$ dig sql04 +trace
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.45.amzn1 <<>> sql04 +trace
;; global options: +cmd
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
;; Received 496 bytes from 10.0.0.2#53(10.0.0.2) in 100 ms
. 86400 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2016052600 1800 900 604800 86400
;; Received 98 bytes from 193.0.14.129#53(193.0.14.129) in 77 ms
$ nslookup sql04
Server: 10.0.0.2
Address: 10.0.0.2#53
Non-authoritative answer:
Name: sql04.domain.local
Address: 10.1.3.28
新的 VPC
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.255.1 0.0.0.0 UG 0 0 0 eth0
10.1.255.0 0.0.0.0 255.255.255.192 U 0 0 0 eth0
169.254.169.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
$ dig sql04 +trace
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.45.amzn1 <<>> sql04 +trace
;; global options: +cmd
. 518400 IN NS M.ROOT-SERVERS.NET.
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
;; Received 228 bytes from 10.1.0.2#53(10.1.0.2) in 161 ms
. 86400 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2016052600 1800 900 604800 86400
;; Received 98 bytes from 192.33.4.12#53(192.33.4.12) in 38 ms
$ nslookup sql04
Server: 10.1.0.2
Address: 10.1.0.2#53
** server can't find sql04: NXDOMAIN
答案1
回应@Michael-sqlbot在他的评论中所写的内容——我在这里遇到了一个非常类似的问题。问题是我的私有托管区域关联的VPC不同。我在两个VPC之间建立了VPC对等连接(我们称之为VPC1和虚拟私有云)。
我正在执行的 EC2 实例nslookup
在内VPC1,但我关联的私有托管区域是虚拟私有云就像楼主的帖子一样,nslookup
显示我的 DNS 查询由 VPC 的默认 DNS 服务器(10.1.0.2
地址)。但是,如果您不将私有托管区域与该 VPC 关联,那么就像错误所指示的那样,DNS 服务器不知道如何解析该查询。以下是您执行关联的 Route 53 控制台中的屏幕(请注意,您可以关联多个 VPC):