Multicast de roteamento através de duas sub-redes com o FreeBSD 9 (Bonjour entre sub-redes)?

6

Eu tenho um roteador FreeBSD 9 (um Soekris net6501) conectado à internet via modem dsl (bridge), fazendo NAT para duas sub-redes internas, 10.0.1.0/24 (LAN) e 10.0.2.0/24 (rede wifi ).

Existem rotas entre as sub-redes e coisas como ssh host-A.wifi de host-B.lan works.

Mas, os clientes sem fio (como iPads e iPhones) na rede 10.0.2.0/24 não conseguem encontrar coisas na LAN (por exemplo, tocar uma Apple-TV na LAN).

Não tenho muita certeza, mas acho que isso acontece porque a Apple usa o Bonjour e o Bonjour usa o Multicast para encontrar coisas, e o Multicast não é roteado pelas sub-redes.

De acordo com o manual do FreeBSD , para rotear multicast, eu preciso compilar o kernel com options MROUTING e crie um /etc/mrouted.conf , mas não consigo encontrar bons exemplos do arquivo de configuração.

  1. O meu problema está relacionado ao multicast nas sub-redes?
  2. O mrouted é a solução preferida no FreeBSD para habilitar o roteamento?
  3. Como faço para criar um /etc/mrouted.conf nas rotas entre 10.0.1.0/24 e 10.0.2.0/24?
por Erik Tjernlund 06.02.2012 / 14:24

2 respostas

5

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/avahi e dns/nss_mdns da árvore de ports.
  • Adicione avahi_daemon_enable="YES" e dbus_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 chave allow-interfaces (separada por vírgula) e defina a enable-reflector key para yes para fazer propagação de avahi o tráfego para todas as redes internas.
  • Edite a entrada hosts em /etc/nsswitch.conf to hosts: 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 )

    
por 07.02.2012 / 15:01
0

anúncio 3:

phyint em0 rate_limit 0 igmpv1
phyint em1 rate_limit 0 igmpv1

Mas cuidado, muito provavelmente o AppleTV envia pacotes com um TTL de 1, para que eles não possam ser roteados.

Uma rápida pesquisa no google mostra que outras possibilidades são um "Proxy" do Bonjour ou adicionando os serviços ao DNS.

    
por 07.02.2012 / 13:18