【发布时间】:2011-07-22 19:13:34
【问题描述】:
DNS 响应的大小限制是多少?例如,单个 DNS 响应中可以存在多少个“A”resource records? DNS 响应应该仍然可以缓存。
【问题讨论】:
-
UDP 还是 TCP? (如果响应太大,DNS 将回退到 TCP。)
DNS 响应的大小限制是多少?例如,单个 DNS 响应中可以存在多少个“A”resource records? DNS 响应应该仍然可以缓存。
【问题讨论】:
根据this RFC,该限制基于 UDP 消息大小限制,即 512 个八位字节。 EDNS 标准支持具有几乎无限响应大小的协商响应,但在撰写本文时(2011 年 3 月),只有 65% 的客户端支持它(这意味着您不能真正依赖它)
【讨论】:
保证支持的最大 DNS 消息大小为 512 字节。
其中 12 个已被标头用完(参见 RFC 1035 的 §4.1.1)。
问题部分接下来出现,但长度可变 - 具体来说是:
因此,您的域名越长,您留给答案的空间就越少。
假设使用 标签压缩(第 4.1.4 节),每个 A 记录将需要:
即每个 A 记录 16 个字节(第 4.1.3 节)。
您应该如果可能还应将您的 NS 记录包含在 Authority Section 中。
考虑到所有这些,您可能会将大约 25 条记录压缩到一个响应中。
【讨论】: