Invertir DNS en un mundo CIDR

24

El DNS inverso parece estar fuertemente vinculado a los límites de clase, ¿qué métodos existen ahora que CIDR es el estándar para delegar autoridad para una subred? Si existen varios métodos, ¿cuál es el mejor? ¿Necesita manejar la delegación de manera diferente dependiendo del servidor DNS (Bind, djbdns, Microsoft DNS, otro)? Digamos que tengo el control de una red que es una Clase B 168.192.in-addr.arpa, proporcione ejemplos para:

  • ¿Cómo delegar autoridad para un / 22?
  • ¿Cómo delegar autoridad para un / 25?
Zoredache
fuente

Respuestas:

31

Delegar un / 22 es fácil, es una delegación de los 4/24. A / 14 es delegación de los 4 / 16s, etc.

RFC2317 cubre los casos especiales con una máscara de red más larga que / 24. Básicamente, no hay una forma súper limpia de delegar zonas de inaddr.arpa en cualquier cosa que no sean límites de octetos, pero puede solucionar esto. Digamos que quiero delegar 172.16.23.16/29, que serían las direcciones IP 172.16.23.16 -> 172.16.23.23.

Como propietario de la zona 23.16.172.in-addr.arpa, podría poner esto en mi archivo de zona 23.16.172.rev para delegar este rango a mi 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.

Entonces, puede ver que estoy definiendo una nueva zona (16-29.23.16.172.in-addr.arpa.) Y delegándola en los servidores de nombres de mis clientes. Luego estoy creando CNAME a partir de las IP para delegarlas al número correspondiente en la zona recién delegada.

Como cliente al que se le han delegado estos, haría algo como lo siguiente en named.conf:

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

Y luego, en el archivo .rev, simplemente haría PTR como cualquier zona normal inaddr.arpa:

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

Esa es una manera limpia de hacerlo y hace felices a los clientes inteligentes porque tienen una zona de intr.r.arpa para colocar los PTR, etc. Una forma más corta de hacerlo para los clientes que desean controlar el DNS inverso pero no lo hacen ' Desear configurar una zona completa es simplemente CNAME el registro individual con nombres similares en su zona principal.

En este caso, nosotros, como delegadores, tendríamos algo como esto en nuestro archivo 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.

Por lo tanto, es similar en concepto a la otra idea, pero en lugar de crear una nueva zona y delegarla al cliente, está CNAME enviando los registros a nombres en la zona principal ya existente del cliente.

El cliente tendría algo como esto en su archivo 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)

Solo depende del tipo de cliente. Como dije, solo depende del tipo de cliente. Un cliente inteligente preferirá configurar su propia zona inaddr.arpa y considerará muy extraño tener PTR en una zona de nombre de dominio. Un cliente no experto querrá que "simplemente funcione" sin tener que hacer una tonelada de configuración adicional.

Probablemente hay otros métodos, simplemente detallando los dos con los que estoy familiarizado.


Estaba pensando en mi afirmación sobre cómo / 22 y / 14 son fáciles y pensando por qué es cierto, pero cualquier cosa entre 25 y 32 es difícil. No he probado esto, pero me pregunto si podría delegar todo el / 32 al cliente de esta manera:

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

Luego, en el lado del cliente, capturas todo / 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)

Y luego, en el archivo individual, tendría algo como esto:

@            IN PTR office.customer.com.

La desventaja obvia es que un archivo por / 32 es un poco asqueroso. Pero apuesto a que funcionaría.

Todo lo que mencioné es DNS puro, si algún servidor DNS no te permitió hacerlo es porque está restringiendo la funcionalidad completa de DNS. Mis ejemplos obviamente están usando BIND, pero hemos hecho el lado del cliente de esto usando Windows DNS y BIND. No veo una razón por la que no funcionaría con ningún servidor.

jj33
fuente
1
Probablemente esté pensando en rfc2317 ( tools.ietf.org/html/rfc2317 )
Zoredache
0

BIND tiene la macro patentada $ GENERATE para crear secuencias de registros PTR, pero también asume un mundo con clase y no será muy útil para usted. No conozco ningún otro servidor que tenga soporte especial para las zonas inversas CIDR, ¡aunque sospecho que hay demanda para ello!

PowerDNS tiene una interfaz de back-end agradable que le permitiría escribir la suya si el problema es lo suficientemente grande como para que valga la pena el esfuerzo. También puede crear un prototipo con el "PipeBackend". Incluso podría hacer algunas cosas mágicas de SQL a través de las interfaces MySQL / PostgreSQL, especialmente porque Postgres tiene un tipo de datos "cidr".

Gavin Brown
fuente