Parece que o AirPlay funciona imediatamente, vagamente falando, apenas dentro de uma LAN. Não está claro para mim exatamente o motivo, mas parece que pelo menos a descoberta depende de transmissões. A Wikipedia afirma que o Airplay é um protocolo proprietário que provavelmente explica por que a única documentação que encontrei não é oficial como essa no github .
Então, minhas perguntas são:
- Uma rede pode ser configurada de forma que o Airplay funcione através de VLANs?
- Em caso afirmativo, o que exatamente deve ser permitido passar entre as VLANs para fazer isso funcionar?
- Isso é uma má idéia em um ambiente de produção, devido à indisponibilidade da documentação oficial do protocolo?
Respostas:
Há duas coisas diferentes no termo "Airplay".
O primeiro é sobre a descoberta de serviços e é a maneira como os dispositivos capazes de receber fluxos Airplay anunciam à rede "Ei! Eu posso receber Airplay!". É feito normalmente através do serviço chamado Bonjour (pelo menos a Apple o chama) ou DNS-SD . Ele usa multicast e é esse o ponto se alguém lhe disser que "o Airplay é apenas para LAN local" ou algo assim. O streaming em si é unicast UDP "normal".
Agora, o principal problema é como você obtém as informações sobre o receptor Airplay para os remetentes em potencial em outra rede. Existem duas opções teóricas:
Você pode encaminhar multicast. Pode ser complicado, mas existem roteadores / firewalls capazes disso. RTFM como exatamente, mas a idéia é que você precise encaminhar o tráfego multicast com o endereço de destino 224.0.0.251 para outra rede e faça isso sem diminuir o TTL.
Outra opção é usar o DNS-SD unicast. Você pode usar o DNS normal para anunciar as mesmas informações normalmente distribuídas automaticamente via DNS-SD multicast e pode usar uma pequena ajuda do utilitário dns-sd (1) no seu MacOSX para obter informações sobre o que exatamente gravar no arquivo de zona DNS . Execute este comando na LAN com o receptor Airplay e isso deve fornecer todas as informações necessárias:
Também há proxies DNS-SD (por exemplo, o avahi pode ser usado como tal).
Agora, eu disse "teoricamente", porque não o testei e o que quer que você faça com protocolos, encaminhamento e assim por diante, PODE haver algumas barreiras além do seu controle - afinal, é a Apple. Você pode obter todas as informações corretamente para o remetente em potencial, mas o iOS / MacOSX ainda pode rejeitá-las porque simplesmente não gosta por algum motivo e assim por diante.
Há mais uma opção (ainda mais teórica;) de força bruta - crie uma entrada DNS-SD para o endereço do roteador como um receptor Airplay para a rede com remetentes Airplay e encaminhe (NAT) o fluxo UDP para o receptor Airplay real. Mas mesmo com isso, existem algumas possibilidades (para os engenheiros da Apple) de quebrá-lo.
Continue, teste e informe-nos sobre seus resultados.
fonte
Este é um problema comum em ambientes educacionais. A Apple fez um excelente trabalho na venda de iPads e Macs para estudantes / funcionários e eles desejam utilizar o Airplay / Airprint / outras funcionalidades do Bonjour. No entanto, como você apontou, esses recursos dependem de um único domínio de broadcast para a descoberta de serviços. As redes corporativas / educacionais simplesmente não são estruturadas dessa maneira.
O problema é tão prevalente que muitas equipes de TI das instituições de ensino se reuniram há alguns anos e pediram à Apple que corrigisse o Bonjour para que funcionasse melhor nesses ambientes.
Para responder diretamente às suas perguntas, geralmente será necessário configurações muito especializadas para realizar a abrangência dos serviços Airplay em sua rede. E a configuração específica dependerá muito da sua solução sem fio atual (Cisco, Aerohive, Ubiquity, etc). Em geral, se você procurar seu fornecedor sem fio e Bonjour, deverá encontrar documentação para, pelo menos, apontar na direção certa.
Tive sucesso misto na implantação da solução de gateway Avahi Bonjour da Cisco e não recomendaria investigá-la, a menos que seja absolutamente necessário.
O ponto principal para mim é que, como você apontou na sua terceira pergunta, você sempre estará à mercê da Apple, porque este é um serviço fechado, proprietário e não documentado * destinado a ambientes de rede doméstica. Portanto, a menos que a Apple decida mudar isso, evitaria implementá-lo em uma rede corporativa sempre que possível.
* O código subjacente do mDNSResponder é aberto, não proprietário e está disponível sob a licença Apache. No entanto, as implementações da Apple internas a seus iDevices e MacOS estão fora do seu controle e podem mudar a qualquer momento.
fonte
Avahi pode ajudá-lo aqui. Existem muitas opções, mas isso deve direcionar o tráfego pelas sub-redes. Você deve conseguir obtê-lo em uma caixa ddwrt ou usar as interfaces Raspberry Pi e dot1q.
fonte
Não funciona porque é uma tecnologia de transmissão ( multicast ). (veja também: Bonjour) A travessia de um domínio de broadcast (ou seja, VLAN) requer um proxy. Eu não sou um Mac, mas já vi essa configuração de proxy antes - para que o iDevices pudesse chegar a uma impressora na qual a conexão sem fio e a cabo eram diferentes. Não me lembro do programa que foi usado, mas não era gratuito.
fonte
O Airplay viaja por IP, portanto, o roteamento normal se aplica. Você precisa de um roteador para rotear o tráfego de uma VLAN para outra. A menos que você comece a mexer com o Multicast, Bonjour permanecerá na VLAN local, no entanto.
Isso é uma má ideia? Depende ;-). Você precisa nos contar muito mais sobre o seu ambiente de produção para adivinhar.
fonte
Como outros observaram, existe uma solução de código aberto gratuita chamada Avahi ( http://www.avahi.org ) que pode funcionar como um proxy mDNS / Bonjour. A máquina na qual este software é executado deve ter interfaces de rede para cada VLAN / sub-rede na qual você deseja que os serviços mDNS sejam anunciados. Para que os serviços reais funcionem, no entanto, você deve ter o roteamento entre VLAN ativado ou permitir conexões TCP / UDP ao dispositivo ativado por mDNS em suas listas de acesso ou firewall. Outras opções incluem controladores wifi da Cisco ou Ubiquiti, que também podem servir como proxies mDNS, ou, se você estiver usando um Mac, poderá criar um proxy para cada serviço ( https://kb.acronis.com/sites/default/files/content/2013/ 01/39490 / wanbonjour_1.pdf) O problema com esta última solução é que você deve criar um proxy para cada serviço individual e refazê-lo sempre que a máquina for reinicializada.
fonte