Saltar la navegación

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:

Estructura jerárquica 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