Se planteó la necesidad de delegar la resolución de los registros inversos de un pequeño rango de direcciones IP's (un /28 o sea 16 direcciones) dentro de un rango mayor (un /24 o sea 256 direcciones).
Para hacerlo vamos a configurar la zona dentro del servidor que utilizaremos como DNS corriendo el Software Libre llamado BIND9 creado por la ISC.
Vamos a tener los siguientes elementos (ficticios) para poder diferenciar los distintos propósitos de cada uno:
-> midominiodementira.net (nombre de dominio de la red)
-> nsX.midnsdementira.net (nombre del NS del nombre de dominio de la red)
-> nsX.midns-secundario-dementira.net (nombre del NS secundario a utilizar)
-> midominio-secundario-dementira.net (nombre de dominio secundario)
Comenzamos entonces creando y editando el archivo de configuración de la zona
del rango /24 en cuestión (192.168.10.0/24), al cual llamaremos "named.192.168.10.zone".
$ORIGIN .
$TTL 86400 ; 1 day
10.168.192.in-addr.arpa IN SOA midominiodementira.net. bohf.midominiodementira.net. (
2009112001 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
3600 ; minimum (1 hour)
)
NS ns1.midnsdementira.net.
NS ns2.midnsdementira.net.
;; Comienza generacion de rango sobre el cual tenemos autoridad
;;
$ORIGIN 192.108.200.in-addr.arpa.
$GENERATE 0-223 $ PTR $.10.168.192.midominiodementira.net.
;; Comienza la delegacion de los PTR a los nuevos NS autoritativos para el
;; rango /28 en este ejemplo, que va desde 192.168.10.224 hasta 192.168.10.239 (15 hosts)
;;
224-28 IN NS ns1.midns-secundario-dementira.net.
224-28 IN NS ns2.midns-secundario-dementira.net.
$GENERATE 224-239 $ IN CNAME $.224-28.10.168.192.in-addr.arpa.
;; Se continua el rango sobre el cual tenemos autoridad
$GENERATE 240-255 $ IN PTR $.10.168.192.midominiodementira.net.
Con esto indicamos que cuando se haga una solicitud de registro inverso que va desde el 0 al 223 o desde el 240 al 255, el nombre de dominio que va a responder va a ser de la forma $numero.10.168.192.midominiodementira.net.
El cambio interesante es lo que se hace con el pequeño rango /28 configurado dentro de este /24, donde lo que hacemos es crear registros CNAME's para redireccionar esa consulta hacia los NS indicados, en este caso son ns1.midns-secundario-dementira.net y ns2.midns-secundario-dementira.net.
Al crear la redirección el registro indica que la zona que contega el valor "224-28" tiene los recién mensionados NS como autoritativos, por lo cual va a ir a buscar el registro dentro de esos NS.
Para que el sistema vea la nueva zona, debemos darla de alta dentro del archivo "named.conf" que guarda la configuración del servicio, dentro colocamos lo siguiente (notar que el nombre del archivo es el mismo):
zone "224-28.10.168.192.in-addr.arpa" {
type master;
file "static/named.192.168.10.zone";
};
zone "10.168.192.in-addr.arpa" {
type master;
file "static/named.192.168.10.zone";
};
# Comparamos las consultas, una al rango sobre el que somos autoritativos
a la ip 192.168.10.2 y la segunda a una dirección del rango delegado 192.168.10.
##
# Primera consulta
##
$ dig -x 192.168.10.2
; <<>> DiG 9.3.4-P1 <<>> -x 192.168.10.2
[...]
;; QUESTION SECTION:
;2.10.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
2.10.168.192.in-addr.arpa. 86400 IN PTR 2.10.168.192.midominiodementira.net.
[...]
##
# Segunda consulta
##
$ dig -x 192.168.10.225
; <<>> DiG 9.3.4-P1 <<>> -x 192.168.10.225
[...]
;; QUESTION SECTION:
;225.10.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
225.10.168.192.in-addr.arpa. 86400 IN CNAME 225.224-28.10.168.192.in-addr.arpa.
225.224-28.10.168.192.in-addr.arpa. 86400 IN PTR 225.10.168.192.midominio-secundario-dementira.net.
[...]
Es bastante interesante como se logra hacer funcionar, dado que más que un "feature" del modo en el que el servicio funciona o el sistema está diseñado y comprendido en la respectiva RFC se trata de un verdadero "workaround", que crea una zona de nombre "224-28" cuya autoridad emana de un servidor ajeno a nuestra red.
Espero que les sea de utilidad,
salu2
h0cin