DHCP snooping is a Layer 2 security control that filters DHCP messages on network switches to block unauthorized DHCP servers from distributing incorrect gateway or DNS settings to clients. The feature classifies switch ports as trusted or untrusted, inspects DHCP packets, and builds a binding table that records client MAC addresses, leased IP addresses, VLANs, and ports for use by related security mechanisms like Dynamic ARP Inspection and IP Source Guard. Proper configuration—marking only uplink ports as trusted, maintaining persistent binding tables, and ensuring consistent option 82 handling in relay environments—is critical to prevent legitimate clients from losing connectivity while maintaining protection against rogue DHCP server attacks.
Cómo funciona el «DHCP snooping»
Un conmutador con la función de snooping DHCP activada inspecciona los paquetes DHCP en las VLAN en las que está habilitada dicha función. Un administrador marca cada puerto como de confianza o no de confianza, y el conmutador aplica reglas diferentes a cada uno.
- Designar puertos de confianza: el administrador marca como de confianza los puertos que conducen a servidores DHCP o agentes de retransmisión legítimos. Todos los demás puertos, normalmente los que dan a los dispositivos cliente, siguen sin ser de confianza.
- Filtrar mensajes del servidor: El conmutador descarta los mensajes del servidor DHCP, como ofertas y acuses de recibo, que llegan a un puerto no de confianza. Esto impide que un servidor no autorizado en un puerto de acceso responda a los clientes.
- Inspeccionar los mensajes de los clientes: en los puertos no fiables, el conmutador puede comprobar que la dirección de hardware del cliente en una solicitud DHCP coincida con la dirección MAC de origen de la trama. Esto limita algunos ataques de agotamiento que utilizan direcciones falsificadas.
- Crear la tabla de enlaces: cuando un cliente recibe una concesión válida, el conmutador registra la dirección MAC del cliente, la dirección IP asignada, la duración de la concesión, la VLAN y el puerto en una tabla de enlaces.
- Aplicar las asociaciones: La tabla de asociaciones es utilizada por funciones relacionadas, como la inspección dinámica de ARP y la protección de origen IP, para descartar el tráfico que no coincida con una concesión conocida.
El «snooping» no autentica a los clientes ni al servidor legítimo. Comportamientos como la limitación de velocidad, la inserción de la opción 82 y la persistencia de la tabla de enlaces varían según el fabricante del conmutador y la configuración.
Problemas habituales con el DHCP snooping
Si el puerto dirigido al servidor DHCP o al agente de retransmisión no está marcado como de confianza, el conmutador descarta las ofertas y los acuses de recibo legítimos. En ese caso, los clientes no consiguen obtener direcciones, a menudo solo en las VLAN en las que se acaba de habilitar el snooping.
Si la tabla de enlaces se almacena únicamente en memoria, al reiniciar el conmutador se borra y las funciones que dependen de ella pueden bloquear a clientes válidos hasta que se renueven. Almacenar la tabla en un soporte persistente, siempre que la plataforma lo admita, reduce este problema.
Algunos conmutadores insertan información de retransmisión en las solicitudes de los clientes de forma predeterminada. Cuando el servidor o la retransmisión de nivel superior rechaza los paquetes que la transportan sin una dirección de retransmisión coincidente, los clientes no consiguen obtener una asignación. Harmonice la configuración de esta opción en todo el conmutador y la ruta de retransmisión.
Los dispositivos con direcciones estáticas nunca aparecen en la tabla de enlaces. Cuando la inspección ARP o Source Guard se basan en esa tabla, su tráfico se descarta a menos que se añadan entradas estáticas.
Un límite de tráfico de paquetes DHCP demasiado bajo en un puerto no fiable puede hacer que este entre en un estado de desactivación por error durante picos de tráfico legítimos, como cuando muchos clientes se inician a la vez. El puerto permanece inactivo hasta que se recupera manualmente o mediante un temporizador.