Que fait «.local»?

26

J'ai plusieurs machines Ubuntu sur mon réseau à la maison, mais le DNS est fourni par un serveur Windows (2K). Lorsque je leur connecte à un autre, si je leur transmets en tant que "machine", je ne peux pas me connecter, mais si je me connecte en tant que "machine.local", je peux me connecter.

Je pense de même que je ne peux pas me connecter à partir d'un client Windows (comme du mastic).

Que se passe t-il ici? - c'est clairement une chose Ubuntu.

Marc
la source
En fait, cela ressemble à une chose DNS, pas du tout à une chose Ubuntu (d'autant plus que vous "ne pouvez pas vous connecter" à partir de la machine Windows - et quel est le message d'erreur de toute façon?). Quelle est votre configuration DNS ( nameserver et search )? En quoi dig machine1diffère- dig machine1.localt-il?
Gilles 'SO- arrête d'être méchant'
Souhaitez-vous que Apple Bonjour ou une autre implémentation Zeroconf soit installée sur Windows 2000 Server?
Thorbjørn Ravn Andersen

Réponses:

34

Par défaut, Ubuntu inclut avahi. Il s'agit d'une implémentation de zeroconf qui permet de résoudre les noms d'hôte des ordinateurs avec le nom virtuel ".local". Chaque fois que votre ordinateur essaie de se connecter à "hostname.local", avahi effectuera des diffusions sur le réseau local pour voir s'il y a des ordinateurs avec ce nom d'hôte. Les autres ordinateurs exécutant avahi (ou quelque chose de compatible) devraient répondre.

Si vous regardez dans /etc/nsswitch.conf, vous trouverez la ligne suivante:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

Le mdns4_minimal est le paramètre de configuration qui fait fonctionner cette redirection.

Votre question suggère en fait qu'avahi fonctionne correctement car vous dites que vous pouvez vous connecter à vos ordinateurs Ubuntu en utilisant "hostname.local". Cependant, vous ne précisez pas ("Quand je leur envoie un ssh depuis un autre, ...") si vous essayez de vous connecter à partir d'un autre ordinateur Ubuntu ou d'un autre ordinateur Windows. Sans installer d'autres logiciels tels que Bonjour, les ordinateurs Windows ne peuvent pas résoudre les noms "hostname.local" de style zeroconf.

Lekensteyn
la source
Avahi Link pour les intéressés. Bref, c'est compliqué.
meawoppl
13

Pour résoudre votre problème, vous avez juste besoin d'Avahi. Cela annonce les noms de vos machines Ubuntu au lot Windows.

sudo apt-get install avahi-daemon

machinename.localfonctionne grâce à une autre implémentation de zeroconf (dont Avahi est aussi) appelé Bonjour, créé (IIRC) par Apple. Il est installé par défaut. Je ne sais pas pourquoi Avahi n'est pas aussi, mais étant donné la confusion qu'il cause aux gens, cela devrait probablement l'être.

Il y a plus à ce sujet sur Wikipedia: http://en.wikipedia.org/wiki/.local

Oli
la source
Avahi utilise .lan je pense
Broam
7
Non, avahi utilise .local, cela est requis par la spécification mDNS.
Kees Cook