Este documento describe la resolución inversa en DNS y cómo configurarla en BIND. Explica que la resolución inversa mapea direcciones IP a nombres de dominio, mientras que la resolución normal hace lo contrario. También cubre la creación de zonas de resolución inversa para espacios de direcciones públicos y privados, y cómo delegar zonas inversas para redes con máscaras de subred no clásicas usando CNAME o DNAME.
2. Resolución inversa
u Resolución normal DNS es directa:
u ¿Quién es www.36bootis.com?
u Por motivos de prueba, rendimiento y seguridad se añadió en su
diseño la resolución inversa:
u ¿Quién es 192.0.2.34?
u Utilizada como elemento de seguridad especialmente en correo
u Tiene que corresponder la consulta directa con la inversa
u Para establecer la resolución inversa y otros propósitos de
infraestructura técnica se estableció el dominio de primer nivel
ARPA
u ARPA=Advanced Research Project Agency -> ARPANET
2
3. El dominio ARPA para la resolución
inversa
u El dominio ARPA mantiene dos subdominios para gestionar la
resolución inversa:
u in-addr.arpa. para la resolución inversa de IPv4.
u IP6.arpa. para la resolución inversa de IPv6.
u Espacio público se gestiona por delegación al igual que las zonas
de resolución directa
u Espacios privados y especiales deben establecerse evitando la
difusión de las consultas inversas de estos espacios a Internet
u RFCs 1918, 3927, 5737 y 6598 para IPv4
u RFCs 3849, 4193 y 4291 para IPv6
3
4. Creación archivos de resolución
inversa en BIND9.9: Zonas especiales
u Zonas privadas y especiales:
u BIND viene preparado para alguna de las zonas especiales en
/etc/bind:
u Db.empty utilizada como plantilla para las zonas vacías
u db.0, db.127, db.255 y zones.rfc1918
u #INCLUDE en named.conf
u Las tres primeras añadidas por defecto mediante archivo
/etc/bind/named.conf.default-zones
u La última se recomienda añadirla en /etc/bind/named.conf.local
u Recomendable establecer junto al archivo zones.rfc1918 el resto de
dominios especiales
u O mediante la opción empty-zones-enable
u empty-zones-enable yes ;
4
5. Archivos de resolución inversa
privados y especiales
u Añadir direccionamientos
especiales y privados
u zones.rfc1918
u 100.64/10
u 169.254/16
u 192.0.2/24
u 198.51.100/24
u 203.0.113/24
u O establecer a yes la propiedad:
u empty-zones-enable
5
6. Archivos de resolución inversa
privados y especiales
u Añadir direccionamientos
especiales y privados
u zones.rfc1918
u 100.64/10
u 169.254/16
u 192.0.2/24
u 198.51.100/24
u 203.0.113/24
u O establecer a yes la propiedad:
u empty-zones-enable
6
7. Creación archivos de resolución
inversa en BIND9.9: Zonas públicas
u Resolución inversa zonas públicas:
u Parece complicada pero no lo es
u DNS sigue el árbol del espacio de nombres de derecha a izquierda
u En www.36bootis.com el recurso es www y el dominio más alto es COM
(Obviamos la raíz)
u En una dirección IP sucede al revés, en 176.28.103.205 el recurso es 205 y la
red en la que se encuentra 176.28.103/x por lo que se lee de izquierda a
derecha
u Para convertirlo a lenguaje DNS le damos la vuelta y le añadimos el
subdominio in-addr.arpa. en IPv4.
205.103.28.176.in-addr.arpa.
7
8. Creación archivos de resolución
inversa en BIND9.9
u Clases más comunes en la
resolución inversa son las clases C
u 192.0.2/24
u Comprende una dirección de red
(192.0.2.0), una de broadcast
(192.0.2.255) y 254 direcciones de
host (192.0.2.1 a 192.0.2.254)
u El dominio será un subdominio de in-
addr.arpa con la clase anotada de
derecha a izquierda:
u 2.0.192.in-addr.arpa.
u El RR es PTR cuyo objetivo siempre
tiene que ser un FQDN terminado en
punto
81.2.0.192.in-addr.arpa. = router.example.com.
9. Pregunta: ¿Por qué tenemos que
utilizar FQDN en el PTR?
u Resolución igual que en resolución directa
u If {
u $ORIGIN example.com.
u www IN A 192.0.2.10
9
10. Pregunta: ¿Por qué tenemos que
utilizar FQDN en el PTR?
u Resolución igual que en resolución directa
u If {
u $ORIGIN example.com.
u www IN A 192.0.2.10
u www.example.com.
10
11. Pregunta: ¿Por qué tenemos que
utilizar FQDN en el PTR?
u Resolución igual que en resolución directa
u If {
u $ORIGIN example.com.
u www IN A 192.0.2.10
u www.example.com.
u }
u Then {
u $ORIGIN 2.0.192.in-addr.arpa.
u 10 IN PTR www
11
12. Pregunta: ¿Por qué tenemos que
utilizar FQDN en el PTR?
u Resolución igual que en resolución directa
u If {
u $ORIGIN example.com.
u www IN A 192.0.2.10
u www.example.com.
u }
u Then {
u $ORIGIN 2.0.192.in-addr.arpa.
u 10 IN PTR www
u www.2.0.192.in-addr.arpa.
u }
12
13. Pregunta: ¿Por qué tenemos que
utilizar FQDN en el PTR?
u Resolución igual que en resolución directa
u If {
u $ORIGIN example.com.
u www IN A 192.0.2.10
u www.example.com.
u }
u Then {
u $ORIGIN 2.0.192.in-addr.arpa.
u 10 IN PTR www.example.com.
13
14. Pregunta: ¿Por qué tenemos que
utilizar FQDN en el PTR?
u Resolución igual que en resolución directa
u If {
u $ORIGIN example.com.
u www IN A 192.0.2.10
u www.example.com.
u }
u Then {
u $ORIGIN 2.0.192.in-addr.arpa.
u 10 IN PTR www.example.com.
u www.example.com
u }
14
15. Generación de PTRs la directiva
$GENERATE en BIND9.9
u $GENERATE para construir al vuelo el archivo de Resolución inversa
u Útil cuando queramos construir resoluciones inversas de clientes
dinámicos aunque vale para cualquier tipo de zona en BIND
u Sintaxis simple:
u $GENERATE start-stop [/iter ] $ RR-Type $
u $GENERATE 128-254 $ PTR $.example.com.
u 128 PTR 128.example.com.
u …
u 254 PTR 254.example.com.
15
18. Delegación de Zona inversa
u Igual que la subdelegación directa para las clases continuas
u Subdelegar clase C 176.28.1/24 desde clase superior 176.28/[<24]
u $ORIGIN 28.176.in-addr.arpa
u 1.28.176.in-addr.arpa IN NS [FQDN DE NSDELEGADO]
u Para clases discontinuas (classless RFC 2317)
u Si CIDR >=24 utilizando CNAME
u Si CIDR <24 utilizando DNAME
u Redes classfull (continua): la frontera de red está a nivel de octeto
u Redes 255.0.0.0, 255.255.0.0 y 255.255.255.0 = continuas
u 11111111.00000000.00000000.00000000
u Redes classless (discontinua): la frontera de red está a nivel de bit
u Redes 255.128.0.0 ó 255.255.255.224 = discontinuas
u 11111111.1000000.00000000.00000000
18
19. Delegación de Resolución inversa
classless con CNAME
u Utilizamos CNAME para redes CIDR >= 24
u Por el ISP se ha dividido 192.0.2 en bloques de CIDR 26 para obtener
4 redes:
u 192.0.2.0/26, 192.0.2.64/26, 192.0.2.128/26 y 192.0.2.192/26
u Queremos realizar resolución inversa del espacio de nombres
asignado192.0.2.64/26 dónde 192.0.2.64 es la red, 192.0.2.127 es la
dirección de broadcast y existen 62 hosts del 192.0.2.65 al
192.0.2.126
u La máscara de red en este caso es 255.255.255.192
19
20. Delegación de Resolución inversa
classless con CNAME
u Delegación se realiza así
u $ORIGIN 2.0.192.in-addr.arpa.
u 64/26 IN NS ns.example.com ;Señalamos el NS para la red asignada
u 65 IN CNAME 65.64/26.2.0.192.in-addr.arpa. ;FQDN completo
u 66 IN CNAME 66.64/26 ;objetivo no cualificado. En este caso resulta
válido
u …
u 126 IN CNAME 126.64/26
u 192.0.2.64 y 192.0.2.127 son direcciones de red y broadcast en este
caso por lo que no tienen que ser resueltos de forma inversa.
20
21. Delegación de Resolución inversa
classless con CNAME
u Delegación se realiza así
u $ORIGIN 2.0.192.in-addr.arpa.
u 64/26 IN NS ns.example.com ;Señalamos el NS para la red asignada
u 65 IN CNAME 65.64/26.2.0.192.in-addr.arpa. ;FQDN completo
u 66 IN CNAME 66.64/26 ;objetivo no cualificado. En este caso resulta
válido
u …
u 126 IN CNAME 126.64/26
u 192.0.2.64 y 192.0.2.127 son direcciones de red y broadcast en este
caso por lo que no tienen que ser resueltos de forma inversa.
21
22. Delegación de Resolución inversa
classless con CNAME
u Delegación se realiza así
u $ORIGIN 2.0.192.in-addr.arpa.
u 64/26 IN NS ns.example.com ;Señalamos el NS para la red asignada
u 65 IN CNAME 65.64/26.2.0.192.in-addr.arpa. ;FQDN completo
u 66 IN CNAME 66.64/26 ;objetivo no cualificado. En este caso resulta
válido
u …
u 126 IN CNAME 126.64/26
u 192.0.2.64 y 192.0.2.127 son direcciones de red y broadcast en este
caso por lo que no tienen que ser resueltos de forma inversa.
u El delegado proclama los PTR
22
23. Delegación de Resolución inversa
classless con CNAME
u Delegación se realiza así
u $ORIGIN 2.0.192.in-addr.arpa.
u 64/26 IN NS ns.example.com ;Señalamos el NS para la red asignada
u 65 IN CNAME 65.64/26.2.0.192.in-addr.arpa. ;FQDN completo
u 66 IN CNAME 66.64/26 ;objetivo no cualificado. En este caso resulta
válido
u …
u 126 IN CNAME 126.64/26
u 192.0.2.64 y 192.0.2.127 son direcciones de red y broadcast en este
caso por lo que no tienen que ser resueltos de forma inversa.
u El delegado proclama los PTR
23
24. Delegación de Resolución inversa
classless con CNAME
u Delegación se realiza así
u $ORIGIN 2.0.192.in-addr.arpa.
u 64/26 IN NS ns.example.com ;Señalamos el NS para la red asignada
u 65 IN CNAME 65.64/26.2.0.192.in-addr.arpa. ;FQDN completo
u 66 IN CNAME 66.64/26 ;objetivo no cualificado. En este caso resulta
válido
u …
u 126 IN CNAME 126.64/26
u 192.0.2.64 y 192.0.2.127 son direcciones de red y broadcast en este
caso por lo que no tienen que ser resueltos de forma inversa.
u El delegado proclama los PTR
24
25. Delegación de Resolución inversa
classless con DNAME
u Utilizamos DNAME para redes CIDR <24
u Podríamos utilizar CNAME pero el número de registros crecería
demasiado y resulta menos flexible
u Para un bloque 176.28 dividido en subredes de 20
u con DNAME 256 entradas que podemos manejar en16 líneas utilizando
$GENERATE
25
26. Delegación de Resolución inversa
classless con DNAME
u Utilizamos DNAME para redes CIDR <24
u Podríamos utilizar CNAME pero el número de registros crecería
demasiado y resulta menos flexible
u Para un bloque 176.28 dividido en subredes de 20
u con DNAME 256 entradas que podemos manejar en16 líneas utilizando
$GENERATE
26
27. Delegación de Resolución inversa
classless con DNAME
u Utilizamos DNAME para redes CIDR <24
u Podríamos utilizar CNAME pero el número de registros crecería
demasiado y resulta menos flexible
u Para un bloque 176.28 dividido en subredes de 20
u con DNAME 256 entradas que podemos manejar en16 líneas utilizando
$GENERATE
u con CNAME 65536 entradas que podemos manejar en 256 líneas
utilizando $GENERATE
27
28. Delegación de Resolución inversa
classless con DNAME
u Utilizamos DNAME para redes CIDR <24
u Podríamos utilizar CNAME pero el número de registros crecería
demasiado y resulta menos flexible
u Para un bloque 176.28 dividido en subredes de 20
u con DNAME 256 entradas que podemos manejar en16 líneas utilizando
$GENERATE
u con CNAME 65536 entradas que podemos manejar en 256 líneas
utilizando $GENERATE
28
29. Delegación de Resolución inversa
classless con DNAME
u Delegación
u $ORIGIN 28.176.in-addr.arpa.
u Se proclaman las 16 redes con formato [subred]/20
u 128/20 IN NS ns.example.com ;Señalamos el NS para el bloque
asignado
u 0 IN DNAME 0.128/20.28.176.in-addr.arpa. ;FQDN completo
u 1 IN DNAME 1.128/20 ;objetivo no cualificado. En este caso resulta
válido
u …
u 143 IN DNAME 143.128/20
29
30. Delegación de Resolución inversa
classless con DNAME
u Delegación
u $ORIGIN 28.176.in-addr.arpa.
u Se proclaman las 16 redes con formato [subred]/20
u 128/20 IN NS ns.example.com ;Señalamos el NS para el bloque
asignado
u 0 IN DNAME 0.128/20.28.176.in-addr.arpa. ;FQDN completo
u 1 IN DNAME 1.128/20 ;objetivo no cualificado. En este caso resulta
válido
u …
u 143 IN DNAME 143.128/20
30
31. Delegación de Resolución inversa
classless con DNAME
u Delegación
u $ORIGIN 28.176.in-addr.arpa.
u 128/20 IN NS ns.example.com ;Señalamos el NS para el bloque
asignado
u 0 IN DNAME 0.128/20.28.176.in-addr.arpa. ;FQDN completo
u 1 IN DNAME 1.128/20 ;objetivo no cualificado. En este caso resulta
válido
u …
u 143 IN DNAME 143.128/20
u El delegado proclamará los PTR en su zona
31
32. Delegación de Resolución inversa
classless con DNAME
u Delegación
u $ORIGIN 28.176.in-addr.arpa.
u 128/20 IN NS ns.example.com ;Señalamos el NS para el bloque
asignado
u 0 IN DNAME 0.128/20.28.176.in-addr.arpa. ;FQDN completo
u 1 IN DNAME 1.128/20 ;objetivo no cualificado. En este caso resulta
válido
u …
u 143 IN DNAME 143.128/20
u El delegado proclamará los PTR en su zona
32
33. Delegación de Resolución inversa
classless con DNAME
u Delegación
u $ORIGIN 28.176.in-addr.arpa.
u 128/20 IN NS ns.example.com ;Señalamos el NS para el bloque
asignado
u 0 IN DNAME 0.128/20.28.176.in-addr.arpa. ;FQDN completo
u 1 IN DNAME 1.128/20 ;objetivo no cualificado. En este caso resulta
válido
u …
u 143 IN DNAME 143.128/20
u El delegado proclamará los PTR en su zona
33
34. Delegación de Resolución inversa
classless con DNAME
u Delegación
u $ORIGIN 28.176.in-addr.arpa.
u 128/20 IN NS ns.example.com ;Señalamos el NS para el bloque
asignado
u 0 IN DNAME 0.128/20.28.176.in-addr.arpa. ;FQDN completo
u 1 IN DNAME 1.128/20 ;objetivo no cualificado. En este caso resulta
válido
u …
u 143 IN DNAME 143.128/20
u El delegado proclamará los PTR en su zona
u En la delegación puedo mezclar redes de distintos tamaños
34
35. Delegación de Resolución inversa
classless con DNAME
u Delegación
u $ORIGIN 28.176.in-addr.arpa.
u 128/20 IN NS ns.example.com ;Señalamos el NS para el bloque
asignado
u 0 IN DNAME 0.128/20.28.176.in-addr.arpa. ;FQDN completo
u 1 IN DNAME 1.128/20 ;objetivo no cualificado. En este caso resulta
válido
u …
u 143 IN DNAME 143.128/20
u El delegado proclamará los PTR en su zona
u En la delegación puedo mezclar redes de distintos tamaños
35