El puntero de autoridad de nombres (NAPTR) es un tipo de registro de recursos en el Sistema de nombres de dominio de Internet .
Los registros NAPTR se usan más comúnmente para aplicaciones de telefonía por Internet , como mostrar servidores y direcciones de usuario en el Protocolo de inicio de sesión (SIP) . Múltiples registros NAPTR combinados con registros de servicio (SRV) permiten el encadenamiento de registros para formar reglas de reescritura complejas que se utilizan para crear partes adicionales de un nombre de dominio o identificador (URI) .
El código DNS para el registro NAPTR es 35.
Los nombres de recursos uniformes (URN) son un subconjunto de los identificadores de recursos uniformes (URI) y se utilizan para identificadores abstractos, como el nombre o el número de teléfono de una persona . Los URN requieren un mapeo correspondiente a algún tipo de recurso. Los nombres de URL a menudo se usan para describir recursos, como el nombre de host de una computadora o un archivo local. El registro NAPTR ayuda a estandarizar nuevas URN. NAPTR representa un mapa entre una combinación de URN, URL y nombres de dominio simples, y permite a los clientes de la red los protocolos disponibles para comunicarse con el recurso conectado. Cada entrada de NAPTR contiene un nombre de servicio , un conjunto de banderas, reglas de expresión regular , valores de orden, una preferencia y un patrón de reemplazo. Se pueden encadenar varias entradas en una cascada de reescritura de URI de forma determinista. Estas reglas en cascada se han estandarizado en RFC2915 y RFC3403.
Por ejemplo, después de traducir el número de teléfono +1-770-555-1212 a URI 2.1.2.1.5.5.5.0.7.7.1.e164.arpa como se describe en E.164 y ENUM , DDDS se usa para traducir esto usando reescritura reglas contenidas en los registros NAPTR. La configuración BIND para las entradas regresa de la consulta para 2.1.2.1.5.5.5.0.7.7.1.e164.arpa , las opciones son:
$ ORIGEN 2.1.2.1.5.5.5.0.7.7.1.e164.arpa. IN NAPTR 100 10 "u" "E2U+sip" "!^.*$! sip:[email protected]!i " . IN NAPTR 102 10 "u" "E2U+email" "!^.*$!mailto:[email protected]!i" .De estas dos entradas, la primera tiene un valor de Orden de 100, que es menor que 102, por lo que se selecciona primero. Una Preferencia de 10 no importa, ya que ninguna otra regla tiene un Orden de 100. El indicador "u" muestra la regla final en las aplicaciones ENUM y URI , por lo que el resultado de esta reescritura será el resultado que estamos buscando. Consulte RFC 2915 para obtener una lista de indicadores válidos.
Si el servidor admite el servicio definido por la clave "E2U+sip", entonces no continuará verificando otras reglas con valores de orden más altos. La expresión regular para reescribir la cadena "!^.*$! sip:[email protected]!i " encuentra el valor de salida al convertir la solicitud original 2.1.2.1.5.5.5.0.7.7.1.e164.arpa para sorber:información @pbx.example.com . En la expresión regular anterior, el signo de exclamación '!' será un delimitador (con la excepción del uso de '/' y '\' porque podrían interpretarse como secuencias de escape en otros lugares). La expresión "^.*$" en la expresión regular significa "inicio, cualquier número de caracteres y fin" (en otras palabras, cualquier cadena de datos coincide con este patrón) cambiada a " sip:informació[email protected] " , y se ignora la opción 'i'. (Los lectores atentos notarán que 'i' es irrelevante dado el uso de ".*"). En el estándar de expresiones regulares de Perl , el patrón equivalente podría escribirse como "s/^.*$/ sip:[email protected]/i " . Esto devolverá el URI " sip:[email protected] " . Si el servidor no admitiera SIP , el procesamiento devolvería una regla que daría como resultado "mailto:[email protected]" .
EDNS también se usa en la implementación de NAPTR y admite paquetes de DNS más largos que pueden ser necesarios cuando se usan varios registros de NAPTR.
El BIND original que admite NAPTR no admitirá djbdns a menos que instale un parche o use entradas genéricas de tinydns ( RFC 3403 ).