Por que as máquinas Windows podem resolver nomes locais quando o Linux não consegue?

15

Eu tenho uma pequena rede com máquinas Windows e Linux conectadas a um roteador D-Link DIR-825.

As máquinas Windows na rede podem alcançar todas as outras máquinas pelo nome, enquanto as máquinas Linux só podem acessar outras máquinas pelo endereço IP.

Eu posso ver todas as máquinas listadas com nomes e seus endereços atribuídos DHCP na lista de status do cliente DHCP na interface de administração da web do roteador.

Por que as máquinas Linux não conseguem encontrar nenhuma outra máquina pelo nome enquanto o Windows não tem problemas para encontrar as máquinas Linux?

    
por Per Salmi 21.01.2012 / 21:58

5 respostas

26

Não sou especialista em redes e também estou pesquisando muito para respostas neste tópico. Minhas descobertas atuais são:

  • O Windows usa nomes NetBIOS, e esse protocolo, sendo um de difusão, permite que eles se encontrem sem nenhum servidor central.

  • Máquinas Linux em distros modernas usam nativamente um protocolo chamado Avahi , que também é um protocolo de transmissão independente do servidor. As máquinas da rede local têm um sufixo .local , para que você possa executar ping do Linux para o Linux usando ping hostname.local ou vê-las com avahi-discover package. alguns aplicativos no Gnome usam o avahi para listar máquinas na rede (por exemplo, o Visualizador de Área de Trabalho Remota)

  • Instalar o SAMBA em uma máquina Linux atribuirá a ele um nome NetBIOS (ou, mais tecnicamente, fará uma máquina Linux anunciar em solicitações de transmissão com seu nome NetBIOS, que é por padrão seu nome de host) e que permite que as máquinas Windows encontrem as do Linux .

  • Gotcha: Embora máquinas Linux com o Samba respondam a solicitações de protocolo NetBIOS, com configurações padrão em distribuições como o Ubuntu ele não usará o NetBIOS como um método para resolver nomes, e é por isso que máquinas Linux podem t "ver" uns aos outros ou às máquinas Windows . Para isso, você precisa editar o arquivo /etc/nsswitch.conf e adicionar wins à lista desta linha:

    hosts: files mdns4_minimal [NOTFOUND=return] dns wins mdns4

  • Você pode precisar instalar o pacote winbind (e, se não instalado automaticamente, libnss-winbind ) para funcionar acima.

  • Portanto, para o problema de visibilidade, você instala o Samba em todas as máquinas Linux (e também edita /etc/nsswitch.conf para habilitar a resolução de nomes NetBIOS) ou instala o suporte Avahi em máquinas Windows.

  • Quanto ao compartilhamento de arquivos, o Samba fornece aos computadores Linux recursos de compartilhamento de arquivos com o Windows. Não há necessidade de editar /etc/nsswitch.conf para máquinas Linux para ver pastas compartilhadas entre si e Windows (e vice-versa) na seção "Rede" do Nautilus

Espero que isso tenha ajudado! : D

    
por 10.02.2012 / 17:57
17

Por padrão, sem um servidor DNS, o Windows pode usar o NetBIOS (um protocolo de resolução de nomes da Microsoft) para descobrir os nomes de outros sistemas Windows locais em sua rede. Como mencionado acima, parece que você precisa configurar o SAMBA (ou pelo menos winbind) no lado do Linux. Aqui está um conjunto básico de instruções :

To enable Windows netbios name resolution from a Linux computer, make sure that Samba is installed (although the smb service does not need to be running). The Samba suite includes winbind, which enables Windows host names to be resolved. Then edit /etc/nsswitch.conf and change this line:

hosts: files dns

to this:

hosts: files dns wins

Then test by pinging the computer name of Windows machine on the LAN:

$ ping windowsbox

BTW, isso não tem nada a ver diretamente com o WINS. O WINS é um servidor NetBIOS normalmente usado em redes maiores para reduzir o tráfego de broadcast, fornecer uma plataforma legada de resolução de nomes centralizada e, finalmente, permitir que sistemas em diferentes redes conheçam o mapeamento de nome para IP de NetBIOS uns dos outros.

Uma alternativa para o SAMBA seria configurar um servidor DNS e garantir que as atualizações dinâmicas do DNS sejam configuradas ou que o DHCP possa registrar registros DNS.

    
por 21.01.2012 / 22:21
3

Provavelmente LLMNR .

    
por 21.01.2012 / 22:03
2

Você provavelmente só precisa configurar a resolução Avahi / mDNS. Faz o mesmo que o LLMNR no Windows.

    
por 21.01.2012 / 22:21
0

O Linux pode resolver nomes locais, embora o software necessário não esteja instalado por padrão ...

A maioria das distribuições Linux faz algumas suposições sobre seus requisitos de software além do kernel ... Referência Debian DNSMasq

pesquisa do apt-cache dnsmasq ...

    
por 16.02.2013 / 16:38