domain-name-system – tcpdump dns输出代码

前端之家收集整理的这篇文章主要介绍了domain-name-system – tcpdump dns输出代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
捕获名称服务器:
21:54:35.391126 IP resolver.7538 > server.domain: 57385% [1au] A? www.domain.de. (42)

什么是百分号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) ? "%" : "");

所以%表示“禁用检查”,据我所知,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);

根据RFC2671,解析器包含附加数据是完全合法的,并且这会使UDP数据包大小超过512字节限制.所以Ladadadada在这方面的假设是正确的.

感谢您的时间和抱歉我之前没有阅读过来源…

原文链接:https://www.f2er.com/html/228871.html

猜你在找的HTML相关文章