我可以使用avahi跨子网发布服务吗?

ber*_*uan 10 linux networking mdns service-discovery avahi

Avahi通常用于服务发现.我想从不同的子网中发现一个服务,我可以使用avahi来实现这个目标吗?

例如,服务主机ip为"192.168.1.100",掩码为"255.255.255.0",因此它位于192.168.1.X子网中.另一个主机IP是"192.168.2.100",掩码为"255.255.255.0".我可以使用avahi让这个主机发现以前的服务主机吗?

Lin*_*lle 7

不幸的是,不,它需要重新配置在这两个子网之间路由的任何设备.mDNS使用IPv4的多播地址224.0.0.251和IPv6的ff02 :: fb.这些是链路本地地址,发送给它们的数据通常不会路由到当前子网之外.

有多种选择,有些可能比其他选项更容易,具体取决于您的路由设备.

组播代理.mdns-repeater是一个简单的解决方案,可以跨接口重复mDNS请求.

广域DNS.可以在为这些子网中的主机提供服务的DNS解析器上启用广域DNS-SD.然后,Avahi可以配置为不发布.local域,而是发布到这些子网的域.

组播路由.可以将这些子网之间的设备路由配置为在这两个子网之间路由多播组.

mDNS网关.有一个RFC草案用于实现位于网段(通常是路由器)边缘的mDNS网关.这不是一个简单的转发器/反射器,而是一个缓存服务条目并响应来自其他连接网段的查询的网关.


kri*_*ous 5

你当然可以。它称为反射器,是 Linux avahi 守护进程的一部分。

查看man avahi-daemon.conf您的发行版上的“SECTION [REFLECTOR]”。