tim*_*tim 6 domain-name-system tcpdump
在名称服务器上捕获:
21:54:35.391126 IP resolver.7538 > server.domain: 57385% [1au] A? www.domain.de. (42)
Run Code Online (Sandbox Code Playgroud)
57385% 中的百分号是什么意思?据我所知 57385 是客户端序列号,加号表示设置了 RD 位。
第二个问题:ARCOUNT 在查询中做了什么?据我了解 tcpdump 手册页 [1au] 意味着 tcpdump 将此视为协议异常 - 就像我一样。我在很多查询中都看到了这一点。
阅读来源卢克:)
来自 tcpdump/print-domain.c:
printf("%d%s%s%s", EXTRACT_16BITS(&np->id), ns_ops[DNS_OPCODE(np)],
DNS_RD(np) ? "+" : "",
DNS_CD(np) ? "%" : "");
Run Code Online (Sandbox Code Playgroud)
因此 % 表示“检查已禁用”,根据我对RFC4035的理解,这表明解析器未强制对服务器上的 RR 进行身份验证。
来自bind/lib/bind/resolv/res_mkquery.c:
int
res_nopt(res_state statp,
int n0, /*%< current offset in buffer */
u_char *buf, /*%< buffer to put query */
int buflen, /*%< size of buffer */
int anslen) /*%< UDP answer buffer size */
{
[...]
hp->arcount = htons(ntohs(hp->arcount) + 1);
Run Code Online (Sandbox Code Playgroud)
根据RFC2671,解析器包含附加数据是完全合法的,这样可以将 UDP 数据包大小提高到 512 字节限制以上。所以拉达达达达的假设在这方面是正确的。
感谢您的宝贵时间,抱歉我之前没有阅读来源......
| 归档时间: |
|
| 查看次数: |
9467 次 |
| 最近记录: |