跳到主要内容

11. 名称语法 (Name syntax)

有时假设域名系统仅用于将互联网主机名映射到数据以及将互联网地址映射到主机名。这是不正确的。DNS 是一个通用的 (有些受限的) 层次数据库, 可以为几乎任何目的存储几乎任何类型的数据。

DNS 本身对可用于标识资源记录的特定标签只施加一个限制。这一个限制与标签和完整名称的长度有关。任何单个标签的长度限制在 1 到 63 个八位字节之间。完整域名限制为 255 个八位字节 (包括分隔符)。长度为零的完整名称被定义为表示 DNS 树的根, 通常写为并显示为"."。除这些限制外, 任何二进制字符串都可以用作任何资源记录的标签。

DNS 协议的实现不得 (must not) 对可以使用的标签施加限制。特别是, DNS 服务器不得 (must not) 拒绝为包含某些 DNS 客户端程序可能无法接受的标签的区域提供服务。DNS 服务器可以 (may) 配置为在加载包含可疑标签的主区域时发出警告或拒绝加载。但是, 这不应该 (should not) 默认发生。

但是, 请注意, 使用 DNS 数据的各种应用程序可以对适合其情况的特定值施加限制。例如, 任意二进制标签可以有 MX 记录这一事实并不意味着任意二进制名称可以用作电子邮件地址的主机部分。DNS 的客户端可以 (can) 对它们用作 DNS 查找请求键的值以及 DNS 返回的值施加适合其情况的限制。如果客户端有此类限制, 在使用之前验证来自 DNS 的数据是否符合要求的责任完全在客户端一侧。