Graças a @ chris-s, resolvi minha própria pergunta usando o Avahi em vez de tentar rotear o tráfego multicast.
Isso funcionou para mim:
- Compile e instale
net/avahiedns/nss_mdnsda árvore de ports. - Adicione
avahi_daemon_enable="YES"edbus_enable="YES"a/etc/rc.conf - Use o arquivo de configuração avahi (
/usr/local/etc/avahi/avahi-daemon.conf) e inclua minhas duas interfaces de rede internas (duas sub-redes internas) na chaveallow-interfaces(separada por vírgula) e defina aenable-reflectorkey parayespara fazer propagação de avahi o tráfego para todas as redes internas. - Edite a entrada
hostsem/etc/nsswitch.conftohosts: files dns mdns
Depois de iniciar o avahi daemon, você pode verificar se ele funciona diretamente fazendo uma pesquisa na máquina do servidor 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
Ou navegando no domínio .local com um utilitário como Navegador Bonjour ou iStumbler (ambos excelentes). Você deve poder ver dispositivos, hosts e serviços em todas as sub-redes.
Uma nota de rodapé é que meu estoque /etc/syslogd.conf da instalação do FreeBSD 9.0 não registrou as mensagens de avahi-daemon por padrão, então não vi nenhum registro no início (adicionei um seletor daemon.* apontando para /var/log/daemon.log )