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.
mrouted
die bevorzugte Lösung in FreeBSD, um das Routing zu aktivieren?/etc/mrouted.conf
, das zwischen 10.0.1.0/24 und 10.0.2.0/24 routet?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:
net/avahi
und dns/nss_mdns
aus der Ports-Struktur.avahi_daemon_enable="YES"
und dbus_enable="YES"
zu /etc/rc.conf
/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.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.