Como usar encaminhadores de DNS externos quando a zona de pesquisa direta não contém o subdomínio solicitado

1

Usando o DNS do Windows 2008 R2:

Temos uma zona de pesquisa direta:

somerealdomain.com

us-wil    |    A    |    10.10.0.1
us-chi    |    A    |    10.10.0.2
us-day    |    A    |    10.10.0.3
us-sea    |    A    |    10.10.0.4
us-sf     |    A    |    10.10.0.5
us-ny     |    A    |    10.10.0.6
give      |    A    |    10.10.0.7
me        |    A    |    10.10.0.8
test      |    A    |    10.10.0.9

Se eu fizer um NSLookup para qualquer um deles, eles obviamente serão apontados corretamente para o IP interno.

Agora, se eu quiser que qualquer subdomínio inexistente resolva o uso de DNS externo, conforme fornecido pelos nossos Encaminhadores 8.8.8.8, 8.8.4.4 etc., como posso fazer isso? Digamos que eu queira resolver o get.somerealdomain.com, que não está incluído na zona de pesquisa direta, mas que pode ser resolvido em servidores DNS públicos?

Eu preciso disso, portanto, se alguém pesquisar um subdomínio que não incluímos em nossa Zona de pesquisa direta, ele sairá do servidor DNS público e será resolvido. Presumi que isso aconteceria por padrão, como acontece com qualquer outro domínio para o qual não escrevemos registros, mas como temos o somrealdomain.com como uma Zona de Pesquisa Direta, qualquer subdomínio que não tenha um registro escrito simplesmente morre em vez de perguntar a ele DNS. Por quê? Como posso resolver isso?

    
por TryTryAgain 19.03.2013 / 23:49

3 respostas

2

O DNS exige que haja apenas uma instância de uma determinada zona (a zona pode ser atendida por vários servidores autoritativos, mas somente uma instância da zona é permitida). Você simplesmente não pode obter um servidor DNS para primeiro consultar uma zona de encaminhamento local (ou seja, definida localmente, seja uma zona mestre ou escrava) e, em seguida, consultar outro servidor DNS se ele não encontrar uma entrada correspondente. Você está efetivamente sobrescrevendo a própria definição do somerealdomain.com em seu servidor local (de modo que, no que lhe diz respeito, a versão pública dessa zona não existe).

Existem várias soluções possíveis. Se você tiver acesso ao arquivo de zona pública (diretamente ou por transferência de zona), um script adequado pode preencher sua zona local com as entradas públicas que não são substituídas localmente. Isso não é trivial e requer conhecimento profundo.

Uma alternativa seria colocar um proxy DNS de filtragem na frente do seu servidor DNS - o tipo de proxy DNS usado para testes de penetração que pode ser configurado para encaminhar consultas para diferentes servidores DNS com base no conteúdo da consulta (ou respostas falsas - que é efetivamente o que você está fazendo).

Por fim, você pode usar um cache DNS, como dnsmasq (mesmo princípio que um proxy DNS de filtragem) - veja este answer para detalhes.

    
por 20.03.2013 / 00:35
3
  1. Excluir zona somerealdomain.com
  2. Crie a zona us-wil.somerealdomain.com
  3. Adicione um registro à zona us-wil.somerealdomain.com e deixe o nome do host em branco (use o endereço IP interno).
  4. Repita as etapas 2 e 3 para todos os nomes de host internos
por 21.03.2013 / 20:22
0

Normalmente, os subdomínios são apontados do domínio superior. Seu servidor DNS acha que é a autoridade para somerealdomain.com. Quando um pedido de subdomínio.somerealdomain.com é recebido, ele verifica seus próprios registros e diz "Isso não existe. Eu deveria saber que sou o pai".

Você precisa de um registro para apontar para o servidor DNS do seu subdomínio. Normalmente, isso envolve a delegação do subdomínio (ou subzona) para outro servidor DNS. Acredito que você clique com o botão direito do mouse no domínio no console DNS e selecione "Nova Delegação". Isso também pode ser feito com o comando dnscmd.

    
por 20.03.2013 / 00:33