Protocolo de configuración huésped dinámico
El Protocolo de configuración dinámica de host (DHCP) es un protocolo de administración de red utilizado 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 utilizando una arquitectura cliente-servidor.
La tecnología elimina la necesidad de configurar individualmente los dispositivos de red de forma manual 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 mediante DHCP.
DHCP se puede implementar en redes que varían en tamaño, desde redes residenciales hasta redes de campus grandes 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 después, 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.
Resumen
El Protocolo de Internet (IP) define cómo se comunican los dispositivos dentro ya 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 funciona según el 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 para el período de tiempo para el cual la asignación (alquiler) es válido. 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 varios 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 de interconexión. 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:
- Asignación dinámica
- Un administrador de red se reserva una gama 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-grant utiliza un concepto de arrendamiento con un período de tiempo controlable, permitiendo al servidor DHCP recuperar y luego reasignar direcciones IP que no se renueven.
- Asignación automática
- El servidor DHCP asigna permanentemente una dirección IP a un cliente solicitante de un rango definido por un administrador. Esto es como asignación dinámica, pero el servidor DHCP mantiene una tabla de asignaciones anteriores de direcciones IP, de modo que pueda asignar preferencialmente a un cliente la misma dirección IP que el cliente tenía anteriormente.
- Asignación manual
- Este método también se llama Asignación de DHCP estática, asignación fija, reserva, y MAC/IP address binding. Un administrador mapea un identificador único (a cliente id o dirección MAC) para cada cliente a una dirección IP, que se ofrece al cliente solicitante. Los servidores DHCP pueden configurarse para volver 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 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: 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 transmite un mensaje DHCPDISCOVER en la subred de la red utilizando la dirección de destino 255.255.255.255 (difusión limitada) o la dirección de difusión de 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=sender MAC; destino=FF:FF:FF:FF | |||
IP: source=0,00,0; destino=255.255.255 | |||
Octeto 0 | Octeto 1 | Octeto 2 | Octeto 3 |
---|---|---|---|
OP | HTYPE | HLEN | HOPS |
0x01 | 0x01 | 0x06 | 0x00 |
XID | |||
0x3903F326 | |||
SECS | FLAGS | ||
0x0000 | 0x0000 | ||
CIADDR (dirección IP local) | |||
0x00000 | |||
YIADDR (Su dirección IP) | |||
0x00000 | |||
SIADDR (dirección IP de servidor) | |||
0x00000 | |||
GIADDR (dirección IP de la vía aérea) | |||
0x00000 | |||
CHADDR (Dirección de hardware local) | |||
0x00053C04 | |||
0x8D590000 | |||
0x00000 | |||
0x00000 | |||
192 octets de 0s, o espacio de desbordamiento para opciones adicionales; legado de BOOTP. | |||
Galleta mágica | |||
0x63825363 | |||
Opciones DHCP | |||
0x350101 53: 1 (DHCP Discover) | |||
0x3204c0a80164 50: 192.168.1.100 solicitada | |||
0x370401030f06 55 (lista de solicitud del parámetro):
| |||
0xff 255 (Dinamarca) |
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). En el siguiente ejemplo, el servidor (192.168.1.1) especifica el cliente& #39;s dirección IP en el campo YIADDR (su dirección IP).
Ethernet: MAC de origen=sender; dirección de mac de destino=cliente | ||||
IP: source=192.168.1.1; destino=192.168.1.100 | ||||
Octeto 0 | Octeto 1 | Octeto 2 | Octeto 3 | |
---|---|---|---|---|
OP | HTYPE | HLEN | HOPS | |
0x02 | 0x01 | 0x06 | 0x00 | |
XID | ||||
0x3903F326 | ||||
SECS | FLAGS | |||
0x0000 | 0x0000 | |||
CIADDR (dirección IP local) | ||||
0x00000 | ||||
YIADDR (Su dirección IP) | ||||
0xC0A80164192.168.1.100) | ||||
SIADDR (dirección IP de servidor) | ||||
0xC0A80101192.168.1.1) | ||||
GIADDR (dirección IP de la vía aérea) | ||||
0x00000 | ||||
CHADDR (Dirección de hardware local) | ||||
0x00053C04 | ||||
0x8D590000 | ||||
0x00000 | ||||
0x00000 | ||||
192 octets de 0s; legado de BOOTP. | ||||
Galleta mágica | ||||
0x63825363 | ||||
Opciones DHCP | ||||
53: 2 (Oferta DHCP) | ||||
1 (Máscara subnet): 255.255.255.0 | ||||
3 (Router): 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):
|
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 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=sender MAC; destino=FF:FF:FF:FF | ||||
IP: source=0,00,0; destino=255.255.255; | ||||
Octeto 0 | Octeto 1 | Octeto 2 | Octeto 3 | |
---|---|---|---|---|
OP | HTYPE | HLEN | HOPS | |
0x01 | 0x01 | 0x06 | 0x00 | |
XID | ||||
0x3903F326 | ||||
SECS | FLAGS | |||
0x0000 | 0x0000 | |||
CIADDR (dirección IP local) | ||||
0x00000 | ||||
YIADDR (Su dirección IP) | ||||
0x00000 | ||||
SIADDR (dirección IP de servidor) | ||||
0xC0A80101192.168.1.1) | ||||
GIADDR (dirección IP de la vía aérea) | ||||
0x00000 | ||||
CHADDR (Dirección de hardware local) | ||||
0x00053C04 | ||||
0x8D590000 | ||||
0x00000 | ||||
0x00000 | ||||
192 octets de 0s; legado de BOOTP. | ||||
Galleta mágica | ||||
0x63825363 | ||||
Opciones DHCP | ||||
53: 3 (Solicitud del PDH) | ||||
50: 192.168.1.100 solicitada | ||||
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 obtenga una dirección IP, debe sondear la dirección recién recibida (p. ej., con el Protocolo de resolución de direcciones ARP) para evitar conflictos de direcciones causados por la superposición de grupos de direcciones de servidores DHCP. Si esta sonda encuentra otra computadora que usa esa dirección, la computadora debe enviar DHCPDECLINE, difusión, al servidor.
Ethernet: MAC de origen=sender; destino=client's MAC | |||
IP: source=192.168.1.1; destino=192.168.1.100 | |||
Octeto 0 | Octeto 1 | Octeto 2 | Octeto 3 |
---|---|---|---|
OP | HTYPE | HLEN | HOPS |
0x02 | 0x01 | 0x06 | 0x00 |
XID | |||
0x3903F326 | |||
SECS | FLAGS | ||
0x0000 | 0x0000 | ||
CIADDR (dirección IP local) | |||
0x00000 | |||
YIADDR (Su dirección IP) | |||
0xC0A80164192.168.1.100) | |||
SIADDR (dirección IP de servidor) | |||
0xC0A80101192.168.1.1) | |||
GIADDR (Dirección IP de dirección conmutada por relé) | |||
0x00000 | |||
CHADDR (Dirección de hardware local) | |||
0x00053C04 | |||
0x8D590000 | |||
0x00000 | |||
0x00000 | |||
192 octets de 0s. legado de BOOTP | |||
Galleta mágica | |||
0x63825363 | |||
Opciones DHCP | |||
53: 5 (DHCP ACK) | |||
1 (Máscara subnet): 255.255.255.0 | |||
3 (Router): 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):
|
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.
Liberar
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 liberación DHCP.
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 normalmente se lleva a cabo de acuerdo con los valores del 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 & #34;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 | Duración | Notas |
---|---|---|---|
0 | Pad | 0 octets | Se puede utilizar para remar otras opciones para que estén alineadas a la palabra límite; no es seguido por byte de longitud |
1 | Máscara de subnet | 4 octets | Máscara de subred del cliente según RFC 950. Si se incluye tanto la máscara de subred como la opción router (opción 3), la opción de la máscara de subred debe ser la primera. |
2 | Contratación temporal | 4 octets | Offset of the client's subnet in seconds from Coordinated Universal Time (UTC). El offset se expresa como un entero de 32 bits de complemento de dos. Una compensación positiva indica una ubicación al este del meridiano cero y una compensación negativa indica una ubicación al oeste del meridiano cero. |
3 | Router | Múltiples de 4 octets | Los routers disponibles deben enumerarse en orden de preferencia |
4 | Time server | Múltiples de 4 octets | Los servidores de tiempo disponibles para sincronizar con, deben ser listados en orden de preferencia |
5 | Nombre servidor | Múltiples de 4 octets | Disponible IEN 116 servidores de nombres, debe ser listado en orden de preferencia |
6 | Nombre de dominio servidor | Múltiples de 4 octets | Los servidores DNS disponibles, deben ser listados en orden de preferencia |
7 | Servidor de registro | Múltiples de 4 octets | Los servidores de registro disponibles, deben ser listados en orden de preferencia |
8 | Servidor de cookies | Múltiples de 4 octets | Cookie en este caso significa "la galleta de la fortuna" o "la cita del día", una anécdota piadosa o humorística a menudo enviada como parte de un proceso de logotipo en grandes computadoras; no tiene nada que ver con las cookies enviadas por los sitios web. |
9 | LPR Server | Múltiples de 4 octets | Una lista de servidores de impresoras de línea RFC 1179 disponibles para el cliente, se debe enumerar en orden de preferencia |
10 | Impress server | Múltiples de 4 octets | Una lista de servidores de Imagen Impress disponibles para el cliente, debe estar lista en orden de preferencia |
11 | Servidor de ubicación de recursos | Múltiples de 4 octets | Una lista de servidores RFC 887 de ubicación de recursos disponibles para el cliente, debe ser listado en orden de preferencia |
12 | Nombre del 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 octets | Longitud de la imagen de arranque en bloques 512B |
14 | Merit dump file | Mínimo de 1 octeto | Camino donde los vertederos de choque deben ser almacenados |
15 | Nombre de dominio | Mínimo de 1 octeto | |
16 | Servidor de intercambio | 4 octets | |
17 | Carretera de raíz | Mínimo de 1 octeto | |
18 | Ruta de las extensiones | Mínimo de 1 octeto | |
255 | Final | 0 octets | Se utiliza para marcar el final del campo de opción del vendedor |
Código | Nombre | Duración | Notas |
---|---|---|---|
19 | IP forwarding enable/disable | 1 octeto | |
20 | Permitir/desactivar el enrutamiento de fuentes no locales | 1 octeto | |
21 | Filtro de políticas | Múltiples de 8 octets | |
22 | Tamaño máximo de reanimación de datagrama | 2 octets | |
23 | Default IP time-to-live | 1 octeto | |
24 | Path MTU aging timeout | 4 octets | |
25 | Mesa de meseta MTU | Múltiples de 2 octets |
Código | Nombre | Duración | Notas |
---|---|---|---|
26 | Interface MTU | 2 octets | |
27 | Todos los subnetes son locales | 1 octeto | |
28 | Dirección de radiodifusión | 4 octets | |
29 | Realizar descubrimiento de máscaras | 1 octeto | |
30 | Máscara proveedor | 1 octeto | |
31 | Realizar descubrimiento del router | 1 octeto | |
32 | Dirección de solicitud de Router | 4 octets | |
33 | Ruta estatica | Múltiples de 8 octets | Una lista de pares de destino/router |
Código | Nombre | Duración | Notas |
---|---|---|---|
34 | Opción de encapsulación de remolque | 1 octeto | |
35 | ARP cache timeout | 4 octets | |
36 | Encapsulación Ethernet | 1 octeto |
Código | Nombre | Duración | Notas |
---|---|---|---|
37 | TCP predeterminado TTL | 1 octeto | |
38 | TCP intervalo de mantenimiento | 4 octets | |
39 | TCP basura protectora | 1 octeto |
Código | Nombre | Duración | Notas |
---|---|---|---|
40 | Servicio de información de red | Mínimo de 1 octeto | |
41 | Servidores de información de red | Múltiples de 4 octets | |
42 | Red Time Protocol (NTP) servers | Múltiples de 4 octets | |
43 | Información específica sobre proveedores | Mínimo de 1 octets | |
44 | NetBIOS sobre el servidor de nombres TCP/IP | Múltiples de 4 octets | |
45 | NetBIOS sobre el servidor de distribución de datos TCP/IP | Múltiples de 4 octets | |
46 | NetBIOS sobre el tipo de nodos TCP/IP | 1 octeto | |
47 | NetBIOS sobre el alcance de TCP/IP | Mínimo de 1 octeto | |
48 | X Window System fuente server | Múltiples de 4 octets | |
49 | X Window System display manager | Múltiples de 4 octets | |
64 | Red Information Service+ dominio | Mínimo de 1 octeto | |
65 | Servidores de Servicio de Información de Red+ | Múltiples de 4 octets | |
68 | Mobile IP home agent | Múltiples de 4 octets | |
69 | servidor de protocolo de transferencia de correo simple (SMTP) | Múltiples de 4 octets | |
70 | Post Office Protocol (POP3) server | Múltiples de 4 octets | |
71 | Red News Transfer Protocol (NNTP) server | Múltiples de 4 octets | |
72 | Default World Wide Web (WWW) servidor | Múltiples de 4 octets | |
73 | Default Finger protocolo servidor | Múltiples de 4 octets | |
74 | Default Internet Relay Chat (IRC) servidor | Múltiples de 4 octets | |
75 | servidor StreetTalk | Múltiples de 4 octets | |
76 | StreetTalk Directory Assistance (STDA) server | Múltiples de 4 octets |
Código | Nombre | Duración | Notas |
---|---|---|---|
50 | Dirección IP solicitada | 4 octets | |
51 | Tiempo de arrendamiento de la dirección IP | 4 octets | |
52 | Sobrecarga de opción | 1 octeto | |
53 | Tipo de mensaje DHCP | 1 octeto | |
54 | Identificador del servidor | 4 octets | |
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 octets | |
58 | Valor de tiempo de renovación (T1) | 4 octets | |
59 | Valor de tiempo de unión (T2) | 4 octets | |
60 | Identificador de clase vendedor | Mínimo de 1 octeto | |
61 | Nombre del cliente | Mínimo de 2 octets | |
66 | Nombre del servidor TFTP | Mínimo de 1 octeto | |
67 | Nombre del fichero | 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 de arriba.
Código | Nombre | Duración | RFC |
---|---|---|---|
1 | DHCPDISCOVER | 1 octeto | rfc2132 |
2 | DHCPOFFER | 1 octeto | rfc2132 |
3 | DHCPREQUEST | 1 octeto | rfc2132 |
4 | DHCPDECLINE | 1 octeto | rfc2132 |
5 | DHCPACK | 1 octeto | rfc2132 |
6 | DHCPNAK | 1 octeto | rfc2132 |
7 | DHCPRELEASE | 1 octeto | rfc2132 |
8 | DHCPINFORM | 1 octeto | rfc2132 |
9 | DHCPFORCERENEW | 1 octeto | rfc3203 |
10 | DHCPLEASEQUERY | 1 octeto | rfc4388 |
11 | DHCPLEASEUNASSIGNED | 1 octeto | rfc4388 |
12 | DHCPLEASEUNKNOWN | 1 octeto | rfc4388 |
13 | DHCPLEASEACTIVE | 1 octeto | rfc4388 |
14 | DHCPBULKLEASEQUERY | 1 octeto | rfc6926 |
15 | DHCPLEASEQUERYDONE | 1 octeto | rfc6926 |
16 | 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. El valor al que se establece esta opción le da al servidor DHCP una pista sobre cualquier información adicional requerida que este cliente necesita en una respuesta DHCP.
Otras extensiones
Código | Nombre | Duración | RFC |
---|---|---|---|
82 | Información del agente de relés | Mínimo de 2 octets | RFC 3046 |
85 | Novell Directory Service (NDS) servidores | Mínimo de 4 octets, múltiples de 4 octets | RFC 2241 |
86 | Nombre del árbol NDS | Variable | RFC 2241 |
87 | NDS context | Variable | RFC 2241 |
100 | Zona horaria, estilo POSIX | Variable | RFC 4833 |
101 | Zona horaria, estilo de base de datos tz | Variable | RFC 4833 |
114 | DHCP Captive-Portal | Variable | RFC 8910 |
119 | Búsqueda de dominio | Variable | RFC 3397 |
121 | Ruta estática sin clase | Variable | RFC 3442 |
209 | Archivo de configuración | Variable | RFC 5071 |
210 | Path Prefix | Variable | RFC 5071 |
211 | Hora de reiniciar | 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 | Duración | RFC |
---|---|---|---|
1 | Agente ID de circuito | Mínimo de 1 octeto | RFC 3046 |
2 | Agente ID remoto | Mínimo de 1 octeto | RFC 3046 |
4 | Datos-Over-Cable Interface Especificaciones (DOCSIS) clase del dispositivo | 4 octets | 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 recibió 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. 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 configurar el bit difusión en el campo FLAGS al enviar un DHCPDISCOVER paquete. 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:
- DHCPOFFER
- DHCPACK
- 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.
Confiabilidad
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 de unidifusión DHCPREQUEST al servidor DHCP que otorgó la concesión original. Si ese servidor está inactivo o no se puede acceder a él, 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 vincularse 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 se produce un error al volver a vincular, la concesión finalmente caducará. 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 mensaje DHCPDISCOVER
. 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 recursos.
- Ataques de agotamiento de recursos de clientes maliciosos DHCP.
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 falsos") pueden operar 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 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, evitando que otros clientes DHCP de recibir el servicio.
DHCP proporciona algunos mecanismos para mitigar estos problemas. La extensión del protocolo Relay Agent Information Option (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 al operador de red. 39;s red de confianza. Luego, esta etiqueta se usa 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:
Había numerosas vulnerabilidades de seguridad identificadas contra las medidas de seguridad propuestas por RFC 3118. Este hecho, combinado con la introducción de 802.1x, desaceleró el despliegue y la absorción de DHCP autenticado, y nunca se ha desplegado ampliamente.
Un libro de 2010 señala que:
[t]he han sido muy pocas implementaciones de DHCP Authentication. Los retos de las principales demoras en la gestión y el procesamiento debido a la computación precipitada se han considerado un precio demasiado alto para pagar los beneficios percibidos.
Las propuestas arquitectónicas de 2008 implican la autenticación de solicitudes DHCP mediante 802.1x o PANA (ambos transportan EAP). Se hizo una propuesta de IETF para incluir EAP en DHCP mismo, 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, DHCP Opciones y extensiones de proveedores BOOTP
- RFC 3046, DHCP Relay Agent Information Option
- RFC 3397, Protocolo de configuración de host dinámico (DHCP) Opción de búsqueda de dominio
- RFC 3942, Reclasificación de Configuración de Host Dinámica Versión de Protocolo Cuatro (DHCPv4) Opciones
- RFC 4242, opción de tiempo de referencia de información para el protocolo de configuración de host dinámico para IPv6
- RFC 4361, identificadores de clientes específicos para nodos para la configuración dinámica del protocolo de la configuración anfitriona Versión cuatro (DHCPv4)
- RFC 4436, detección de acoplamiento de red en IPv4 (DNAv4)
- RFC 3442, Opción de Ruta Estatica sin Clase para el Protocolo de Configuración Anfitrión Dinámica (DHCP) versión 4
- RFC 3203, DHCP reconfigura la extensión
- RFC 4388, Protocolo de configuración de host dinámico (DHCP)
- RFC 6926, DHCPv4 Bulk Leasequery
- RFC 7724, Active DHCPv4 Lease Query
Contenido relacionado
Proyecto Cybersyn
Dispositivo de almacenamiento de acceso directo
Tecla modificadora