Multicast DNS

Ir a: navegación, búsqueda de

El propósito de la multidifusión Domain Name System (mDNS) es para resolver nombres de host en direcciones IP dentro de pequeñas redes que no incluyan un local servidor de nombres. Es un cero configuración servicio, utilizando esencialmente las mismas interfaces de programación, formatos de paquetes y operación semántica como el unicast Sistema de nombres de dominio (DNS). Mientras que está diseñado para ser independiente capaz, puede trabajar en concierto con los servidores DNS de unidifusión.[1]

Se publica el protocolo mDNS RFC 6762, utiliza multidifusión IP Protocolo de datagramas de usuario Paquetes (UDP) y es implementado por la manzana Bonjour y Linux NSS-mdns servicios.

mDNS puede trabajar conjuntamente con Descubrimiento de servicio DNS (DNS-SD), que es una técnica de configuración compañero cero que se especifica por separado en RFC 6763 .[2]

Contenido

  • 1 Resumen de protocolo
  • 2 Estructura de paquetes
  • 3 Ejemplo
  • 4 Véase también
  • 5 Referencias
  • 6 Enlaces externos

Resumen de protocolo

Cuando un cliente de mDNS necesita resolver un nombre de host, envía un Multidifusión IP mensaje de consulta que pide el anfitrión tener ese nombre para identificarse. Objetivo máquina entonces multidifusiones un mensaje que incluye su dirección IP. Todas las máquinas en esa subred entonces pueden utilizar esa información para actualizar sus cachés mDNS.

Cualquier host puede renunciar a su pretensión de un nombre de dominio mediante el envío de un paquete de respuesta con un tiempo para vivir (TTL) igual a cero.

De forma predeterminada, mDNS única y exclusivamente resuelve nombres de host, terminando con la .local dominio de nivel superior (TLD). Esto puede causar problemas si ese dominio incluye hosts que no implementan mDNS pero pueden encontrarse mediante un servidor DNS de unidifusión convencional. Resolver estos conflictos requiere cambios de configuración de red que violan la cero configuración meta.

Estructura de paquetes

El mDNS Marco de Ethernet es un paquete UDP multicast:

  • Dirección MAC 01:00:5E:00:00:FB (para IPv4) o 33:33:00:00:00:FB (para IPv6)
  • Dirección IPv4 224.0.0.251 o Dirección IPv6 FF02::FB
  • Puerto UDP 5353

Su capacidad de carga se basa en el formato del paquete de DNS.[3] Consta de dos partes: la cabecera y los datos.[4]

desplazamiento (bytes) 0 1
0 ID = 0 X 0000
2 Banderas
4 QDCOUNT
6 ANCOUNT
8 NSCOUNT
10 ARCOUNT
12 
Datos


La palabra banderas serán generalmente 00 00 para una consulta y 84 00 para una respuesta.

De datos de cada paquete comienza con el nombre de dominio completamente calificado (FQDN) para resolverse y termina con dos banderas de 2 bytes que indica el QTYPE (001 para una consulta de la dirección de host) y QCLASS (00 01 para Internet):

  • De datos de un paquete consulta no incluye ninguna otra información.
  • En los datos de un paquete de respuesta, el FQDN es seguido por el objetivo del host dirección IPv4, IPv6 dirección y nombre sección registros.

El FQDN es especificado por una lista de cadenas de componente, comenzando con el nombre de host y terminando con el dominio de nivel superior (TLD). Cada tal cadena consiste de un byte de longitud seguido por tantos UTF-8 bytes. El TLD es seguido por una cadena nula (00 hexagonal) que termina el FQDN.

Registro de dirección de host de destino IPv4 se compone de:

  • un campo de 2 bytes (hexagonal 00 00 para un registro),
  • un campo de 2 bytes clase (hexagonal 80 01 para clase con caché de descarga bit establecido),
  • un campo de tiempo de vida (TTL) entero de 32 bits con signo (en segundos),
  • un campo de 2 bytes de longitud (hexagonal 00 04 para una dirección IPv4 de 4 bytes), y
  • los 4 bytes de dirección IPv4.

Su registro de dirección IPv6 se compone de:

  • un enlace de 2 bytes que indica el desvío del nombre del host (hexadecimal C0 0C),
  • un campo de 2 bytes (tuerca hexagonal 1 00 para un registro AAAA),
  • un campo de 2 bytes clase (hexagonal 80 01 para clase con caché de descarga bit establecido),
  • un campo entero de 32 bits con signo de tiempo de vida (TTL)
  • un campo de 2 bytes de longitud (hexagonal 00 10 para una dirección IPv6 de 16 bytes), y
  • los 16 bytes de dirección IPv6.

El registro de la sección de nombre consta de:

  • un enlace de 2 bytes que indica el desvío del nombre del host (hexadecimal C0 0C),
  • un tipo de 2 bytes del campo (2f 00 hexagonal para un registro NS),
  • un campo de 2 bytes clase (hexagonal 80 01 para clase con caché de descarga bit establecido),
  • un campo entero de 32 bits con signo de tiempo de vida (TTL)
  • un campo de 2 bytes de longitud (hexagonal 00 08 para un registro NS 8 bytes), y
  • los 8 bytes de bloque y de mapa de bits.

En un mensaje DNS estándar el byte superior de cualquier campo de clase siempre es 0 x 00, en mDNS puede establecerse la parte superior de este byte, lo que resulta en un valor de 0 x 80. Esto es la caché de descarga y debe No interpretarse como parte de la clase de valor - véase la sección 10.2 de RFC 6762.

Ejemplo

Tratando de Ping el AppleTV.local host causaría un equipo cliente mDNS de multidifusión el siguiente paquete UDP:

00 00 00 00 00 01 00 00 00 00 00 00 07 61 70 70 6C 65 74 76 05 6C 6f 63 61 6C 00 00 01 00 01

Todos los campos de encabezado seis igualan a cero (00 00) excepto el QDCOUNT, que es igual a uno (00 01). Los datos comienzan con el carácter de siete AppleTV nombre de host (hexadecimal 07 61 70 70 6C 65 74 76) seguido por el carácter cinco locales cadena de dominio (hexagonal 05 6C 6f 63 61 6C) y la cadena nula requerida (00). Que toda FQDN es seguido por la dirección del host bandera QTYPE (hexagonal 00 01) y el internet QCLASS bandera (00 01).

El anfitrión appletv.local respondería por multidifusión su paquete de respuesta mDNS. Por ejemplo:

00 00 84 00 00 00 00 01 00 00 00 02 07 61 70 70 6C 65 74 76 05 6C 6f 63 61 6C 00 00 01 80 01 00 00 78 00 00 04 99 6 d 07 5a c0 0C 00 1c 80 01 00 00 78 00 00 10 fe 80 00 00 00 00 00 00 02 23 32 ff fe b1 21 52 c0 0C 00 2f 80 01 00 00 78 00 00
08 c0 0C 00 04 40 00 00 08

En su cabecera, los campos de cero son los Banderas palabra (84 00), el ANCOUNT palabra (00 01) y el ARCOUNT palabra (00 02). Los datos comienzan otra vez con el FQDN (hex 07 61 70 70 6C 65 74 76 05 6C 6f 63 61 6C 00 para appletv.local), seguido por información de ese host DNS:

  • el código de tipo de dirección IPv4/A (hex 00 01),
  • el código de clase IPv4 (hexagonal 80 01),
  • el TTL de IPv4 (hex 00 00 78 00 30720 segundos),
  • la longitud de IPv4 (hexagonal 00 04),
  • los cuatro bytes de la dirección IPv4 (hexagonal 6 99 D 07 5A, o 153.109.7.90 en notación decimal con puntos),
  • el desplazamiento FQDN (hexadecimal C0 0C a byte 12),
  • el código de tipo de dirección AAAA/IPv6 (tuerca hexagonal 1 00),
  • el código de la clase de IPv6 (hexagonal 80 01),
  • el IPv6 TTL (otra vez hexagonal 00 00 78 00),
  • la longitud de IPv6 (hexagonal 00 10),
  • los 16 IPv6 Dirección bytes (hexagonal FE 80 00 00 00 00 00 00 02 23 32 FF FE B1 21 52),
  • el desplazamiento FQDN (hexadecimal C0 0C a byte 12),
  • el código de tipo de Nanosegundos (2F 00 hexagonal),
  • el código de la clase de Nanosegundos (hexagonal 80 01),
  • el TTL Nanosegundos (otra vez hexagonal 00 00 78 00),
  • la longitud de Nanosegundos (hexagonal 00 08, para un registro de la sección de nombre 8 bytes), y
  • los 8 bytes de bloque y de mapa de bits NSEC (hexadecimal C0 0C 00 04 40 00 00 08)

Véase también

  • Avahi (software)
  • Bonjour (software)
  • Cambio de servicio de nombres (NSS)
  • Red de configuración cero

Referencias

  1. ^ RFC 6762, Internet Engineering Task Force (IETF).
  2. ^ RFC 6763, Internet Engineering Task Force (IETF).
  3. ^ DNS, Red para 2.
  4. ^ RFC 1035, Internet Engineering Task Force (IETF).

Enlaces externos

  • Multicast DNS
  • Nuevas tecnologías DNS en la LAN

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=Multicast_DNS&oldid=641197659"