Configuración de Servidores DHCP y TFTP en Routers Cisco: Una Guía Detallada

La gestión eficiente de direcciones IP es fundamental para el funcionamiento de cualquier red. El Protocolo de Configuración Dinámica de Host (DHCP) simplifica este proceso al permitir que los dispositivos obtengan automáticamente direcciones IP y otros parámetros de configuración de red. En entornos empresariales y redes de gran escala, los routers Cisco son a menudo el punto central para la administración de estos servicios. Este artículo explora en profundidad cómo configurar un router Cisco para que actúe como servidor DHCPv4, así como la integración con servicios como TFTP, y cómo manejar escenarios de retransmisión de DHCP en redes complejas.

El Proceso de Asignación Dinámica de Direcciones IP con DHCP

DHCP es un protocolo de red que permite a un host obtener una dirección IP de forma dinámica cuando se conecta a la red. El proceso de intercambio de mensajes entre un cliente y un servidor DHCP es un ciclo bien definido, crucial para la asignación de direcciones.

El ciclo comienza cuando el cliente envía un mensaje "DHCP Discover" por broadcast. Incluso sin una dirección IP de origen válida, el cliente utiliza la dirección broadcast para localizar cualquier servidor DHCP que esté escuchando. Posteriormente, un servidor DHCP responde con un mensaje "DHCP Offer", que contiene una propuesta para utilizar una dirección IP, su máscara de subred, una puerta de enlace (gateway) y otros parámetros de configuración.

Una vez que el cliente recibe una oferta, envía un mensaje "DHCP Request" para solicitar el uso de la dirección IP ofrecida. Finalmente, el servidor DHCP responde con un mensaje "DHCP ACK" (Acknowledgement). Este mensaje aprueba formalmente la asignación de la dirección IP y los parámetros necesarios, permitiendo al cliente usarla legítimamente.

Es importante destacar que DHCP está diseñado para operar dentro de un dominio de difusión. La mayoría de los mensajes en un intercambio DHCP se envían como difusiones (broadcast). Esto implica que, idealmente, debería haber un servidor DHCP para cada dominio de transmisión o VLAN en la red, aunque esto no siempre es factible en todas las infraestructuras.

Consideraciones sobre DHCPv6 y Configuración sin Estado

Mientras que DHCPv4 es ampliamente utilizado, las redes modernas también implementan IPv6. En el contexto de IPv6, existe un mecanismo de configuración automática sin estado que proporciona información básica a un cliente para comunicarse en la red. Este método, conocido como "Stateless Address Autoconfiguration" (SLAAC), permite a un cliente crear una dirección única global combinando la información anunciada desde un router con información de su propio adaptador de red. El router proporciona 64 bits del prefijo de subred de capa 3, mientras que el cliente agrega un ID de interfaz EUI-64 de 64 bits. El ID de interfaz se compone de la mitad superior de la dirección MAC de la interfaz (24 bits), seguida de la cadena hexadecimal FFFE (16 bits), y finalmente la mitad inferior de la dirección MAC (24 bits). La configuración automática sin estado proporciona solo la información más básica que un cliente necesita para comunicarse: una dirección IPv6, el prefijo IPv6 y la dirección del router (Gateway) predeterminado.

Diagrama del proceso DHCP Offer, Request, ACK

Configuración de un Router Cisco como Servidor DHCPv4

Un router Cisco que ejecuta el software Cisco IOS puede configurarse para funcionar como servidor DHCPv4. Esto es particularmente útil cuando no se dispone de un servidor DHCP dedicado o para simplificar la infraestructura en redes de tamaño mediano. El servidor DHCPv4 dentro del IOS de Cisco asigna y administra direcciones IPv4 a partir de conjuntos de direcciones especificados dentro del router para los clientes DHCPv4.

Paso 1: Excluir Direcciones IPv4

Antes de configurar el pool de direcciones DHCP, es una práctica recomendada excluir ciertas direcciones IP del rango que el servidor DHCP asignará dinámicamente. Esto se hace para reservar direcciones para dispositivos que requieren asignaciones estáticas, como servidores, impresoras, o incluso el propio router.

Para excluir direcciones específicas, se utiliza el comando ip dhcp excluded-address en el modo de configuración global. Se puede especificar una única dirección o un rango de direcciones:

R1(config)# ip dhcp excluded-address low-address [high-address]

Por ejemplo, para excluir la dirección 192.168.10.254, se ejecutaría:

R1(config)# ip dhcp excluded-address 192.168.10.254

Si se desea excluir un rango, por ejemplo, de 192.168.10.1 a 192.168.10.50:

R1(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.50

Paso 2: Configurar un Pool de DHCPv4

La configuración de un servidor DHCPv4 implica definir un conjunto de direcciones que se asignarán. Esto se realiza creando un "pool" de DHCP. Cada pool se nombra para su identificación.

Dentro de la configuración del pool, se definen varios parámetros esenciales:

  • Network: Especifica la red y la máscara de subred para el pool de direcciones.

    R1(dhcp-config)# network network-number [mask | / prefix-length]

    Ejemplo: network 192.168.10.0 255.255.255.0 o network 192.168.10.0 /24.

  • Default-router: Define la dirección IP del router que actuará como puerta de enlace predeterminada para los clientes DHCP. Normalmente, esta es la dirección IP de la interfaz LAN del router más cercana a los dispositivos cliente. Se puede especificar hasta ocho direcciones de gateway si existen múltiples opciones.bashR1(dhcp-config)# default-router address [address2…address8]Ejemplo: default-router 192.168.10.1.

Paso 3: Configurar Tareas Específicas (Opcionales)

Además de los parámetros requeridos, existen varias tareas opcionales que se pueden configurar dentro del pool de DHCPv4 para proporcionar información adicional a los clientes:

  • DNS-server: Especifica la dirección IP del servidor DNS que los clientes utilizarán para resolver nombres de dominio.

    R1(dhcp-config)# dns-server address [address2…address8]

    Ejemplo: dns-server 8.8.8.8.

  • Domain-name: Define el nombre de dominio para la red.

    R1(dhcp-config)# domain-name domain

    Ejemplo: domain-name example.com.

  • Lease: Configura la duración del arrendamiento de la dirección IP. El valor predeterminado es un día. Se puede especificar en días, horas y minutos, o establecerse como infinito.

    R1(dhcp-config)# lease {days [hours [minutes]] | infinite}

    Ejemplo: lease 7 (para un arrendamiento de 7 días).

  • Netbios-name-server: Define la dirección IP del servidor WINS (Windows Internet Name Service) para la resolución de nombres NetBIOS.bashR1(dhcp-config)# netbios-name-server address [address2…address8]

8.1.3.3 Packet Tracer: configuración de DHCP mediante el IOS de Cisco

Ejemplo de Configuración DHCPv4 en un Router Cisco

A continuación, se presenta un ejemplo completo de configuración de un servidor DHCPv4 en un router Cisco (R1), incluyendo la exclusión de direcciones, la definición del pool y la configuración de parámetros opcionales.

R1# configure terminalEnter configuration commands, one per line. End with CNTL/Z.R1(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.50R1(config)# ip dhcp excluded-address 192.168.10.254R1(config)# ip dhcp pool LAN_POOLR1(dhcp-config)# network 192.168.10.0 255.255.255.0R1(dhcp-config)# default-router 192.168.10.1R1(dhcp-config)# dns-server 192.168.10.2R1(dhcp-config)# domain-name mycompany.localR1(dhcp-config)# lease 3 0 0R1(dhcp-config)# exitR1(config)# exitR1#

Habilitar y Deshabilitar el Servicio DHCP

Por defecto, el servicio DHCP está habilitado en los routers Cisco IOS. Para deshabilitarlo, se utiliza el comando no service dhcp en el modo de configuración global. Para volver a habilitarlo, se usa el comando service dhcp.

R1(config)# no service dhcp
R1(config)# service dhcp

Si los parámetros del pool no se configuran, habilitar el servicio no tendrá ningún efecto práctico.

Verificación de la Configuración DHCPv4

Una vez configurado el servidor DHCP, es crucial verificar su correcto funcionamiento. Cisco IOS proporciona varios comandos para este propósito:

  • show running-config | section dhcp: Este comando muestra todas las configuraciones relacionadas con DHCP en la configuración en ejecución del router. Permite revisar los pools definidos, las direcciones excluidas y otros parámetros.

    R1# show running-config | section dhcpip dhcp excluded-address 192.168.10.1 192.168.10.50ip dhcp excluded-address 192.168.10.254ip dhcp pool LAN_POOL network 192.168.10.0 255.255.255.0 default-router 192.168.10.1 dns-server 192.168.10.2 domain-name mycompany.local lease 3 0 0
  • show ip dhcp binding: Muestra una lista de todas las asignaciones de direcciones IP a direcciones MAC que el servidor DHCP ha proporcionado a los clientes. Esto permite ver qué direcciones IP están actualmente en uso y a qué dispositivos están asignadas.

    R1# show ip dhcp bindingIP address Client-ID/ Hardware address Lease expiration Type0000.0000.0000 Lease time Type192.168.10.51 000C.294B.5781 Infinite Automatic192.168.10.52 000C.294B.5782 Infinite Automatic

    Nota: En un escenario real, las expiraciones de lease serían temporales, no "Infinite", a menos que se configure explícitamente.

  • show ip dhcp server statistics: Proporciona estadísticas sobre los mensajes DHCP que el servidor ha enviado y recibido. Esto incluye el número de mensajes DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, y DHCPACK, lo cual es útil para diagnosticar problemas de comunicación.

    R1# show ip dhcp server statisticsMemory usage: Current 24160, Max 24160Address pools: 1Database agents: 0Commit served: 0Total addresses: 254Leased addresses: 2Excluded addresses: 51

Verificación desde el Cliente

En el lado del cliente (por ejemplo, una PC con Windows), el comando ipconfig /all mostrará los parámetros TCP/IP obtenidos dinámicamente. Si la PC está conectada a un segmento de red con un pool DHCPv4 disponible, debería obtener automáticamente una dirección IPv4, máscara de subred, gateway predeterminado y dirección del servidor DNS del pool configurado.

Captura de pantalla del resultado de ipconfig /all mostrando parámetros DHCP

Retransmisión de DHCPv4 (DHCP Relay)

En redes complejas y jerárquicas, los servidores DHCP a menudo residen en una ubicación central o en una granja de servidores. Los clientes de red, sin embargo, pueden encontrarse en subredes distintas a la del servidor DHCP. Dado que los mensajes DHCP (Discover, Request) se envían como broadcast y los routers, por defecto, no reenvían broadcasts entre subredes, los clientes en subredes diferentes a la del servidor DHCP no podrán obtener una dirección IP.

Para solucionar este problema, los routers pueden configurarse como agentes de retransmisión DHCPv4 (DHCP Relay Agent). Un agente de retransmisión DHCP escucha los broadcasts DHCP en una subred y los reenvía como mensajes unicast a un servidor DHCP específico en otra subred.

El Comando ip helper-address

La configuración de un router como agente de retransmisión DHCPv4 se realiza en la interfaz del router que recibe los broadcasts DHCP de los clientes. Se utiliza el comando ip helper-address, seguido de la dirección IP del servidor DHCP al que se deben reenviar las solicitudes.

R1(config-if)# ip helper-address server-dhcp-ip-address

Por ejemplo, si el servidor DHCP se encuentra en la dirección 192.168.2.10 y la interfaz del router que recibe los broadcasts de los clientes es la GigabitEthernet0/1:

R1(config)# interface GigabitEthernet0/1R1(config-if)# ip helper-address 192.168.2.10R1(config-if)# exit

Cuando el router R1, configurado con ip helper-address, recibe una solicitud broadcast de un cliente DHCP en la interfaz GigabitEthernet0/1, reenviará esa solicitud en forma de unicast a la dirección 192.168.2.10.

Otros Servicios Retransmitidos por ip helper-address

Es importante notar que el comando ip helper-address no solo reenvía tráfico DHCP. De forma predeterminada, reenvía varios servicios UDP comunes, incluyendo:

  • Puerto 37: Time
  • Puerto 49: TACACS
  • Puerto 53: DNS
  • Puerto 67: DHCP/BOOTP server
  • Puerto 68: DHCP/BOOTP client
  • Puerto 69: TFTP
  • Puerto 137: NetBIOS name service
  • Puerto 138: NetBIOS datagram service

Esto significa que un solo comando ip helper-address puede habilitar la conectividad de varios servicios para clientes en subredes remotas.

Diagrama de red mostrando un router como agente de retransmisión DHCP

Comandos de Verificación para DHCP Relay

Para verificar la configuración del agente de retransmisión DHCP, se pueden usar comandos como show ip interface.

R1# show ip interface GigabitEthernet0/1GigabitEthernet0/1 is up, line protocol is up Internet address is 192.168.1.1/24 IP helper-address 192.168.2.10 ...

Esto confirma que la dirección de ayuda (helper address) está configurada en la interfaz.

Configuración de un Router Cisco como Cliente DHCPv4

En algunos escenarios, especialmente en oficinas pequeñas o sucursales, un router Cisco puede necesitar obtener su propia dirección IP de un ISP o de otro servidor DHCP en la red. En estos casos, el router se configura como un cliente DHCPv4.

Para configurar una interfaz Ethernet como cliente DHCP, se utiliza el comando ip address dhcp en el modo de configuración de interfaz.

Router(config)# interface GigabitEthernet0/0Router(config-if)# ip address dhcpRouter(config-if)# no shutdownRouter(config-if)# exit

Este comando instruye al router para que solicite una dirección IP, máscara de subred y gateway predeterminado del servidor DHCP.

Routers Inalámbricos como Clientes DHCP

Los routers inalámbricos utilizados en hogares u oficinas pequeñas a menudo se conectan a un ISP a través de un módem de cable o DSL. En la mayoría de los casos, estos routers están preconfigurados para recibir automáticamente la información de direccionamiento IPv4 del ISP mediante DHCP. Al configurar la interfaz WAN (Wide Area Network) de estos routers, se selecciona típicamente la opción "Automatic Configuration - DHCP".

Captura de pantalla de la configuración WAN de un router inalámbrico mostrando DHCP

Integración con Servicios TFTP y DNS

Si bien el enfoque principal ha sido DHCP, es común que los routers Cisco actúen como hosts para otros servicios de red esenciales.

TFTP (Trivial File Transfer Protocol)

TFTP es un protocolo de transferencia de archivos simple que a menudo se utiliza para cargar o descargar configuraciones de dispositivos de red o imágenes de sistema operativo. Un router Cisco puede configurarse para actuar como servidor TFTP, permitiendo que otros dispositivos (como otros routers, switches o incluso PCs) transfieran archivos hacia o desde él.

Para habilitar el servicio TFTP en un router, se utiliza el comando tftp-server en el modo de configuración global, especificando la ruta donde se almacenarán los archivos.

R1(config)# tftp-server flash:/

Esto permitiría a los clientes TFTP leer y escribir archivos en el sistema de archivos flash del router. La seguridad es una consideración importante al habilitar servicios como TFTP, y se deben implementar medidas adecuadas para restringir el acceso.

DNS (Domain Name System)

DNS es un sistema distribuido de servidores que resuelve nombres de dominio en direcciones IP. Cuando un usuario escribe un URI en un navegador, la computadora utiliza DNS para enviar una solicitud y resolver el URI en una dirección IP. Los servidores DNS almacenan varios tipos de registros de recursos (como registros A para IPv4, AAAA para IPv6, CNAME, MX, etc.) que contienen el nombre, la dirección y el tipo de registro.

Aunque un router Cisco no suele actuar como un servidor DNS completo para una red corporativa, puede configurarse para resolver nombres de dominio locales o para reenviar consultas DNS a servidores DNS externos. La configuración de servidores DNS para clientes DHCP (como se vio anteriormente con el comando dns-server) es una parte integral de la operación de red.

Consideraciones Avanzadas y Mejores Prácticas

  • Seguridad DHCP: Proteger el servidor DHCP es crucial para evitar ataques como el "DHCP starvation" (agotamiento de direcciones) o la suplantación de servidores DHCP maliciosos. Se pueden implementar características como "DHCP snooping" en los switches para mitigar estos riesgos.
  • Redundancia de Servidores DHCP: En redes críticas, es recomendable implementar servidores DHCP redundantes para asegurar la disponibilidad continua del servicio. Esto puede lograrse configurando varios servidores DHCP o utilizando características de alta disponibilidad en soluciones de servidores dedicadas.
  • DHCP para IPv6: A medida que las redes migran a IPv6, es importante comprender también la configuración de servidores DHCPv6 y los mecanismos de SLAAC para una gestión de direcciones IPv6 completa.
  • Automatización y Gestión Centralizada: Para redes grandes, la gestión manual de la configuración de servidores DHCP en múltiples routers puede ser tediosa. Herramientas de gestión de configuración como Cisco Network Assistant (NCM) o soluciones de automatización como Ansible permiten la configuración masiva y simplificada de servidores DHCP y otros servicios en múltiples dispositivos Cisco.

La capacidad de configurar routers Cisco como servidores DHCP, clientes DHCP y agentes de retransmisión es una habilidad fundamental para cualquier administrador de red. Permite una gestión de direcciones IP eficiente y flexible, adaptándose a diversas topologías de red y requisitos operativos. La correcta implementación de estos servicios, junto con la consideración de la seguridad y la redundancia, asegura una base sólida para una red confiable y escalable.

tags: #adicionar #servicio #tftp #dhcp #server #cisco