|
En la Figura 12.1 se presenta un time-line del proceso de concesión DHCP. Dicho proceso se realiza siempre bajo demanda del cliente, cuando es encendido o cuando expira la anterior concesión. Toda la comunicación la soporta el UDP.
A continuación explicamos con mayor detalle cada uno de los mensajes.
Cuando un host cliente es encendido o desea renovar su dirección IP emite a la dirección de broadcast de la subred un paquete UDP dirigido al puerto 67 (servicio bootps* ) y que contiene un mensaje del tipo DHCP Discover. Nótese que el servidor DHCP debe estar, por tanto, en la misma subred que los clientes (excepto cuando existe un relay agent que se encarga de solventar este problema). Este mensaje va a ser recibido por todos los adaptadores conectados a la red local. Tras esta transmisión, el cliente espera un tiempo a la contestación del servidor.
Los servidores DHCP (puede haber muchos) contestan al cliente con un mensaje del tipo DHCP Offer. Este contiene una dirección IP, la máscara de la red, la dirección IP del gateway, la(s) dirección(es) IP con el/los servidores DNS y el tiempo de préstamo (lease time) de la dirección IP.† Como el paquete emitido utiliza el UDP (y por tanto el IP) y el cliente no tiene todavía una dirección IP válida, no queda más remedio que enviarlo, de nuevo, a la dirección de broadcast de la red.
De entre todas las direcciones IP ofertadas, el cliente selecciona una, aunque todavía no la usa. Entonces envía un paquete UDP a la dirección de broadcast de la red con el mensaje DHCP request. En éste replica los datos de la oferta que acaba de recibir.
Los servidores DHCP van a recibir este mensaje y el que realizó la oferta va a emitir, de nuevo a la dirección de broadcast de la red, un paquete UDP con el mensaje DHCP Ack (Acknowledgment). Cuando el cliente lo recibe sabe que ya está en condiciones de utilizar la nueva configuración.
Si el servidor finalmente negara al cliente el uso de la configuración ofertada‡ , en lugar de transmitirse un DHCP Ack se transmitiría un DHCP NAck (Negative Ack) y todo el proceso comienza de nuevo.