Многоадресная маршрутизация через две подсети с 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
, но я не могу найти хороших примеров файла конфигурации.
- Моя проблема связана с многоадресной рассылкой через подсети?
- Является
mrouted
предпочтительное решение в FreeBSD для включения маршрутизации? - Как мне создать
/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.