Pourquoi les machines Windows peuvent-elles résoudre les noms locaux alors que Linux ne le peut pas?

18

J'ai un petit réseau avec des machines Windows et Linux connectées à un routeur D-Link DIR-825.

Les machines Windows sur le réseau peuvent atteindre toutes les autres machines par leur nom tandis que les machines Linux ne peuvent atteindre d'autres machines que par adresse IP.

Je peux voir toutes les machines répertoriées avec des noms et leurs adresses DHCP attribuées dans la liste d'état du client DHCP dans l'interface d'administration Web du routeur.

Pourquoi les machines Linux ne peuvent-elles trouver aucune autre machine par leur nom alors que Windows n'a aucun problème pour trouver les machines Linux?

Per Salmi
la source
2
Comment se fait la résolution de votre nom? DNS? Avez-vous un suffixe de recherche configuré?
Shane Madden
Toutes les machines utilisent DHCP, connectées au routeur D-Link où elles semblent s'enregistrer et cela suffit probablement à Windows pour trouver toutes les machines. Mais les machines Linux ont-elles vraiment besoin d'un serveur DNS local autre que le routeur?
Per Salmi
Pas sûr de ce routeur particulier, mais la plupart des routeurs grand public n'intègrent pas les clients DHCP dans leur service DNS interne. La réponse de Joe est probablement votre coupable.
Shane Madden
Alors les machines Linux répondraient aux messages LLMNR mais ne l'utilisaient pas elles-mêmes pour trouver d'autres machines?
Per Salmi

Réponses:

32

Je ne suis pas un expert du réseau, et je recherche également beaucoup de réponses dans ce sujet. Mes conclusions actuelles sont les suivantes:

  • Windows utilise des noms NetBIOS, et ce protocole, étant un protocole de diffusion, leur permet de se retrouver sans aucun serveur central.

  • Les machines Linux dans les distributions modernes utilisent nativement un protocole appelé Avahi , qui est également un protocole de diffusion indépendant du serveur. Les machines du réseau local ont un suffixe .local, vous pouvez donc envoyer une requête ping de Linux à Linux en utilisantping hostname.local , ou les voir avec le avahi-discoverpackage. certaines applications de Gnome utilisent avahi pour répertorier les machines du réseau (par exemple, la visionneuse de bureau à distance)

  • L'installation de SAMBA sur une machine Linux lui attribuera un nom NetBIOS (ou, plus techniquement, fera publier une machine Linux dans les requêtes de diffusion avec leur nom NetBIOS, qui est par défaut leur nom d'hôte), et qui permettra aux machines Windows de trouver Linux ceux .

  • Gotcha: Bien que les machines Linux avec Samba répondent aux demandes de protocole NetBIOS, avec les paramètres par défaut dans les distributions comme Ubuntu, il n'utilisera pas NetBIOS comme méthode pour résoudre les noms, et c'est pourquoi les machines Linux ne peuvent pas "se voir" ou Windows machines . Pour cela, vous devez modifier le /etc/nsswitch.conffichier et l'ajouter winsà la liste de cette ligne:

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

  • Vous devrez peut- être installer winbind(et, s'il n'est pas installé automatiquement libnss-winbind), le package pour que ce qui précède fonctionne.

  • Donc, pour le problème de visibilité, vous installez Samba sur toutes les machines Linux (et éditez également /etc/nsswitch.conf pour activer la résolution de noms NetBIOS), ou vous installez le support Avahi sur les machines Windows.

  • En ce qui concerne le partage de fichiers, Samba fournit des fonctionnalités de partage de fichiers sur les machines Linux avec Windows. Il n'est pas nécessaire d'éditer /etc/nsswitch.conf pour les machines Linux pour voir les dossiers partagés les uns des autres et de Windows (et vice-versa) dans la section "Réseau" de Nautilus

J'espère que cela a aidé! :RÉ

MestreLion
la source
2
pour la nsswitch.congchose: si ping HOSTNAMEvous donne une erreur système, c'est le signal que le paquet libnss-winbind est nécessaire.
Michael Stum
18

Par défaut, sans serveur DNS, Windows peut utiliser NetBIOS (un protocole de résolution de noms Microsoft) pour découvrir les noms des autres systèmes Windows locaux sur leur réseau. Comme mentionné dans cette réponse , il semble que vous devez configurer SAMBA (ou au moins winbind) du côté Linux. Voici un ensemble d'instructions de base :

Pour activer la résolution de noms Windows NetBIOS à partir d'un ordinateur Linux, assurez-vous que Samba est installé (bien que le service smb n'ait pas besoin d'être exécuté). La suite Samba comprend winbind, qui permet de résoudre les noms d'hôte Windows. Modifiez ensuite /etc/nsswitch.conf et changez cette ligne:

hosts: files dns

pour ça:

hosts: files dns wins

Testez ensuite en envoyant une requête ping au nom de l'ordinateur de la machine Windows sur le réseau local:

$ ping windowsbox

BTW, cela n'a rien à voir directement avec WINS. WINS est un serveur NetBIOS généralement utilisé dans les grands réseaux pour réduire le trafic de diffusion, fournir une plate-forme de résolution de noms centralisée héritée et, en fin de compte, permettre aux systèmes sur différents réseaux de se connaître mutuellement le mappage nom-IP NetBIOS.

Une alternative à SAMBA serait de configurer un serveur DNS et de s'assurer que les mises à jour DNS dynamiques sont configurées ou que DHCP peut enregistrer les enregistrements DNS.

Eric C. Singer
la source
3

Très probablement LLMNR .

joeqwerty
la source
1
Est-ce que cela ferait alors en sorte que les machines Windows trouvent les boîtes Linux en utilisant les informations enregistrées DHCP du routeur? Mais Linux ne prend pas en charge l'utilisation des noms enregistrés du routeur pour trouver quoi que ce soit?
Per Salmi
3
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
Mark Henderson
Il ne semble pas que le LLMNR explique pourquoi Windows peut trouver les boîtes Linux, mais pas l'inverse. Si Linux n'utilise pas LLMNR, Windows trouverait Windows mais pas Linux?
Per Salmi
2

Vous avez probablement juste besoin de configurer la résolution Avahi / mDNS. Il fait un peu la même chose que LLMNR sur Windows.

juwi
la source
0

Linux peut résoudre les noms locaux bien que le logiciel nécessaire ne soit pas installé par défaut ...

La plupart des distributions Linux font peu de présomptions concernant vos exigences logicielles au-delà du noyau ... Référence Debian DNSMasq

apt-cache recherche dnsmasq ...

Eddie B
la source