SSH falha com o host não encontrado, mas o NSLookup descobre que o host

2

Eu tenho uma rede de pequena empresa com vários servidores nela. Para simplificar, adicionei um servidor DNS BIND9 em uma delas, com entradas para cada uma das máquinas locais, por exemplo, vpn.example.com, web.example.com, storage.example.com e assim por diante. Essas entradas são servidas apenas para a rede local. Quando faço um nslookup em, digamos, vpn.example.com, sempre obtenho a resposta esperada e válida. No entanto, mais frequentemente do que não, uma tentativa de SSH para esse servidor falhar, assim:

# nslookup vpn.example.com
Server: 192.168.1.13
Address: 192.168.1.13#53

Non-authoritative answer:
Name: vpn.example.com
Address: 192.168.1.14

# ssh [email protected]
(after a ~10 second pause)
ssh: Could not resolve hostname vpn.example.com: Name or service not known

# ssh [email protected]
[Connects immediately]

As solicitações da Web para vpn.example.com são bem-sucedidas, assim como as conexões de outros aplicativos.

Isso acontece intermitentemente e parece estar ligado a reinicializações de rede ou servidor. Depois de tudo ter ficado pronto por um dia ou dois, o problema parece ter desaparecido, presumivelmente, quando o cache do cliente finalmente descobre as coisas (?). Eu estou vendo isso nas minhas máquinas Mac e Windows. Alguma sugestão?

    
por Chris 28.08.2014 / 18:26

1 resposta

4

Como você anonimou o nome do domínio, ocultou informações importantes. O nome de domínio do serviço ao qual você está conectado acaba em .local ?

O Nslookup envia pesquisas diretamente para os servidores DNS. O SSH faz uma chamada para o sistema solicitando que ele resolva o nome, que pode usar o DNS, mas também pode usar um arquivo hosts, multicast-DNS (bonjour) ou outros protocolos de resolução de nomes. Então, provavelmente, um dos seus outros métodos de resolução de nome configurados está errado.

Consulte a linha hosts em /etc/nsswitch.conf dos serviços de resolução de nome configurados.

    
por 28.08.2014 / 19:38