Eu tenho um Arduino Yun conectado à minha LAN como cliente, e este não é meu servidor dns. Eu posso alcançá-lo usando seu nome de host: http://arduino.local
Como posso alcançá-lo sem um registro DNS?
Pergunto à comunidade Arduino e eles falaram sobre a resolução do mDNS, então tentei obter esses registros usando o "Bonjour Browser" ( https://hobbyistsoftware.com/bonjourbrowser ) e também tentei uma extensão do chrome. Mas não encontrei nenhum registro desse endereço IP!
Aí tentei com nslookup
mas não deu certo, pois o servidor DNS não tem esse registro. Aí tentei com nblookup
, pois sei que existe outra resolução feita com NetBios. Mas não obteve nenhum recorde. Eu olhei para o arquivo hosts e estava vazio.
Eu tentei ping arduino.local
e a resolução foi boa!
Limpei o cache DNS, pinguei novamente arduino.local e depois imprimi o ipconfig /displaydns
mas não encontrei nenhum registro sobre esse nome.
Bonjour Browser é na verdade um navegador DNS-SD, não um navegador mDNS. Não os confunda:
O mDNS é o protocolo de baixo nível executado em uma LAN e, assim como o sistema DNS regular, permite a publicação de qualquer tipo de registro – A/AAAA, TXT, SRV e assim por diante.
DNS-SD (também conhecido como DNS Service Discovery) é uma maneira específica de usar mDNS – é um recurso de nível superior que permite a publicação de "serviços" usando registros SRV e PTR.
Portanto, o navegador Bonjour verá apenas os registros que foram publicados de acordo com o formato DNS-SD, mas a resolução de nome de host local não usa esse sistema. A resolução
arduino.local
para um endereço IP usa apenas o mDNS básico, portanto, não há pesquisa de serviço, apenas uma consulta direta de registro A/AAAA.Também existe a chance de seu sistema Windows não usar mDNS, mas seu próprio LLMNR. As versões anteriores do Windows não tinham suporte para mDNS (embora pudesse vir junto com o iTunes), e o Windows 10 mais recente ainda precisa ser ativado manualmente.
No Windows 10, sempre que você usar nomes como
arduino
ouarduino.local
, o sistema operacional tentará todos os protocolos de resolução de nomes locais: LLMNR, mDNS (se ativado) e NetBIOS (se SMBv1 estiver ativado). Portanto, você não saberá como o nome foi encontrado, a menos que verifique os pacotes recebidos .