linux – Avahi主机名解析:是否在某处缓存?

前端之家收集整理的这篇文章主要介绍了linux – Avahi主机名解析:是否在某处缓存?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用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.

Is it possible the computer/avahi daemon/something else is ‘caching’ the result?

是的,avahi-daemon正在缓存查找结果.虽然这似乎没有在功能中明确列出,但avahi-daemon(8)手册页提示

The daemon […] provides two IPC APIs for local programs to make use of the mDNS record cache the avahi-daemon maintains.

I wish to send out the request packet with EVERY CALL of avahi-resolve-host-name. Is this possible?

是的.相关选项是cache-entries-max(来自avahi-daemon.conf(5)):

cache-entries-max= Takes an unsigned integer specifying how many resource records are cached per interface. Bigger values allow mDNS work correctly in large LANs but also increase memory consumption.

要达到预期效果,您只需设置:

cache-entries-max=0

这将完全禁用缓存并强制avahi-daemon在每个请求上重新发出MDNS数据包,从而使您可以监视它们.

但是,我应该在这里注意,这也会使avahi对于正常使用几乎没用.虽然avahi-daemon将发出查询数据包,但它将无法存储结果,并且每次调用avahi-resolve-host-name(以及其他命令行工具,nss-mdns,D-Bus API ……)都将失败.

猜你在找的Linux相关文章