Protección de ciclo corto DHCP
Protección de ciclo corto de DHCP contra sesiones de cliente frecuentes, breves o fallidas
En redes de alta escala, un número significativo de negociaciones de cliente DHCP fallan antes de que se establezca la sesión, lo que da como resultado una alta carga en el enrutador y los servidores de autenticación externos. Algunos dispositivos CPE reintentan automáticamente la negociación en caso de error, algunos con intervalos de reintento muy cortos. Un cliente malintencionado podría montar un ataque de autenticación mediante el envío de solicitudes de inicio de sesión repetidas y frecuentes. Estos eventos pueden dar lugar a una carga significativa en el enrutador y el servidor de autenticación externo.
A partir de la versión 18.2R1 de Junos OS, la protección de ciclo corto DHCP, también denominada bloqueo de cliente DHCP, permite al enrutador reducir estas cargas mediante la identificación y el bloqueo temporal de clientes que continuamente fallan en la negociación y tienen ciclos de negociación cortos, así como clientes que frecuentemente completan conexiones pero cierran sesión poco después de iniciar sesión.
Los clientes identificados no pueden acceder bloqueándolos temporalmente durante un período de bloqueo que aumenta exponencialmente. El enrutador deja caer DHCP, detecta o solicita mensajes de estos clientes mientras están bloqueados. El enrutador realiza un seguimiento de los clientes por el identificador de cliente para clientes DHCPv4 o el 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 al enrutador impedir 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 volver a cerrar sesión. 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 la transferencia de datos al diferir las sesiones de cliente que no progresan en favor de las sesiones que se completan.
- Condiciones que pueden causar sesiones de cliente DHCP fallidas o de corta duración
- Cómo funciona la protección de ciclo corto de DHCP
- Terminación de la condición de bloqueo
- Beneficios de usar la protección de ciclo corto DHCP
Condiciones que pueden causar sesiones de cliente DHCP fallidas o de corta duración
Entre las condiciones que pueden provocar un error o una breve duración de la sesión de cliente se incluyen las siguientes:
Denegaciones de autenticación desde servidores AAA externos, como RADIUS o Diameter, debido a la ausencia de una entrada correspondiente en la base de datos de RADIUS o debido a intentos de inicio de sesión incorrectos.
Inaccesibilidad del enrutador o del servidor de autenticación externo debido a un fallo de la red o a una mala configuración.
Recursos de memoria insuficientes para crear una interfaz de suscriptor dinámica.
Errores en la negociación de protocolos con el CPE.
El cliente cierra la sesión 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 desactive la sesión.
Cómo funciona la protección de ciclo corto de DHCP
La protección de ciclo corto de DHCP está deshabilitada 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 conocidas como eventos de ciclo corto, y bloquea el cliente en función de los siguientes eventos:
E0: Hora a 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 demolida.
E2: Hora a la que jdhcpd elimina la entrada de sesión de cliente de la base de datos.
Un evento de ciclo corto ocurre 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 deja caer los paquetes de negociación (mensajes de detección y solicitud de DHCP) 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 rango para el período de bloqueo especificando una longitud mínima y máxima con la
short-cycle-protectioninstrucció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 de bloqueo máximo si ese valor es mayor que 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 aumenta 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 sanciones posteriores aumentan a 2 segundos, luego a 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, ya que 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 se bloquea un cliente DHCP, la condición de bloqueo persiste hasta que expiran todos los temporizadores de bloqueo, excepto cuando ocurre cualquiera de las siguientes situaciones:
La condición de bloqueo se borra administrativamente mediante la emisión de uno de los siguientes comandos operativos:
clear dhcp relay lockout-entriesclear dhcp server lockout-entriesclear dhcpv6 relay lockout-entriesclear dhcpv6 server lockout-entries
Restablezca la FPC en la que está configurada la sesión de cliente que se está bloqueando.
Restablecerá el motor de enrutamiento.
Cuando se produce cualquiera de estos eventos, jdhcpd finaliza el bloqueo y borra el historial de bloqueos de todas las sesiones de cliente afectadas. A los clientes liberados se les permite negociar nuevamente. Dado que no hay ningún 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 elimina una interfaz lógica de VLAN dinámica o VLAN demux de una interfaz física subyacente configurada con remove-when-no-subscribers, el bloqueo de los clientes afectados persiste hasta que expiran todos los temporizadores. 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.
Beneficios 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 los clientes con sesiones de cliente fallidas o de corta duración en favor de sesiones que pueden completarse correctamente y durar más de un corto período de tiempo.
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 sola 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 puede bloquear solo el cliente DHCP infractor y, a la vez, permitir que otros clientes DHCP de la misma interfaz negocien correctamente la conexión.
Configurar la protección de ciclo corto de DHCP
En redes de alta escala, un número significativo de negociaciones de cliente DHCP fallan antes de que se establezca la sesión, lo que da como resultado una alta carga en el enrutador y los servidores de autenticación externos. Puede habilitar la protección de ciclo corto de 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 a los clientes y descartar las solicitudes posteriores de estos clientes hasta que expire un temporizador de bloqueo. Para los clientes que inician sesión con frecuencia y brevemente, el tiempo de bloqueo inicial es lo suficientemente corto como para no tener un impacto perceptible. A medida que continúan estos breves inicios de sesión, 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 de agente de retransmisión o servidor local, para un grupo de interfaces o para interfaces específicas dentro de un grupo. Para el relé DHCPv4 y el servidor local, también puede configurar el bloqueo para un grupo de doble pila.
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ínimo y máximo.
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ínimo y máximo.
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ínimo y máximo.
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 dos pilas de 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ínimo y máximo.
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>
Verificar y administrar la protección de ciclo corto de DHCP
Propósito
Vea u borre información sobre las operaciones de protección de ciclo corto de DHCP.
Utilice los comandos y clear admitidos show 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 retransmisión 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 retransmisión 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 de cliente, el estado del bloqueo, cuántos segundos faltan para que finalice el estado actual, cuánto tiempo ha estado en vigor, y cuántas veces consecutivas se ha bloqueado al cliente.
Cuando desee eliminar 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 de 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 el agente de retransmisión DHCPv4 para buscar el número de índice de un cliente determinado y, a continuación, borrar solo esa entrada y comprobar 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 de la función depende de la plataforma y la versión que utilice. Utilice el Explorador de características para determinar si una característica es compatible con su plataforma.