Split DNS - A solução mais limpa para facilitar a manutenção?

3

Nós dividimos o DNS configurado para nosso domínio, o que faz com que clientes internos resolvam diferentes registros DNS de clientes externos.

Como agora, as duas zonas são gerenciadas completamente separadamente. Para registros que diferem entre internos e externos, não há problema, mas para todo o resto, todos os registros precisam ser duplicados em ambos os lugares. A maioria dos registros CNAME, registros MX, registros SPF e alguns registros A precisam ser inseridos e mantidos em ambos os locais.

Embora isso não seja inerentemente inaceitável, a duplicação de dados como essa é menos do que ideal do ponto de vista do design. Sinto que, idealmente, o servidor de nomes interno simplesmente enviaria os resultados do servidor de nomes externo, mas permitiria que substituíssemos ou adicionássemos registros adicionais. Embora pareça que eu poderia usar um encaminhador designado (como dnsmasq ) para fazer algo assim, a configuração do arquivo simples tornaria difícil vender a ideia para o resto da equipe.

Além disso, a melhor solução que consegui criar consiste em PowerDNS com um backend do MySQL e uma interface web . Isso torna bastante fácil adicionar uma zona e um registro root para cada subdomínio que gostaríamos de substituir (por exemplo, www.example.com), o que significa outros registros no domínio raiz (por exemplo, example.com) ainda será encaminhado pelo servidor de nomes externo.

Isso ainda parece que estou me afastando da norma de algo que é supostamente muito comum, certo? Existe uma maneira mais limpa de gerenciar o DNS dividido sem manter registros duplicados? Ou há algo que me falta?

    
por Moduspwnens 27.10.2011 / 06:14

2 respostas

2

Em uma rede em que um dos servidores de nomes oficiais fica na borda da rede interna, eu uso bind views e a $INCLUDE directive:

mydomain-global.zone :

@ IN SOA ns1 hostmaster ( 12345; 1D; 2M; 1M; 3H )
  IN NS ns1
  IN NS ns2

  IN MX 10 mail

  www               IN A 1.2.3.4
  other-public-host IN A 1.2.3.5

mydomain-internal.zone :

$INCLUDE mydomain-global.zone

an-internal-record IN A   10.20.30.40
_kerberos          IN SRV 0 0 88 dir

As zonas são escolhidas com base nas definições de exibição:

view "internal" {
  match-clients { 10.0.0.0/8; };
  zone "mydomain" {
    type master;
    file "mydomain-internal.zone";
  };
  include "named.conf.internalzones";
}

view "global" {
  match-clients { any; };
    zone "mydomain" {
    type master;
    file "mydomain-global.zone";
  };

Para poder atribuir um registro a destinos diferentes para consultas internas / externas, adicione mais dois fragmentos de zona e $INCLUDE na parte inferior de mydomain-(internal|global).zone .

    
por 27.10.2011 / 10:24
0

O fato de que as zonas devem ter um único ponto de administração autoritativo é inerente à maneira como o DNS funciona; há poucas chances de isso mudar tão cedo.

A melhor maneira (e oficial) de automatizar isso é com ddns e nsupdate. O DDNS tem um formato definido e pode ser protegido e roteirizado de qualquer maneira que você precisar.

    
por 27.10.2011 / 09:33