2017-08-24 43 views
1

阅读说明DNS邮件是否将名称填充到偶数个字节?

是的,我知道DNS库和易于使用的DNS服务器的存在。我这样做纯粹是为了学术目的,并且了解DNS查询如何工作。

问题

我看着RFC 1035获得的DNS信息是如何工作的想法。我想我或多或少地理解了这份备忘录中的所有内容。然而,有一件事我不能自主解释。如果你看一下第4.1.3节,这里的资源记录格式是如何描述:

        1 1 1 1 1 1 
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |            | 
/           /
/     NAME     /
    |            | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |      TYPE      | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |      CLASS      | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |      TTL      | 
    |            | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |     RDLENGTH     | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--| 
/     RDATA     /
/           /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 

在这个方案中,NAME在两字节块的末尾。这是否意味着它的字节长度应该总是2的倍数? RFC中的名称格式在前面描述为一系列标签,以零长度标签结尾。这意味着,根据名称的不同,其长度可以任意变为偶数或奇数。那么NAME需要填充偶数个字节?如果是这样,我应该怎么打?

我会忽略该问题,并假定不需要填充,如果它不是在4.1.1节它指定QNAME不需要填充。由于他们没有在回答RR中指定NAME,所以我想知道是否应该假设有一些差异。

回答

1

没有填充。如果您有疑问,从根服务器捕获有关根区域的查询(其名称是单个NULL八位字节,所以奇数长度)(可以信任它们以使协议正确,因为它在现实世界中使用)并看看它。

+0

谢谢!这就是我所希望的! :) –