Protocolo de configuración dinámica de host (DHCP)
El Protocolo de configuración dinámica de host (DHCP) es un protocolo de administración de red que se utiliza en redes de Protocolo de 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.
La tecnología elimina la necesidad de configurar individualmente los dispositivos de red manualmente y consta de dos componentes de red, un servidor DHCP de red instalado centralmente e instancias de cliente de la pila de protocolos en cada computadora o dispositivo. Cuando se conecta a la red, y periódicamente a partir de entonces, un cliente solicita un conjunto de parámetros del servidor DHCP utilizando el protocolo DHCP.
DHCP se puede implementar en redes que varían en tamaño, desde redes residenciales hasta grandes redes de campus y redes ISP regionales. 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 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.
Historia
El Protocolo de resolución de dirección inversa (RARP) se definió en RFC 903 en 1984 para la configuración de dispositivos simples, como estaciones de trabajo sin disco, con una dirección IP adecuada. 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 RFC 951 en septiembre de 1985. 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 hosts en muchas subredes IP.
DHCP se basa en BOOTP, pero puede asignar dinámicamente direcciones IP de un grupo y reclamarlas cuando ya no estén en uso. También se puede utilizar para ofrecer una amplia gama de parámetros de configuración adicionales a los clientes de IP, incluidos los parámetros específicos de la plataforma. DHCP se definió por primera vez en RFC 1531 en octubre de 1993, pero debido a errores en el proceso editorial se volvió a publicar casi de inmediato como RFC 1541.
Cuatro años más tarde, RFC 2131 agregó el tipo de mensaje DHCPINFORM y otros pequeños cambios, que a partir de 2021 sigue siendo el núcleo del estándar para redes IPv4, con actualizaciones en RFC 3396, RFC 4361, RFC 5494 y RFC 6842.
DHCPv6 se describió inicialmente por RFC 3315 en 2003. Después de las actualizaciones de muchos RFC posteriores, se reemplazó con RFC 8415, que se fusionó en la delegación de prefijos y la configuración automática de direcciones sin estado.
Visión general
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 de IP para dispositivos en su red local, por ejemplo, asignando direcciones IP a esos dispositivos de forma automática y dinámica.
DHCP opera en base al modelo cliente-servidor. Cuando una computadora u otro dispositivo se conecta a una red, el software del 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 conjunto 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, previamente configurada por un administrador, o con una dirección específica y cualquier otra información válida para toda la red y por el período de tiempo para el cual la asignación (lease) es válida. Un cliente DHCP normalmente consulta esta información inmediatamente después del arranque y periódicamente 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 múltiples enlaces, un solo servidor DHCP puede dar 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.
Según la implementación, el servidor DHCP puede tener tres métodos para asignar direcciones IP:Asignación dinámicaUn administrador de red reserva un rango de direcciones IP para DHCP, y cada cliente DHCP en la LAN está configurado para solicitar una dirección IP del servidor DHCP durante la inicialización de la red. El proceso de solicitud y concesión utiliza un concepto de arrendamiento con un período de tiempo controlable, lo que permite que el servidor DHCP recupere y luego reasigne las direcciones IP que no se renueven.Asignación automáticaEl servidor DHCP asigna permanentemente una dirección IP a un cliente solicitante de un rango definido por un administrador. Esto es como una asignación dinámica, pero el servidor DHCP mantiene una tabla de asignaciones de direcciones IP anteriores, de modo que puede asignar preferentemente a un cliente la misma dirección IP que tenía el cliente anteriormente.Asignación manualEste método también se denomina asignación de DHCP estática, asignación de direcciones fijas, reserva y vinculación de direcciones MAC/IP. Un administrador asigna un identificador único (una identificación de cliente o dirección MAC) para cada cliente a una dirección IP, que se ofrece al cliente solicitante. Los servidores DHCP pueden configurarse para recurrir a otros métodos si esto falla.
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. Para el funcionamiento de IPv6, los dispositivos pueden utilizar alternativamente la configuración automática de direcciones sin estado. Los hosts IPv6 también pueden usar el direccionamiento local de enlace para lograr operaciones restringidas al enlace de red local.
Operación
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 puerto UDP número 67 es el puerto de destino de un servidor, y el puerto UDP número 68 lo utiliza el cliente.
Las operaciones de DHCP se dividen en cuatro fases: detección de servidores, oferta de arrendamiento de IP, solicitud de arrendamiento de IP y reconocimiento de arrendamiento de IP. Estas etapas a menudo se abrevian como DORA para descubrimiento, oferta, solicitud y reconocimiento.
La operación de DHCP comienza cuando los clientes transmiten una solicitud. Si el cliente y el servidor están en diferentes dominios de difusión, se puede utilizar un auxiliar de DHCP o un agente de retransmisión de DHCP. Los clientes que soliciten la renovación de un contrato de arrendamiento 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 el 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 usar para indicar de qué manera (difusión o unidifusión) puede recibir DHCPOFFER: 0x8000 para difusión, 0x0000 para unidifusión. Por lo general, 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 usar para solucionar este problema.
Descubrimiento
El cliente DHCP difunde un mensaje DHCPDISCOVER en la subred de la red mediante la dirección de destino 255.255.255.255 (difusión limitada) o la dirección de difusión de la subred específica (difusión dirigida). Un cliente DHCP también puede solicitar su última dirección IP conocida. Si el cliente permanece conectado a la misma red, el servidor puede conceder la solicitud. De lo contrario, depende de si el servidor está configurado como autorizado o no. Un servidor autorizado niega la solicitud, lo que hace que el cliente emita una nueva solicitud. Un servidor no autorizado simplemente ignora la solicitud, lo que lleva a un tiempo de espera dependiente de la implementación para que el cliente caduque la solicitud y solicite una nueva dirección IP.
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. El CHADDR se establece en la dirección MAC utilizada por el cliente. También se establecen algunas opciones.
Ethernet: fuente = MAC del remitente; destino= FF:FF:FF:FF:FF:FF | |||
IP: fuente= 0.0.0.0; destino= 255.255.255.255UDP: puerto de origen=68; puerto de destino=67 | |||
Octeto 0 | Octeto 1 | Octeto 2 | Octeto 3 |
---|---|---|---|
OP | TIPO H | HLEN | LÚPULO |
0x01 | 0x01 | 0x06 | 0x00 |
ID X | |||
0x3903F326 | |||
SECS | BANDERAS | ||
0x0000 | 0x0000 | ||
CIADDR (dirección IP del cliente) | |||
0x00000000 | |||
YIADDR (Tu dirección IP) | |||
0x00000000 | |||
SIADDR (dirección IP del servidor) | |||
0x00000000 | |||
GIADDR (dirección IP de la puerta de enlace) | |||
0x00000000 | |||
CHADDR (dirección de hardware del cliente) | |||
0x00053C04 | |||
0x8D590000 | |||
0x00000000 | |||
0x00000000 | |||
192 octetos de ceros o espacio de desbordamiento para opciones adicionales; Legado BOOTP. | |||
galleta mágica | |||
0x63825363 | |||
Opciones de DHCP | |||
0x350101 53: 1 (DHCP Descubrir) | |||
0x3204c0a80164 50: 192.168.1.100 solicitado | |||
0x370401030f06 55 (Lista de solicitudes de parámetros):1 (Solicitar máscara de subred),3 (enrutador),15 (Nombre de Dominio),6 (Servidor de nombres de dominio) | |||
0xff 255 (Marca final) |
Oferta
Cuando un servidor DHCP recibe un mensaje DHCPDISCOVER de un cliente, que es una solicitud de arrendamiento de dirección IP, el servidor DHCP reserva una dirección IP para el cliente y realiza una oferta de arrendamiento mediante el envío de un mensaje DHCPOFFER al cliente. Este mensaje contiene la identificación del cliente del cliente (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 de nivel de hardware en la capa de transporte subyacente: de acuerdo con los RFC actuales, la dirección MAC de la capa de transporte se puede usar si no se proporciona una ID de cliente en el paquete DHCP.
El servidor DHCP determina la configuración según la dirección de hardware del cliente como se especifica en el campo CHADDR (dirección de hardware del cliente). Aquí el servidor, 192.168.1.1, especifica la dirección IP del cliente en el campo YIADDR (su dirección IP).
Ethernet: fuente = MAC del remitente; destino=dirección mac del cliente | |||
IP: fuente= 192.168.1.1; destino= 192.168.1.100UDP: puerto de origen=67; puerto de destino=68 | |||
Octeto 0 | Octeto 1 | Octeto 2 | Octeto 3 |
---|---|---|---|
OP | TIPO H | HLEN | LÚPULO |
0x02 | 0x01 | 0x06 | 0x00 |
ID X | |||
0x3903F326 | |||
SECS | BANDERAS | ||
0x0000 | 0x0000 | ||
CIADDR (dirección IP del cliente) | |||
0x00000000 | |||
YIADDR (Tu dirección IP) | |||
0xC0A80164 (192.168.1.100) | |||
SIADDR (dirección IP del servidor) | |||
0xC0A80101 (192.168.1.1) | |||
GIADDR (dirección IP de la puerta de enlace) | |||
0x00000000 | |||
CHADDR (dirección de hardware del cliente) | |||
0x00053C04 | |||
0x8D590000 | |||
0x00000000 | |||
0x00000000 | |||
192 octetos de 0s; Legado BOOTP. | |||
galleta mágica | |||
0x63825363 | |||
Opciones de DHCP | |||
53: 2 (Oferta DHCP) | |||
1 (máscara de subred): 255.255.255.0 | |||
3 (enrutador): 192.168.1.1 | |||
51 (tiempo de arrendamiento de la dirección IP): 86400s (1 día) | |||
54 (servidor DHCP): 192.168.1.1 | |||
6 (servidores DNS):9.7.10.15,9.7.10.16,9.7.10.18 |
Solicitud
En respuesta a la oferta DHCP, el cliente responde con un mensaje DHCPREQUEST, transmitido al servidor, solicitando la dirección ofrecida. Un cliente puede recibir ofertas de DHCP de varios servidores, pero solo aceptará una oferta de DHCP. Antes de reclamar una dirección IP, el cliente transmitirá una solicitud ARP para averiguar si hay otro host presente en la red con la dirección IP propuesta. Si no hay respuesta, esta dirección no entra en conflicto con la de otro host, por lo que es libre de usar.
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. Cuando otros servidores DHCP reciben este mensaje, retiran cualquier oferta que hayan hecho al cliente y devuelven la dirección IP ofrecida al grupo de direcciones disponibles.
Ethernet: fuente = MAC del remitente; destino= FF:FF:FF:FF:FF:FF | |||
IP: fuente= 0.0.0.0; destino= 255.255.255.255; UDP: puerto de origen=68; puerto de destino=67 | |||
Octeto 0 | Octeto 1 | Octeto 2 | Octeto 3 |
---|---|---|---|
OP | TIPO H | HLEN | LÚPULO |
0x01 | 0x01 | 0x06 | 0x00 |
ID X | |||
0x3903F326 | |||
SECS | BANDERAS | ||
0x0000 | 0x0000 | ||
CIADDR (dirección IP del cliente) | |||
0xC0A80164 (192.168.1.100) | |||
YIADDR (Tu dirección IP) | |||
0x00000000 | |||
SIADDR (dirección IP del servidor) | |||
0xC0A80101 (192.168.1.1) | |||
GIADDR (dirección IP de la puerta de enlace) | |||
0x00000000 | |||
CHADDR (dirección de hardware del cliente) | |||
0x00053C04 | |||
0x8D590000 | |||
0x00000000 | |||
0x00000000 | |||
192 octetos de 0s; Legado BOOTP. | |||
galleta mágica | |||
0x63825363 | |||
Opciones de DHCP | |||
53: 3 (Solicitud DHCP) | |||
50: 192.168.1.100 solicitado | |||
54 (servidor DHCP): 192.168.1.1 |
Reconocimiento
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 del arrendamiento y cualquier otra información de configuración que el cliente pueda haber solicitado. En este punto, se completa el proceso de configuración de IP.
El protocolo espera que el cliente DHCP configure su interfaz de red con los parámetros negociados.
Después de que el cliente obtiene una dirección IP, debe sondear la dirección recién recibida (por ejemplo, con el Protocolo de resolución de direcciones ARP) para evitar conflictos de direcciones causados por conjuntos de direcciones superpuestas de servidores DHCP. Si esta sonda encuentra otra computadora que usa esa dirección, la computadora debe enviar DHCPDECLINE, difusión, al servidor.
Ethernet: fuente = MAC del remitente; destino = MAC del cliente | |||
IP: fuente= 192.168.1.1; destino= 192.168.1.100UDP: puerto de origen=67; puerto de destino=68 | |||
Octeto 0 | Octeto 1 | Octeto 2 | Octeto 3 |
---|---|---|---|
OP | TIPO H | HLEN | LÚPULO |
0x02 | 0x01 | 0x06 | 0x00 |
ID X | |||
0x3903F326 | |||
SECS | BANDERAS | ||
0x0000 | 0x0000 | ||
CIADDR (dirección IP del cliente) | |||
0x00000000 | |||
YIADDR (Tu dirección IP) | |||
0xC0A80164 (192.168.1.100) | |||
SIADDR (dirección IP del servidor) | |||
0xC0A80101 (192.168.1.1) | |||
GIADDR (dirección IP de puerta de enlace conmutada por relé) | |||
0x00000000 | |||
CHADDR (dirección de hardware del cliente) | |||
0x00053C04 | |||
0x8D590000 | |||
0x00000000 | |||
0x00000000 | |||
192 octetos de 0s. legado BOOTP | |||
galleta mágica | |||
0x63825363 | |||
Opciones de DHCP | |||
53: 5 (DHCP RECONOCIMIENTO) | |||
1 (máscara de subred): 255.255.255.0 | |||
3 (enrutador): 192.168.1.1 | |||
51 (tiempo de arrendamiento de la dirección IP): 86400s (1 día) | |||
54 (servidor DHCP): 192.168.1.1 | |||
6 (servidores DNS):9.7.10.15,9.7.10.16,9.7.10.18 |
Información
Un cliente DHCP puede solicitar más información que el servidor enviado con el DHCPOFFER original. El cliente también puede solicitar datos repetidos para una aplicación en particular. Por ejemplo, los navegadores usan DHCP Inform para obtener la configuración del proxy web a través de WPAD.
Liberando
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 generalmente no saben cuándo los usuarios pueden desconectarlos de la red, el protocolo no exige el envío de DHCP Release.
Parámetros de configuración del cliente
Un servidor DHCP puede proporcionar parámetros de configuración opcionales al cliente. RFC 2132 describe las opciones de DHCP disponibles definidas por la Autoridad de números asignados de Internet (IANA): PARÁMETROS DHCP y BOOTP.
Un cliente DHCP puede seleccionar, manipular y sobrescribir parámetros proporcionados por un servidor DHCP. En los sistemas similares a Unix, este refinamiento a nivel de cliente generalmente se lleva a cabo de acuerdo con los valores en el archivo de configuración /etc/dhclient.conf.
Opciones
Las opciones son cadenas de octetos de longitud variable. Esto se denomina codificación de tipo-longitud-valor. El primer octeto es el código de opción, el segundo octeto es el número 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, tal como se enumeran en RFC 2132 y el registro de la IANA.
Código | Nombre | Longitud | notas |
---|---|---|---|
0 | Almohadilla | 0 octetos | Se puede usar para rellenar otras opciones para 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 de tiempo | 4 octetos | Desplazamiento de la subred del cliente en segundos desde el 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 tiempo disponibles para sincronizar deben enumerarse en orden de preferencia |
5 | Nombre del servidor | 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 | 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 fortuna" 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 los sitios web. |
9 | Servidor LPR | múltiplos de 4 octetos | Una lista de servidores de impresora de línea RFC 1179 disponibles para el cliente, debe aparecer en orden de preferencia |
10 | servidor de impresión | múltiplos de 4 octetos | Una lista de los 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 ubicación de recursos RFC 887 disponibles para el cliente, debe aparecer 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 512B |
14 | Archivo de volcado de méritos | Mínimo de 1 octeto | Ruta donde se deben almacenar los volcados de memoria |
15 | Nombre de dominio | Mínimo de 1 octeto | |
dieciséis | servidor de intercambio | 4 octetos | |
17 | Ruta raíz | Mínimo de 1 octeto | |
18 | Ruta de extensiones | Mínimo de 1 octeto | |
255 | Final | 0 octetos | Se utiliza para marcar el final del campo de opción de proveedor |
Código | Nombre | Longitud | notas |
---|---|---|---|
19 | Habilitar/deshabilitar el 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 IP predeterminado | 1 octeto | |
24 | Tiempo de espera de vencimiento de MTU de ruta | 4 octetos | |
25 | Mesa Path MTU | 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 Difusión | 4 octetos | |
29 | Realizar descubrimiento de máscara | 1 octeto | |
30 | Proveedor de máscaras | 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 de destino/enrutador |
Código | Nombre | Longitud | notas |
---|---|---|---|
34 | Opción de encapsulación de 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 TCP | 4 octetos | |
39 | Basura de mantenimiento de 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 octetos | |
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 | NetBIOS sobre tipo de nodo TCP/IP | 1 octeto | |
47 | NetBIOS sobre alcance TCP/IP | Mínimo de 1 octeto | |
48 | Servidor de fuentes del sistema X Window | múltiplos de 4 octetos | |
49 | Administrador de pantalla del sistema X Window | múltiplos de 4 octetos | |
64 | Servicio de información de red + dominio | Mínimo de 1 octeto | |
sesenta y cinco | Servicio de información de red + servidores | múltiplos de 4 octetos | |
68 | Agente local de IP móvil | 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 de 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 predeterminado de Internet Relay Chat (IRC) | múltiplos de 4 octetos | |
75 | Servidor StreetTalk | múltiplos de 4 octetos | |
76 | Servidor de asistencia de directorio de 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 de mensaje DHCP | 2 octetos | |
58 | Valor de tiempo de renovación (T1) | 4 octetos | |
59 | Valor de tiempo de reenlace (T2) | 4 octetos | |
60 | Identificador de clase de proveedor | Mínimo de 1 octeto | |
61 | Identificador de 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 |
Tipos de mensajes DHCP
Esta tabla enumera los tipos de mensajes DHCP, documentados en RFC 2132, RFC 3203, RFC 4388, RFC 6926 y RFC 7724. Estos códigos son el valor en la extensión DHCP 53, que se muestra en la tabla anterior.
Código | Nombre | Longitud | RFC |
---|---|---|---|
1 | DHCPDESCUBRIR | 1 octeto | rfc2132 |
2 | DHCPOFERTA | 1 octeto | rfc2132 |
3 | DHCPREQUEST | 1 octeto | rfc2132 |
4 | DHCPDECLINE | 1 octeto | rfc2132 |
5 | DHCPPACK | 1 octeto | rfc2132 |
6 | DHCPNAK | 1 octeto | rfc2132 |
7 | LIBERARDHCP | 1 octeto | rfc2132 |
8 | DHCPINFORMAR | 1 octeto | rfc2132 |
9 | DHCPFORCENEW | 1 octeto | rfc3203 |
10 | DHCPLEASEQUERY | 1 octeto | rfc4388 |
11 | DHCPLEASEUNASIGNED | 1 octeto | rfc4388 |
12 | DHCPLEASEUNKNOWN | 1 octeto | rfc4388 |
13 | DHCPLEASEACTIVO | 1 octeto | rfc4388 |
14 | DHCPBULKLEASEQUERY | 1 octeto | rfc6926 |
15 | DHCPLEASEQUERYDONE | 1 octeto | rfc6926 |
dieciséis | DHCPACTIVELEASEQUERY | 1 octeto | rfc7724 |
17 | DHCPLEASEQUERYSTATUS | 1 octeto | rfc7724 |
18 | DHCPTLS | 1 octeto | rfc7724 |
Identificación del proveedor del cliente
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 por el cual un cliente DHCP puede comunicarle al servidor que está utilizando cierto tipo de hardware o firmware es establecer un valor en sus solicitudes de DHCP denominado Identificador de clase de proveedor (VCI) (Opción 60). Este método permite que un servidor DHCP diferencie entre los dos tipos de máquinas cliente y procese las solicitudes de los dos tipos de módems de manera adecuada. Algunos tipos de decodificadores también configuran el VCI (Opción 60) para informar al servidor DHCP sobre el tipo de hardware y la funcionalidad del dispositivo.
Otras extensiones
Código | Nombre | Longitud | RFC |
---|---|---|---|
82 | Información del agente de retransmisión | Mínimo de 2 octetos | RFC 3046 |
85 | Servidores de servicio de directorio de Novell (NDS) | Mínimo de 4 octetos, múltiplo de 4 octetos | RFC 2241 |
86 | nombre del árbol NDS | Variable | RFC 2241 |
87 | contexto NDS | Variable | RFC 2241 |
100 | Zona horaria, estilo POSIX | Variable | RFC 4833 |
101 | Zona horaria, estilo de base de datos tz | Variable | RFC 4833 |
114 | Portal cautivo DHCP | Variable | RFC 8910 |
119 | búsqueda de dominio | Variable | RFC 3397 |
121 | Ruta estática sin clases | Variable | RFC 3442 |
209 | Archivo de configuración | Variable | RFC 5071 |
210 | Prefijo de ruta | Variable | RFC 5071 |
211 | Tiempo de reinicio | Variable | RFC 5071 |
Subopciones de información del agente de retransmisión
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 retransmisor DHCP y un servidor DHCP.
Código | Nombre | Longitud | RFC |
---|---|---|---|
1 | ID del circuito del agente | Mínimo de 1 octeto | RFC 3046 |
2 | Identificación remota del agente | Mínimo de 1 octeto | RFC 3046 |
4 | Clase de dispositivo de especificaciones de interfaz de servicio de datos por cable (DOCSIS) | 4 octetos | RFC 3256 |
Retransmisión
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 haya adquirido una dirección IP no puede comunicarse directamente con un servidor DHCP que no esté en la misma subred, ya que la transmisión del cliente solo puede recibirse en su propia subred.
Para permitir que los clientes DHCP en las subredes que no están atendidas directamente por los servidores DHCP se comuniquen con los 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 difusió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, desde la interfaz en la que ha recibido la difusión del cliente, en el GIADDRcampo 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. Luego, el agente de retransmisión retransmite la respuesta en la red local, mediante unidifusión (en la mayoría de los casos) a la dirección IP recién reservada, en una trama de 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. 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, inmediatamente después.
Si la implementación del cliente de la pila IP no acepta paquetes de unidifusión cuando aún no tiene una dirección IP, el cliente puede establecer 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 de la OFERTA DHCP del servidor.
La comunicación entre el agente de retransmisión y el servidor DHCP suele utilizar un puerto UDP 67 de origen y de destino.
Estados del cliente
Como se describe en RFC 2131, un cliente DHCP puede recibir estos mensajes de un servidor:
- DHCPOFERTA
- DHCPPACK
- DHCPNAK
El cliente se mueve a través de los estados de DHCP según cómo responda el servidor a los mensajes que envía el cliente.
Fiabilidad
El DHCP garantiza la confiabilidad de varias maneras: renovación periódica, reenlace y conmutación por error. A los clientes DHCP se les asignan concesiones que duran un cierto período de tiempo. Los clientes comienzan a intentar renovar sus arrendamientos una vez que ha vencido la mitad del intervalo de arrendamiento. Para ello, envían un mensaje DHCPREQUEST de unidifusión al servidor DHCP que otorgó la concesión original. Si ese servidor está inactivo o no se puede acceder, no podrá responder a DHCPREQUEST. Sin embargo, en ese caso, el cliente repite DHCPREQUEST de vez en cuando, por lo que si el servidor DHCP vuelve a funcionar o vuelve a estar accesible, el cliente DHCP logrará contactarlo y renovar la concesión.
Si no se puede acceder al servidor DHCP durante un período de tiempo prolongado, el cliente DHCP intentará volver a vincular, transmitiendo su DHCPREQUEST en lugar de transmitirlo por 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 el reenlace funcione, cuando el cliente contacta con éxito a un servidor DHCP de respaldo, ese servidor debe tener información precisa sobre el enlace del cliente. Mantener información de enlace precisa 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 las actualizaciones en los servidores independientes. Se envió una propuesta al Grupo de trabajo de ingeniería de Internet para implementar servidores DHCP tolerantes a fallas, pero nunca se formalizó.
Si la revinculación falla, el contrato de arrendamiento eventualmente vencerá. Cuando vence el contrato de arrendamiento, el cliente debe dejar de usar la dirección IP que se le otorgó en su contrato de arrendamiento. En ese momento reiniciará el proceso DHCP desde el principio emitiendo un DHCPDISCOVER
mensaje. Dado que su 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 utilizar la red. Sin embargo, dado que su dirección IP ha cambiado, se interrumpirán todas las conexiones en curso.
Redes IPv6
La metodología básica de DHCP se desarrolló para redes basadas en el Protocolo de Internet versión 4 (IPv4). Desde el desarrollo y la implementación de las redes IPv6, DHCP también se ha utilizado para asignar parámetros en dichas redes, a pesar de las características inherentes de IPv6 para la configuración automática de direcciones sin estado. La versión IPv6 del protocolo se designa como DHCPv6.
Seguridad
El DHCP base no incluye ningún mecanismo de autenticación. Debido a esto, es vulnerable a una variedad de ataques. Estos ataques se dividen en tres categorías principales:
- Servidores DHCP no autorizados que proporcionan información falsa a los clientes.
- Clientes no autorizados que obtienen acceso a los recursos.
- Ataques de agotamiento de recursos de clientes DHCP maliciosos.
Debido a que el cliente no tiene forma de validar la identidad de un servidor DHCP, los servidores DHCP no autorizados (comúnmente llamados "DHCP no autorizados") pueden funcionar en las redes y proporcionar información incorrecta a los clientes DHCP. Esto puede servir como un ataque de denegación de servicio, evitando que el cliente obtenga acceso a la conectividad de la red, o como un ataque de intermediario. Debido a que el servidor DHCP proporciona al cliente DHCP las direcciones IP del servidor, como la dirección IP de uno o más servidores DNS, un atacante puede convencer a un cliente DHCP para que realice sus búsquedas de DNS a través de su propio servidor DNS y, por lo tanto, puede proporcionar sus propias respuestas. a las consultas DNS del cliente.Esto, a su vez, permite al atacante redirigir el tráfico de la 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.
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 presentando credenciales, como identificadores de clientes, que pertenecen a otros clientes DHCP. Esto también permite a los clientes DHCP agotar el almacenamiento 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, evitando que otros clientes DHCP obtengan el servicio.
DHCP proporciona algunos mecanismos para mitigar estos problemas. La extensión del protocolo de opción de información de agente de retransmisión (RFC 3046, generalmente denominada en la industria por su número real como opción 82) permite a los operadores de red adjuntar etiquetas a los mensajes DHCP a medida que estos mensajes llegan a la red de confianza del operador de red. Esta etiqueta se usa luego como un token de autorización para controlar el acceso del cliente a los recursos de la red. Debido a que el cliente no tiene acceso a la red aguas arriba del 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.
Otra extensión, Autenticación para mensajes DHCP (RFC 3118), proporciona un mecanismo para autenticar mensajes DHCP. A partir de 2002, RFC 3118 no había tenido una adopción generalizada debido a los problemas de administración de claves para una gran cantidad de clientes DHCP. Un libro de 2007 sobre tecnologías DSL comentó que:
se identificaron numerosas vulnerabilidades de seguridad 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.
Un libro de 2010 señala que:
[h]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.
Las propuestas arquitectónicas de 2008 involucran la autenticación de solicitudes DHCP utilizando 802.1x o PANA (ambos transportan EAP). Se hizo una propuesta del IETF para incluir EAP en el mismo DHCP, el llamado EAPoDHCP; esto no parece haber progresado más allá del nivel de borrador de IETF, el último de los cuales data de 2010.
Documentos de estándares IETF
- RFC 2131, Protocolo de configuración de host dinámico
- RFC 2132, opciones DHCP y extensiones de proveedor BOOTP
- RFC 3046, opción de información del agente de retransmisión DHCP
- RFC 3397, Opción de búsqueda de dominio del Protocolo de configuración dinámica de host (DHCP)
- RFC 3942, Reclasificación de las opciones del protocolo de configuración dinámica de host, versión cuatro (DHCPv4)
- RFC 4242, opción de tiempo de actualización de información para el protocolo de configuración dinámica de host para IPv6
- RFC 4361, Identificadores de cliente específicos de nodo para el protocolo de configuración dinámica de host, versión cuatro (DHCPv4)
- RFC 4436, Detección de adjuntos de red en IPv4 (DNAv4)
- RFC 3442, opción de ruta estática sin clases para el protocolo de configuración dinámica de host (DHCP) versión 4
- RFC 3203, extensión de reconfiguración de DHCP
- RFC 4388, Leasequery de protocolo de configuración dinámica de host (DHCP)
- RFC 6926, consulta de arrendamiento masivo de DHCPv4
- RFC 7724, consulta de concesión activa de DHCPv4
Contenido relacionado
Paquete de red
Capa de enlace de datos
Protocolo de transporte en tiempo real (RTP)