首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mDNS服务器应该如何处理反向mDNS请求?

mDNS服务器应该如何处理反向mDNS请求?
EN

Stack Overflow用户
提问于 2014-04-19 02:25:20
回答 1查看 877关注 0票数 0

首先,一些背景: avahid在我的嵌入式Linux设备上给我带来了问题(它有崩溃的bug,看起来不太可能在短期内修复),而我只需要极小的mDNS功能(也就是只需要足够让Mac或PC上的人可以做一个"ping6 mydevicename.local“)。并且将主机名解析到我的设备上),所以我编写了我自己的极简mDNS服务器(用C语言),它基本上只是监听多播DNS数据包,并使用必要的mDNS记录对它们进行响应。

这主要是有效的--特别是,从Mac上执行上述的ping6测试会立即解决问题,而且效果非常好。

然而,我注意到,如果我从Linux盒中执行ping6,那么它只是一种工作。特别是:

  • 它需要Linux客户端大约4秒来解析主机名。
  • 这4秒的延迟发生在发送…的每个ping数据包上。也就是说,ping6程序不是每秒发送一个ping,而是每4秒发送一次ping。(不过,它确实得到了预期的乒乓球)
  • 当我在嵌入式Linux设备上运行avahid时,没有出现这个问题,所以我认为这种行为肯定是由我的新mDNS服务器正在做的不正确的事情引起的。
  • 当发生这种情况时,我的mDNS服务器从客户端获取反向mDNS数据包,如本调试输出中所示:

代码语言:javascript
复制
RECEIVED 90 IPv6 BYTES FROM [fe80::21c:abff:fe00:a60] on s6#2 (sock=6)
--- Received IPv6 Data (90 bytes): -------------------------------------
0000: .............3.2 [00 00 00 00 00 01 00 00 00 00 00 00 01 33 01 32]
0016: .6.4.2.0.e.f.f.f [01 36 01 34 01 32 01 30 01 65 01 66 01 66 01 66]
0032: .b.2.0.6.2.0.0.0 [01 62 01 32 01 30 01 36 01 32 01 30 01 30 01 30]
0048: .0.0.0.0.0.0.0.0 [01 30 01 30 01 30 01 30 01 30 01 30 01 30 01 30]
0064: .0.0.0.8.e.f.ip6 [01 30 01 30 01 30 01 38 01 65 01 66 03 69 70 36]
0080: .arpa.....       [04 61 72 70 61 00 00 0c 00 01]
HandlemDNSRequest:  transID=0 flags=0 numQuestions=1 numAnswers=0 numAuthorityRRs=0 numAdditionalRRs=0
Ooh, a reverse-mDNS request for [3.2.6.4.2.0.e.f.f.f.b.2.0.6.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa] scope=3

所以我的问题是:

  • 什么会导致Linux mDNS主机名解析客户端软件(NSS-解析器)?每当一个程序试图使用我的mDNS服务器解析一个mDNS主机名时,就会有这个4秒钟的延迟吗?
  • 对像上面这样的mDNS请求作出响应的适当方法是什么?我查看了mDNS和DNS规范,但没有发现任何关于所需内容的明确信息。我试着让它用通常的信息(主机名、IP地址等)来响应,但这并没有让延迟消失。
  • 我还可能做错什么了吗?(除了尝试翻滚我自己的mDNS服务器-但相信我,如果我觉得有更好的选择,这不是我会做的事情;阿瓦希德只是没有切芥末)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-22 22:18:03

通过使用nTap设备和WireShark来捕获由Avahid和我自己的程序生成的mDNS流量,我终于能够搞清楚出了什么问题。由于avahid并没有产生这个问题,因此可以推测,avahid产生的响应就是Linux正在寻找的响应。我更新了我的程序,以产生类似的反应,这使5秒的延迟消失了。

特别是,avahid生成的反向mDNS响应只包含0个查询和1个答案(主机名类型),如所附的wireshark屏幕截图所示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23165071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档