单个DNS响应中可以容纳多少条A记录?

时间:2011-07-22 19:13:34

标签: math dns protocols

DNS响应的大小限制是多少?例如,单个DNS响应中可以出现多少“A”resource records? DNS响应应该仍然可以缓存。

2 个答案:

答案 0 :(得分:3)

根据this RFC,限制基于UDP消息大小限制,即512个八位字节。 EDNS标准支持具有几乎无限响应大小的协商响应,但在撰写本文时(2011年3月),只有65%的客户支持它(这意味着您无法真正依赖它)

答案 1 :(得分:2)

支持的最大保证 DNS消息大小为512字节。

其中12个被标题用尽(参见RFC 1035的§4.1.1)。

问题部分接下来出现,但长度可变 - 具体来说就是:

  • 域名(有线格式)
  • QTYPE QCLASS
  • 各占两个字节

因此,您的域名越长,您留下的答案空间就越少。

假设使用标签压缩(§4.1.4),每条A记录都需要:

  • 压缩指针的两个字节
  • TYPE CLASS
  • 各占两个字节
  • TTL
  • 的四个字节
  • RDLENGTH
  • 的两个字节
  • A记录数据本身的四个字节

即。每条A记录16个字节(§4.1.3)。

您应该如果可能还在权限部分中包含您的NS记录。

考虑到所有这些,您可以将围绕 25条记录挤压到一个响应中。