stringtranslate.com

Mecanismos de extensión para DNS

Los mecanismos de extensión para DNS ( EDNS ) son una especificación para expandir el tamaño de varios parámetros del protocolo del Sistema de nombres de dominio (DNS) que tenían restricciones de tamaño que la comunidad de ingeniería de Internet consideró demasiado limitadas para aumentar la funcionalidad del protocolo. El primer conjunto de extensiones fue publicado en 1999 por el Grupo de trabajo de ingeniería de Internet como RFC  2671, también conocido como EDNS0 [1] que fue actualizado por RFC  6891 en 2013 cambiando ligeramente la abreviatura a EDNS(0) . [2]

Motivación

El Sistema de Nombres de Dominio se desarrolló por primera vez a principios de la década de 1980. Desde entonces, se ha mejorado progresivamente con nuevas funciones, manteniendo al mismo tiempo la compatibilidad con versiones anteriores del protocolo.

Las restricciones en el tamaño de varios campos de indicadores, códigos de retorno y tipos de etiquetas disponibles en el protocolo DNS básico impidieron el soporte de algunas características deseables. Además, los mensajes DNS transportados por UDP estaban restringidos a 512 bytes, sin considerar el Protocolo de Internet (IP) y los encabezados de la capa de transporte . [3] Recurrir a un transporte de circuito virtual , utilizando el Protocolo de Control de Transmisión (TCP), aumentaría enormemente la sobrecarga. Esto presentó un gran obstáculo para agregar nuevas características al DNS. En 1999, Paul Vixie propuso extender el DNS para permitir nuevos indicadores y códigos de respuesta y para proporcionar soporte para respuestas más largas en un marco que sea compatible con versiones anteriores.

Mecanismo

Dado que no se pueden agregar nuevos indicadores en el encabezado DNS, EDNS agrega información a los mensajes DNS en forma de pseudo- registros de recursos ("pseudo-RR") incluidos en la sección de "datos adicionales" de un mensaje DNS. Tenga en cuenta que esta sección existe tanto en las solicitudes como en las respuestas.

EDNS introduce un único tipo pseudo-RR: OPT.

Como pseudo-RR, los RR de tipo OPT nunca aparecen en ningún archivo de zona; solo existen en mensajes creados por los participantes del DNS.

El mecanismo es compatible con versiones anteriores , ya que los respondedores DNS más antiguos ignoran cualquier RR del tipo OPT desconocido en una solicitud y un respondedor DNS más nuevo nunca incluye un OPT en una respuesta a menos que haya uno en la solicitud. La presencia del OPT en la solicitud significa que un solicitante más nuevo sabe qué hacer con un OPT en la respuesta.

El pseudo-registro OPT proporciona espacio para hasta 16 indicadores y amplía el espacio para el código de respuesta. El tamaño total del paquete UDP y el número de versión (actualmente 0) están contenidos en el registro OPT. Un campo de datos de longitud variable permite registrar más información en futuras versiones del protocolo. El protocolo DNS original proporcionaba dos tipos de etiquetas, que se definen mediante los dos primeros bits del octeto de longitud de una etiqueta (RFC 1035): 00 (etiqueta estándar) y 11 (etiqueta comprimida). EDNS introduce el tipo de etiqueta 01 como etiqueta extendida . Los 6 bits inferiores del primer byte se pueden utilizar para definir hasta 63 nuevas etiquetas extendidas.

Ejemplo

Un ejemplo de un pseudorregistro OPT, como se muestra mediante el comando dig :

;; PSEUDOSECCIÓN OPT:; EDNS: versión: 0, indicadores: sí; udp: 4096

El resultado de "EDNS: version: 0" indica conformidad total con EDNS0. [4] El resultado "flags: do" indica que está configurado "DNSSEC OK". [5]

Aplicaciones

Seguridad de nombres de dominio

EDNS es esencial para la implementación de extensiones de seguridad DNS ( DNSSEC ). [6]

Relleno EDNS

Existen estándares para usar EDNS para establecer cuánto relleno debe haber alrededor de un mensaje DNS. [7] [8] El relleno es esencial al cifrar DNS, porque sin él puede ser posible determinar el nombre de dominio consultado a partir del tamaño cifrado de la consulta.

EDNS Mantiene viva la vida

EDNS se utiliza para indicar durante cuánto tiempo debe mantenerse activa una conexión TCP. [9]

Subred de cliente EDNS (ECS)

EDNS también se utiliza para enviar información general desde los resolutores a los servidores de nombres sobre la ubicación geográfica de los clientes en forma de la opción de subred de cliente EDNS (ECS). [10]

Asuntos

En la práctica, pueden surgir dificultades al utilizar EDNS atravesando firewalls, ya que algunos firewalls asumen una longitud máxima de mensaje DNS de 512 bytes y bloquean paquetes DNS más largos.

La introducción de EDNS hizo posible el ataque de amplificación de DNS , un tipo de ataque de denegación de servicio reflejado , ya que EDNS facilita paquetes de respuesta muy grandes en comparación con paquetes de solicitud relativamente pequeños.

Referencias

  1. ^ RFC  2671, Mecanismos de extensión para DNS (EDNS0) , P. Vixie, The Internet Society (agosto de 1999)
  2. ^ RFC  6891, Mecanismos de extensión para DNS (EDNS(0)) , J. Damas, M. Graff, P. Vixie, (abril de 2013)
  3. ^ RFC 1035, Nombres de dominio: implementación y especificación , P. Mockapetris (noviembre de 1987)
  4. ^ Grupo de trabajo de redes del IETF, agosto de 1999, RFC 2671: Mecanismos de extensión para DNS (EDNS0), página 3. La conformidad total con esta especificación se indica mediante la versión "0".
  5. ^ Grupo de trabajo de redes del IETF, diciembre de 2001, RFC 3225: Indicación de compatibilidad de DNSSEC con el solucionador, página 3. El mecanismo elegido para la notificación explícita de la capacidad del cliente para aceptar (si no entender) los RR de seguridad de DNSSEC es utilizar el bit más significativo del campo Z en el encabezado OPT de EDNS0 en la consulta. Este bit se conoce como bit "DNSSEC OK" (DO).
  6. ^ RFC 4035, Modificaciones de protocolo para las extensiones de seguridad de DNS , R. Arends, Telematica Instituut, 2005. Sección 4.1 Compatibilidad con EDNS
  7. ^ Mayrhofer, Alexander (mayo de 2016). "RFC 7830: La opción de relleno EDNS(0)". tools.ietf.org . Consultado el 2 de febrero de 2018 .
  8. ^ Mayrhofer, Alexander (octubre de 2018). "RFC 8467: Políticas de relleno para mecanismos de extensión para DNS (EDNS(0))". tools.ietf.org . Consultado el 1 de octubre de 2018 .
  9. ^ Wouters, Paul (abril de 2016). "RFC 7828: La opción EDNS0 edns-tcp-keepalive". tools.ietf.org . Consultado el 2 de febrero de 2018 .
  10. ^ Contavalli, Carlo (mayo de 2016). "RFC 7871: Subred de cliente en consultas DNS". tools.ietf.org . Consultado el 2 de febrero de 2018 .

Véase también