我已经编写了自己的 DNS 请求客户端,但我有一些有趣的行为。
如果我发送带有 QTYPE 部分 = 0xff 的请求,我会得到一个有效的响应,但是没有条目。
My Request:
0x70 0x3c 0x1 0x0 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x6 0x67 0x6f 0x6f 0x67 0x6c 0x65 0x3 0x63 0x6f 0x6d 0x0 0x0 0xff 0x0 0x1
Response: id=24729 query=google.com. answers=[] nameservers=[] additionals=[]
RAW:
0x60 0x99 0x83 0x80 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x6 0x67 0x6f 0x6f 0x67 0x6c 0x65 0x3 0x63 0x6f 0x6d 0x0 0x0 0xff 0x0 0x1
但是,如果我将 QTYPE 更改为 0x01,那么我会得到条目
Response: id=5496 query=google.com. answers=[A: name=. ttl=235 address=/172.217.4.174] nameservers=[] additionals=[]
0x15 0x78 0x81 0x80 0x0 0x1 0x0 0x1 0x0 0x0 0x0 0x0 0x6 0x67 0x6f 0x6f 0x67 0x6c 0x65 0x3 0x63 0x6f 0x6d 0x0 0x0 0x1 0x0 0x1 0xc0 0xc 0x0 0x1 0x0 0x1 0x0 0x0 0x0 0xeb 0x0 0x4 0xac 0xd9 0x4 0xae
我希望 0xff 至少返回一些东西,考虑到它在 RFC 中被标记为“对所有记录的请求”。我对网络很陌生,所以如果有人可以帮助我确定为什么这是正确的行为,将不胜感激。
QTYPE=0xff 是所有条目
QTYPE=0x01 是主机地址