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.
Sim, a RFC 2317 , uma leitura muito boa, é o caminho a percorrer.
Além disso, meu artigo (em francês).
fonte
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".
fonte
http://aa.net.uk/kb-domains-reversedns.html (aproximadamente na metade do caminho) explica como meu ISP faz seu DNS reverso. Suspeito que de qualquer maneira que você faça isso será feio como o inferno.
fonte