Como é bem provável que você esteja trabalhando em uma rede mista, com pelo menos 
Linux e Windows, é quase certo que você já tenha 
passado por problemas de resolução de nomes para as máquinas Linux enxergarem as Windows. Você já deve ter tentado pingar uma 
estação Windows e não conseguir uma reposta, e ficou surpreso quando descobriu que o mesmo ping partindo de uma estação Windows 
funciona normalmente. Esse tópico visa explicar o motivo disso acontecer.
Desde a época do Windows 3.11, a rede Microsoft trabalha com nomes 
Netbios. O Netbios é 
extremamente simples e, por isso mesmo, contém algumas limitações, entre as quais o limite de 16 caracteres no nome, e o fato de não 
ser roteável. Ele era usado onde as redes não eram muito grandes. Hoje, o Netbios foi adicionado ao TCP/IP da Microsoft. No Linux não há 
o protocolo Netbios. Quem implementa isso é o 
Samba.
Para exemplificar, vamos supor que você esteja em uma máquina Windows e precise acessar outra máquina Windows de nome servidor1. 
Quando tentamos resolver um nome Netbios, os passos executados pelo resolvedor do Windows são os seguintes:
- O resolvedor adiciona o sufixo DNS configurado nas opções de rede. Por exemplo vivaolinux.com.br;
- O resolvedor verifica se o nome servidor1.vivaolinux.com.br está em seu cache dns;
- Se não estiver, o resolvedor consulta o arquivo c:\windows\system32\drivers\etc\hosts;
- Se não existir, o resolvedor faz uma consulta ao DNS;
- Se o DNS não resolver, o sufixo é retirado do nome e passa-se a usar o Netbios;
- O resolvedor consulta o cache netbios para ver se o nome já foi resolvido;
- Caso não existe, o resolvedor consulta o servidor Wins (semelhante ao DNS, mas para nomes Netbios);
- Se o Wins não resolver, será feito um broadcast;
- Se não resolver por broadcast, o arquivo c:\windows\system32\drivers\etc\lmhosts será usado.
Como geralmente existe um servidor DNS interno e que os nomes netbios são mapeados para DNS (por exemplo, existe um registro no 
DNS interno para a máquina servidor1), pingar "servidor1" é o mesmo que pingar "servidor1.vivaolinux.com.br". Esse mapeamento 
geralmente é criado quando a estação é colocada no domínio do Active Directory do Windows. O 
Active Directory cria uma entrada no DNS 
Interno para a estação. Mas se uma máquina não está no domínio (algo comum em estações Linux), esta não será configurada no DNS. 
Assim, quando uma estação Linux tentar pingá-la, ela não responderá na rede, pois o Linux não faz consultas Netbios, fazendo somente 
os 4 primeiros passo da resolução de nomes do Windows.
Uma forma de amenizar isso é utilizar o programa nbtscan. Na sua forma mais simples, ele consulta um IP e traz os registros netbios 
associados a este IP.
 nbtscan 172.20.1.8
Resposta:
IP address         NetBIOS Name      Server     User                MAC address      
 
------------------------------------------------------------------------------------------------------------------------------------------------------------
172.20.1.8         SRVAPL              <server>   <unknown>          00:1c:c4:c1:9c:b4
Uma opção interessante é fazer com que o nbtscan vasculhe toda a rede a gere uma saída no formato do arquivo hosts. Um script 
poderia rodar isso todo dia e atualizar o arquivo /etc/hosts. Para rodar esse comando devemos estar logado como root.
# nbtscan -e 172.20.0.0/16
Resposta:
172.20.0.0	Sendto failed: Permission denied
172.20.0.10	PWKS0220     
172.20.1.6	PSRV014      
172.20.1.1	PSRV011      
172.20.1.8	SRVAPL         
172.20.1.20	PSRV020      
172.20.1.4	PSRV029      
172.20.1.86	PSRV028      
...
Se preferir usar uma saída no estilo lmhosts, use o parâmetro "-l" ao invés de "-e"