Eu tenho uma pequena rede de escritório com um punhado de máquinas Windows / Ubuntu de versões diferentes. Alguns dias atrás, uma máquina Windows perdeu a capacidade de acessar quaisquer serviços nas máquinas Ubuntu pelo nome do host.
Eu posso resolver o nome do host do Ubuntu usando o DNS:
C:\>nslookup gruit
Server: router.asus.com
Address: 192.168.73.1
Name: gruit
Address: 192.168.73.152
Mas, eu não posso usar coisas como ping
, ftp
, ssh
, etc. por hostname. Por exemplo:
C:\>ping gruit
Ping request could not find host gruit. Please check the name and try again.
Eu posso usar com êxito o endereço IP com qualquer um desses comandos:
C:\>ping 192.168.73.152
Pinging 192.168.73.152 with 32 bytes of data:
Reply from 192.168.73.152: bytes=32 time<1ms TTL=64
Eu posso também usar o nome do host com .
no final:
C:\>ping gruit.
Pinging gruit [192.168.73.152] with 32 bytes of data:
Reply from 192.168.73.152: bytes=32 time<1ms TTL=64
Isso cheira a um problema de NetBIOS. De fato, coisas como NET VIEW
falham :
C:\>net view \gruit
System error 53 has occurred.
The network path was not found.
Curiosamente, o NBT resolve o nome do host corretamente :
C:\>nbtstat -c
Ethernet0:
Node IpAddress: [192.168.73.104] Scope Id: []
NetBIOS Remote Cache Name Table
Name Type Host Address Life [sec]
------------------------------------------------------------
GRUIT <20> UNIQUE 192.168.73.152 592
Para fins práticos, não me importo com o NetBIOS / Samba / etc. no Ubuntu aqui; Eu só quero que o meu material TCP / IP "normal" funcione (ou seja, o Postgres). De alguma forma, porém, o todo cliente nesta máquina com Windows 10 parece usar o NetBIOS. Se eu limpar o cache com nbtstat -R
, por exemplo, use algum cliente TCP / IP (por exemplo, ssh
, psql
...), o cache do NBT mostrará imediatamente o nome do host e o endereço IP do Ubuntu.
[EDIT: Alguns comandos não ativam uma entrada no cache do NBT. nslookup
nunca faz. Nem os infratores usuais (por exemplo, ping
) quando eu termino o nome do host com um ponto.]
O verdadeiro problema, é claro, é que, apesar de resolver com sucesso através do
ambos DNS e NBT, eu não posso realmente usar os nomes de host com qualquer aplicativo cliente. Li muitas páginas de documentos conflitantes, blogs e postagens de fóruns sobre a ordem de resolução de nomes no Windows - e se o cliente tem um papel na determinação do método de resolução. Não tenho certeza do que está correto / atual.
O comportamento [ nslookup
na edição anterior sugere que o cliente tem um papel na escolha do método de resolução de nomes. Não tenho certeza se é explícito ou incidental - por exemplo, qual das várias funções da API eles chamam.]
Para contexto:
- A máquina com problemas é o Windows 10; não tem
hosts
ou lmhosts
file
- As máquinas Ubuntu são 14.04 e 18.04
- Todas as outras máquinas Windows (todas do Windows 7) podem acessar os servidores Ubuntu por nome de host, incluindo serviços TCP / IP diretos e serviços do tipo Samba
- Eu consertei várias outras coisas durante essa odisseia (por exemplo, reconfiguração de DHCP / DNS, atualização do sistema operacional, atualizações e desinstalações do anti-malware / firewall, reconfiguração do samba / systemd-resolved ...); a rede está em melhor forma do que nunca, além desta questão restante
Alguma idéia?