Warum können Windows-Computer lokale Namen auflösen, wenn Linux dies nicht kann?

18

Ich habe ein kleines Netzwerk mit Windows- und Linux-Computern, die an einen D-Link DIR-825-Router angeschlossen sind.

Die Windows-Computer im Netzwerk können alle anderen Computer über den Namen erreichen, während die Linux-Computer andere Computer nur über die IP-Adresse erreichen können.

In der DHCP-Client-Statusliste der Router-Webadministrationsoberfläche werden alle Computer mit Namen und den ihnen zugewiesenen DHCP-Adressen aufgeführt.

Warum können die Linux-Computer keinen anderen Computer mit Namen finden, während Windows die Linux-Computer problemlos findet?

Per Salmi
quelle
2
Wie erfolgt Ihre Namensauflösung? DNS? Haben Sie ein Suchsuffix konfiguriert?
Shane Madden
Alle Computer verwenden DHCP und sind mit dem D-Link-Router verbunden, auf dem sie sich zu registrieren scheinen. Dies reicht wahrscheinlich aus, damit Windows alle Computer findet. Aber benötigen die Linux-Rechner wirklich einen anderen lokalen DNS-Server als den Router?
Per Salmi
Unsicher über diesen bestimmten Router, aber die meisten Consumer-Router integrieren DHCP-Clients nicht in ihren internen DNS-Dienst. Joes Antwort ist wahrscheinlich dein Schuldiger.
Shane Madden
Dann würden die Linux-Maschinen auf LLMNR-Nachrichten antworten, diese aber nicht selbst verwenden, um andere Maschinen zu finden?
Per Salmi

Antworten:

32

Ich bin kein Netzwerkexperte, und ich recherchiere auch viel nach Antworten in diesem Thema. Meine aktuellen Erkenntnisse sind:

  • Windows verwendet NetBIOS-Namen, und ein solches Protokoll ist ein Broadcast-Protokoll, mit dem sich die Benutzer ohne zentralen Server finden können.

  • Linux-Maschinen in modernen Distributionen verwenden von Haus aus ein Protokoll namens Avahi , das auch ein serverunabhängiges Broadcast-Protokoll ist. Lokale Netzwerkcomputer haben ein Suffix .local, mit dem Sie von Linux zu Linux pingenping hostname.local oder sie mit dem avahi-discoverPaket anzeigen können. Einige Apps in Gnome verwenden Avahi, um Computer im Netzwerk aufzulisten (z. B. der Remotedesktop-Viewer).

  • Wenn Sie SAMBA auf einem Linux-Computer installieren, wird ihm ein NetBIOS-Name zugewiesen (oder, technisch gesehen, ein Linux-Computer wird in Broadcast-Anfragen mit seinem NetBIOS-Namen (standardmäßig seinem Host-Namen) beworben, sodass Windows-Computer Linux finden können diejenigen .

  • Gotcha: Obwohl Linux-Computer mit Samba auf NetBIOS-Protokollanforderungen antworten, wird NetBIOS bei Standardeinstellungen in Distributionen wie Ubuntu nicht als Methode zum Auflösen von Namen verwendet, weshalb Linux-Computer einander oder Windows nicht "sehen" können maschinen . Dazu müssen Sie die /etc/nsswitch.confDatei bearbeiten und winsder Liste in dieser Zeile hinzufügen :

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

  • Möglicherweise müssen Sie das Paket installieren winbind(und, falls es nicht automatisch installiert wird, libnss-winbind), damit das oben beschriebene funktioniert.

  • Für das Sichtbarkeitsproblem installieren Sie also entweder Samba auf allen Linux-Rechnern (und bearbeiten auch /etc/nsswitch.conf, um die NetBIOS-Namensauflösung zu aktivieren), oder Sie installieren die Avahi-Unterstützung auf Windows-Rechnern.

  • Was die Dateifreigabe anbelangt, so bietet Samba Linux-Computern die Möglichkeit zur Dateifreigabe unter Windows. Es ist nicht erforderlich, die Datei /etc/nsswitch.conf für Linux-Computer zu bearbeiten, um freigegebene Ordner voneinander und von Windows (und umgekehrt) im Abschnitt "Netzwerk" von Nautilus anzuzeigen

Ich hoffe das hat geholfen! : D

MestreLion
quelle
2
für die nsswitch.congSache: Wenn ping HOSTNAMESie einen Systemfehler bekommen, ist das das Signal, dass das Paket libnss-winbind benötigt wird.
Michael Stum
18

Standardmäßig kann Windows ohne einen DNS-Server NetBIOS (ein Microsoft-Namensauflösungsprotokoll) verwenden, um die Namen anderer Windows-Systeme zu ermitteln, die sich lokal in ihrem Netzwerk befinden. Wie in dieser Antwort erwähnt , müssen Sie SAMBA (oder zumindest winbind) auf der Linux-Seite einrichten. Hier ist eine grundlegende Anleitung :

Stellen Sie sicher, dass Samba installiert ist, um die Windows-NetBIOS-Namensauflösung von einem Linux-Computer aus zu aktivieren (obwohl der smb-Dienst nicht ausgeführt werden muss). Die Samba-Suite enthält winbind, mit dem Windows-Hostnamen aufgelöst werden können. Dann editiere /etc/nsswitch.conf und ändere diese Zeile:

hosts: files dns

dazu:

hosts: files dns wins

Testen Sie dann, indem Sie den Computernamen des Windows-Computers im LAN pingen:

$ ping windowsbox

Übrigens hat dies nichts direkt mit WINS zu tun. WINS ist ein NetBIOS-Server, der normalerweise in größeren Netzwerken verwendet wird, um den Broadcast-Verkehr zu reduzieren, eine ältere zentralisierte Plattform für die Namensauflösung bereitzustellen und letztendlich Systemen in verschiedenen Netzwerken die gegenseitige Zuordnung von NetBIOS-Namen zu IP zu ermöglichen.

Eine Alternative zu SAMBA besteht darin, einen DNS-Server einzurichten und sicherzustellen, dass dynamische DNS-Aktualisierungen konfiguriert sind oder dass DHCP DNS-Einträge registrieren kann.

Eric C. Singer
quelle
3

Höchstwahrscheinlich LLMNR .

Joeqwerty
quelle
1
Würden die Windows-Computer dann die Linux-Boxen mithilfe der DHCP-registrierten Informationen des Routers finden? Aber Linux unterstützt nicht die Verwendung der registrierten Router-Namen, um etwas zu finden?
Per Salmi
3
Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Mark Henderson
Es fühlt sich nicht so an, als würde der LLMNR erklären, warum Windows die Linux-Boxen finden kann, aber nicht umgekehrt. Wenn Linux LLMNR nicht verwendet, findet Windows Windows, aber nicht Linux?
Per Salmi
2

Sie müssen wahrscheinlich nur die Avahi / mDNS-Auflösung einrichten. Es ist ähnlich wie LLMNR unter Windows.

juwi
quelle
0

Linux kann lokale Namen auflösen, obwohl die erforderliche Software nicht standardmäßig installiert ist ...

Die meisten Linux-Distributionen machen über den Kernel hinaus nur wenige Annahmen bezüglich Ihrer Softwareanforderungen ... Debian-Referenz DNSMasq

Apt-Cache-Suche dnsmasq ...

Eddie B
quelle