Domain IP Lookup

两种寻址方案,并行运行

IPv4

192.0.2.10

32 位,约 43 亿个地址,已耗尽

IPv6

2606:4700::6810:84e5

128 位,约 3.4×10³⁸ 个地址

DNS 基础

A 记录与 AAAA 记录:IPv4 和 IPv6 详解

3 分钟阅读

一个域名并不只有一个 IP 地址,它最多可以有两种完全独立的地址,分别存储在两种不同的 DNS 记录类型中。A 记录保存 IPv4 地址(例如 192.0.2.10)。AAAA 记录(读作“quad-A”)保存 IPv6 地址(例如 2606:4700::6810:84e5)。两者各自独立查询、各自独立应答,一个域名可以只有其中一种,也可以两者兼有,而在某些网络下,也可能(如今较少见)两者都无法访问。

为什么会有两种地址族

IPv4 地址是 32 位数字,可用地址总数上限约为 43 亿,而互联网早已把这个数量用尽。IPv6 使用 128 位地址,地址空间之大,在实际中根本不必担心耗尽。IPv6 本是作为长期替代方案设计的,但由于两种协议在线路层面并不兼容,互联网二十年来一直让两者并行运行,而不是一次性全面切换。

A 记录(IPv4)AAAA 记录(IPv6)
地址长度32 位128 位
地址空间总量约 43 亿340 涧
示例192.0.2.102606:4700::6810:84e5
当前状况已耗尽,靠 NAT 勉强维持持续增长,没有耗尽压力
典型覆盖率几乎普遍支持大型平台上很常见,尚未普及

这对一次查询意味着什么

  • 只有 A 记录的域名仅支持 IPv4,这种情况依然极为常见,尤其是规模较小或较老的基础设施。
  • 同时拥有两种记录的域名是双栈的,如今大多数大型平台和 CDN 都是这样。
  • 同时支持两种协议的客户端(浏览器、应用或服务器)在两者都可用、且网络路径确实支持时,通常会优先选择 IPv6。
  • 看到 AAAA 记录并不代表您一定能访问它,您自己的网络或运营商仍然需要具备可用的 IPv6 连接。

双栈客户端究竟如何选择

当两种记录同时存在时,大多数现代操作系统并不会盲目地先尝试 IPv6、失败后再放弃。它们使用一种名为 Happy Eyeballs(RFC 8305)的算法:客户端几乎同时向 IPv6 地址和备用的 IPv4 地址发起连接尝试,只是让 IPv6 稍微抢先一点,最后谁先连通就用谁。因此,即使某个域名的 AAAA 记录有问题或无法访问,大多数用户通常也不会察觉到任何延迟,因为 IPv4 备用连接会悄悄赢得这场竞赛;而如果采用简单粗暴的“先试 IPv6,失败后再从头重试 IPv4”的做法,则会造成长达数秒的卡顿。

如果您在排查连接问题,最好先把两种记录都查一遍:只需一次查询,就能排除(或确认)IPv6 是不是问题所在,并立即缩小排查范围。

双栈的应答并不总是对称的

人们很容易以为一个域名的 A 记录和 AAAA 记录指向的是等价、可互换的基础设施,但这并没有保证。CDN 可能先在部分边缘节点上线 IPv6 支持,这意味着 AAAA 记录所走的路径只是同一网络中比 A 记录更小的一个子集。源站迁移到新的 IPv4 主机后,如果 AAAA 记录没有在同一次变更中更新,它仍可能由一台较旧、即将下线的主机继续提供 IPv6 流量。把这两类记录当作各自独立维护的对象(它们确实如此),而不是假设两者背后是同一个“服务器”,就能避免一类迁移失误:一个地址族被更新了,另一个却被悄悄落下。

需要查看某个域名的公网 DNS 地址?使用 Domain IP Lookup 工具。