Poison

那些你未曾注意的DNS细节

DNS 消息是使用二进制数据编写的,查询报文和回答报文有着相同的格式,比如这位朋友写的 asyncdns 就表达得非常清楚。

域名是大小写不敏感的。域名中的每一个标识至多 63 字符长。

一个区域的管理者必须为该区域提供一个主名字服务器和至少一个辅名字服务器。主、辅名字服务器必须是独立和冗余的,以便当某个名字服务器发生故障时不会影响该区域的名字服务。

大家平时经常见到的 A 记录其实是 Address 的缩写,MX 记录是 Mail eXchange 的缩写。RR 就是 Resource Record 的缩写。LDNS 是 Local DNS 的缩写。

根域(Top-Level Domain, TLD) DNS 服务器在运营上使用多台服务器来对应一个 IP 地址,因此尽管 IP 地址只有 13 个,但其实服务器的数量是很多的。参见 Root Servers

从理论上讲,任何 DNS 查询既可以是迭代的也能是递归的。

DNS 均支持 UDP 和 TCP 访问,但主要使用 UDP。

Reference

DNS 原理入门
Domain Name System
RFC 1035