两种寻址方案,并行运行
IPv4
192.0.2.10
32 位,约 43 亿个地址,已耗尽
IPv6
2606:4700::6810:84e5
128 位,约 3.4×10³⁸ 个地址
A 记录与 AAAA 记录:IPv4 和 IPv6 详解
一个域名并不只有一个 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.10 | 2606: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 工具。
相关阅读
一次递归 DNS 查询,逐跳详解
浏览器
想访问 example.com
解析器
运营商 / 1.1.1.1
根 + TLD
谁负责 .com?
权威服务器
真正的答案
这条链路上的每一跳本身都是一次 DNS 查询,之后都会被缓存
什么是 DNS?它是如何工作的
用通俗的语言讲解域名系统:从您输入域名,到浏览器连上服务器,中间究竟发生了什么。
三个层级都被称作“DNS 服务器”
存根解析器
您自己的设备
递归解析器
运营商、路由器或 1.1.1.1
权威服务器
域名自己的 DNS
域名 IP 地址查询:如何解读结果
弄清域名 IP 地址查询结果的含义,包括多个地址、IPv4 与 IPv6 记录、CDN 边缘节点,以及反向归属判断的局限。
三个层级都被称作“DNS 服务器”
存根解析器
您自己的设备
递归解析器
运营商、路由器或 1.1.1.1
权威服务器
域名自己的 DNS
什么是 DNS 服务器?解析器与域名服务器的角色
了解 DNS 服务器的作用,递归解析器与权威域名服务器有何不同,以及如何判断是哪台服务器回应了某次查询。