2014-01-08 11 views
9

Avahi wird normalerweise zur Serviceerkennung verwendet. Ich möchte einen Dienst von einem anderen Subnetzwerk aus finden. Kann ich Avahi verwenden, um dies zu erreichen?Könnte ich Avahi verwenden, um den Dienst in Teilnetzen zu veröffentlichen?

Zum Beispiel ist die Service-Host-IP "192.168.1.100" mit Maske "255.255.255.0", also ist es in 192.168.1.X Subnetz. Eine andere Host-IP ist "192.168.2.100" mit der Maske "255.255.255.0". Kann ich avahi verwenden, damit dieser Host den vorherigen Service-Host erkennt?

Antwort

6

Leider, nein, es wird eine Neukonfiguration des Geräts zwischen diesen beiden Subnetzen erfordern. mDNS verwendet die Multicast-Adressen 224.0.0.251 für IPv4 und ff02 :: fb für IPv6. Dies sind link-lokale Adressen, und die an sie gesendeten Daten werden normalerweise nicht außerhalb des aktuellen Subnetzes geroutet.

Es gibt verschiedene Optionen, einige sind einfacher als andere, je nachdem, was Ihr Routing-Gerät ist.

Multicast-Proxying. mdns-repeater ist eine einfache Lösung, die mDNS-Anfragen über Schnittstellen hinweg wiederholt.

Weite DNS. Wide-Area DNS-SD könnte auf dem DNS-Resolver aktiviert werden, der die Hosts in diesen Subnetzen bedient. Avahi könnte dann so konfiguriert werden, dass nicht die .local-Domäne, sondern die Domäne für diese Subnetze veröffentlicht wird.

Multicast Routing. Das Geräte-Routing zwischen diesen Subnetzen könnte so konfiguriert werden, dass die Multicast-Gruppen zwischen diesen beiden Subnetzen routen.

mDNS-Gateway. Es gibt eine draft RFC zum Implementieren eines mDNS-Gateways, das am Rand eines Netzwerksegments (typischerweise eines Routers) sitzt. Dies ist kein einfacher Repeater/Reflektor, sondern ein Gateway, das Diensteinträge zwischenspeichert und auf Anfragen von anderen verbundenen Netzwerksegmenten antwortet.