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

У меня есть маршрутизатор FreeBSD 9 (Soekris net6501), подключенный к Интернету через модем dsl (мостовой), выполняющий NAT для двух внутренних подсетей, 10.0.1.0/24 (LAN) и 10.0.2.0/24 (wifi net).

Есть маршруты между подсетями и тому подобное 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?

2 ответа

Решение

Благодаря @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.

Другие вопросы по тегам