Introducción al Protocolo DHCP

1
110

¡Hola amigas y amigos!

El DHCP o “Dynamic Host Configuration Protocol” es el Protocolo de Configuración Dinámica del Host que se utiliza en las redes informáticas para suministrar a los equipos clientes que lo soporten toda una serie de parámetros de configuración de la red que les son necesarios para su correcto funcionamiento.

Introducción

Decimos “equipos clientes que soporten el protocolo DHCP” porque pueden ser servidores, computadoras, laptops, impresoras, conmutadores – switchs inteligentes, teléfonos móviles, tablets, cámaras webs – webcams, y otros equipos.

Por ejemplo, mi móvil adquirió la dirección IP 10.32.108.125/31 cuando habilité la “Red Móvil y Datos”. ¿Cómo lo supe?. Conecté el móvil -activado- a mi ordenador y ejecuté el siguiente comando:

buzz@sysadmin:~$ adb shell
shell@android:/ $ su
shell@android:/ # netcfg
ccinet0  UP     10.32.108.125/31  0x000000c1 00:00:00:00:00:00
ccinet1  DOWN         0.0.0.0/0   0x00000080 00:00:00:00:00:00
ccinet2  DOWN         0.0.0.0/0   0x00000080 00:00:00:00:00:00
ccinet3  DOWN         0.0.0.0/0   0x00000080 00:00:00:00:00:00
ccinet4  DOWN         0.0.0.0/0   0x00000080 00:00:00:00:00:00
ccinet5  DOWN         0.0.0.0/0   0x00000080 00:00:00:00:00:00
ccinet6  DOWN         0.0.0.0/0   0x00000080 00:00:00:00:00:00
ccinet7  DOWN         0.0.0.0/0   0x00000080 00:00:00:00:00:00
lo       UP         127.0.0.1/8   0x00000049 00:00:00:00:00:00
sit0     DOWN         0.0.0.0/0   0x00000080 00:00:00:00:00:00
tunl0    DOWN         0.0.0.0/0   0x00000080 00:00:00:00:00:00

Para conocer mas sobre el comando adb – Android Debug Bridge, visite: http://developer.android.com/guide/developing/tools/adb.html

Si queremos saber mas sobre la conexión establecida con mi compañía telefónica, ejecuto el siguiente comando:

buzz@sysadmin:~$ ipcalc 10.32.108.125/31
Address:   10.32.108.125        00001010.00100000.01101100.0111110 1
Netmask:   255.255.255.254 = 31 11111111.11111111.11111111.1111111 0
Wildcard:  0.0.0.1              00000000.00000000.00000000.0000000 1
=>
Network:   10.32.108.124/31     00001010.00100000.01101100.0111110 0
HostMin:   10.32.108.124        00001010.00100000.01101100.0111110 0
HostMax:   10.32.108.125        00001010.00100000.01101100.0111110 1
Hosts/Net: 2                    Class A, Private Internet, PtP Link RFC 3021

Claramente observamos que se trata de una conexión Punto a Punto -Ptp Link- que cumple con la RFC 3021Using 31-Bit Prefixes on IPv4 Point-to-Point Links“. La dirección IP del router en la compañía telefónica sería la 10.32.108.124/31.

Imaginemos entonces los millones de móviles y tablets conectados a Internet en todo el mundo que adquieran una dirección IP mediante el servicio DHCP.

El proceso para establecer una Conferencia Multimedia -voz e imagen- mediante Skype o Telegram, no difiere mucho cuando la realizamos desde una computadora a cuando la establecemos desde un teléfono móvil, desde el punto de vista de la asignación dinámica de direcciónes IP, de la resolución de nombres mediante DNS, y del encaminammiento – routing, entre otros factores.

La mayoría de los conceptos manejados en la Administración de Redes Informáticas son transparentes para las personas que disfrutan, por ejemplo, de los servicios en la Internet: Televisión, Radio, Vídeo, Chat individual o en grupo, E-Mail, Telefonía, RSS, Noticias – News, y un largo etcétera…

Sin embargo, para los Administradores de Sistemas es necesario tener, al menos, un dominio básico sobre los servicios mas importantes.

El DNS, conjuntamente con el DHCP y el NTP “Network Time Protocol” -el cual veremos en artículo posterior- pertenecen a la categoría de los servicios mas importantes de la Infraestructura de una Red.

Ventajas de utilizar el servicio DHCP

  • El servicio DHCP permite a los Administradores de Sistemas distribuir de forma centralizada las direcciones IP que sean necesarias en una red, incluyendo a las subredes que la conformen.
  • No será necesario visitar equipo por equipo para configurar la o las interfaces de red de cada uno de ellos.
  • Para reflejar el cambio de la dirección IP del servidor DNS, por ejemplo, solo será necesario declarar la nueva IP en la configuración del servicio DHCP. Válido también para cualquier otra Opción Configurable, como veremos mas adelante.
  • Se eliminan los conflictos por iguales direcciones IP, al menos en los rangos de direcciones IP configuradas para ser asignadas por el servidor DHCP.

Asignación de direcciones IP

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 un equipo determinado. Se utiliza -por lo general- cuando se quiere controlar la asignación de dirección IP a cada cliente y además evitar que se conecten clientes no identificados.
  • Asignación automática: Asigna una dirección IP de forma permanente a un equipo cliente la primera vez que hace la solicitud al servidor DHCP y hasta que el cliente la libera. Se utiliza 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 un tiempo de arrendamiento -entre otros parámetros- y cada equipo conectado a la red se configura para que solicite su dirección IP al servidor DHCP cuando la interfaz de red -del cliente- se inicializa. Esto facilita la instalación de nuevos equipos en la red.

En muchas redes se implementan los servicios DNS y DHCP de forma tal que el DHCP actualice dinámicamente al DNS, según se indica en la RFC 2136Dynamic Updates in the Domain Name System (DNS UPDATE)“. Dedicaremos un par de artículos a esta implementación, conjuntamente con el servicio NTP, y así obtendremos los servicios básicos de la Infraestructura de una Red.

¿Cómo funciona el protocolo DHCP?

En la RFC 1700ASSIGNED NUMBERS” se definen los siguientes puertos para el funcionamiento del protocolo BOOTPBootstrap Protocol“, que son los mismos que utiliza el DHCP:

Palabra Clave Puerto/Protocolo Descripción
bootps 67/tcp Bootstrap Protocol Server
bootps 67/udp Bootstrap Protocol Server
bootps 68/tcp Bootstrap Protocol Client
bootps 68/udp Bootstrap Protocol Client

El protocolo DHCP funciona mediante paquetes de datos -mensajes- para establecer la comunicación entre los clientes y el servidor. Los paquetes se pueden emitir desde el cliente hacia el servidor o viceversa.

Según establece la RFC 2131Dynamic Host Configuration Protocol” de marzo del 1997, los mensajes que intercambian los cliente y servidores DHCP son los siguientes:

  • DHCPDISCOVER: el cliente busca servidores disponibles.
  • DHCPOFFER: el servidor responde al mensaje DHCPDISCOVER del cliente y le ofrece los parámetros que él -servidor- tenga disponible acorde a su configuración.
  • DHCPREQUEST: mensaje que emite el cliente para:
    • solicitar los parámetros que oferta un servidor y de forma implícita declinar las ofertas de otros servidores.
    • confirmar que la dirección IP arrendada es correcta, por ejemplo, después de un reinicio del sistema operativo.
    • solicitar la extensión del tiempo de arrendamiento sobre una dirección IP en particular.
  • DHCPACK: el servidor informa al cliente los parámetros de configuración, incluida la dirección IP que se acordó o comprometió.
  • DHCPNAK: el servidor informa al cliente que su dirección IP es incorrecta, por ejemplo, por que se trasladó a otra subred o porque expiró el tiempo de arrendamiento.
  • DHCPDECLINE: el cliente informa al servidor que la dirección de red está actualmente en uso.
  • DHCPRELEASE: el cliente informa al servidor que abandona la dirección de red que arrendó y cancela el tiempo de arrendamiento remanente.
  • DHCPINFORM: el cliente pregunta al servidor los parámetros de configuración local, pues tiene -el cliente- una dirección IP externa al rango ofrecido por el servidor DHCP.

La Figura 3 de la RFC 2131, es un diagrama que ofrece los mensajes que intercambian los clientes y servidores DHCP en el tiempo, cuando se arrienda una dirección de red:

                Server          Client          Server
            (not selected)                    (selected)

                  v               v               v
                  |               |               |
                  |     Begins initialization     |
                  |               |               |
                  | _____________/|\____________  |
                  |/DHCPDISCOVER | DHCPDISCOVER  \|
                  |               |               |
              Determines          |          Determines
             configuration        |         configuration
                  |               |               |
                  |\             |  ____________/ |
                  | \________    | /DHCPOFFER     |
                  | DHCPOFFER\   |/               |
                  |           \  |                |
                  |       Collects replies        |
                  |             \|                |
                  |     Selects configuration     |
                  |               |               |
                  | _____________/|\____________  |
                  |/ DHCPREQUEST  |  DHCPREQUEST\ |
                  |               |               |
                  |               |     Commits configuration
                  |               |               |
                  |               | _____________/|
                  |               |/ DHCPACK      |
                  |               |               |
                  |    Initialization complete    |
                  |               |               |
                  .               .               .
                  .               .               .
                  |               |               |
                  |      Graceful shutdown        |
                  |               |               |
                  |               |\ ____________ |
                  |               | DHCPRELEASE  \|
                  |               |               |
                  |               |        Discards lease
                  |               |               |
                  v               v               v
     Figure 3: Timeline diagram of messages exchanged between DHCP
     client and servers when allocating a new network address

Extensiones configurables

Un servidor DHCP, además de otorgar una dirección IP y su máscara de red a un equipo cliente, puede suministrar toda una serie de Extensiones Configurables según se definen en la RFC 2132DHCP Options and BOOTP Vendor Extensions“. Entre ellas mencionaremos las más utilizadas a nuestro entender. Los números entre “[ ]” indican el código numérico de la opción.

  • Subnet Mask [1]: Máscara de Subred.
  • Router Option [3]: Pasarelas – Gateways.
  • Time Server Option [4]: Servidores de Tiempo acorde a la RFC 868.
  • Name Server Option [5]: Servidores de Nombre
  • Domain Name Server Option [6]: Servidores DNS.
  • LPR Server Option [9]: Servidores de Impresión de Línea.
  • Host Name Option [12]: Nombre del equipo cliente.
  • Domain Name [15]: Nombre DNS del Dominio.
  • Broadcast Address Option [28]: Dirección IP de Difusión.
  • Network Information Service Domain Option [40]: Nombre del dominio NIS.
  • Network Information Servers Option [41]: Servidor NIS.
  • Network Time Protocol Servers Option [42]: Servidores NTP.
  • NetBIOS over TCP/IP Name Server Option [44]: RFC 1001, RFC 1002. Ejemplo: Servidores WINS en redes Microsoft.
  • NetBIOS over TCP/IP Datagram Distribution Server Option [45]: RFC 1001/1002. Ejemplo: Servidores WINS en redes Microsoft.
  • NetBIOS over TCP/IP Node Type Option [46]: RFC 1001/1002. Tipo de Nodo para el servicio de nombres NetBIOS sobre el protocolo TCP/IP.
  • IP Address Lease Time [51]: Tiempo de arrendamiento de direcciones IP.
  • Server Identifier [54]: Identificador del servidor DHCP. Es su dirección IP.
  • TFTP server name [66]: Trivial File Transfer Protocol. Muy utilizado para indicar cual es el servidor que iniciará una máquina sin disco o un cliente ligero, provisto de una interfaz de red que soporte el protocolo.
  • Bootfile name [67]: Nombre del archivo que se utiliza para el arranque de máquinas sin disco o clientes ligeros.
  • Simple Mail Transport Protocol (SMTP) Server Option [69]: Servidores SMTP para el envío de correos .
  • Post Office Protocol (POP3) Server Option [70]: Servidores POP3 para la recepción de correos.
  • Default World Wide Web (WWW) Server Option [72]: Servidores Web por defecto.
  • Default Finger Server Option [73]: Servidores Finger por defecto.

Proveedores

El protocolo DHCP se publicó originalmente en octubre del 1993, y esta actualmente documentado por la RFC 2131 “Dynamic Host Configuration Protocol”. Entre las organizaciones y compañías que proveen el software necesario para brindar este servicio, solamente mencionaremos:

  • Internet Systems Consortium, mantenedores de los softwares BIND, el ISC DHCP Server, del moderno Servidor DHCPv4 y DHCPv6 Kea DHCP Server y otros sistemas. Todo el software que provee esta organización es totalmente libre y de código abierto.
  • Servidor DHCP del software CISCO IOS Release 12.4T.
  • Servidor DHCP de la Microsoft Corporation incluido en sus sistemas operativos para servidores. Es un software propietario.
  • Tftpd32. Software libre y de código abierto que incluye a servidores para los servicios DHCP, TFTP, DNS, SNTP y Syslog, en sistemas operativos Microsoft Windows.

Resumen

Esperamos que este documento les sea útil a los encargados de la administración de redes que necesiten implementar el servicio DHCP.

¡Hasta el próximo artículo!

1 Comentario

Dejar respuesta

Please enter your comment!
Please enter your name here