Назад | Перейти на главную страницу

Многоадресная маршрутизация по двум подсетям с FreeBSD 9 (Bonjour между подсетями)?

У меня есть маршрутизатор 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, но я не могу найти хороших примеров файла конфигурации.

  1. Связана ли моя проблема с многоадресной рассылкой по подсетям?
  2. Является mrouted предпочтительное решение во FreeBSD для включения маршрутизации?
  3. Как мне создать /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
  • Используйте файл конфигурации avahi (/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.