12

Avahi is usually used for service discovery. I want to make a service discoverable from a different subnetwork, could I use avahi to achieve this?

For example, the service host ip is "192.168.1.100" with mask "255.255.255.0", so it's in 192.168.1.X subnetwork. Another host ip is "192.168.2.100" with mask "255.255.255.0". Could I use avahi to let this host discover the previous service host?

4

2 回答 2

6

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

有多种选择,根据您的路由设备是什么,有些可能比其他更容易。

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

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

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

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

于 2014-01-08T19:54:08.147 回答
3

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

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

于 2020-11-05T02:16:54.873 回答