DNS inverso in un mondo CIDR


24

Il DNS inverso sembra essere fortemente legato ai confini della classe, quali metodi esistono ora che CIDR è lo standard per delegare l'autorità per una sottorete? Se esistono più metodi qual è il migliore? È necessario gestire la delega in modo diverso a seconda del server DNS (Bind, djbdns, Microsoft DNS, altro)? Supponiamo che io abbia il controllo di una rete di classe B 168.192.in-addr.arpa, fornisci esempi per:

  • Come delegare l'autorità per un / 22?
  • Come delegare l'autorità per un / 25?

Risposte:


31

Delegare un a / 22 è facile, è una delega dei 4/24. A / 14 è una delegazione dei 4/16, ecc.

RFC2317 copre i casi speciali con una maschera di rete più lunga di / 24. Fondamentalmente non esiste un modo super pulito per delegare le zone in-addr.arpa su qualsiasi cosa tranne i limiti degli ottetti, ma puoi aggirare questo. Diciamo che voglio delegare 172.16.23.16/29, che sarebbero gli indirizzi IP 172.16.23.16 -> 172.16.23.23.

Come proprietario della zona 23.16.172.in-addr.arpa, potrei inserirlo nel mio file di zona 23.16.172.rev per delegare questo intervallo al mio 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.

Quindi, puoi vedere che sto definendo una nuova zona (16-29.23.16.172.in-addr.arpa.) E delegandola ai server dei nomi dei miei clienti. Quindi sto creando CNAME dagli IP da delegare al numero corrispondente nella nuova zona delegata.

Come cliente a cui sono stati delegati questi, farei qualcosa di simile in named.conf:

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

E poi nel file .rev, farei semplicemente i PTR come qualsiasi normale zona in-addr.arpa:

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

Questo è un modo semplice per farlo e rende felici i clienti esperti perché hanno una zona in-addr.arpa in cui inserire i PTR, ecc. Un modo più breve per farlo per i clienti che vogliono controllare il DNS inverso ma non ' Voglio impostare un'intera zona è solo CNAME record individuale con nomi simili nella loro zona principale.

In questo caso, come delegati, avremmo qualcosa di simile nel nostro file 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.

Quindi è simile nel concetto all'altra idea, ma invece di creare una nuova zona e delegarla al cliente, stai CNAMEing i record per i nomi nella zona principale già esistente del cliente.

Il cliente avrebbe qualcosa del genere nel suo file di 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)

Dipende solo dal tipo di cliente. Come ho detto, dipende solo dal tipo di cliente. Un cliente esperto preferirà impostare la propria zona in-addr.arpa e riterrà molto strano avere PTR in una zona nome dominio. Un cliente non esperto vorrà che "funzioni" senza dover apportare ulteriori configurazioni.

Probabilmente ci sono altri metodi, in dettaglio solo i due con cui ho familiarità.


Stavo solo pensando alla mia affermazione su come / 22 e / 14 sono facili e sto pensando al perché sia ​​vero, ma qualsiasi cosa tra 25 e 32 è difficile. Non l'ho provato, ma mi chiedo se tu possa delegare l'intero / 32 al cliente in questo modo:

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

Quindi, dal lato cliente, prendi l'intero / 32:

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 poi nel singolo file avresti qualcosa del genere:

@            IN PTR office.customer.com.

L'ovvio aspetto negativo è che un file per / 32 è piuttosto grossolano. Ma scommetto che funzionerebbe.

Tutto ciò che ho citato è DNS puro, se un server DNS non ti ha permesso di farlo è perché sta limitando la piena funzionalità del DNS. I miei esempi stanno ovviamente usando BIND, ma ne abbiamo fatto il lato cliente usando Windows DNS e BIND. Non vedo un motivo per cui non funzionerebbe con nessun server.


1
Probabilmente stai pensando a rfc2317 ( tools.ietf.org/html/rfc2317 )
Zoredache,


0

BIND ha la macro proprietaria $ GENERATE per la creazione di sequenze di record PTR, ma assume anche un mondo di classe e non ti sarà molto utile. Non conosco altri server che hanno un supporto speciale per le zone inverse CIDR, anche se sospetto che ce ne sia richiesta!

PowerDNS ha una bella interfaccia back-end che ti consente di scrivere da solo se il problema è abbastanza grande da renderlo utile. Puoi anche prototipare usando "PipeBackend". Potresti persino fare alcune cose magiche su SQL tramite le interfacce MySQL / PostgreSQL, specialmente perché Postgres ha un tipo di dati "cidr".


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.