当我在 AWS route53 中创建 public "www.google.com" 记录集时发生了什么?

What happened when I create a public "www.google.com" record set in AWS route53?

如您所知,www.google.com 是一个已经在互联网上注册的域名。

我想知道为什么我可以创建一个域名为 google.com 的 public 托管区域而不会从 AWS route53 收到任何错误。

我已阅读文档 here。看起来 .com TLD 的名称服务器不受我的 route53 配置的影响。

阻止我影响 www.google.com 域的互联网机制是什么?

您只是在 AWS route 53 提供的服务器上创建了一个条目,但这并不意味着 google.com 现在将使用您刚刚创建的记录。

这是因为 google.com 正在使用自己定义的名称服务器,要检查这一点请尝试以下命令:

$ dig google.com ns +short
ns3.google.com.
ns4.google.com.
ns2.google.com.
ns1.google.com.

您确实可以查询您的服务并请求 www.google.com 记录,例如:

dig @ns-1656.awsdns-15.co.uk www.google.com. 

根据您发布的图片,它应该return您定义的IP 123.123.123.123

注意 @ns-1656.awsdns-15.co.uk @ 它指定 ns-1656.awsdns-15.co.uk 作为要查询的服务器。

但是通过使用你的系统 resolver 你应该得到 google 的 IP:

dig www.google.com

所有这一切都结束了 DNS 解析是如何工作的,你确实可以做一个完整的跟踪,例如,检查这个命令的输出:

$ dig www.google.com +trace

; <<>> DiG 9.8.3-P1 <<>> www.google.com +trace
;; global options: +cmd
.                       557714  IN      NS      a.root-servers.net.
.                       557714  IN      NS      b.root-servers.net.
.                       557714  IN      NS      c.root-servers.net.
.                       557714  IN      NS      g.root-servers.net.
.                       557714  IN      NS      j.root-servers.net.
.                       557714  IN      NS      h.root-servers.net.
.                       557714  IN      NS      l.root-servers.net.
.                       557714  IN      NS      f.root-servers.net.
.                       557714  IN      NS      m.root-servers.net.
.                       557714  IN      NS      e.root-servers.net.
.                       557714  IN      NS      k.root-servers.net.
.                       557714  IN      NS      d.root-servers.net.
.                       557714  IN      NS      i.root-servers.net.
;; Received 449 bytes from 10.10.1.21#53(10.10.1.21) in 493 ms

com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
;; Received 492 bytes from 192.36.148.17#53(192.36.148.17) in 315 ms

google.com.             172800  IN      NS      ns2.google.com.
google.com.             172800  IN      NS      ns1.google.com.
google.com.             172800  IN      NS      ns3.google.com.
google.com.             172800  IN      NS      ns4.google.com.
;; Received 168 bytes from 192.55.83.30#53(192.55.83.30) in 27 ms

www.google.com.         300     IN      A       172.217.23.164
;; Received 48 bytes from 216.239.32.10#53(216.239.32.10) in 20 ms

这是典型 DNS 解析场景中查询递归接收响应的方式:(摘自:https://ns1.com/articles/using-dig-trace

  1. 您作为 DNS 客户端(或存根解析器)向您的递归解析器查询 google.com。

    dig google.com +trace

  2. 您的递归解析器在根名称服务器中查询 google.com。

    ; <<>> DiG 9.8.3-P1 <<>> www.google.com +trace ;; global options: +cmd . 557714 IN NS a.root-servers.net. . 557714 IN NS b.root-servers.net. . 557714 IN NS c.root-servers.net. . 557714 IN NS g.root-servers.net. . 557714 IN NS j.root-servers.net. . 557714 IN NS h.root-servers.net. . 557714 IN NS l.root-servers.net. . 557714 IN NS f.root-servers.net. . 557714 IN NS m.root-servers.net. . 557714 IN NS e.root-servers.net. . 557714 IN NS k.root-servers.net. . 557714 IN NS d.root-servers.net. . 557714 IN NS i.root-servers.net. ;; Received 449 bytes from 10.59.1.21#53(10.59.1.21) in 493 ms

  3. 根名称服务器将您的递归解析器引向 .com 顶级域 (TLD) 权威服务器。

    com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. ;; Received 492 bytes from 192.36.148.17#53(192.36.148.17) in 315 ms

  4. 您的递归解析器查询 .com TLD 权威服务器以获得 google.com

    google.com. 172800 IN NS ns2.google.com. google.com. 172800 IN NS ns1.google.com. google.com. 172800 IN NS ns3.google.com. google.com. 172800 IN NS ns4.google.com. ;; Received 168 bytes from 192.55.83.30#53(192.55.83.30) in 27 ms

  5. .com TLD 权威服务器将您的递归服务器引用到 google.com 的权威服务器。

  6. 您的递归解析器向权威服务器查询 google.com,并收到 216.239.31.10 作为答案。

    google.com. 300 IN A 172.217.23.164 ;; Received 48 bytes from 216.239.32.10#53(216.239.32.10) in 20 ms

  7. 您的递归解析器会在记录中指定的生存时间 (TTL) 内缓存答案,然后 return 将其发送给您。