Protección de ciclo corto DHCP
Protección de ciclo corto de DHCP contra sesiones breves frecuentes o fallidas de cliente
En redes de gran escala, un número significativo de negociaciones de cliente DHCP fallan antes de que se establezca la sesión, lo que resulta en una gran carga en el enrutador y los servidores de autenticación externos. Algunos dispositivos CPE reintentan automáticamente la negociación en caso de error, otros con intervalos de reintento muy cortos. Un cliente malintencionado puede montar un ataque de autenticación enviando solicitudes de inicio de sesión repetidas y frecuentes. Estos eventos pueden resultar en una carga significativa en el enrutador y el servidor de autenticación externo.
A partir de Junos OS versión 18.2R1, la protección de ciclo corto DHCP, también denominada bloqueo de cliente DHCP, permite que el enrutador reduzca estas cargas identificando y bloqueando temporalmente los clientes que continuamente fallan en la negociación y tienen ciclos de negociación cortos, así como los clientes que con frecuencia completan las conexiones pero cierran sesión poco después de iniciar sesión.
A los clientes identificados se les impide el acceso bloqueándolos temporalmente durante un período de bloqueo que aumenta exponencialmente. El enrutador elimina la detección de DHCP o solicita mensajes de estos clientes mientras están bloqueados. El enrutador rastrea a los clientes por el identificador de cliente para clientes DHCPv4 o identificador único DHCP (DUID) para clientes DHCPv6. Ambos tipos de identificadores de cliente se pueden denominar claves de cliente. La clave de cliente permite al servidor DHCP asociar un cliente con sus parámetros de concesión y configuración. El uso de la clave de cliente para el seguimiento de protección de ciclo corto DHCP permite que el enrutador impida que un cliente negocie una sesión, mientras que permite que otros clientes que utilizan la misma interfaz lógica negocien correctamente las sesiones.
El período de bloqueo inicial para un cliente tiene una duración corta. El objetivo aquí es no afectar negativamente a los clientes legítimos, por ejemplo, aquellos que fallan solo una vez o que inician sesión periódicamente para revisar su correo electrónico y luego cerrar sesión nuevamente. Al dirigirse a clientes que continuamente fallan en la negociación o que inician y cierran sesión con frecuencia a intervalos cortos, la protección de ciclo corto reduce tanto la carga de procesamiento de conexión en el enrutador como la carga de autenticación en servidores de autenticación externos. Tiene el efecto de mejorar el rendimiento al aplazar las sesiones de cliente que no progresan en favor de las sesiones que se completan.
- Condiciones que pueden provocar interrupciones fallidas o de corta duración de las sesiones del cliente DHCP
- Cómo funciona la protección de ciclo corto de DHCP
- Terminación de la condición de bloqueo
- Ventajas de usar la protección de ciclo corto DHCP
Condiciones que pueden provocar interrupciones fallidas o de corta duración de las sesiones del cliente DHCP
Las condiciones que pueden causar un error o una sesión de cliente de corta duración incluyen:
Denegaciones de autenticación de servidores AAA externos, como RADIUS o Diameter, debido a la ausencia de una entrada correspondiente en la base de datos RADIUS o debido a intentos de inicio de sesión incorrectos.
Inaccesibilidad del enrutador o del servidor de autenticación externo debido a fallas o configuraciones incorrectas de la red.
Recursos de memoria insuficientes para crear una interfaz de suscriptor dinámica.
Errores de negociación de protocolos con el CPE.
Cierre sesión del cliente poco después de un inicio de sesión exitoso; Esta acción crea una sesión de cliente completamente negociada y configurada antes de que se interrumpa la sesión.
Cómo funciona la protección de ciclo corto de DHCP
La protección de ciclo corto DHCP está desactivada en el enrutador de forma predeterminada. Cuando se habilita incluyendo la short-cycle-protection
instrucción a nivel global, de grupo o de interfaz, el enrutador hace lo siguiente para las sesiones DHCP en interfaces lógicas estáticas y dinámicas:
Detecta sesiones de cliente de corta duración, también denominadas eventos de ciclo corto, y bloquea el cliente en función de los siguientes eventos:
E0: Hora en la que jdhcpd declara que la sesión del cliente está activa.
E1: Hora en que jdhcpd declara que la sesión del cliente debe ser derribada.
E2: Hora en que jdhcpd elimina la entrada de sesión de cliente de la base de datos.
Un evento de ciclo corto se produce cuando el intervalo entre E0 y E1 es menor o igual a 60 segundos. Cuando el intervalo es superior a 60 segundos, el cierre de sesión se considera normal. Si el enrutador declara que la sesión es de corta duración, agrega el cliente a la base de datos de bloqueo en el momento E2.
Bloquea temporalmente el cliente DHCP especificado al impedir la conexión con el enrutador.
Durante el bloqueo, el enrutador descarta los paquetes de negociación (DHCP descubre y solicita mensajes) del cliente hasta que expira el período de bloqueo. Cuando expira el período de bloqueo, el cliente puede reanudar la negociación normal de la conexión.
Puede establecer un intervalo para el período de bloqueo especificando una longitud mínima y máxima con la
short-cycle-protection
instrucción. Debe especificar un valor mínimo y un valor máximo.Realiza un seguimiento del tiempo entre los eventos repetidos de ciclo corto de un cliente para determinar si se debe aumentar el tiempo de bloqueo para un evento de ciclo corto posterior. El intervalo entre eventos se compara con el umbral de tiempo de gracia. De forma predeterminada, el umbral de tiempo de gracia es de 900 segundos, pero se establece automáticamente en el tiempo máximo de bloqueo si ese valor es superior a 900 segundos.
Si no se intenta ninguna negociación posterior dentro del tiempo de gracia, la entrada de cliente se elimina de la base de datos de bloqueo.
Si se intenta una negociación posterior antes de alcanzar el umbral de gracia, se trata como otro evento de ciclo corto y se aumenta la penalización por bloqueo. La penalización se incrementa exponencialmente cada vez que se intenta la negociación dentro del tiempo de gracia.
El período de bloqueo inicial se basa en el valor mínimo configurado. Las penalizaciones adicionales se calculan de la siguiente manera, donde n es el número de eventos consecutivos de ciclo corto que ocurren dentro del tiempo de gracia:
Tiempo de bloqueo = (tiempo mínimo de bloqueo) x [2(n-1)]
Por ejemplo, con una duración mínima de 1 segundo y una duración máxima de 300 segundos, el período de bloqueo inicial es de 1 segundo; Las penalizaciones posteriores aumentan a 2 segundos, luego 4 segundos, 8 segundos, 16 segundos, 32 segundos, 64 segundos, 128 segundos, 256 segundos y finalmente 300 segundos. El período de bloqueo final es de 300 segundos en lugar de 512 segundos porque ninguna penalización puede superar el valor máximo del rango de bloqueo.
Si el tiempo de bloqueo alcanza el máximo, permanece en ese valor para cada período de bloqueo posterior hasta que el tiempo entre eventos de ciclo corto sea mayor que el umbral de gracia.
Terminación de la condición de bloqueo
Cuando un cliente DHCP está bloqueado, la condición de bloqueo persiste hasta que todos los temporizadores de bloqueo hayan expirado, excepto cuando se produce alguna de las siguientes situaciones:
Para borrar administrativamente la condición de bloqueo, se emite uno de los siguientes comandos operativos:
clear dhcp relay lockout-entries
clear dhcp server lockout-entries
clear dhcpv6 relay lockout-entries
clear dhcpv6 server lockout-entries
Restablezca la FPC en la que está configurada la sesión de cliente en proceso de bloqueo.
Restablecer el motor de enrutamiento.
Cuando se produce cualquiera de estos eventos, jdhcpd finaliza el bloqueo y borra el historial de bloqueo de todas las sesiones de cliente afectadas. Los clientes liberados pueden negociar nuevamente. Dado que no hay un historial retenido, el período de bloqueo comienza con el valor mínimo si se produce un evento de ciclo corto posterior para uno de estos clientes.
Cuando se quita una interfaz lógica VLAN dinámica o demux VLAN de una interfaz física subyacente configurada con remove-when-no-subscribers
, el bloqueo de los clientes afectados persiste hasta que todos los temporizadores hayan expirado. Si la interfaz lógica se vuelve a crear antes de que expiren todos los temporizadores, el estado de bloqueo se aplica a las interfaces lógicas recreadas.
Ventajas de usar la protección de ciclo corto DHCP
Reduce la carga excesiva del plano de control en el enrutador y la carga de autenticación, autorización y aprovisionamiento en el servidor de autoridad externa.
Reduce los recursos necesarios para procesar paquetes de control DHCP y para negociar y terminar conexiones de corta duración.
Aplaza temporalmente los intentos posteriores para clientes con sesiones de cliente fallidas o de corta duración a favor de sesiones que pueden completarse con éxito y durar más de una corta duración.
Reduce los recursos necesarios para autenticar y terminar estas conexiones en servidores de autenticación externos, como RADIUS y Diameter.
Permite el bloqueo de una única sesión DHCP fallida o de corta duración sin interrumpir otras sesiones DHCP en la misma interfaz.
Dado que la protección de ciclo corto de DHCP identifica cada sesión de cliente por su ID de cliente único, el enrutador sólo puede bloquear el cliente DHCP infractor mientras permite que otros clientes DHCP en la misma interfaz negocien correctamente la conexión.
Configuración de la protección de ciclo corto de DHCP
En redes de gran escala, un número significativo de negociaciones de cliente DHCP fallan antes de que se establezca la sesión, lo que resulta en una gran carga en el enrutador y los servidores de autenticación externos. Puede habilitar la protección de ciclo corto DHCP en el enrutador para identificar los clientes DHCP que inician sesión con frecuencia y brevemente o que continuamente no se conectan, luego bloquear el acceso de los clientes y descartar las solicitudes posteriores de estos clientes hasta que expire un temporizador de bloqueo. Para los clientes que inician sesión repetidamente con frecuencia y brevemente, el tiempo de bloqueo inicial es lo suficientemente corto como para no tener un impacto notable. A medida que estos breves inicios de sesión continúan, el período de bloqueo aumenta exponencialmente. Al dirigirse a clientes que continuamente fallan en la negociación o que inician y cierran sesión con frecuencia a intervalos cortos, la protección de ciclo corto reduce la carga de procesamiento de conexión en el enrutador y la carga de autenticación, autorización y aprovisionamiento en servidores de autenticación externos.
Puede configurar el intervalo para el período de bloqueo para el relé DHCPv4, el relé DHCPv6, el servidor local DHCPv4 y el servidor local DHCPv6. Puede configurar el período globalmente para todas las interfaces del agente de retransmisión o del servidor local, para un grupo de interfaces o para interfaces específicas dentro de un grupo. Para la retransmisión DHCPv4 y el servidor local, también puede configurar el bloqueo para un grupo de pila doble.
Cuando habilite la protección de ciclo corto, debe especificar la duración mínima y máxima del período de bloqueo.
Para configurar el intervalo de bloqueo para el agente de retransmisión DHCPv4:
Especifique los tiempos de bloqueo mínimos y máximos.
Para todos los agentes de retransmisión DHCPv4:
[edit forwarding-options dhcp-relay] user@host# set short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para un grupo específico de interfaces de relé DHCPv4:
[edit forwarding-options dhcp-relay] user@host# set group group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para una interfaz específica dentro de un grupo especificado de interfaces de relé DHCPv4:
[edit forwarding-options dhcp-relay] user@host# set group group-name interface interface-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para un grupo de doble pila de relé DHCPv4:
[edit forwarding-options dhcp-relay] user@host# set dual-stack-group dual-stack-group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds
Para configurar el intervalo de bloqueo para el agente de retransmisión DHCPv6:
Especifique los tiempos de bloqueo mínimos y máximos.
Para todos los agentes de retransmisión DHCPv6:
[edit forwarding-options dhcp-relay dhcpv6] user@host# set short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para un grupo específico de interfaces de relé DHCPv6:
[edit forwarding-options dhcp-relay dhcpv6] user@host# set group group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para una interfaz específica dentro de un grupo especificado de interfaces de relé DHCPv6:
[edit forwarding-options dhcp-relay dhcpv6] user@host# set group group-name interface interface-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para configurar el intervalo de bloqueo para el servidor local DHCPv4:
Especifique los tiempos de bloqueo mínimos y máximos.
Para todos los servidores locales DHCPv4:
[edit system services dhcp-local-server] user@host# set short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para un grupo específico de interfaces de servidor local DHCPv4:
[edit system services dhcp-local-server] user@host# set group group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para una interfaz específica dentro de un grupo especificado de interfaces de servidor local DHCPv4:
[edit system services dhcp-local-server] user@host# set group group-name interface interface-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para un grupo de pila doble del servidor local DHCPv4:
[edit system services dhcp-local-server] user@host# set dual-stack-group dual-stack-group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para configurar el intervalo de bloqueo para el servidor local DHCPv6:
Especifique los tiempos de bloqueo mínimos y máximos.
Para todos los servidores locales DHCPv6:
[edit system services dhcp-local-server dhcpv6] user@host# set short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para un grupo específico de interfaces de servidor local DHCPv6:
[edit system services dhcp-local-server dhcpv6] user@host# set group group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Para una interfaz específica dentro de un grupo especificado de interfaces de servidor local DHCPv6:
[edit system services dhcp-local-server dhcpv6] user@host# set group group-name interface interface-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
Comprobación y administración de la protección de ciclo corto de DHCP
Propósito
Ver o borrar información sobre las operaciones de protección de ciclo corto de DHCP.
Utilice los comandos y compatibles show
clear
para administrar y mostrar información sobre las operaciones de protección de ciclo corto para el agente de retransmisión DHCP y el servidor local DHCP. Puede mostrar información sobre todas las entradas bloqueadas o solo sobre entradas individuales identificadas por su número de índice de base de datos.
Acción
Para mostrar información de protección de ciclo corto para el agente de relé DHCPv4 o DHCPv6:
user@host> show dhcp relay lockout-entries (all | index index) user@host> show dhcpv6 relay lockout-entries (all | index index)
Para borrar la información de protección de ciclo corto para el agente de relé DHCPv4 o DHCPv6:
user@host> clear dhcp relay lockout-entries (all | index index) user@host> clear dhcpv6 relay lockout-entries (all | index index)
Para mostrar información de protección de ciclo corto para el servidor local DHCPv4 o DHCPv6:
user@host> show dhcp server lockout-entries (all | index index) user@host> show dhcpv6 server lockout-entries (all | index index)
Para borrar la información de protección de ciclo corto para el servidor local DHCPv4 o DHCPv6:
user@host> clear dhcp server lockout-entries (all | index index) user@host> clear dhcpv6 server lockout-entries (all | index index)
Significado
Cuando se incluye la all
opción con estos show
comandos, se proporciona información para cada entrada de cliente en la base de datos de bloqueo, como el número de índice que corresponde a la entrada en la base de datos, la clave de identificación del cliente, el estado del bloqueo, cuántos segundos faltan para que finalice el estado actual, cuánto tiempo ha estado vigente el estado actual, y cuántas veces consecutivas se ha bloqueado el cliente.
Cuando desee quitar información de la base de datos de bloqueo para un cliente determinado, primero debe emitir el comando correspondiente show
con la all
opción de determinar el índice para la entrada de cliente. A continuación, puede especificar ese índice con el clear
comando.
En el ejemplo siguiente, se muestran todas las entradas de cliente bloqueadas para que el agente de retransmisión DHCPv4 encuentre el número de índice de un cliente determinado y, a continuación, desactive solo esa entrada y compruebe que se ha eliminado:
user@host> show dhcp relay lockout-entries all Index Key State Expires(s) Elapsed(s) Count 1 00:00:5E:00:53:00 LT 30 5200 2 2 00:00:5E:00:53:11 GT 120 780 2 3 00:00:5E:00:53:22 LT 180 2300 1 user@host> clear dhcp relay lockout-entries index 2 user@host> show dhcp relay lockout-entries all Index Key State Expires(s) Elapsed(s) Count 1 00:00:5E:00:53:00 LT 30 5200 2 3 00:00:5E:00:53:22 LT 180 2300 1
En el ejemplo siguiente, se muestran todas las entradas de cliente bloqueadas para el servidor local DHCPv6 y, a continuación, se borran todas las entradas y se comprueba que se han eliminado:
user@host> show dhcp relay lockout-entries all Index Key State Expires(s) Elapsed(s) Count 1 00:00:5E:00:53:00 LT 30 5200 2 2 00:00:5E:00:53:11 GT 120 780 2 3 00:00:5E:00:53:22 LT 180 2300 1 user@host> clear dhcp relay lockout-entries all user@host> show dhcp relay lockout-entries all
Tabla de historial de cambios
La compatibilidad con las funciones viene determinada por la plataforma y la versión que esté utilizando. Utilice el Explorador de características para determinar si una característica es compatible con su plataforma.