Kürzlich hat sich die CPU-Auslastung der Routing-Engine auf zwei unserer Juniper-Peering-Router von ~ 10-20% Durchschnittslast auf über 80% erhöht. Ich versuche herauszufinden, was das verursacht (und wie man diese hohe Last wieder runterholt).
Einige Informationen zu den Routern: Beide verwenden dieselbe JunOS-Version, sind mit denselben zwei IXP-Peering-LANs verbunden und haben eine große Anzahl (mehrere Hundert) von (fast identischen) IPv4- und IPv6-Sitzungen. Beide Router haben eine Verbindung zu einem anderen IP-Transitanbieter und sind auf die gleiche Weise mit dem Rest unseres Netzwerks verbunden. Die CPU-Auslastung der Routing-Engines ist bei über 80% nicht gleichbleibend. Minuten bis Stunden lang sind die Werte wieder auf den Normalwert gesunken, aber diese Werte sind selten.
Dinge, die ich überprüft habe:
- Zum Zeitpunkt des Starts der Erhöhung wurden keine Konfigurationsänderungen vorgenommen
- Es gibt keine Zunahme des Nicht-Unicast-Verkehrs, der auf die Steuerebene gerichtet ist
- Es gibt keine (wesentlichen) Änderungen in der Menge des weitergeleiteten Datenverkehrs (auch wenn eine Erhöhung keine Rolle spielen sollte).
show system processes summary
Gibt an, dass derrpd
Prozess die hohe CPU-Auslastung verursacht- Es gibt keine schnell flatternden BGP-Peers, die eine große Menge an BGP-Änderungen verursachen
Eine mögliche Erklärung, die ich finden kann, ist ein Peer (oder mehrere) auf einem der beiden Router des IXP, die zum Senden einer großen Anzahl von BGP-Updates verbunden sind. Momentan habe ich nur Statistiken über die Anzahl der BGP-Nachrichten für meine Transitsitzungen (ohne abnormale Aktivität) und bei mehreren Hundert BGP-Sitzungen in Peering-LANs ist es nicht so einfach, die problematischen Sitzungen zu erkennen, wenn ich Diagramme erstellen sollte alle Sitzungen.
Meine Fragen sind:
- Gibt es andere Dinge, die ich überprüfen sollte, um die Ursache für diesen Anstieg der CPU-Auslastung auf den Routing-Engines zu finden?
- Wie kann ich leicht herausfinden, welche Sitzungen diese Probleme verursachen (wenn meine Annahme richtig ist)? Wenn Sie die BGP-Trace-Optionen aktivieren, werden große Datenmengen generiert, aber ich bin mir nicht sicher, ob sie mir echte Erkenntnisse liefern.
Ich weiß, dass dieser Thread alt ist, aber der Vollständigkeit halber:
Wenn die hohe CPU zufällig auftritt und Sie nicht in der Lage sind, den Prozess zu bestimmen, der dies verursacht, können wir das folgende Skript erstellen.
Mit diesem Skript werden wir den Prozess umfassend erfassen, wenn ein Prozess mehr als den normalen oder erwarteten Schwellenwert ansteigt. Dies sollte keinen Datenverkehr stören, es wird jedoch weiterhin empfohlen, eine MW zu erstellen. Ich sehe jedoch, dass Sie es auf RPD eingegrenzt haben.
DISPLAY SET OUTPUT>
Haben Sie auch überprüft, ob ddos-Nachrichten gemeldet wurden? Sie können die folgenden Befehle ausführen:
Dann kann je nachdem, was Sie sehen, zum Beispiel eingegrenzt werden:
Juniper hat auch eine Sammelliste für diese Art von Problemen unter KB22637
Hohe CPU- CLI-Befehle
Aktivieren Sie die Aufgabenabrechnung, und erfassen Sie die Detailausgabe der Aufgabenabrechnung (dreimal mit einem Abstand von 30 Sekunden). Vergessen Sie nicht, es auszuschalten, nachdem Sie fertig sind.
Protokolle
Archivieren Sie / var / log wie in Schritt 1 oben angegeben
Auch wenn Sie eine alte Version verwenden, die für Fehler anfällig war, sollten Sie die Lebenserhaltung des Codes überprüfen:
http://www.juniper.net/support/eol/junos.html
Ein weiterer zu erwähnender Punkt, bei dem es sich um einen Vektorangriff handeln könnte, ist, dass Ihr RE nicht vor unerwünschtem Ausnahmeverkehr geschützt wurde. Stellen Sie sicher, dass sich unter dem Loopback ein Firewall-Filter befindet.
Ich habe in der Vergangenheit gesehen, dass Skripte auf dem Router eine hohe CPU-Auslastung verursachen. Ich bin mir nicht sicher, ob RPD in meine Sicht kam, aber dies ist etwas, das Sie vielleicht nicht übersehen möchten.
Wenn Sie in den Protokollen viele Treffer mit RPD_MPLS_PATH_BANDWIDTH_CHANGE sehen, verwenden Sie möglicherweise ein sehr aggressives Anpassungsintervall
Überprüfen Sie alle Dropdowns auf "Systemwarteschlange anzeigen": Dies ist die Kernelwarteschlange. Möglicherweise wird ein Hinweis angezeigt.
quelle