Atraso de 10 segundos para o TLD .local no Mac OS X Lion

13

A rede da nossa empresa usa xxx.companyname.localpara todos os servidores da nossa rede local. Sempre que acesso um desses servidores no meu Mac, tenho um atraso de 10 segundos. Descobri que esse atraso é causado por pesquisas de DNS, porque aparentemente o Lion resolve domínios .local na seguinte ordem:

  1. verifique o /etc/hostsendereço IPv6
  2. verifique se há um registro AAAA no servidor DNS (endereço IPv6)
  3. verifique via MDNS (Bonjour) se há um registro AAAA
  4. verifique se /etc/hostshá um endereço IPv4
  5. verifique se há um registro no servidor DNS (endereço IPv4)
  6. verifique MDNS para um registro

Agora, o problema é que não temos uma rede IPv6. Todos os xxx.companyname.localservidores da nossa rede têm apenas endereços IPv4 e o servidor DNS possui apenas um registro. Isso significa que o endereço foi resolvido na etapa 5. O problema é que a etapa 3 leva dez segundos antes de atingir o tempo limite! Sempre que eu me conecto ao nosso wiki, servidor SVN, servidor Kerberos, etc, há um atraso de 10 segundos.

Consegui enganar o Lion adicionando linhas como as seguintes a /etc/hosts

::FFFF:10.99.99.99 xxx.companyname.local

Se fizer isso, o Lion acha que há um endereço IPv6 para o domínio e para após a etapa 1. No entanto, essa solução alternativa contorna totalmente todos os recursos úteis do DNS. Não quero acompanhar manualmente os endereços IP de dezenas de domínios internos! Eu também poderia parar de usar nomes de host e apenas digitar endereços IP!

Então: alguém tem uma idéia de como alterar essa ordem de pesquisa? Ou desabilite a pesquisa do IPv6, pois não temos uma rede IPv6?

Jakob Egger
fonte
Obrigado pela pergunta - eu marcá-la como referência resolução Mac DNS;)
Alex
Seria muito melhor tentar determinar por que seus servidores DNS estão demorando 10 segundos para enviar uma resposta de conjunto de registros vazia para os AAAAregistros quando eles (de acordo com o que você diz) não demoram nem um pouco para responder a Aperguntas muito mesmos nomes de domínio. Você parece estar no território clássico da RFC 4074, onde o problema é que os servidores estão com problemas . Observe também que você encontrou um dos vários motivos conhecidos e discutidos há muito tempo para não usar o local.serviço DNS com horizonte dividido. É melhor consertar também.
JdeBP
1
Os servidores DNS na etapa dois retornam um registro AAAA vazio instantaneamente. O problema é a etapa 3 - a consulta MDNS / Bonjour / Zeroconf. Lion espera 10 segundos após a transmissão antes de atingir o tempo limite. Depois de pesquisar um pouco, estou ciente de que usar local.é uma má ideia, mas o departamento de TI me disse que eles acham que o uso local.companyname.é perfeitamente adequado e que não posso fazer nada a respeito.
Jakob Egger
As pessoas do seu departamento de TI estão muito mal informadas. Sabe-se que isso não é "perfeitamente adequado" nos círculos de administração de rede há aproximadamente meia década. Você poderia… incentivar… o conhecimento de rede das pessoas do seu departamento de TI a trazer para o século XXI. Você pode ... lembrá-los de que o trabalho deles não é organizar assuntos para que os computadores corporativos não funcionem corretamente. ☺
JdeBP
@JdeBP E, no entanto, a Apple decidiu que seria uma boa ideia usá-lo ... Você notará que a Microsoft também o usa e recomenda como melhor prática. Então ... Quem disse que não é ?
Básico

Respostas:

8

Pare seu departamento de TI de abusar local..

Conforme discutido, abusar de um nome de domínio que sua empresa não possui e, portanto, não deveria assumir que pode criar subdomínios corporativos, está errado e é metade do problema aqui. Se os computadores da empresa incluírem Macintoshes (ou qualquer outra coisa que use DNSSD para esse assunto), definitivamente não assuma que local.é seu para mexer livremente dessa maneira.

Atualize seu Macintosh.

O MacOS 10.4 seria realmente tratado xxx.companyname.local.como você descreve. Mas isso mudou nas revisões posteriores do sistema operacional. O MacOS 10.5 passa apenas nomes de dois rótulos para o DNS Multicast. Nomes de três rótulos, como xxx.companyname.local.não são tratados pelo MDNS. O MacOS 10.6 leva isso adiante e tenta detectar se o servidor DNS foi configurado incorretamente para ter uma local. zona e agir de acordo.

No mínimo você deve configurar seu Macintosh para ter uma /etc/resolver/companyname.local arquivo com search_order 1nele que lista o endereço IP atual (es) do seu servidor DNS proxy (s). Isso não funcionará bem com os endereços IP do servidor DNS atribuídos ao DHCP que mudam, como diz a Apple.

Na mão emocionante ...

... estes são simplesmente corpos progressivamente mais complexos para acomodar a estupidez. Para citar Marc Krochmal, da Apple, "sempre haverá algum problema" quando as pessoas abusam local.da maneira que sua empresa está fazendo. Sabe-se que ele é mal-intencionado desde (uma pesquisa rápida me diz) 2002, se não antes. Apenas não faça isso .

Leitura adicional

JdeBP
fonte
2
Nenhuma dessas informações resolve meus problemas com a resolução de DNS no Lion (Mac OS X 10.7). Além disso, /etc/resolver/companyname.localparece ser ignorado no Lion.
Jakob Egger
0

Eu não conheço o Mac, então não posso ajudar, mas eu vim com uma idéia alternativa: se você configurar em algum lugar da Internet "somedomain.com DNAME companyname.local"- ele pegará o DNAME na etapa 2. Agora não tenho certeza do que acontecerá Em seguida, ele ainda retornará ao bonjour ou, como já está no meio de algum processo de DNS, talvez ele continue com o DNS.

Alex
fonte
I pode oferecer-se na criação do DNAME para você se você deseja :)
Alex