Búsqueda inversa
La búsqueda inversa (reverse looking) o mapeado inverso (reverse mapping), consiste en obtener el nombre FQDN a partir de una IP particular. Esto es necesario para tareas de diagnóstico o muy frecuentemente hoy en día, para rastrear a un hacker o a un spammer.
Para llevar a cabo las búsquedas inversas utilizando para ello consultas recursivas o iterativas, se creó el dominio especial .IN-ADDR.ARPA (puede escribirse en minúscula, pues ya sabemos que los nombres de dominio no distinguen entre mayúsculas y minúsculas) para IPv4 y IP6.ARPA para IPv6. Este dominio es una muy buena idea para resolver el problema utilizando lo que ya existe.
Ya sabemos que los nombres de dominio normales tienen una estructura jerárquica que se lee de derecha a izquierda comenzando por el nodo raíz, por ejemplo:
www.asir.com.
pero lo habitual es no escribir el nodo raíz aunque sabemos que está ahí, por lo que el nombre de dominio FQDN se escribe así:
www.asir.com
El nodo más alto de la jerarquía es el raíz ( . ), le sigue en la jerarquía el TLD .com, a continuación va el SLD, y por último, en este ejemplo, va www que es el nombre del equipo y está definido en el fichero de zona del dominio .asir.com. Si lo que buscamos es usar una IP en una consulta normal (recursiva o iterativa) en vez de un nombre FQDN, tenemos que transformar la IP en nombre FQDN, y para esto lo que se va a hacer es invertir el orden de la dirección IP y construir la jerarquía utilizando el SLD .IN-ADDR y el TLD .ARPA, creados exclusivamente para las búsquedas recursivas.
El motivo de invertir la IP es porque al ser también una estructura jerárquica, red-host, está escrita al revés que un FQDN, es decir, la parte más importante, la red, está a la izquierda, y la parte secundaria, el host, está a la derecha; si le damos la vuelta, se integra en una estructura jerárquica de mayor (derecha) a menor (izquierda).
La siguiente imagen muestra la estructura jerárquica de los nombres de dominio de Internet:
Con todo esto, con una IP 192.168.1.12/24 crearíamos el nombre de dominio .1.168.192.IN-ADDR.ARPA y 12 sería un host dentro de ese dominio.
El dominio .1.168.192.IN-ADDR.ARPA, como todos los dominios, se describirá a través de un fichero de zona, solo que estos ficheros de zona, para búsqueda inversa (IP → nombre), usan el RR PTR y no el RR A, que es usado para la búsqueda directa (nombre → IP). Dicho fichero de zona podría tener el siguiente aspecto:
$TTL 2d
$ORIGIN 1.168.192.IN-ADDR.ARPA.
@ IN SOA ns1.asir.com. hostmaster.asir.com. (
2003080800 ; sn = serial number
12h ; refresh
15m ; retry
3w ; expiry
2h ; nxdomain ttl
)
IN NS ns1.asir.com.
IN NS ns2.asir.net.
...
2 IN PTR ns1.asir.com.
...
4 IN PTR mail.asir.com.
...
12 IN PTR www.asir.com.
13 IN PTR ftp.asir.com.
...
Vemos que con el fichero de zona anterior, a la dirección 192.168.1.12 le corresponde el nombre www.asir.com.
El RR PTR se utiliza para especificar el nombre que le corresponde a una IP; se puede ver como el RR contrario al A. En la parte inicial se escribe el número del host y en la parte final el nombre del host. Ambas partes se sustituyen por $ORIGIN, por ese motivo la primera no acaba en punto y la segunda sí.
Una descripción de un dominio quedará completo con dos ficheros de zona, uno para las búsquedas directas y otro para las búsquedas inversas.
Licencia: licencia de software libre GPL