У меня есть маршрутизатор FreeBSD 9 (Soekris net6501), подключенный к Интернету через модем dsl (мостовой), выполняющий NAT для двух внутренних подсетей, 10.0.1.0/24 (LAN) и 10.0.2.0/24 (Wi-Fi).
Между подсетями есть маршруты и такие вещи, как ssh host-A.wifi
из host-B.lan
работает.
Но беспроводные клиенты (например, iPad и iPhone) в сети 10.0.2.0/24, похоже, не могут найти что-либо в локальной сети (например, трансляцию на Apple-TV в локальной сети).
Я не совсем уверен, но думаю, это потому, что Apple использует Bonjour, а Bonjour использует Multicast для поиска вещей, а Multicast не маршрутизируется между подсетями.
Согласно Справочник FreeBSD, для маршрутизации многоадресной рассылки мне нужно скомпилировать ядро с options MROUTING
и создать /etc/mrouted.conf
, но я не могу найти хороших примеров файла конфигурации.
mrouted
предпочтительное решение во FreeBSD для включения маршрутизации?/etc/mrouted.conf
что идет между 10.0.1.0/24 и 10.0.2.0/24? Благодаря @ chris-s я решил свой вопрос, используя Avahi вместо того, чтобы пытаться маршрутизировать многоадресный трафик.
Это сработало для меня:
net/avahi
и dns/nss_mdns
из дерева портов.avahi_daemon_enable="YES"
и dbus_enable="YES"
к /etc/rc.conf
/usr/local/etc/avahi/avahi-daemon.conf
) и добавил два моих внутренних сетевых интерфейса (две внутренние подсети) в allow-interfaces
ключ (через запятую) и установите enable-reflector
ключ к yes
заставить avahi распространять трафик во все внутренние сети.hosts
вход в /etc/nsswitch.conf
к hosts: files dns mdns
После запуска демона avahi вы можете проверить, работает ли он, напрямую выполнив поиск с сервера mdns:
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
Или просмотрев домен .local с помощью такой утилиты, как Bonjour Browser или iStumbler (оба отлично). Вы должны видеть устройства, хосты и службы во всех подсетях.
Сноска: моя стандартная установка FreeBSD 9.0 /etc/syslogd.conf
не регистрировал сообщения от avahi-daemon
по умолчанию, поэтому сначала я не видел никаких журналов (добавил daemon.*
селектор, указывающий на /var/log/daemon.log
)
объявление 3:
phyint em0 rate_limit 0 igmpv1
phyint em1 rate_limit 0 igmpv1
Но будьте осторожны, скорее всего, AppleTV отправляет пакеты с TTL равным 1, поэтому они не могут маршрутизироваться.
Быстрый поиск в Google показывает, что другие возможности - это Bonjour "Proxy" или добавление сервисов к DNS.