fragen stichworte

Multicast-Routing über zwei Subnetze mit FreeBSD 9 (Bonjour zwischen Subnetzen)?

Ich habe einen FreeBSD 9-Router (ein Soekris net6501), der über ein DSL-Modem (überbrückt) mit dem Internet verbunden ist und NAT für zwei interne Subnetze, 10.0.1.0/24 (LAN) und 10.0.2.0/24 (WLAN-Netzwerk) macht ).

Es gibt Routen zwischen den Subnetzen und Funktionen wie ssh host-A.wifi von host-B.lan.

Drahtlose Clients (wie iPads und iPhones) im 10.0.2.0/24-Netz können jedoch scheinbar keine Informationen im LAN finden (z. B. Airplay zu einem Apple-TV im LAN).

Ich bin nicht ganz sicher, aber ich denke, das liegt daran, dass Apple Bonjour verwendet und Bonjour Multicast verwendet, um Dinge zu finden, und Multicast nicht über Subnetze geroutet wird.

Laut FreeBSD-Handbuch muss ich zur Weiterleitung von Multicast den Kernel mit options MROUTING kompilieren und ein /etc/mrouted.conf erstellen, aber ich kann keine guten Beispiele für die Konfigurationsdatei finden.

  1. Bezieht sich mein Problem auf das Multicasting über Subnetze?
  2. Ist mrouted die bevorzugte Lösung in FreeBSD, um das Routing zu aktivieren?
  3. Wie erstelle ich ein /etc/mrouted.conf, das zwischen 10.0.1.0/24 und 10.0.2.0/24 routet?

antworten

Dank @ chris-s löste ich meine eigene Frage, indem ich Avahi verwendete, anstatt zu versuchen, den Multicast-Verkehr zu routen.

Das hat für mich funktioniert:

  • Kompilieren und installieren Sie net/avahi und dns/nss_mdns aus der Ports-Struktur.
  • Fügen Sie avahi_daemon_enable="YES" und dbus_enable="YES" zu /etc/rc.conf
  • hinzu
  • Verwenden Sie die avahi-Konfigurationsdatei (/usr/local/etc/avahi/avahi-daemon.conf) und fügen Sie dem allow-interfaces -Schlüssel (durch Kommas getrennt) meine beiden internen Netzwerkschnittstellen (zwei interne Subnetze) hinzu, und setzen Sie den enable-reflector -Schlüssel auf yes, um die Weitergabe von Avahi zu bewirken der Verkehr zu allen internen Netzwerken.
  • Bearbeiten Sie den Eintrag hosts in /etc/nsswitch.conf bis hosts: files dns mdns

Nach dem Start des avahi-Daemons können Sie prüfen, ob dies funktioniert, indem Sie direkt vom mdns-Servercomputer aus nachschlagen:

root@server/# getent hosts apple-tv.local
10.0.1.4          apple-tv.local
root@server/# getent hosts iphone4s.local
10.0.2.27         iphone4s.local
root@server/# getent hosts ipad.local
10.0.2.22         ipad.local

Oder durchsuchen Sie die .local-Domäne mit einem Dienstprogramm wie Bonjour Browser oder iStumbler (beide ausgezeichnet). Sie sollten Geräte, Hosts und Dienste in allen Subnetzen anzeigen können.

Eine Fußnote ist, dass die /etc/syslogd.conf -Installation der FreeBSD 9.0-Installation standardmäßig nicht von avahi-daemon protokolliert wurde. Daher wurde zunächst keine Protokollierung angezeigt (ein daemon.* -selektor wurde auf /var/log/daemon.log gesetzt).

ad 3:

phyint em0 rate_limit 0 igmpv1
phyint em1 rate_limit 0 igmpv1

Aber Vorsicht, das AppleTV sendet höchstwahrscheinlich Pakete mit einer TTL von 1, sodass sie nicht weitergeleitet werden können.

Eine schnelle Google-Suche zeigt, dass andere Möglichkeiten ein Bonjour- "Proxy" oder das Hinzufügen der Dienste zum DNS sind.