En las redes informáticas , una búsqueda DNS inversa o resolución DNS inversa ( rDNS ) es la técnica de consulta del Sistema de nombres de dominio (DNS) para determinar el nombre de dominio asociado a una dirección IP , lo contrario de la búsqueda DNS "directa" habitual de una dirección IP a partir de un nombre de dominio. [1] El proceso de resolución inversa de una dirección IP utiliza registros PTR . rDNS implica buscar en el registro de nombres de dominio y en las tablas de registradores. La base de datos DNS inversa de Internet tiene su raíz en el dominio de nivel superior .arpa .
Aunque el RFC 1912 informativo (Sección 2.1) recomienda que "cada host accesible a través de Internet debe tener un nombre" y que "para cada dirección IP debe haber un registro PTR coincidente", no es un requisito del Estándar de Internet y no todas las direcciones IP tienen una entrada inversa.
La moderna "búsqueda DNS inversa" no debe confundirse con el mecanismo de "consulta inversa" (IQUERY) ahora obsoleto especificado en RFC 1035:
Las consultas inversas toman la forma de un solo registro de recursos (RR) en la sección de respuesta del mensaje, con una sección de preguntas vacía. El nombre del propietario del RR de consulta y su tiempo de vida (TTL) no son significativos. La respuesta incluye preguntas en la sección de preguntas que identifican todos los nombres que poseen el RR de consulta que el servidor de nombres conoce . Dado que ningún servidor de nombres conoce todo el espacio de nombres del dominio, nunca se puede asumir que la respuesta esté completa. Por lo tanto, las consultas inversas son principalmente útiles para la gestión de bases de datos y las actividades de depuración. Las consultas inversas no son un método aceptable para asignar direcciones de host a nombres de host; utilice el
in-addr.arpa
dominio en su lugar. [2]
El tipo de mensaje IQUERY siempre fue "opcional" [2] y "nunca alcanzó un uso generalizado"; [3] fue "retirado permanentemente" [3] en 2002 con la adopción de RFC 3425.
Las búsquedas DNS inversas para direcciones IPv4 utilizan el dominio especial in-addr.arpa
. En este dominio, una dirección IPv4 se representa como una secuencia concatenada de cuatro números decimales, separados por puntos, a los que se añade el sufijo de dominio de segundo nivel .in-addr.arpa
. Los cuatro números decimales se obtienen dividiendo la dirección IPv4 de 32 bits en cuatro octetos y convirtiendo cada octeto en un número decimal. Estos números decimales se concatenan luego en el orden: octeto menos significativo primero (más a la izquierda), hasta octeto más significativo último (más a la derecha). Es importante tener en cuenta que este es el orden inverso a la convención decimal con puntos habitual para escribir direcciones IPv4 en formato de texto.
Por ejemplo, para realizar una búsqueda inversa de la dirección IP 8.8.4.4,4.4.8.8.in-addr.arpa
se buscaría el registro PTR del nombre de dominio y se descubriría que apunta a dns.google
.
Si el registro A dns.google
a su vez apuntara a 8.8.4.4 , entonces se diría que está confirmado hacia adelante .
Históricamente, los registros de Internet y los proveedores de servicios de Internet asignaban direcciones IP en bloques de 256 (para la clase C) o bloques más grandes basados en octetos para las clases B y A. Por definición, cada bloque recaía sobre un límite de octeto. La estructura del dominio DNS inverso se basaba en esta definición. Sin embargo, con la introducción del enrutamiento entre dominios sin clases , las direcciones IP se asignaron en bloques mucho más pequeños y, por lo tanto, el diseño original de los registros de puntero era poco práctico, ya que no se podía garantizar la autonomía de administración de bloques más pequeños. El RFC 2317 ideó una metodología para abordar este problema mediante el uso de registros CNAME .
Las búsquedas DNS inversas para direcciones IPv6ip6.arpa
utilizan el dominio especial (anteriormente ip6.int
[4] ). Una dirección IPv6 aparece como un nombre en este dominio como una secuencia de nibbles en orden inverso, representados como dígitos hexadecimales como subdominios. Por ejemplo, el nombre de dominio de puntero correspondiente a la dirección IPv6 2001:db8::567:89ab es b.a.9.8.7.6.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa
.
Si bien la mayoría de las entradas de rDNS solo tienen un registro PTR, DNS no restringe la cantidad. Se utilizan varios registros PTR, por ejemplo, cuando un servidor web admite muchos hosts virtuales , es decir, varios nombres de host se resuelven en una sola dirección y se devolverán varios nombres de host para una búsqueda PTR de esa dirección compartida. Sin embargo, las búsquedas DNS generalmente se realizan a través de UDP y, dado que UDP tiene un tamaño de mensaje limitado, en casos extremos, varios PTR podrían hacer que una respuesta DNS exceda esos límites UDP.
También pueden aparecer en el árbol DNS inverso otros tipos de registros distintos de los registros PTR. Por ejemplo, se pueden colocar allí claves de cifrado para IPsec , SSH e IKE . El descubrimiento de servicios basado en DNS utiliza registros con nombres especiales en el árbol DNS inverso para proporcionar pistas a los clientes sobre los dominios de descubrimiento de servicios específicos de la subred. [5] Los usos menos estandarizados incluyen comentarios colocados en registros TXT y registros LOC para identificar la ubicación geofísica de una dirección IP.
Los usos más comunes del DNS inverso incluyen:
Una búsqueda DNS inversa es una consulta DNS para el nombre de dominio asociado con una dirección IP determinada. Esto logra lo opuesto de la búsqueda DNS directa más comúnmente utilizada, en la que se consulta el DNS para obtener una dirección IP.