Was macht ".local"?

26

Ich habe zu Hause mehrere Ubuntu-Rechner in meinem Netzwerk, aber der DNS wird von einem Windows-Server (2K) bereitgestellt. Wenn ich von einem anderen zu ihnen ssh, wenn ich zu ihnen als "Maschine" ssh, kann ich keine Verbindung herstellen, aber wenn ich mich als "machine.local" verbinde, kann ich eine Verbindung herstellen.

Ich denke ähnlich, ich kann keine Verbindung von einem Windows-Client (wie Kitt) herstellen.

Was ist hier los? - Es ist eindeutig eine Ubuntu-Sache.

Marc
quelle
Eigentlich sieht es wie eine DNS-Sache aus, überhaupt nicht wie eine Ubuntu-Sache (zumal Sie keine Verbindung vom Windows-Computer aus herstellen können - und wie lautet die Fehlermeldung überhaupt?). Was ist Ihre DNS-Konfiguration ( nameserver und search )? Wie unterscheidet dig machine1sich von dig machine1.local?
Gilles 'SO- hör auf böse zu sein'
Wäre zufällig Apple Bonjour oder eine andere Zeroconf-Implementierung auf dem Windows 2000 Server installiert?
Thorbjørn Ravn Andersen

Antworten:

34

Standardmäßig enthält Ubuntu Avahi. Dies ist eine Implementierung von zeroconf, mit der Computerhostnamen mit dem virtuellen ".local" -Namen aufgelöst werden können. Immer wenn Ihr Computer versucht, eine Verbindung zu "hostname.local" herzustellen, führt avahi lokale Netzwerk-Broadcasts durch, um festzustellen, ob Computer mit diesem Hostnamen vorhanden sind. Andere Computer, auf denen avahi (oder ein kompatibler Computer) ausgeführt wird, sollten antworten.

Wenn Sie in /etc/nsswitch.conf suchen, finden Sie die folgende Zeile:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

Mdns4_minimal ist die Konfigurationseinstellung, mit der diese Umleitung funktioniert.

Ihre Frage deutet tatsächlich darauf hin, dass avahi erfolgreich ausgeführt wird, da Sie sagen, dass Sie mit "hostname.local" eine Verbindung zu Ihren Ubuntu-Computern herstellen können. Sie stellen jedoch nicht klar ("Wenn ich von einem anderen auf sie zugreife, ..."), ob Sie versuchen, von einem anderen Ubuntu-Computer oder von einem anderen Windows-Computer aus eine Verbindung herzustellen. Ohne die Installation anderer Software wie Bonjour können Windows-Computer die Namen "hostname.local" im Zeroconf-Stil nicht auflösen.

Lekensteyn
quelle
Avahi Link für Interessierte. Kurz gesagt, es ist kompliziert.
Meawoppl
13

Um Ihr Problem zu beheben, benötigen Sie nur Avahi. Dadurch werden die Namen Ihrer Ubuntu-Maschinen auf dem Windows-Los bekannt gegeben.

sudo apt-get install avahi-daemon

machinename.localfunktioniert dank einer anderen Implementierung von zeroconf (von der Avahi auch heißt), Bonjour, das von Apple erstellt wurde (IIRC). Es ist standardmäßig installiert. Ich weiß nicht, warum Avahi nicht auch ist, aber angesichts der Verwirrung, die es den Menschen bereitet, sollte es wahrscheinlich sein.

Mehr dazu auf Wikipedia: http://en.wikipedia.org/wiki/.local

Oli
quelle
Avahi verwendet .lan, denke ich
Broam
7
Nein, wird von Avahi verwendet .local. Dies wird von der mDNS-Spezifikation gefordert.
Kees Cook