Conjunto de protocolos de Internet |
---|
Capa de aplicación |
Capa de transporte |
Capa de Internet |
Capa de enlace |
El Protocolo de configuración dinámica de host ( DHCP ) es un protocolo de gestión de red utilizado en redes de Protocolo Internet (IP) para asignar automáticamente direcciones IP y otros parámetros de comunicación a dispositivos conectados a la red mediante una arquitectura cliente-servidor . [1]
La tecnología elimina la necesidad de configurar manualmente los dispositivos de red de forma individual y consta de dos componentes de red: un servidor DHCP de red instalado de forma centralizada e instancias cliente de la pila de protocolos en cada equipo o dispositivo. Cuando se conecta a la red, y periódicamente a partir de entonces, un cliente solicita un conjunto de parámetros al servidor mediante DHCP.
El DHCP se puede implementar en redes que varían en tamaño, desde redes residenciales hasta grandes redes de campus y redes de ISP regionales. [2] Muchos enrutadores y puertas de enlace residenciales tienen capacidad de servidor DHCP. La mayoría de los enrutadores de redes residenciales reciben una dirección IP única dentro de la red del ISP. Dentro de una red local, un servidor DHCP asigna una dirección IP local a cada dispositivo.
Los servicios DHCP existen para redes que ejecutan el Protocolo de Internet versión 4 (IPv4), así como la versión 6 ( IPv6 ). La versión IPv6 del protocolo DHCP se denomina comúnmente DHCPv6 .
El Protocolo de Resolución de Dirección Inversa (RARP) se definió en 1984 para la configuración de dispositivos simples, como estaciones de trabajo sin disco , con una dirección IP adecuada. [3] Al actuar en la capa de enlace de datos , dificultó la implementación en muchas plataformas de servidor. Requería que un servidor estuviera presente en cada enlace de red individual. RARP fue reemplazado por el Protocolo Bootstrap (BOOTP) definido en septiembre de 1985. [4] Esto introdujo el concepto de un agente de retransmisión, que permitió el reenvío de paquetes BOOTP a través de redes, lo que permitió que un servidor BOOTP central sirviera a hosts en muchas subredes IP.
DHCP se definió por primera vez en octubre de 1993. [5] [6] Se basa en BOOTP, pero puede asignar dinámicamente direcciones IP de un grupo y recuperarlas cuando ya no se utilizan. También se puede utilizar para proporcionar una amplia gama de parámetros de configuración adicionales a los clientes IP, incluidos parámetros específicos de la plataforma. [7]
Cuatro años después, se añadió el tipo de mensaje DHCPINFORM (utilizado para WPAD ) y otros pequeños cambios. Esta definición, de 1997, [8] sigue siendo el núcleo del estándar para redes IPv4.
DHCPv6 se definió inicialmente en 2003. [9] Después de actualizaciones de muchos RFC posteriores, su definición fue reemplazada en 2018, [10] donde la delegación de prefijo y la configuración automática de direcciones sin estado se fusionaron.
El Protocolo de Internet (IP) define cómo se comunican los dispositivos dentro y a través de redes locales en Internet. Un servidor DHCP puede administrar la configuración IP de los dispositivos en su red local, por ejemplo, asignando direcciones IP a esos dispositivos de forma automática y dinámica. [11]
DHCP funciona según el modelo cliente-servidor . Cuando una computadora u otro dispositivo se conecta a una red, el software cliente DHCP envía una consulta de difusión DHCP solicitando la información necesaria. Cualquier servidor DHCP en la red puede atender la solicitud. El servidor DHCP administra un grupo de direcciones IP e información sobre los parámetros de configuración del cliente, como la puerta de enlace predeterminada , el nombre de dominio , los servidores de nombres y los servidores de tiempo . Al recibir una solicitud DHCP, el servidor DHCP puede responder con información específica para cada cliente, según lo configurado previamente por un administrador, o con una dirección específica y cualquier otra información válida para toda la red y para el período de tiempo para el cual la asignación ( arrendamiento ) es válida. Un cliente DHCP generalmente consulta esta información inmediatamente después del arranque y periódicamente a partir de entonces antes de que caduque la información. Cuando un cliente DHCP actualiza una asignación, inicialmente solicita los mismos valores de parámetros, pero el servidor DHCP puede asignar una nueva dirección según las políticas de asignación establecidas por los administradores.
En redes grandes que constan de varios enlaces, un único servidor DHCP puede prestar servicio a toda la red con la ayuda de agentes de retransmisión DHCP ubicados en los enrutadores interconectados. Dichos agentes retransmiten mensajes entre clientes DHCP y servidores DHCP ubicados en diferentes subredes.
Dependiendo de la implementación, el servidor DHCP puede tener tres métodos para asignar direcciones IP:
Los servicios DHCP se utilizan para el Protocolo de Internet versión 4 (IPv4) e IPv6 . Los detalles del protocolo para IPv4 e IPv6 difieren lo suficiente como para que puedan considerarse protocolos separados. [12] Para el funcionamiento de IPv6, los dispositivos pueden utilizar de forma alternativa la configuración automática de direcciones sin estado . Los hosts IPv6 también pueden utilizar el direccionamiento local de enlace para lograr operaciones restringidas al enlace de red local.
El DHCP emplea un modelo de servicio sin conexión , utilizando el Protocolo de datagramas de usuario (UDP). Se implementa con dos números de puerto UDP para sus operaciones, que son los mismos que para el protocolo bootstrap ( BOOTP ). El servidor escucha en el puerto UDP número 67 y el cliente escucha en el puerto UDP número 68.
Las operaciones de DHCP se dividen en cuatro fases: descubrimiento de servidor, oferta de concesión de IP, solicitud de concesión de IP y reconocimiento de concesión de IP. Estas etapas suelen abreviarse como DORA (descubrimiento, oferta, solicitud y reconocimiento).
La operación DHCP comienza con los clientes que transmiten una solicitud. Si el cliente y el servidor están en diferentes dominios de difusión , se puede utilizar un asistente DHCP o un agente de retransmisión DHCP. Los clientes que solicitan la renovación de una concesión existente pueden comunicarse directamente a través de unidifusión UDP , ya que el cliente ya tiene una dirección IP establecida en ese momento. Además, hay un indicador BROADCAST (1 bit en un campo de indicadores de 2 bytes, donde todos los demás bits están reservados y, por lo tanto, se establecen en 0) que el cliente puede utilizar para indicar de qué manera (difusión o unidifusión) puede recibir el DHCPOFFER: 0x8000 para difusión, 0x0000 para unidifusión. [8] Por lo general, el DHCPOFFER se envía a través de unidifusión. Para aquellos hosts que no pueden aceptar paquetes de unidifusión antes de que se configuren las direcciones IP, este indicador se puede utilizar para solucionar este problema.
El cliente DHCP transmite un mensaje DHCPDISCOVER en la subred de la red utilizando la dirección de destino 255.255.255.255 (transmisión limitada) o la dirección de transmisión de la subred específica (transmisión dirigida). Un cliente DHCP también puede solicitar una dirección IP en el mensaje DHCPDISCOVER, que el servidor puede tener en cuenta al seleccionar una dirección para ofrecer.
Por ejemplo, si HTYPE se establece en 1 para especificar que el medio utilizado es Ethernet , HLEN se establece en 6 porque una dirección Ethernet (dirección MAC) tiene una longitud de 6 octetos. CHADDR se establece en la dirección MAC utilizada por el cliente. También se establecen algunas opciones.
Compensar | Octeto | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octeto | Poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | 00:05:3C:04:8D:59 | FF:FF:FF:FF:FF:FF | 0x0800 | |||||||||||||||||||||||||||||
4 | 32 | Paquete IPv4, que contiene una PDU UDP con carga útil DHCP... | |||||||||||||||||||||||||||||||
8 | 64 | ||||||||||||||||||||||||||||||||
⋮ | ⋮ |
Compensar | Octeto | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octeto | Poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Inicio del encabezado IP | |||||||||||||||||||||||||||||||
4 | 32 | ||||||||||||||||||||||||||||||||
8 | 64 | Tiempo de vida útil | Protocolo ( UDP 17 ) | Suma de comprobación del encabezado |
12 | 96 | Dirección de origen ( 0.0.0.0 ) | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16 | 128 | Dirección de destino ( 255.255.255.255 ) | |||||||||||||||||||||||||||||||
20 | 160 | Puerto de origen (68) | Puerto de destino (67) | ||||||||||||||||||||||||||||||
24 | 192 | Longitud | Suma de comprobación |
28 | 224 | OP ( 0x01 ) | TIPO H ( 0x01 ) | HLEN ( 0x06 ) | SALTOS ( 0x00 ) | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
32 | 256 | XID ( 0x3903F326 ) | |||||||||||||||||||||||||||||||
36 | 288 | SEG ( 0x0000 ) | BANDERAS ( 0x0000 ) | ||||||||||||||||||||||||||||||
40 | 320 | CIADDR (Dirección IP del cliente: 0x00000000 ) | |||||||||||||||||||||||||||||||
44 | 352 | YIADDR (Su dirección IP: 0x00000000 ) | |||||||||||||||||||||||||||||||
48 | 384 | SIADDR (Dirección IP del servidor: 0x00000000 ) | |||||||||||||||||||||||||||||||
52 | 416 | GIADDR (Dirección IP de la puerta de enlace: 0x00000000 ) | |||||||||||||||||||||||||||||||
56 | 448 | CHADDR (Dirección de hardware del cliente: 0x00053C04 0x8D590000 0x00000000 0x00000000 ) | |||||||||||||||||||||||||||||||
60 | 480 | ||||||||||||||||||||||||||||||||
64 | 512 | ||||||||||||||||||||||||||||||||
68 | 544 | ||||||||||||||||||||||||||||||||
72 | 576 | 192 octetos de 0, o espacio de desbordamiento para opciones adicionales; BOOTP heredado. | |||||||||||||||||||||||||||||||
⋮ | ⋮ | ||||||||||||||||||||||||||||||||
260 | 2080 | ||||||||||||||||||||||||||||||||
264 | 2112 | Galleta mágica ( 0x63825363 ) |
292 | 2336 | Primera opción: 0x350101 : Opción 53 (Tipo de mensaje DHCP) 1 octeto (que contiene DHCPDISCOVER) | Segunda opción:↴ | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
324 | 2592 | ↪0x3204c0a80164 : Opción 50 (Solicitar dirección IP) 4 octetos (que contienen 192.168.1.100 ) | |||||||||||||||||||||||||||||||
356 | 2848 | Tercera opción: 0x370401030f06 : Opción: 55 (Lista de solicitud de parámetros) 4 octetos↴ | |||||||||||||||||||||||||||||||
388 | 3104 | ↪PRL continúa... | adj |
Cuando un servidor DHCP recibe un mensaje DHCPDISCOVER de un cliente, que es una solicitud de concesión de dirección IP, el servidor DHCP reserva una dirección IP para el cliente y realiza una oferta de concesión mediante el envío de un mensaje DHCPOFFER al cliente. Este mensaje puede contener el ID de cliente del cliente (Opción 61, que contiene un valor único, tradicionalmente una dirección MAC), la dirección IP que ofrece el servidor, la máscara de subred, la duración de la concesión y la dirección IP del servidor DHCP que realiza la oferta. El servidor DHCP también puede tomar nota de la dirección MAC a nivel de hardware (como se especifica en el campo CHADDR). Este campo se debe utilizar para identificar al cliente, si no se proporciona ningún ID de cliente en el paquete DHCP. [8] : §4.2
El servidor DHCP determina la configuración en función de la dirección de hardware del cliente, tal como se especifica en el campo CHADDR (dirección de hardware del cliente). En el siguiente ejemplo, el servidor ( 192.168.1.1 ) especifica la dirección IP del cliente en el campo YIADDR (su dirección IP).
Compensar | Octeto | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octeto | Poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | B4:0C:25:E3:7D:62 | 00:05:3C:04:8D:59 | 0x8000 | |||||||||||||||||||||||||||||
4 | 32 | Paquete IPv4, que contiene una PDU UDP con carga útil DHCP... | |||||||||||||||||||||||||||||||
8 | 64 | ||||||||||||||||||||||||||||||||
⋮ | ⋮ |
Compensar | Octeto | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octeto | Poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Inicio del encabezado IP | |||||||||||||||||||||||||||||||
4 | 32 | ||||||||||||||||||||||||||||||||
8 | 64 | Tiempo de vida útil | Protocolo ( UDP 17 ) | Suma de comprobación del encabezado |
12 | 96 | Dirección de origen ( 192.168.1.1 ) | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16 | 128 | Dirección de destino ( 192.168.1.100 ) | |||||||||||||||||||||||||||||||
20 | 160 | Puerto de origen (67) | Puerto de destino (68) | ||||||||||||||||||||||||||||||
24 | 192 | Longitud | Suma de comprobación |
28 | 224 | OP( 0x02 ) | TIPO H ( 0x01 ) | HLEN ( 0x06 ) | SALTOS ( 0x00 ) | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
32 | 256 | XID ( 0x3903F326 ) | |||||||||||||||||||||||||||||||
36 | 288 | SEG ( 0x0000 ) | BANDERAS ( 0x0000 ) | ||||||||||||||||||||||||||||||
40 | 320 | CIADDR (Dirección IP del cliente: 0x00000000 ) | |||||||||||||||||||||||||||||||
44 | 352 | YIADDR (Su dirección IP: 0xC0A80164 o 192.168.1.100 ) | |||||||||||||||||||||||||||||||
48 | 384 | SIADDR (Dirección IP del servidor: 0xC0A80101 o 192.168.1.1 ) | |||||||||||||||||||||||||||||||
52 | 416 | GIADDR (Dirección IP de la puerta de enlace: 0x00000000 ) | |||||||||||||||||||||||||||||||
56 | 448 | CHADDR (Dirección de hardware del cliente: 0x00053C04 0x8D590000 0x00000000 0x00000000 ) | |||||||||||||||||||||||||||||||
60 | 480 | ||||||||||||||||||||||||||||||||
64 | 512 | ||||||||||||||||||||||||||||||||
68 | 544 | ||||||||||||||||||||||||||||||||
72 | 576 | 192 octetos de 0, o espacio de desbordamiento para opciones adicionales; BOOTP heredado. | |||||||||||||||||||||||||||||||
⋮ | ⋮ | ||||||||||||||||||||||||||||||||
260 | 2080 | ||||||||||||||||||||||||||||||||
264 | 2112 | Galleta mágica ( 0x63825363 ) |
292 | 2336 | Primera opción: 0x350102 : Opción 53 (Tipo de mensaje DHCP) 1 octeto (que contiene DHCPOFFER) | Segunda opción:↴ | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
324 | 2592 | ↪0x0104ffffff00 : Opción 1 (máscara de subred) 4 octetos (que contienen 255.255.255.0 ) | |||||||||||||||||||||||||||||||
356 | 2848 | Tercera opción: 0x0304c0A80101 : Opción: 3 (Enrutador) 4 octetos (que contienen 192.168.1.1 )↴ | |||||||||||||||||||||||||||||||
388 | 3104 | ↪Enrutador cont... | Cuarta opción: 0x330400015080 : Opción 51 (Tiempo de dirección) 4 octetos (un tiempo de arrendamiento de 86400 segundos)↴ | ||||||||||||||||||||||||||||||
420 | 3360 | ↪Dirección tiempo cont... | Quinta opción: | ||||||||||||||||||||||||||||||
452 | 3616 | 0x060c09070a0f09070a1009070a13 : Opción 6 (Servidor de dominio) 14 octetos (que contienen 9.7.10.15 , 9.7.10.16 , 9.7.10.18 ) | |||||||||||||||||||||||||||||||
456 | 3648 | ||||||||||||||||||||||||||||||||
460 | 3680 | ||||||||||||||||||||||||||||||||
482 | 3856 | adj |
En respuesta a la oferta DHCP, el cliente responde con un mensaje DHCPREQUEST, que se transmite al servidor, [a] solicitando la dirección ofrecida. Un cliente puede recibir ofertas DHCP de varios servidores, pero solo aceptará una oferta DHCP.
El cliente debe enviar la opción de identificación del servidor en el mensaje DHCPREQUEST, indicando el servidor cuya oferta ha seleccionado el cliente. [8] : Sección 3.1, Ítem 3 Cuando otros servidores DHCP reciben este mensaje, retiran cualquier oferta que hayan hecho al cliente y devuelven su dirección IP ofrecida al grupo de direcciones disponibles.
Compensar | Octeto | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octeto | Poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | 00:05:3C:04:8D:59 | FF:FF:FF:FF:FF:FF | 0x8000 | |||||||||||||||||||||||||||||
4 | 32 | Paquete IPv4, que contiene una PDU UDP con carga útil DHCP... | |||||||||||||||||||||||||||||||
8 | 64 | ||||||||||||||||||||||||||||||||
⋮ | ⋮ |
Compensar | Octeto | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octeto | Poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Inicio del encabezado IP | |||||||||||||||||||||||||||||||
4 | 32 | ||||||||||||||||||||||||||||||||
8 | 64 | Tiempo de vida útil | Protocolo ( UDP 17 ) | Suma de comprobación del encabezado |
12 | 96 | Dirección de origen ( 0.0.0.0 ) | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16 | 128 | Dirección de destino ( 255.255.255.255 ) | |||||||||||||||||||||||||||||||
20 | 160 | Puerto de origen (68) | Puerto de destino (67) | ||||||||||||||||||||||||||||||
24 | 192 | Longitud | Suma de comprobación |
28 | 224 | OP ( 0x01 ) | TIPO H ( 0x01 ) | HLEN ( 0x06 ) | SALTOS ( 0x00 ) | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
32 | 256 | XID ( 0x3903F326 ) | |||||||||||||||||||||||||||||||
36 | 288 | SEG ( 0x0000 ) | BANDERAS ( 0x0000 ) | ||||||||||||||||||||||||||||||
40 | 320 | CIADDR (Dirección IP del cliente: 0x00000000 ) | |||||||||||||||||||||||||||||||
44 | 352 | YIADDR (Su dirección IP: 0x00000000 ) | |||||||||||||||||||||||||||||||
48 | 384 | SIADDR (Dirección IP del servidor: 0xc0a80101 o 192.168.1.1 ) | |||||||||||||||||||||||||||||||
52 | 416 | GIADDR (Dirección IP de la puerta de enlace: 0x00000000 ) | |||||||||||||||||||||||||||||||
56 | 448 | CHADDR (Dirección de hardware del cliente: 0x00053C04 0x8D590000 0x00000000 0x00000000 ) | |||||||||||||||||||||||||||||||
60 | 480 | ||||||||||||||||||||||||||||||||
64 | 512 | ||||||||||||||||||||||||||||||||
68 | 544 | ||||||||||||||||||||||||||||||||
72 | 576 | 192 octetos de 0, o espacio de desbordamiento para opciones adicionales; BOOTP heredado. | |||||||||||||||||||||||||||||||
⋮ | ⋮ | ||||||||||||||||||||||||||||||||
260 | 2080 | ||||||||||||||||||||||||||||||||
264 | 2112 | Galleta mágica ( 0x63825363 ) |
292 | 2336 | Primera opción: 0x350103 : Opción 53 (Tipo de mensaje DHCP) 1 octeto (que contiene DHCPREQUEST) | Segunda opción:↴ | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
324 | 2592 | ↪0x3204c0a80164 : Opción 50 (Solicitar dirección IP) 4 octetos (que contienen 192.168.1.100 ) | |||||||||||||||||||||||||||||||
356 | 2848 | Tercera opción: 0x3604c0a801601 : Opción: 54 (Servidor DHCP) 4 octetos (que contienen 192.168.1.1 )↴ | |||||||||||||||||||||||||||||||
388 | 3104 | ↪Servidor DHCP (continuación) | adj |
Cuando el servidor DHCP recibe el mensaje DHCPREQUEST del cliente, el proceso de configuración entra en su fase final. La fase de reconocimiento implica el envío de un paquete DHCPACK al cliente. Este paquete incluye la duración de la concesión y cualquier otra información de configuración que el cliente pueda haber solicitado. En este punto, el proceso de configuración de IP se completa.
El protocolo espera que el cliente DHCP configure su interfaz de red con los parámetros negociados.
Compensar | Octeto | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octeto | Poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | B4:0C:25:E3:7D:62 | 00:05:3C:04:8D:59 | 0x8000 | |||||||||||||||||||||||||||||
4 | 32 | Paquete IPv4, que contiene una PDU UDP con carga útil DHCP... | |||||||||||||||||||||||||||||||
8 | 64 | ||||||||||||||||||||||||||||||||
⋮ | ⋮ |
Compensar | Octeto | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octeto | Poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Inicio del encabezado IP | |||||||||||||||||||||||||||||||
4 | 32 | ||||||||||||||||||||||||||||||||
8 | 64 | Tiempo de vida útil | Protocolo ( UDP 17 ) | Suma de comprobación del encabezado |
12 | 96 | Dirección de origen ( 192.168.1.1 ) | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16 | 128 | Dirección de destino ( 192.168.1.100 ) | |||||||||||||||||||||||||||||||
20 | 160 | Puerto de origen (67) | Puerto de destino (68) | ||||||||||||||||||||||||||||||
24 | 192 | Longitud | Suma de comprobación |
28 | 224 | OP( 0x02 ) | TIPO H ( 0x01 ) | HLEN ( 0x06 ) | SALTOS ( 0x00 ) | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
32 | 256 | XID ( 0x3903F326 ) | |||||||||||||||||||||||||||||||
36 | 288 | SEG ( 0x0000 ) | BANDERAS ( 0x0000 ) | ||||||||||||||||||||||||||||||
40 | 320 | CIADDR (Dirección IP del cliente: 0x00000000 ) | |||||||||||||||||||||||||||||||
44 | 352 | YIADDR (Su dirección IP: 0xC0A80164 o 192.168.1.100 ) | |||||||||||||||||||||||||||||||
48 | 384 | SIADDR (Dirección IP del servidor: 0xC0A80101 o 192.168.1.1 ) | |||||||||||||||||||||||||||||||
52 | 416 | GIADDR (Dirección IP de la puerta de enlace: 0x00000000 ) | |||||||||||||||||||||||||||||||
56 | 448 | CHADDR (Dirección de hardware del cliente: 0x00053C04 0x8D590000 0x00000000 0x00000000 ) | |||||||||||||||||||||||||||||||
60 | 480 | ||||||||||||||||||||||||||||||||
64 | 512 | ||||||||||||||||||||||||||||||||
68 | 544 | ||||||||||||||||||||||||||||||||
72 | 576 | 192 octetos de 0, o espacio de desbordamiento para opciones adicionales; BOOTP heredado. | |||||||||||||||||||||||||||||||
⋮ | ⋮ | ||||||||||||||||||||||||||||||||
260 | 2080 | ||||||||||||||||||||||||||||||||
264 | 2112 | Galleta mágica ( 0x63825363 ) |
292 | 2336 | Primera opción: 0x350105 : Opción 53 (Tipo de mensaje DHCP) 1 octeto (que contiene DHCPACK) | Segunda opción:↴ | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
324 | 2592 | ↪0x0104ffffff00 : Opción 1 (máscara de subred) 4 octetos (que contienen 255.255.255.0 ) | |||||||||||||||||||||||||||||||
356 | 2848 | Tercera opción: 0x0304c0A80101 : Opción: 3 (Enrutador) 4 octetos (que contienen 192.168.1.1 )↴ | |||||||||||||||||||||||||||||||
388 | 3104 | ↪Enrutador cont... | Cuarta opción: 0x330400015080 : Opción 51 (Tiempo de dirección) 4 octetos (un tiempo de arrendamiento de 86400 segundos)↴ | ||||||||||||||||||||||||||||||
420 | 3360 | ↪Dirección tiempo cont... | Quinta opción: | ||||||||||||||||||||||||||||||
452 | 3616 | 0x060c09070a0f09070a1009070a13 : Opción 6 (Servidor de dominio) 14 octetos (que contienen 9.7.10.15 , 9.7.10.16 , 9.7.10.18 ) | |||||||||||||||||||||||||||||||
456 | 3648 | ||||||||||||||||||||||||||||||||
460 | 3680 | ||||||||||||||||||||||||||||||||
482 | 3856 | adj |
Cuando el servidor reutiliza una dirección IP de su grupo, primero puede verificar (usando ping ) para ver si no está ya tomada. [8] : sec. 2.2 Esto puede suceder si un host se configura manualmente con una dirección IP que se encuentra dentro del alcance de DHCP.
Antes de reclamar una dirección IP, el cliente debe sondear la dirección recién recibida (por ejemplo, con ARP ), para encontrar si hay otro host presente en la red con la dirección IP propuesta. [8] : sec. 2.2 Si no hay respuesta, esta dirección no entra en conflicto con la de otro host, por lo que puede usarse libremente. Si esta sonda encuentra otra computadora que usa esa dirección, el cliente debe transmitir un DHCPDECLINE al servidor o servidores DHCP.
Un cliente DHCP puede solicitar más información que la que el servidor envió con el DHCPOFFER original. El cliente también puede solicitar datos repetidos para una aplicación en particular. Por ejemplo, los navegadores utilizan DHCP Inform para obtener la configuración del proxy web a través de WPAD .
El cliente envía una solicitud al servidor DHCP para liberar la información DHCP y el cliente desactiva su dirección IP. Como los dispositivos cliente normalmente no saben cuándo los usuarios pueden desconectarlos de la red, el protocolo no exige el envío de DHCP Release .
Un servidor DHCP puede proporcionar parámetros de configuración opcionales al cliente. La RFC 2132 describe las opciones DHCP disponibles definidas por la Autoridad de Números Asignados de Internet (IANA): PARÁMETROS DHCP y BOOTP. [13]
Un cliente DHCP puede seleccionar, manipular y sobrescribir parámetros proporcionados por un servidor DHCP. En sistemas tipo Unix, este refinamiento a nivel de cliente se realiza normalmente según los valores del archivo de configuración /etc/dhclient.conf .
Las opciones son cadenas de octetos de longitud variable. Esto se denomina codificación tipo-longitud-valor . El primer octeto es el código de la opción, el segundo octeto es la cantidad de octetos siguientes y los octetos restantes dependen del código. Por ejemplo, la opción de tipo de mensaje DHCP para una oferta aparecería como 0x35, 0x01, 0x02, donde 0x35 es el código 53 para "tipo de mensaje DHCP", 0x01 significa que sigue un octeto y 0x02 es el valor de "oferta".
Las siguientes tablas enumeran las opciones de DHCP disponibles. [14] [13]
Código | Nombre | Longitud | Notas |
---|---|---|---|
0 | Almohadilla | 0 octetos | Se puede utilizar para rellenar otras opciones de modo que estén alineadas con el límite de la palabra; no va seguido del byte de longitud |
1 | Máscara de subred | 4 octetos | Máscara de subred del cliente según RFC 950. Si se incluyen tanto la máscara de subred como la opción de enrutador (opción 3), la opción de máscara de subred debe ser la primera. |
2 | Desplazamiento horario | 4 octetos | Desplazamiento de la subred del cliente en segundos respecto del Tiempo Universal Coordinado (UTC). El desplazamiento se expresa como un entero de 32 bits en complemento a dos. Un desplazamiento positivo indica una ubicación al este del meridiano cero y un desplazamiento negativo indica una ubicación al oeste del meridiano cero. |
3 | Enrutador | Múltiplos de 4 octetos | Los enrutadores disponibles deben enumerarse en orden de preferencia |
4 | Servidor de tiempo | Múltiplos de 4 octetos | Los servidores de Protocolo de tiempo disponibles para sincronizar deben enumerarse en orden de preferencia |
5 | Servidor de nombres | Múltiplos de 4 octetos | Los servidores de nombres IEN 116 disponibles deben enumerarse en orden de preferencia |
6 | Servidor de nombres de dominio | Múltiplos de 4 octetos | Los servidores DNS disponibles deben enumerarse en orden de preferencia |
7 | Servidor de registro | Múltiplos de 4 octetos | Los servidores de registro disponibles deben enumerarse en orden de preferencia |
8 | Servidor de cookies | Múltiplos de 4 octetos | Cookie en este caso significa "galleta de la suerte" o "cita del día", una anécdota concisa o humorística que a menudo se envía como parte de un proceso de inicio de sesión en computadoras grandes; no tiene nada que ver con las cookies enviadas por sitios web . |
9 | Servidor LPR | Múltiplos de 4 octetos | Una lista de servidores de protocolo Line Printer Daemon disponibles para el cliente, debe aparecer en orden de preferencia |
10 | Impresionar al servidor | Múltiplos de 4 octetos | Una lista de servidores de Imagen Impress disponibles para el cliente, debe enumerarse en orden de preferencia |
11 | Servidor de ubicación de recursos | Múltiplos de 4 octetos | Una lista de servidores de Protocolo de ubicación de recursos disponibles para el cliente, debe enumerarse en orden de preferencia |
12 | Nombre de host | Mínimo de 1 octeto | Nombre del cliente. El nombre puede estar calificado con el nombre de dominio local. |
13 | Tamaño del archivo de arranque | 2 octetos | Longitud de la imagen de arranque en bloques de 512B |
14 | Archivo de volcado de mérito | Mínimo de 1 octeto | Ruta donde se deben almacenar los volcados de memoria |
15 | Nombre de dominio | Mínimo de 1 octeto | |
16 | Servidor de intercambio | 4 octetos | |
17 | Ruta raíz | Mínimo de 1 octeto | |
18 | Ruta de extensiones | Mínimo de 1 octeto | |
255 | Fin | 0 octetos | Se utiliza para marcar el final del campo de opción del proveedor. |
Código | Nombre | Longitud | Notas |
---|---|---|---|
19 | Habilitar/deshabilitar reenvío de IP | 1 octeto | |
20 | Habilitar/deshabilitar enrutamiento de origen no local | 1 octeto | |
21 | Filtro de políticas | Múltiplos de 8 octetos | |
22 | Tamaño máximo de reensamblaje de datagramas | 2 octetos | |
23 | Tiempo de vida de la IP predeterminada | 1 octeto | |
24 | Tiempo de espera de envejecimiento de la MTU de ruta | 4 octetos | |
25 | Tabla de meseta de MTU de Path | Múltiplos de 2 octetos |
Código | Nombre | Longitud | Notas |
---|---|---|---|
26 | Interfaz MTU | 2 octetos | |
27 | Todas las subredes son locales | 1 octeto | |
28 | Dirección de transmisión | 4 octetos | |
29 | Realizar descubrimiento de máscara | 1 octeto | |
30 | Proveedor de mascarillas | 1 octeto | |
31 | Realizar el descubrimiento del enrutador | 1 octeto | |
32 | Dirección de solicitud del enrutador | 4 octetos | |
33 | Ruta estática | Múltiplos de 8 octetos | Una lista de pares destino/enrutador |
Código | Nombre | Longitud | Notas |
---|---|---|---|
34 | Opción de encapsulamiento del remolque | 1 octeto | |
35 | Tiempo de espera de caché ARP | 4 octetos | |
36 | Encapsulación Ethernet | 1 octeto |
Código | Nombre | Longitud | Notas |
---|---|---|---|
37 | TTL predeterminado de TCP | 1 octeto | |
38 | Intervalo de mantenimiento de conexión TCP | 4 octetos | |
39 | Basura de mantenimiento de conexión TCP | 1 octeto |
Código | Nombre | Longitud | Notas |
---|---|---|---|
40 | Dominio del servicio de información de red | Mínimo de 1 octeto | |
41 | Servidores de información de red | Múltiplos de 4 octetos | |
42 | Servidores de Protocolo de tiempo de red (NTP) | Múltiplos de 4 octetos | |
43 | Información específica del proveedor | Mínimo de 1 octeto | |
44 | Servidor de nombres NetBIOS sobre TCP/IP | Múltiplos de 4 octetos | |
45 | Servidor de distribución de datagramas NetBIOS sobre TCP/IP | Múltiplos de 4 octetos | |
46 | Tipo de nodo NetBIOS sobre TCP/IP | 1 octeto | |
47 | Ámbito de aplicación de NetBIOS sobre TCP/IP | Mínimo de 1 octeto | |
48 | Servidor de fuentes del sistema X Window | Múltiplos de 4 octetos | |
49 | Administrador de visualización del sistema X Window | Múltiplos de 4 octetos | |
64 | Servicio de información de red + dominio | Mínimo de 1 octeto | |
65 | Servidores del Servicio de Información de Red+ | Múltiplos de 4 octetos | |
68 | Agente de IP móvil para el hogar | Múltiplos de 4 octetos | |
69 | Servidor de Protocolo simple de transferencia de correo (SMTP) | Múltiplos de 4 octetos | |
70 | Servidor de Protocolo de Oficina Postal (POP3) | Múltiplos de 4 octetos | |
71 | Servidor de Protocolo de transferencia de noticias en red (NNTP) | Múltiplos de 4 octetos | |
72 | Servidor World Wide Web (WWW) predeterminado | Múltiplos de 4 octetos | |
73 | Servidor de protocolo Finger predeterminado | Múltiplos de 4 octetos | |
74 | Servidor de chat de retransmisión por Internet (IRC) predeterminado | Múltiplos de 4 octetos | |
75 | Servidor StreetTalk | Múltiplos de 4 octetos | |
76 | Servidor de asistencia de directorio StreetTalk (STDA) | Múltiplos de 4 octetos |
Código | Nombre | Longitud | Notas |
---|---|---|---|
50 | Dirección IP solicitada | 4 octetos | |
51 | Tiempo de concesión de la dirección IP | 4 octetos | |
52 | Sobrecarga de opciones | 1 octeto | |
53 | Tipo de mensaje DHCP | 1 octeto | |
54 | Identificador del servidor | 4 octetos | |
55 | Lista de solicitudes de parámetros | Mínimo de 1 octeto | |
56 | Mensaje | Mínimo de 1 octeto | |
57 | Tamaño máximo del mensaje DHCP | 2 octetos | |
58 | Valor de tiempo de renovación (T1) | 4 octetos | |
59 | Valor de tiempo de revinculación (T2) | 4 octetos | |
60 | Identificador de clase de proveedor | Mínimo de 1 octeto | |
61 | Identificador del cliente | Mínimo de 2 octetos | |
66 | Nombre del servidor TFTP | Mínimo de 1 octeto | |
67 | Nombre del archivo de arranque | Mínimo de 1 octeto |
Esta tabla enumera los tipos de mensajes DHCP, documentados en RFC 2132, RFC 3203, [15] RFC 4388, [16] RFC 6926 [17] y RFC 7724. [18] Estos códigos son el valor en la extensión DHCP 53, que se muestra en la tabla anterior.
Código | Nombre | Longitud | Solicitud de cotización |
---|---|---|---|
1 | Descubrimiento DHCP | 1 octeto | rfc2132 [14] : Sección 9.6 |
2 | OFERTA DHCP | 1 octeto | rfc2132 [14] : Sección 9.6 |
3 | SOLICITUD DHCP | 1 octeto | rfc2132 [14] : Sección 9.6 |
4 | DHCP DECLINACIÓN | 1 octeto | rfc2132 [14] : Sección 9.6 |
5 | Recuperación de DHCP | 1 octeto | rfc2132 [14] : Sección 9.6 |
6 | DHCPNAK | 1 octeto | rfc2132 [14] : Sección 9.6 |
7 | LIBERACIÓN DHCP | 1 octeto | rfc2132 [14] : Sección 9.6 |
8 | INFORMACIÓN DHCP | 1 octeto | rfc2132 [14] : Sección 9.6 |
9 | RENOVACIÓN DEL FORZAMIENTO DE DHCP | 1 octeto | rfc3203 [15] : Sección 4 |
10 | CONSULTA DE CONTRATACIÓN DHCP | 1 octeto | rfc4388 [16] : Sección 6.1 |
11 | DHCPLEASE ASIGNADO | 1 octeto | rfc4388 [16] : Sección 6.1 |
12 | DHCPLEASEUNKNOWN (Asignación DHCP desconocida) | 1 octeto | rfc4388 [16] : Sección 6.1 |
13 | CONTRATACIÓN DHCP ACTIVA | 1 octeto | rfc4388 [16] : Sección 6.1 |
14 | CONSULTA DE RELACIONES EN BULTOS DE DHCP | 1 octeto | rfc6926 [17] : Sección 6.2.1 |
15 | DHCPLEASEQUERYHECHO | 1 octeto | rfc6926 [17] : Sección 6.2.1 |
16 | CONSULTA DE ACTIVIDAD DHCP | 1 octeto | rfc7724 [18] : Sección 5.2.1 |
17 | ESTADO DE CONSULTA DE ARRENDAMIENTO DE DHCP | 1 octeto | rfc7724 [18] : Sección 5.2.1 |
18 | DHCPTLS | 1 octeto | rfc7724 [18] : Sección 5.2.1 |
Existe una opción para identificar el proveedor y la funcionalidad de un cliente DHCP. La información es una cadena de caracteres u octetos de longitud variable que tiene un significado especificado por el proveedor del cliente DHCP. Un método mediante el cual un cliente DHCP puede comunicar al servidor que está utilizando un determinado tipo de hardware o firmware es establecer un valor en sus solicitudes DHCP denominado Identificador de clase de proveedor (VCI) (Opción 60).
El valor que se le asigna a esta opción le da al servidor DHCP una pista sobre cualquier información adicional requerida que este cliente necesita en una respuesta DHCP. Algunos tipos de decodificadores configuran la VCI para informar al servidor DHCP sobre el tipo de hardware y la funcionalidad del dispositivo. Un punto de acceso inalámbrico de campus de Aruba , por ejemplo, proporciona el valor 'ArubaAP' como opción 60 en su mensaje DHCPDISCOVER. [19] El servidor DHCP puede entonces aumentar su DHCPOFFER con una dirección IP de un controlador inalámbrico de Aruba en la opción 43, de modo que el punto de acceso sepa dónde registrarse.
La configuración de una VCI por parte del cliente permite que un servidor DHCP diferencie entre máquinas cliente y procese las solicitudes de ellas adecuadamente.
Código | Nombre | Longitud | Solicitud de cotización |
---|---|---|---|
77 | Clase de usuario | Mínimo de 2 octetos | RFC 3004 [20] |
82 | Información del agente de retransmisión | Mínimo de 2 octetos | RFC 3046 [21] |
85 | Servidores de Novell Directory Service (NDS) | Mínimo de 4 octetos, múltiplo de 4 octetos | RFC 2241 [22] : Sección 2 |
86 | Nombre del árbol NDS | Variable | RFC 2241 [22] : Sección 3 |
87 | Contexto de NDS | Variable | RFC 2241 [22] : Sección 4 |
100 | Zona horaria , estilo POSIX | Variable | RFC 4833 [23] |
101 | Zona horaria , estilo de base de datos tz | Variable | RFC 4833 [23] |
114 | Portal cautivo DHCP | Variable | RFC 8910 [24] |
119 | Búsqueda de dominio | Variable | RFC 3397 [25] |
121 | Ruta estática sin clases | Variable | RFC 3442 [26] |
209 | Archivo de configuración | Variable | RFC 5071 [27] |
210 | Prefijo de ruta | Variable | RFC 5071 [27] |
211 | Tiempo de reinicio | Variable | RFC 5071 [27] |
La opción de información del agente de retransmisión (opción 82) especifica el contenedor para adjuntar subopciones a las solicitudes DHCP transmitidas entre un relé DHCP y un servidor DHCP. [21]
Código | Nombre | Longitud | Solicitud de cotización |
---|---|---|---|
1 | Identificación del circuito del agente | Mínimo de 1 octeto | RFC 3046 [21] |
2 | Identificación remota del agente | Mínimo de 1 octeto | RFC 3046 [21] |
4 | Clase de dispositivo de Especificaciones de interfaz de servicio de datos por cable (DOCSIS) | 4 octetos | RFC 3256 [28] |
En redes pequeñas, donde solo se administra una subred IP, los clientes DHCP se comunican directamente con los servidores DHCP. Sin embargo, los servidores DHCP también pueden proporcionar direcciones IP para varias subredes. En este caso, un cliente DHCP que aún no ha adquirido una dirección IP no puede comunicarse directamente con un servidor DHCP que no se encuentre en la misma subred, ya que la transmisión del cliente solo se puede recibir en su propia subred.
Para permitir que los clientes DHCP en subredes que no reciben servicio directo de servidores DHCP se comuniquen con servidores DHCP, se pueden instalar agentes de retransmisión DHCP en estas subredes. Un agente de retransmisión DHCP se ejecuta en un dispositivo de red, capaz de enrutar entre la subred del cliente y la subred del servidor DHCP. El cliente DHCP transmite en el enlace local; el agente de retransmisión recibe la transmisión y la transmite a uno o más servidores DHCP mediante unidifusión . Las direcciones IP de los servidores DHCP se configuran manualmente en el agente de retransmisión. El agente de retransmisión almacena su propia dirección IP, de la interfaz en la que ha recibido la transmisión del cliente, en el campo GIADDR del paquete DHCP. El servidor DHCP utiliza el valor GIADDR para determinar la subred y, posteriormente, el grupo de direcciones correspondiente, desde el que asignar una dirección IP. Cuando el servidor DHCP responde al cliente, envía la respuesta a la dirección GIADDR, nuevamente mediante unidifusión. El agente de retransmisión retransmite entonces la respuesta en la red local, utilizando unicast (en la mayoría de los casos) a la dirección IP recién reservada, en una trama Ethernet dirigida a la dirección MAC del cliente. El cliente debe aceptar el paquete como propio, incluso cuando esa dirección IP aún no esté configurada en la interfaz. [8] : 25 Inmediatamente después de procesar el paquete, el cliente configura la dirección IP en su interfaz y está listo para la comunicación IP regular, directamente después.
Si la implementación de la pila IP del cliente no acepta paquetes de unidifusión cuando aún no tiene una dirección IP, el cliente puede configurar el bit de difusión en el campo FLAGS al enviar un paquete DHCPDISCOVER. El agente de retransmisión utilizará la dirección IP de difusión 255.255.255.255 (y la dirección MAC del cliente) para informar al cliente sobre la DHCPOFFER del servidor.
La comunicación entre el agente de retransmisión y el servidor DHCP normalmente utiliza un puerto UDP de origen y destino de 67.
Un cliente DHCP puede recibir estos mensajes de un servidor: [8] : §4.4
El cliente se mueve a través de los estados DHCP dependiendo de cómo el servidor responde a los mensajes que envía el cliente.
El DHCP garantiza la confiabilidad de varias maneras: renovación periódica, revinculación, [8] : §4.4.5 y conmutación por error. A los clientes DHCP se les asignan concesiones que duran un período de tiempo. Los clientes comienzan a intentar renovar sus concesiones una vez que ha expirado la mitad del intervalo de concesión. [8] : §4.4.5 Párrafo 3 Lo hacen enviando un mensaje DHCPREQUEST de unidifusión al servidor DHCP que otorgó la concesión original. Si ese servidor está inactivo o inaccesible, no responderá a la DHCPREQUEST . Sin embargo, en ese caso, el cliente repite la DHCPREQUEST de vez en cuando, [8] : §4.4.5 Párrafo 8 [b] por lo que si el servidor DHCP vuelve a funcionar o se vuelve accesible nuevamente, el cliente DHCP logrará comunicarse con él y renovar la concesión.
Si el servidor DHCP no está disponible durante un período prolongado, [8] : §4.4.5 Párrafo 5 el cliente DHCP intentará volver a enlazarse mediante la difusión de su DHCPREQUEST en lugar de la unidifusión. Debido a que se transmite , el mensaje DHCPREQUEST llegará a todos los servidores DHCP disponibles. Si algún otro servidor DHCP puede renovar la concesión, lo hará en este momento.
Para que la revinculación funcione, cuando el cliente contacta con éxito a un servidor DHCP de respaldo, ese servidor debe tener información precisa sobre la vinculación del cliente. Mantener información precisa de la vinculación entre dos servidores es un problema complicado; si ambos servidores pueden actualizar la misma base de datos de arrendamiento, debe haber un mecanismo para evitar conflictos entre actualizaciones en los servidores independientes. Se presentó una propuesta para implementar servidores DHCP tolerantes a fallas al Grupo de trabajo de ingeniería de Internet, pero nunca se formalizó. [29] [c]
Si la revinculación falla, el contrato de arrendamiento eventualmente expirará. Cuando el contrato de arrendamiento expira, el cliente debe dejar de usar la dirección IP que se le otorgó en su contrato de arrendamiento. [8] : §4.4.5 Párrafo 9 En ese momento reiniciará el proceso DHCP desde el principio mediante la difusión de un DHCPDISCOVER
mensaje. Dado que su contrato de arrendamiento ha expirado, aceptará cualquier dirección IP que se le ofrezca. Una vez que tenga una nueva dirección IP (presumiblemente de un servidor DHCP diferente) podrá volver a usar la red. Sin embargo, dado que su dirección IP ha cambiado, se interrumpirán todas las conexiones en curso.
La metodología básica de DHCP fue desarrollada para redes basadas en el Protocolo de Internet versión 4 (IPv4). Desde el desarrollo y despliegue de las redes IPv6 , DHCP también se ha utilizado para la asignación de parámetros en dichas redes, a pesar de las características inherentes de IPv6 para la autoconfiguración de direcciones sin estado . La versión IPv6 del protocolo se designa como DHCPv6 . [30]
El DHCP básico no incluye ningún mecanismo de autenticación. [31] : §7 Por ello, es vulnerable a una variedad de ataques. Estos ataques se dividen en tres categorías principales: [8] : sec. 7
Debido a que el cliente no tiene forma de validar la identidad de un servidor DHCP, se pueden operar servidores DHCP no autorizados (comúnmente llamados " DHCP no autorizados ") en las redes, proporcionando información incorrecta a los clientes DHCP. [32] Esto puede servir como un ataque de denegación de servicio, impidiendo que el cliente obtenga acceso a la conectividad de red, [33] o como un ataque de intermediario . [34] Debido a que el servidor DHCP proporciona al cliente DHCP direcciones IP de servidor, como la dirección IP de uno o más servidores DNS, [8] : sec. 7 un atacante puede convencer a un cliente DHCP de que haga sus búsquedas DNS a través de su propio servidor DNS y, por lo tanto, puede proporcionar sus propias respuestas a las consultas DNS del cliente. [35] Esto, a su vez, permite al atacante redirigir el tráfico de red a través de sí mismo, lo que le permite espiar las conexiones entre el cliente y los servidores de red con los que contacta, o simplemente reemplazar esos servidores de red con los suyos propios. [35]
Debido a que el servidor DHCP no tiene un mecanismo seguro para autenticar al cliente, los clientes pueden obtener acceso no autorizado a direcciones IP al presentar credenciales, como identificadores de cliente, que pertenecen a otros clientes DHCP. [32] Esto también permite que los clientes DHCP agoten el almacén de direcciones IP del servidor DHCP: al presentar nuevas credenciales cada vez que solicita una dirección, el cliente puede consumir todas las direcciones IP disponibles en un enlace de red en particular, lo que impide que otros clientes DHCP obtengan el servicio. [32]
DHCP proporciona algunos mecanismos para mitigar estos problemas. La extensión de protocolo Relay Agent Information Option [31] (que en la industria suele conocerse por su número real como Option 82 [36] [37] ) permite a los operadores de red adjuntar etiquetas a los mensajes DHCP a medida que estos llegan a la red de confianza del operador de red. Esta etiqueta se utiliza entonces como un token de autorización para controlar el acceso del cliente a los recursos de red. Debido a que el cliente no tiene acceso a la red anterior al agente de retransmisión, la falta de autenticación no impide que el operador del servidor DHCP confíe en el token de autorización. [31] : sec. 7
Otra extensión, Authentication for DHCP Messages [38] (RFC 3118), proporciona un mecanismo para autenticar mensajes DHCP. Hasta 2002, esta extensión no había tenido una adopción generalizada debido a los problemas de gestión de claves para grandes cantidades de clientes DHCP. [39] Un libro de 2007 sobre tecnologías DSL señaló que:
[H]uvo numerosas vulnerabilidades de seguridad identificadas contra las medidas de seguridad propuestas por RFC 3118. Este hecho, combinado con la introducción de 802.1x , ralentizó la implementación y la tasa de adopción de DHCP autenticado, y nunca se ha implementado ampliamente. [40]
Un libro de 2010 señala que:
[H]abía habido muy pocas implementaciones de autenticación DHCP. Los desafíos de la gestión de claves y los retrasos en el procesamiento debido al cálculo de hash se han considerado un precio demasiado alto a pagar por los beneficios percibidos. [41]
Las propuestas arquitectónicas de 2008 implican la autenticación de las solicitudes DHCP mediante 802.1x o PANA (ambos transportan EAP ). [42] Se realizó una propuesta de la IETF para incluir EAP en el propio DHCP, la denominada EAPoDHCP ; [43] esto no parece haber progresado más allá del nivel de borrador de la IETF, el último de los cuales data de 2010. [44]