DNS reverso em um mundo CIDR


24

O DNS reverso parece estar fortemente vinculado aos limites de classe. Quais métodos existem agora que o CIDR é o padrão para delegar autoridade para uma sub-rede? Se existem vários métodos, qual é o melhor? Você precisa lidar com a delegação de maneira diferente, dependendo do servidor DNS (Bind, djbdns, DNS da Microsoft, outro)? Digamos que eu tenha controle de uma rede que é uma Classe B 168.192.in-addr.arpa, forneça exemplos para:

  • Como delegar autoridade para um / 22?
  • Como delegar autoridade para um / 25?

Respostas:


31

Delegar um / 22 é fácil, é delegação dos 4 / 24s. A / 14 é delegação dos 4 / 16s, etc.

O RFC2317 cobre os casos especiais com uma máscara de rede maior que / 24. Basicamente, não há uma maneira super limpa de delegar zonas in-addr.arpa em nada além dos limites do octeto, mas você pode contornar isso. Digamos que eu queira delegar 172.16.23.16/29, que seriam os endereços IP 172.16.23.16 -> 172.16.23.23.

Como proprietário da zona 23.16.172.in-addr.arpa, eu poderia colocar isso no meu arquivo de zona 23.16.172.rev para delegar esse intervalo ao meu cliente:

16-29              IN NS  ns1.customer.com
16-29              IN NS  ns2.customer.com
16                 IN CNAME    16.16-29.23.16.172.in-addr.arpa.
17                 IN CNAME    17.16-29.23.16.172.in-addr.arpa.
18                 IN CNAME    18.16-29.23.16.172.in-addr.arpa.
19                 IN CNAME    19.16-29.23.16.172.in-addr.arpa.
20                 IN CNAME    20.16-29.23.16.172.in-addr.arpa.
21                 IN CNAME    21.16-29.23.16.172.in-addr.arpa.
22                 IN CNAME    22.16-29.23.16.172.in-addr.arpa.
23                 IN CNAME    23.16-29.23.16.172.in-addr.arpa.

Portanto, você pode ver que estou definindo uma nova zona (16-29.23.16.172.in-addr.arpa.) E delegando-a nos servidores de nomes dos meus clientes. Então, estou criando CNAMEs a partir dos IPs para serem delegados ao número correspondente na zona recém-delegada.

Como cliente ao qual estes foram delegados, eu faria algo como o seguinte em named.conf:

zone "16-29.23.16.172.in-addr.arpa" { 
    type master;
    file "masters/16-29.23.16.172.rev";
};

E então, no arquivo .rev, eu faria apenas PTRs como qualquer zona in-addr.arpa normal:

17                 IN PTR office.customer.com.
18                 IN PTR www.customer.com.
(etc)

Essa é a maneira mais limpa de fazê-lo e deixa o cliente mais experiente feliz porque eles têm uma zona in-addr.arpa para inserir os PTRs, etc. Uma maneira mais curta de fazer isso para o cliente que deseja controlar o DNS reverso, mas não O desejo de configurar uma zona inteira é apenas CNAME registro individual para nomes semelhantes em sua zona principal.

Nesse caso, nós, como delegadores, teríamos algo parecido com isso em nosso arquivo 23.16.172.rev:

16                 IN CNAME    16.customer.com.
17                 IN CNAME    17.customer.com.
18                 IN CNAME    18.customer.com.
19                 IN CNAME    19.customer.com.
20                 IN CNAME    20.customer.com.
21                 IN CNAME    21.customer.com.
22                 IN CNAME    22.customer.com.
23                 IN CNAME    23.customer.com.

Portanto, é semelhante em conceito à outra idéia, mas, em vez de criar uma nova zona e delegá-la ao cliente, você está CNAME atribuindo os registros aos nomes na zona principal já existente do cliente.

O cliente teria algo parecido com isso em seu arquivo de zona customer.com:

office             IN A   172.16.23.17
17                 IN PTR office.customer.com.
www                IN A   172.16.23.18
18                 IN PTR www.customer.com.
(etc)

Depende apenas do tipo de cliente. Como eu disse, isso depende apenas do tipo de cliente. Um cliente experiente prefere configurar sua própria zona in-addr.arpa e acha muito estranho ter PTRs em uma zona de nome de domínio. Um cliente não experiente deseja que ele "apenas funcione" sem ter que fazer uma tonelada de configuração extra.

Provavelmente existem outros métodos, apenas detalhando os dois com os quais estou familiarizado.


Eu estava pensando sobre minha afirmação sobre como / 22 e / 14 são fáceis e pensando sobre por que isso é verdade, mas qualquer coisa entre 25 e 32 é difícil. Não testei isso, mas perambulo se você puder delegar todo o / 32 ao cliente desta maneira:

16                 IN NS ns1.customer.com.
17                 IN NS ns1.customer.com.
(etc)

Então, no lado do cliente, você captura o / 32 inteiro:

zone "16.23.16.172.in-addr.arpa" { type master; file "masters/16.23.16.172.rev"; };
zone "17.23.16.172.in-addr.arpa" { type master; file "masters/17.23.16.172.rev"; };
(etc)

E então, no arquivo individual, você teria algo assim:

@            IN PTR office.customer.com.

A desvantagem óbvia é que um arquivo por / 32 é meio bruto. Mas aposto que funcionaria.

Todas as coisas que mencionei são DNS puro, se algum servidor DNS não o deixou, é porque está restringindo toda a funcionalidade do DNS. Meus exemplos estão obviamente usando o BIND, mas fizemos isso do lado do cliente usando o Windows DNS e o BIND. Não vejo uma razão para não funcionar com nenhum servidor.


1
Você provavelmente está pensando em RFC2317 ( tools.ietf.org/html/rfc2317 )
Zoredache


0

O BIND possui a macro $ GENERATE proprietária para criar sequências de registros PTR, mas também assume um mundo de classe e não será muito útil para você. Não conheço outros servidores que tenham suporte especial para as zonas reversas do CIDR, embora eu suspeite que exista demanda por isso!

O PowerDNS possui uma ótima interface de back-end que permite que você escreva sua própria se o problema for grande o suficiente para fazer valer a pena o esforço. Você também pode criar um protótipo usando o "PipeBackend". Você pode até fazer algumas coisas mágicas em SQL através das interfaces MySQL / PostgreSQL - especialmente porque o Postgres possui um tipo de dados "cidr".


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.