Recientemente, la utilización de la CPU del motor de enrutamiento en dos de nuestros enrutadores de emparejamiento Juniper aumentó de ~ 10-20% de carga promedio a 80 +%. Estoy tratando de averiguar qué está causando esto (y cómo volver a bajar esta carga alta).
Alguna información sobre los enrutadores: ambos ejecutan la misma versión de JunOS, ambos están conectados a las mismas dos LAN IXP pares y tienen una gran cantidad (varios cientos) de sesiones (casi idénticas) de IPv4 e IPv6. Ambos enrutadores tienen una conexión a un proveedor de tránsito IP diferente y están conectados de la misma manera al resto de nuestra red. La carga de CPU de los motores de enrutamiento no es plana en más del 80%, hay descensos a niveles normales de minutos a horas, pero estos descensos no son tan frecuentes.
Cosas que he comprobado:
- no se han realizado cambios de configuración en el momento en que comenzó el aumento
- no hay aumento en el tráfico no unidifusión dirigido al plano de control
- no hay un cambio (sustancial) en la cantidad de tráfico que se reenvía (aunque incluso un aumento no debería importar)
show system processes summary
indica que elrpd
proceso está causando una alta carga de CPU- no hay pares de BGP que agiten rápidamente causando una gran cantidad de cambios de BGP
Una posible explicación que se me ocurre es un par (o más de uno) en uno de los dos enrutadores del IXP conectados para enviar una gran cantidad de actualizaciones de BGP. Actualmente solo tengo estadísticas sobre la cantidad de mensajes BGP para mis sesiones de tránsito (que no muestran actividad anormal) y con varios cientos de sesiones BGP en las LAN de interconexión no es tan fácil detectar las sesiones problemáticas si debo crear gráficos para todas las sesiones
Mis preguntas son:
- ¿Hay alguna otra cosa que deba verificar para encontrar la causa de este aumento en la carga de la CPU en los motores de enrutamiento?
- ¿Cómo puedo averiguar fácilmente qué sesiones están causando estos problemas (si mi suposición es correcta)? Habilitar las opciones de rastreo BGP genera grandes cantidades de datos, pero no estoy seguro de si me da alguna idea real.
Sé que este hilo es viejo, pero por completo:
Si la CPU alta ocurre aleatoriamente y no puede determinar el proceso que causa esto, podemos crear el script a continuación.
Con este script vamos a capturar el proceso extensivo cuando un proceso eleva más del umbral normal o esperado, esto no debería interrumpir el tráfico, pero aún se recomienda un MW. Sin embargo, veo que lo has reducido a RPD.
PANTALLA CONFIGURAR SALIDA>
¿También ha verificado si se han reportado mensajes ddos? Puede ejecutar los siguientes comandos:
Luego, dependiendo de lo que vea, puede reducirse, por ejemplo:
Juniper también tiene una lista de colección para este tipo de problemas bajo KB22637
Comandos altos de CPU CLI
Active la contabilidad de tareas y recopile la salida de detalles de contabilidad de tareas (tres veces con un espacio de 30 segundos). No olvide apagarlo después de terminar.
Registros
Archive / var / log como se especifica en el Paso 1 anterior Traceoptions
Además, si está ejecutando una versión anterior que era propensa a errores, puede consultar el soporte vital del código:
http://www.juniper.net/support/eol/junos.html
Otro punto a mencionar que podría ser un ataque vectorial es no haber protegido su RE del tráfico de excepciones no deseadas. Asegúrese de tener un filtro de firewall debajo del loopback.
He visto en los scripts anteriores en el enrutador que causaba una alta CPU, no estoy seguro de si rpd entró en mi punto de vista, pero esto es algo que es posible que no desee pasar por alto.
Si ve en los registros muchos éxitos con RPD_MPLS_PATH_BANDWIDTH_CHANGE, podría estar utilizando un intervalo de ajuste muy agresivo
Verifique cualquier caída en "mostrar la cola del sistema: esta es la cola del núcleo, puede aparecer alguna pista.
fuente