Co robi „.local”?

26

Mam w domu kilka maszyn Ubuntu w mojej sieci, ale DNS zapewnia serwer Windows (2K). Kiedy ssh do nich z innego, jeśli ssh do nich jako „machine” nie mogę się połączyć, ale jeśli połączę się jako „machine.local”, mogę się połączyć.

Myślę, że podobnie, nie mogę połączyć się z klienta Windows (jak kit).

Co tu się dzieje? - to wyraźnie kwestia Ubuntu.

Marc
źródło
W rzeczywistości wygląda to na DNS, a nie na Ubuntu (zwłaszcza, że ​​„nie można się połączyć” z komputerem z systemem Windows - a zresztą jaki jest komunikat o błędzie?). Jaka jest twoja konfiguracja DNS ( nameserver i search )? Czym się dig machine1różni dig machine1.local?
Gilles „SO- przestań być zły”,
Czy zdarzyło Ci się mieć Apple Bonjour lub inną implementację Zeroconf na Windows 2000 Server?
Thorbjørn Ravn Andersen

Odpowiedzi:

34

Domyślnie Ubuntu zawiera avahi. Jest to implementacja zeroconf, która pozwala na rozwiązywanie nazw komputerów za pomocą wirtualnej nazwy „.local”. Za każdym razem, gdy komputer próbuje połączyć się z „hostname.local”, avahi przeprowadzi transmisje w sieci lokalnej, aby sprawdzić, czy istnieją komputery z tą nazwą hosta. Inne komputery z avahi (lub czymś kompatybilnym) powinny odpowiedzieć.

Jeśli zajrzysz do /etc/nsswitch.conf, znajdziesz następujący wiersz:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

Mdns4_minimal to ustawienie konfiguracyjne, które powoduje, że przekierowanie działa.

Twoje pytanie faktycznie sugeruje, że avahi działa poprawnie, gdy mówisz, że możesz połączyć się ze swoimi komputerami Ubuntu za pomocą „hostname.local”. Jednak nie wyjaśniasz („Gdy przesyłam do nich ssh z innego, ...”), jeśli próbujesz połączyć się z innego komputera Ubuntu lub z innego komputera z systemem Windows. Bez instalowania innego oprogramowania, takiego jak Bonjour, komputery z systemem Windows nie mogą rozpoznać nazw „hostname.local” w stylu zeroconf.

Lekensteyn
źródło
Avahi Link dla zainteresowanych. Krótko mówiąc, to skomplikowane.
meawoppl
13

Aby rozwiązać problem, wystarczy Avahi. To ogłasza nazwy twoich maszyn Ubuntu na działce Windows.

sudo apt-get install avahi-daemon

machinename.localdziała dzięki kolejnej implementacji zeroconf (której jest również Avahi) o nazwie Bonjour, utworzonej przez Apple (IIRC). Jest instalowany domyślnie. Nie wiem, dlaczego Avahi też nie jest, ale biorąc pod uwagę zamieszanie, które powoduje ludzi, prawdopodobnie tak powinno być.

Więcej na ten temat na Wikipedii: http://en.wikipedia.org/wiki/.local

Oli
źródło
Zastosowania avahi .lan myślę
Broam
7
Nie, używa avahi .local, jest to wymagane przez specyfikację mDNS.
Kees Cook