我正在寻求对mDNS的Go库进行改进:https://github.com/davecheney/mdns/

我已经与作者交谈过,作者只是说“我已经达到了对我有用的地步”,这很好,完全符合开源精神。

他提到了Avahi,Bonjour和dns-sd发现工具的一些互操作性问题,但找不到他导出的服务。

我希望了解使用端口和简单名称进行简单服务时Avahi发布哪些记录。

我曾期望以下版本的合适版本:

dig @localhost .local -t AXFR

可能让Avahi导出了该区域,但是对我来说不起作用(提示“您做错了”!)-我想了解典型Avahi服务导出的最低记录,并自动检查从我的笔记本上的Apple实现中导出了Lee-Hambleys-Macbook.local,我也许可以改善对mDNS的Go lang支持。

当其他人使用Avahi/Bonjour/mDNS时,他们使用什么工具进行挖掘并检查一切是否按预期进行?

#avahi的好心人给我以下提示:
 killall -USR1 avahi-daemon

这导致avahi-daemon将其区域文件转储到syslog

但是理想情况下,我想知道如何最好地查询服务器,tcpdump看起来也很有前途,但它仍然仅显示可以查找的记录,而不是该区域中所有内容的完整转储:
sudo tcpdump dst port 53
Password:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:43:28.883763 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40)
09:43:29.046201 IP 192.168.178.41.61989 > resolver2.opendns.com.domain: 55378+ PTR? 251.0.0.224.in-addr.arpa. (42)
09:43:29.123784 IP 192.168.178.41.56659 > resolver2.opendns.com.domain: 26471+ A? p05-btmmdns.icloud.com.akadns.net. (51)
09:43:29.819277 IP 192.168.178.41.53504 > resolver2.opendns.com.domain: 32010+ PTR? 220.220.67.208.in-addr.arpa. (45)
09:43:47.379251 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40)
09:43:55.900406 IP 192.168.178.41.60511 > resolver2.opendns.com.domain: 32846+ AAAA? lc22.prod.livefyre.com. (40)
09:44:04.115159 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40)
^C
7 packets captured
3187 packets received by filter
0 packets dropped by kernel

最佳答案

由于协议(protocol)的工作方式,mDNS根本不支持区域传输。据我所知,有两种可能的方法:

1)通过查询目标(服务器/子网)尝试蛮力方法。您可以通过dig进行操作,只需将查询发送到多播地址并查询目标即可。



还有一些现成的脚本和工具可帮助枚举mDNS目标。一些例子包括

  • MDNSRecon
  • avahi-browse
  • mdns-scan
  • Bonjour Dumper
  • dns-sd -Z和 friend

  • 2)强制守护程序转储其区域文件(或设置)。您已经发现Avahi遵守



    Apple的Bonjour包含mDNSResponder,它不实现转储区域信息。但是,您可以添加更多日志记录以获得类似的好处



    另外,Wireshark可能用于调试协议(protocol)错误。这应该足以解决互操作性错误。

    08-05 17:32