我正在使用Fedora 18和avahi命令行工具(版本0.6.31)
我使用avahi-resolve-host-name来发现子网上单元的IP地址,以便在开发过程中进行测试。我使用Wireshark监视请求和响应。在成功完成一个请求和响应之后,Wireshark上不再显示其他请求,但是该工具仍然返回IP地址。计算机/avahi守护程序/其他是否可能正在“缓存”结果?
问题:我希望发送带有avahi-resolve-host-name的每个调用的请求数据包。这可能吗?
原因:可以这么说,我得到了“误报”。我尝试解析“test1.local”,并且得到一个生成的IP,但是该设备不再位于该IP上。我希望每次都发送请求,这样可以避免看到IP地址不正确的单元。
最佳答案
我看到我回答您的问题有点晚了,但是如果其他人偶然发现了这个问题,我将留下一个通用的答案。
我的答案是基于avahi-0.6.32_rc。
是的,avahi-daemon正在缓存查找结果。虽然这似乎没有在功能中明确列出,但avahi-daemon(8)
手册页提示了它:
是的。相关选项是cache-entries-max
(来自avahi-daemon.conf(5)
):
为了达到预期的效果,您可以简单地设置:
cache-entries-max=0
这将完全禁用缓存,并强制avahi-daemon在每个请求上重新发出MDNS数据包,因此使您可以监视它们。
但是,我在这里应该指出,这也将使avahi在正常使用中变得毫无用处。尽管avahi-daemon将发出查找数据包,但它将无法存储结果,并且每次
avahi-resolve-host-name
(以及其他命令行工具,nss-mdns,D-Bus API等)的调用都将失败。关于linux - Avahi主机名解析: Is it caching somewhere?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18388334/