Não é possível resolver nomes de domínio .foo.local

14

Meu local de trabalho possui uma intranet com nomes de domínio como server01.foo.local , server02.foo.local , etc. Iniciei recentemente o ambiente ao vivo do Fedora 16 para testá-lo e descobri que esses nomes de domínio não são resolvidos.

Por exemplo:

$ ping server01.foo.local
ping: unknown host server01.foo.local
$ ping server01
PING server01.foo.local (X.X.X.X) ...

Por que server01 resolverá (e imprimirá o nome como server01.foo.local ), mas server01.foo.local não o fará?

    
por rhollencamp 09.11.2011 / 20:28

3 respostas

22

Embora eu não esteja 100% no raciocínio por que não funciona como esperado, parece haver um conflito muito grande com o serviço mDNS (Avahi no Linux, Bonjour / Zeroconf no Mac / Windows) e Redes Windows que usam .local como o nome de roteamento interno para domínios. O que parece acontecer é que, ao pingar o server01, ele ignora o uso do mDNS para resolução e, em seguida, anexa o domínio de pesquisa (foo.local) à solicitação, consultando com êxito o servidor DNS para server01.foo.local. No entanto, ao usar o mDNS (que usa .local como a extensão de nome de máquina padrão), quando você tenta executar o ping em server01.foo.local, ele realmente está transmitindo por mDNS procurando uma máquina com o nome "server01.foo"; quando falha, não passa para DNS direto por qualquer motivo. Uma grande solução para isso não é nomear seu domínio .local, o que provavelmente vai contra a maioria dos treinamentos dos administradores do Windows para a estruturação de domínio. Dito isto:

Se o mDNS não é importante em sua rede (como é comum na empresa, que tende a executar servidores DNS dedicados em relação à rede doméstica, onde o mDNS é usado às vezes), alterar a ordem de pesquisa é a solução mais fácil. / p>

Isso pode ser encontrado em /etc/nsswitch.conf. A seção para hosts irá listar a ordem, que para o padrão do Fedora 16 é:

hosts:      files mdns4_minimal [NOTFOUND=return] dns myhostname

Se você alterar isso para:

hosts:      files dns mdns4_minimal [NOTFOUND=return] myhostname

onde você está movendo o dns adiante na ordem de pesquisa, isso deve consertar as coisas por enquanto. Alternativamente, se você sabe que não precisará de mDNS, apenas remova a parte "mdns4_minimal [NOTFOUND = return]".

Analisando esse bug no rastreador da Red Hat , parece que esse é um problema de longa data sem nenhuma correção aparente no momento. No entanto, se alguém puder fornecer mais informações sobre o motivo pelo qual isso acontece dessa maneira, será apreciado.

    
por 10.11.2011 / 22:51
2

Eu sugeriria outra solução caso você esteja usando o domínio .local . Primeiro, não é uma boa ideia, pois parece um padrão / convenção usar .local para alguma descoberta dinâmica de multicast.

Mas se você insistir, também é mais fácil simplesmente remover nss-mdns package ou libnss-mdns package dependendo da sua distro e o problema será resolvido. Se você não precisa dessa funcionalidade, por que ela está lá?

Aqui está o yum info nss-mdns :

Summary     : glibc plugin for .local name resolution
URL         : http://0pointer.de/lennart/projects/nss-mdns/
License     : LGPLv2+
Description : nss-mdns is a plugin for the GNU Name Service Switch (NSS)
            : functionality of the GNU C Library (glibc) providing host name
            : resolution via Multicast DNS (aka Zeroconf, aka Apple Rendezvous,
            : aka Apple Bonjour), effectively allowing name resolution by common
            : Unix/Linux programs in the ad-hoc mDNS domain .local.
            : 
            : nss-mdns provides client functionality only, which means that you
            : have to run a mDNS responder daemon separately from nss-mdns if
            : you want to register the local host name via mDNS (e.g. Avahi).
    
por 11.06.2015 / 22:45
1

Algumas coisas que você pode verificar:

  • existe uma ordem em /etc/host.conf, que especifica a verificação de / etc / hosts antes de consultar o DNS?

  • é server01 em / etc / hosts?

  • existe um search foo.local em / etc / resolv, conf? Isso acrescentaria foo.local a qualquer nome de host que você esteja procurando

Gostaria de saber se o seu servidor de nomes está configurado corretamente. Se você ainda tem o nslookup, o que ele retorna para server01 , server01.foo.local e o endereço IP (lookup reverso)?

    
por 09.11.2011 / 21:47