O que ".local" faz?

26

Eu tenho várias máquinas Ubuntu na minha rede em casa, mas o DNS é fornecido por um servidor Windows (2K). Quando eu ssh para eles de outro, se eu ssh para eles como "máquina" não consigo conectar, mas se eu conectar como "machine.local", posso conectar.

Penso da mesma forma que não consigo me conectar a partir de um cliente Windows (como massa de vidraceiro).

Oque esta acontecendo aqui? - é claramente uma coisa do Ubuntu.

Marc
fonte
Na verdade, parece uma coisa de DNS, não uma coisa do Ubuntu (especialmente porque você "não pode se conectar" a partir da máquina Windows - e qual é a mensagem de erro?). Qual é a sua configuração de DNS ( nameserver e search )? Como é que dig machine1difere dig machine1.local?
Gilles 'SO- stop be evil'
Você teria o Apple Bonjour ou outra implementação do Zeroconf instalada no Windows 2000 Server?
Thorbjørn Ravn Andersen

Respostas:

34

Por padrão, o Ubuntu inclui avahi. Esta é uma implementação do zeroconf que permite que os nomes de host do computador sejam resolvidos com o nome virtual ".local". Sempre que o seu computador tentar se conectar ao "hostname.local", o avahi executará transmissões na rede local para verificar se existem computadores com esse nome de host. Outros computadores executando o avahi (ou algo compatível) devem responder.

Se você procurar em /etc/nsswitch.conf, encontrará a seguinte linha:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

O mdns4_minimal é a configuração que faz esse redirecionamento funcionar.

Sua pergunta realmente sugere que o avahi está sendo executado com êxito, pois você diz que pode se conectar aos computadores Ubuntu usando "hostname.local". No entanto, você não deixa claro ("Quando eu envio para eles de outro, ...") se você está tentando se conectar a partir de outro computador Ubuntu ou de outro computador Windows. Sem instalar outro software como o Bonjour, os computadores Windows não podem resolver nomes "hostname.local" no estilo zeroconf.

Lekensteyn
fonte
Avahi Link para os interessados. Em suma, é complicado.
meawoppl
13

Para corrigir seu problema, você só precisa do Avahi. Isso anuncia os nomes das máquinas Ubuntu para o lote do Windows.

sudo apt-get install avahi-daemon

machinename.localfunciona graças a outra implementação do zeroconf (da qual Avahi também é) chamada Bonjour, criada (IIRC) pela Apple. Está instalado por padrão. Não sei por que Avahi também não é, mas dada a confusão que causa às pessoas, provavelmente deve ser.

Há mais sobre isso na Wikipedia: http://en.wikipedia.org/wiki/.local

Oli
fonte
Avahi usa .lan eu acho
Broam
7
Não, o Avahi usa .local, isso é exigido pela especificação mDNS.
Kees Cook