为什么一个域名会有两个A类记录?

为什么一个域名会有两个A类记录?

当我查询域名的 DNS 时,我发现该域名有两个 A 类记录。这两个记录具有相同的名称,但响应的 IP 地址不同。为什么有两个记录具有相同的名称/类型组合?这是什么意思?

答案1

DNS 允许同一类型的多个条目。这样做的一个可能用途是能够在多台服务器上托管一个网站,这样发生故障的可能性就会更小。

例如,您可以请求 superuser.com 的 A 记录,结果如下:

cas@PC0075:/home/cas$ dig superuser.com A

; <<>> DiG 9.9.5-3ubuntu0.10-Ubuntu <<>> superuser.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26473
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;superuser.com.                 IN      A

;; ANSWER SECTION:
superuser.com.          299     IN      A       151.101.193.69
superuser.com.          299     IN      A       151.101.129.69
superuser.com.          299     IN      A       151.101.1.69
superuser.com.          299     IN      A       151.101.65.69

;; Query time: 69 msec
;; SERVER: 172.17.1.1#53(172.17.1.1)
;; WHEN: Tue Dec 06 10:01:18 STD 2016
;; MSG SIZE  rcvd: 106

在这种情况下,当我尝试浏览 superuser.com 时,我的计算机实际上将连接到 151.101.193.69、151.101.129.69、151.101.1.69 或 151.101.65.69。我不确定它如何确定选择哪一个,但我猜它是随机的。

另一种使用相同类型的多条记录可能很有用的情况是 MX 记录。这些记录定义了电子邮件应发送到何处,如果第一次尝试失败,则拥有多条记录允许使用备用服务器。

cas@PC0075:/home/cas$ dig cloudflare.com MX

; <<>> DiG 9.9.5-3ubuntu0.10-Ubuntu <<>> cloudflare.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35678
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 11

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;cloudflare.com.                        IN      MX

;; ANSWER SECTION:
cloudflare.com.         85863   IN      MX      20 alt1.aspmx.l.google.com.
cloudflare.com.         85863   IN      MX      30 alt2.aspmx.l.google.com.
cloudflare.com.         85863   IN      MX      40 aspmx2.googlemail.com.
cloudflare.com.         85863   IN      MX      50 aspmx3.googlemail.com.
cloudflare.com.         85863   IN      MX      10 aspmx.l.google.com.

;; ADDITIONAL SECTION:
alt1.aspmx.l.google.com. 292    IN      A       74.125.68.27
alt1.aspmx.l.google.com. 292    IN      AAAA    2404:6800:4003:c02::1a
alt2.aspmx.l.google.com. 292    IN      A       108.177.97.27
alt2.aspmx.l.google.com. 292    IN      AAAA    2404:6800:4008:c00::1b
aspmx2.googlemail.com.  292     IN      A       74.125.68.27
aspmx2.googlemail.com.  292     IN      AAAA    2404:6800:4003:c02::1a
aspmx3.googlemail.com.  292     IN      A       108.177.97.27
aspmx3.googlemail.com.  292     IN      AAAA    2404:6800:4008:c00::1b
aspmx.l.google.com.     292     IN      A       173.194.79.27
aspmx.l.google.com.     292     IN      AAAA    2a00:1450:4013:c02::1b

;; Query time: 174 msec
;; SERVER: 172.17.1.1#53(172.17.1.1)
;; WHEN: Tue Dec 06 10:03:31 STD 2016
;; MSG SIZE  rcvd: 393

如您所见,Cloudflare 使用 G Suite 来处理电子邮件,并定义了 5 个不同的 MX 记录。我的邮件客户端将按优先级升序浏览这些记录,从aspmx.l.google.com.优先级 10 开始,到 结束aspmx3.googlemail.com.。由于这些 MX 记录指向另一个域,我的dig命令也会查找这些记录。您可以看到其中一些邮件服务器实际上共享相同的 IP 地址,这仍然会给您留下 3 个不同的 IP 地址,您可以连接到这些地址来尝试传递邮件。我猜想 Google 会做一些路由魔术,这些实际上是不同的服务器,但老实说,我不知道。

如果您想强制您的计算机始终连接到特定的 IP 地址而不修改域的 DNS 记录,您可以随时修改您的 hosts 文件。

总结:拥有两个相同类型的 DNS 记录通常是一件好事,因为这意味着如果其中任何一个发生故障,还有额外的资源可用。如果您不确定要连接到哪台机器,这可能会使调试更加困难。

答案2

这仅意味着该地址有两个服务器(或至少有两个具有这些 IP 的端点)。

例如,如果你搜索谷歌,你会发现它有很多地址(和服务器)

相关内容