El protocolo de configuración dinámica de host (en inglés: Dynamic Host
Configuration Protocol, también conocido por sus siglas de DHCP),
desarrollado a partir de 1985 como extensión de BOOTP, es un protocolo de
red de tipo cliente/servidor1 mediante el cual un servidor DHCP asigna
[ ]
dinámicamente una dirección IP y otros parámetros de configuración de red a
cada dispositivo en una red para que puedan comunicarse con otras redes IP.
Este servidor posee una lista de direcciones IP dinámicas y las va asignando a
los clientes conforme estas van quedando libres, sabiendo en todo momento
quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y a quién se
la ha asignado después. Así los clientes de una red IP pueden conseguir sus
parámetros de configuración automáticamente. Este protocolo por primera vez
se publicó en octubre de 1993 (RFC 1531) y su implementación actual
para IPv4 está en la RFC 2131 (marzo de 1997); para IPv6 está descrita
en RFC 3315 (julio de 2003).
Historia
DHCP se definió por primera vez como un protocolo de seguimiento estático de
las normas en el RFC 1531 en octubre de 1993, como una extensión del
protocolo Bootstrap (BOOTP). La motivación para extender BOOTP
/etc/sysconfig/network-scripts/ifcfg-enpXs0 era porque BOOTP requería
intervención manual para completar la información de configuración en cada
cliente, y no proporciona un mecanismo para la recuperación de las direcciones
IP en desuso. Puede ser usado para entregar un amplio rango de "option
subnet-mask" parámetros de configuración extra a los clientes IP, incluyendo
parámetros específicos a ciertas plataformas.2 Debido a algunos errores en el
[ ]
proceso editorial, fue rápidamente reemitido como RFC 1541.
El protocolo BOOTP a su vez fue definido por primera vez en el RFC 951 como
un reemplazo para el protocolo RARP (del inglés "Reverse Address Resolution
Protocol"), o resolución de direcciones inversa. La principal motivación para la
sustitución de RARP con BOOTP fue que RARP era un protocolo de la capa de
enlace de datos. Esto hizo más difícil su aplicación /etc/sysctl.d/[Link]
en muchas plataformas de servidores, y requería un servidor presente en cada
enlace de red individual. BOOTP introdujo la innovación de un agente de
retransmisión, lo que permitió el envío de paquetes BOOTP fuera de la red
local utilizando enrutamiento IP estándar, por lo que un servidor central de
BOOTP podría servir de anfitriones en muchas subredes IP. 3 [ ]
Muchos trabajaron para mejorar el protocolo, ya que ganó popularidad y en
1997 se agregó el tipo de mensaje DHCPINFORM 4 y otros cambios menores
[ ]
en el RFC 2131, y al 2016 se mantiene como el estándar para redes IPv4.
/etc/sysctl.d/[Link] DHCPv6 fue documentado originalmente en el RFC
3315 en 2003 y luego complementado por muchos otros RFC. El RFC
3633 añadió un mecanismo de delegación de prefijo para DHCPv6. DHCPv6 se
amplió aún más para proporcionar información a los clientes con la
configuración automática de direcciones sin estado en el RFC 3736.
Asignación de direcciones IP
Cada dirección IP debe configurarse manualmente en cada dispositivo y, si el
dispositivo se mueve a otra subred, se debe configurar otra dirección IP
diferente. El DHCP le permite al administrador supervisar y distribuir de forma
centralizada las direcciones IP necesarias y, automáticamente, asignar y enviar
una nueva IP si fuera el caso en que el dispositivo es conectado en un lugar
diferente de la red.
El protocolo DHCP incluye tres métodos de asignación de direcciones IP:
Asignación manual o estática
Asigna una dirección IP a una máquina determinada. Se suele utilizar cuando
se quiere controlar la asignación de dirección IP a cada cliente, y evitar,
también, que se conecten clientes no identificados.
Asignación automática
Asigna una dirección IP a una máquina cliente la primera vez que hace la
solicitud al servidor DHCP y hasta que el cliente la libera. Se suele utilizar
cuando el número de clientes no varía demasiado.
Asignación dinámica
El único método que permite la reutilización dinámica de las direcciones IP. El
administrador de la red determina un rango de direcciones IP y cada dispositivo
conectado a la red está configurado para solicitar su dirección IP al servidor
cuando la tarjeta de interfaz de red se inicializa. El procedimiento usa un
concepto muy simple en un intervalo de tiempo controlable. Esto facilita la
instalación de nuevas máquinas clientes.
Algunas implementaciones de DHCP pueden actualizar
el DNS asociado con los servidores para reflejar las nuevas
direcciones IP mediante el protocolo de actualización
de DNS establecido en RFC 2136 (Inglés).
El DHCP es una alternativa a otros protocolos de gestión de
direcciones IP de red, como el BOOTP (Bootstrap Protocol). DHCP
es un protocolo más avanzado, pero ambos son los usados
normalmente.
En Windows 98 y posteriores, cuando el DHCP es incapaz de
asignar una dirección IP, se utiliza un proceso llamado "Automatic
Private Internet Protocol Addressing".
Parámetros configurables
Artículo principal: Parámetros DHCP
Un servidor DHCP puede proveer de una configuración opcional al
dispositivo cliente. Dichas opciones están definidas en el RFC 2132.
Algunas de las opciones configurables son:
Dirección del servidor DNS
Nombre DNS
Puerta de enlace de la dirección IP
Dirección de Publicación Masiva (broadcast address)
Máscara de subred
Tiempo máximo de espera del ARP (Protocolo de Resolución
de Direcciones según siglas en inglés)
MTU (Unidad de Transferencia Máxima según siglas en inglés)
para la interfaz
Servidores NIS (Servicio de Información de Red según siglas
en inglés)
Dominios NIS
Servidores NTP (Protocolo de Tiempo de Red según siglas en
inglés)
Servidor SMTP
Servidor TFTP
Nombre del servidor de nombres de Windows (WINS)
Implementaciones
Microsoft introdujo el DHCP en sus Servidores NT con la versión 3.5
de Windows NT a finales de 1994.
El Consorcio de Software de Internet (ISC: Internet Software
Consortium) publicó distribuciones de DHCP para Unix con la
versión 1.0.0 del ISC DHCP Server el 6 de diciembre de 1997 y una
versión (2.0) que se adaptaba mejor al RFC el día 22 de junio de
1999. Se puede encontrar el software
en [Link]
w/dhcp/
Otras implementaciones importantes incluyen:
Cisco: un servidor DHCP habilitado en Cisco IOS 12.0 en el
mes de febrero de 1999
Sun: añadió el soporte para DHCP a su sistema
operativo Solaris el 8 de julio de 2001.
Además, varios routers incluyen soporte DHCP para redes de hasta
255 dispositivos.
Anatomía del protocolo
Esquema de una sesión típica DHCP.
(Autoridad de Números Asignados en Internet según siglas en
inglés) en BOOTP: 67/UDP para las computadoras servidor y
68/UDP para los clientes.
A continuación, se describe la secuencia de intercambio de
mensajes entre el cliente DHCP y el servidor DHCP.
DHCP Discovery
Artículo principal: DHCP Discovery
DHCP Discovery es una solicitud DHCP realizada por un cliente de
este protocolo para que el servidor DHCP de dicha red de
computadoras le asigne una dirección IP y otros Parámetros
DHCP como la máscara de red o el nombre DNS.5 La solicitud va
[ ]
contenida en un mensaje de descubrimiento que se difunde a todas
las máquinas en la red.
DHCPDISCOVER
IP: source=[Link]; destination=[Link]
UDP: source port=68; destination port=67
Octet 0 Octet 1 Octet 2 Octet 3
OP HTYPE HLEN HOPS
0x01 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR (Client IP address)
0x00000000
YIADDR (Your IP address)
0x00000000
SIADDR (Server IP address)
0x00000000
(Gateway IP address)
0x00000000
CHADDR (Client hardware address)
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octets of 0s, or overflow space for additional options; BOOTP legacy.
[Magic cookie]
0x63825363 (En formato IP es [Link] (RFC-1497))
DHCP options
0x350101 53: 1 (DHCP Discover)
0x3204c0a00164 50: [Link] requested
0x370401030f06 55 (Parameter Request List):1 (Request Subnet Mask),,
3 (Router),, 15 (Domain Name), y 6 (Domain Name Server)
0xff 255 (Endmark)
DHCP Offer
Artículo principal: DHCP Offer
DHCP Offer es el paquete de respuesta del Servidor DHCP a un
cliente DHCP ante su petición de la asignación de los Parámetros
DHCP. Para ello involucra su dirección MAC (Media Access
Control). Este mensaje contiene una dirección IP disponible que el
servidor está dispuesto a asignar al cliente, junto con los otros
parámetros de configuración. El servidor puede enviar múltiples
ofertas de asignación de direcciones IP y otros parámetros de
configuración al cliente.
DHCPOFFER
IP: source=[Link];
destination=[Link]
UDP: source port=67; destination port=68
Octet 0 Octet 1 Octet 2 Octet 3
OP HTYPE HLEN HOPS
0x02 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR (Client IP address)
0x00000000
YIADDR (Your IP address)
0xC0A80164 ([Link])
SIADDR (Server IP address)
0xC0A80101 ([Link])
GIADDR (Gateway IP address)
0x00000000
CHADDR (Client hardware address)
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octets of 0s; BOOTP legacy.
Magic cookie
0x63825363 (En formato IP es [Link] (RFC-1497))
DHCP options
53: 2 (DHCP Offer)
1 (subnet mask): [Link]
3 (Router): [Link]
51 (IP address lease time): 86400s (1 day)
54 (DHCP server): [Link]
6 (DNS servers): [Link], [Link], [Link]
DHCP Request
Artículo principal: DHCP Request
Después de recibir las ofertas, el cliente DHCP selecciona una oferta
específica de los paquetes recibidos de DHCP Offer. El cliente envía
un mensaje de solicitud al servidor DHCP correspondiente,
indicando que desea aceptar esa oferta en particular. El mensaje
contiene la dirección IP de la oferta seleccionada.
DHCPREQUEST
OP HTYPE HLEN HOPS
0x01 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR
0x00000000
YIADDR
0x00000000
SIADDR
GIADDR
0x00000000
CHADDR
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octets of 0's. BOOTP legacy
Magic Cookie
0x63825363 (En formato IP es [Link] (RFC-1497))
DHCP Options
DHCP option 53: DHCP Request
DHCP option 50: [Link] requested
DHCP option 54: [Link] DHCP server.
DHCP Acknowledge
Artículo principal: DHCP Acknowledge
Al recibir el mensaje de solicitud del cliente, el servidor la reconoce y
le envía un acuse de recibo o mensaje de aceptación DHCP, se
inicia la fase final del proceso de configuración. Esta fase implica el
reconocimiento con el envío de un paquete al cliente. Este paquete
confirma que la dirección IP solicitada ha sido asignada al cliente e
incluye la duración de la conexión y cualquier otra información de
configuración que el cliente pueda tener solicitada. En este punto, el
proceso de configuración TCP/IP se ha completado. El servidor
reconoce la solicitud y la envía acuse de recibo al cliente. El sistema
en su conjunto espera que el cliente configure su interfaz de red con
las opciones suministradas. El servidor DHCP responde a la
DHCPREQUEST con un DHCPACK, completando así el ciclo de
iniciación. La dirección origen es la dirección IP del servidor de
DHCP y la dirección de destino es todavía [Link]. El
campo YIADDR contiene la dirección del cliente, y los campos
CHADDR y DHCP: Client Identifier campos son la dirección física de
la tarjeta de red en el cliente. La sección de opciones del DHCP
identifica el paquete como un ACK.
DHCPACK
UDP Src=[Link]
sPort=67 Dest=[Link] dPort=68
OP HTYPE HLEN HOPS
0x02 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR (Client IP Address)
0x00000000
YIADDR (Your IP Address)
0xC0A80164
SIADDR (Server IP Address)
0x00000000
GIADDR (Gateway IP Address switched by relay)
0x00000000
CHADDR (Client Hardware Address)
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octets of 0's. BOOTP legacy
Magic Cookie
0x63825363 (En formato IP es [Link] (RFC-1497))
DHCP Options
DHCP option 53: DHCP ACK
DHCP option 1: [Link] subnet mask
DHCP option 3: [Link] router
DHCP option 51: 1 day IP lease time
DHCP option 54: [Link] DHCP server
Confidencialidad
En un contexto de proveedor de Internet, los registros DHCP de
asignación de direcciones o bien contienen o están vinculadas a
información de identificación personal confidencial, los datos de
contacto del cliente. Estos son atractivos para los spammers, y
podrían ser buscados para "expediciones de pesca" por las agencias
de policía o litigantes. Por lo menos una aplicación[cita requerida] imita la
política de Canadian Library Association para la circulación del libro
y no retiene información de identificación una vez que el "préstamo"
ha terminado.
Parámetros de configuración del cliente
El servidor DHCP puede proporcionar parámetros de configuración
opcionales para el cliente. El RFC 2132 describe las opciones de
DHCP disponibles definidas por Internet Assigned Numbers
Authority (IANA) - Parámetros DHCP y BOOTP. 6 [ ]
Un cliente DHCP puede seleccionar, manipular y sobrescribir los
parámetros proporcionados por un servidor DHCP.7 [ ]
Véase también
DHCPv6 para IPv6
BOOTP
IP Control Protocol
Zeroconf
Referencias
1. «El DHCP y la configuración de redes». IONOS
Digitalguide. Consultado el 26 de agosto de 2022.
2. Network+ Certification option subnet-mask; option
broadcast-address; option routers; option domain-name-
servers; 2007 Publicado por Microsoft Press.(en inglés)
3. Bill Croft; John Gilmore (septiembre de 1985). «RFC 951 -
Bootstrap Protocol». Network Working Group.
4. usado para el protocolo de autodescubrimiento de Proxy
Web WPAD
5. «DHCP Options and BOOTP Vendor Extensions».
6. «Dynamic Host Configuration Protocol (DHCP) and
Bootstrap Protocol (BOOTP) Parameters». [Link].
Consultado el 28 de noviembre de 2013.
7. En sistemas tipo Unix este refinamiento de nivel cliente
típicamente ocurre de acuerdo a los valores en un archivo
de configuración /etc/[Link] .