DHCP. Protocolo de configuración dinámica de host

     El protocolo DHCP (Dynamic Host Configuration Protocol) es un protocolo cliente/servidor que permite a los clientes de una red TCP/IP obtener información para su configuración.

     Se encuentra descrito en la RFC 2131.

     DHCP está basado en el protocolo BOOTP, añadiendo la capacidad de asignar direcciones de red reutilizables y opciones de configuración adicionales. Una de las principales ventajas de DHCP respecto a BOOTP es que no requiere que el servidor tenga una base de datos con la relación de MAC Address-Dirección IP de cada cliente.
    
     Los mensajes DHCP utilizan el puerto 67 (UDP) como puerto del servidor y el puerto 68 (UDP) como puerto del cliente.  

     El protocolo DHCP está formado por dos componentes:

     Un protocolo que envía parámetros específicos de configuración desde un servidor DHCP a un host cliente. El servidor DHCP conoce la IP en que se encuentra el cliente y puede asignar una dirección IP en esa subred de un pool de direcciones.

     Un mecanismo para la asignación, a las máquinas clientes, de direcciones de red tanto temporales como permanentes.

     DHCP soporta tres mecanismos para la asignación de direcciones IP:
    • Asignación automática. Asigna una dirección IP permanente.
    • Asignación dinámica. Asigna una dirección IP para un periodo de tiempo limitado. Este es el mecanismo que permite la reutilización de las direcciones que ya no necesitan las máquinas a las que se las asignaron.
    • Asignación manual o estática. La dirección IP es asignada por el administrador de la red.
     En la siguiente figura se muestra el formato del mensaje DHCP:
DHCP Formato de paquete-DHCP packet

      • Código de operación. Indica solicitud (1) o respuesta (2)
      • Tipo de hardware. Indica el tipo de hardware. Por ejemplo 1 indica Ethernet.
      • Longitud. Indica la longitud en bytes de la dirección física.
      • Saltos. Inicializado a 0 por el cliente es incrementado por cada router que reenvía el mensaje. Se utiliza para identificar bucles. Un valor de 3 indicaría un bucle (RFC 951).
      • Identificador de transacción. Número aleatorio que marca el cliente y que se utiliza tanto por el cliente como por el servidor para asociar los mensajes de intercambio entre ellos.
      • Tiempo. Establecido por el cliente. Indica, en segundos, el tiempo transcurrido desde que el inicio su secuencia de arranque.
      • Indicador. El bit más significativo de este campo se utiliza como indicador de broadcast. El resto de bits deben fijarse a 0. Normalmente los servidores DHCP intentan enviar los mensajes DHCP directamente a un cliente utilizando el envío unicast. La dirección destino en la cabecera IP se establece como el campo dirección IP asignada y la MAC address se establece como el campo dirección hardware del cliente. Si hubiera un host incapaz de recibir datagramas IP unicast hasta que conozca su dirección IP, debe fijarse el bit de broadcast (1) para indicar al servidor que la respuesta DHCP debe ser enviada como broadcast. En cualquier otro caso este bit debe estar fijado a 0.
      • Dirección IP del cliente. Establecido por el cliente, indica su dirección IP, en caso de que la conozca, o 0.0.0.0.
      • Dirección IP asignada. Establecido por el servidor si el campo ‘dirección IP del cliente’ era 0.0.0.0.
      • Dirección IP del servidor. Establecido por el servidor, indica su dirección IP.
      • Dirección IP del router. Indica la dirección de un relay de DHCP (quien lo fija) para que el servidor devuelva la contestación. Un agente de reenvío DHCP (DHCP relay agent) es cualquier máquina capaz de reenviar los paquetes DHCP entre los clientes y los servidores. Los agentes de relay son utilizados para transmitir las peticiones y contestaciones DHCP cuando el cliente y el servidor no se encuentran en la misma subred. Cuando un agente de relay recibe un mensaje DHCP no lo transmite sino que genera un nuevo mensaje y lo envía por otro interface.
      • Dirección hardware del cliente. Establecido por el cliente. DHCP define una opción de identificador de cliente. Si esta opción no se utiliza el cliente es identificado por su MAC address.
      • Nombre del servidor. Campo opcional. Indica el nombre del servidor.
      • Nombre del archivo de arranque. Campo opcional. El cliente lo deja en blanco o especifica un nombre genérico, como router, indicando el tipo de fichero de arranque a utilizar. En una petición DHCPDISCOVER el campo se deja en blanco. El servidor devuelve un nombre de la ruta de directorio en una petición DHCPOFFER.
      • Opciones. Es un campo opcional para opciones específicas de fabricante. Descritas en la RFC 2132 (DHCP options and BOOTP vendor extensions), actualizada por RFC 3942. Los cuatro primeros bytes de este campo contienen la ‘magic cookie’ (99.130.83.99). El resto del campo contiene parámetros etiquetados que se denominan opciones. Las opciones de DHCP nos proporcionan una forma de añadir la información adicional de los fabricantes que no ha sido diseñada en el protocolo.
    
     Los tipos de mensajes DHCP son los siguientes:
  • DHCPDISCOVER. Broadcast lanzado por un cliente para localizar los servidores DHCP disponibles. Este mensaje puede incluir opciones como la sugerencia de una dirección IP o la duración de la asignación. 
  • DHCPOFFER. Respuesta de un servidor a un mensaje DHCPDISCOVER ofreciendo dirección IP y otros parámetros.
  • DHCPREQUEST. Mensaje desde un cliente a los servidores donde:
    • Se solicitan los parámetros ofrecidos por uno de los servidores y se rechazan todos los demás ofrecimientos.
    • Se verifica una dirección previamente asignada tras un cambio de red o sistema, por ejemplo un reinicio.
    • Se solicita la renovación del tiempo de expiración para una dirección en concreto.
  • DHCPACK. Contestación del servidor al cliente indicándole los parámetros, incluyendo la dirección IP.
  • DHCPNACK. Contestación negativa del servidor al cliente, indicando que la asignación de la dirección IP al cliente ha expirado o que la solicitud de dirección IP es incorrecta.
  • DHCPDECLINE. Mensaje desde el cliente al servidor indicándole que la dirección ofrecida ya está en uso.
  • DHCPRELEASE. Mensaje del cliente al servidor indicándole que renuncia a su IP y que la puede liberar.
  • DHCPINFORM. Mensaje desde un cliente, que ya tiene asignada una dirección IP, al servidor solicitándole más información o parámetros; o la repetición de los mismos para utilizarlos en alguna tarea específica.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.