Hohe On-Chip-Deskriptor- und Paketpufferauslastung aufgrund policy von Verweigerung, was zu Datenverkehrslatenz und -stürzen führt

Hohe On-Chip-Deskriptor- und Paketpufferauslastung aufgrund policy von Verweigerung, was zu Datenverkehrslatenz und -stürzen führt

108991
Created On 11/23/20 10:43 AM - Last Modified 06/24/22 21:22 PM


Symptom


  • Latenz/Langsamkeit beobachtet, in einigen Fällen Paketverlust für Datenverkehr durch die Firewall .
  • In der Regel bleibt die DataPlane ( DP ) Nutzung innerhalb des CPU erwarteten Bereichs und keine große Abweichung vom üblichen oder "Arbeitszustand".
  • Spike in flow_policy_deny globalen Zählern.
  • Die oberste Sitzung in Show Running Resource-Monitor Ingress-Backlogs hat grp id 2 oder grp id 16
Beispiel:
> show running resource-monitor ingress-backlogs 
<snip>
-- SLOT: s1, DP: dp0 --
USAGE - ATOMIC: 88% TOTAL: 89%

TOP SESSIONS:
SESS-ID         PCT     GRP-ID  COUNT
2022536315      88%     16      3640

<snip>
 
  • Show-Session-ID zeigt"Bad Key", und sein Verbrauch nimmt eine Mehrheit % des On-Chip.
Beispiel:
> show session id 2022536315

Session      2022536315

            Bad Key: c2s: 'c2s'
            Bad Key: s2c: 's2c'
        index(local):                        : 9270395

  • Spike in On-Chip-Paketdeskriptor und Paketpuffer-Nutzung, Beispiel (aus einer Live-Debug-Ausgabe):
> show running resource-monitor second last 5

DP s1dp0:

Resource monitoring sampling data (per second):

CPU load sampling by group:
flow_lookup                    :     3%
flow_fastpath                  :     3%
flow_slowpath                  :     3%
flow_forwarding                :     3%
flow_mgmt                      :     0%
flow_ctrl                      :     3%
nac_result                     :     3%
flow_np                        :     3%
dfa_result                     :     3%
module_internal                :     3%
aho_result                     :     3%
zip_result                     :     3%
pktlog_forwarding              :     9%
lwm                            :     0%
flow_host                      :     3%

CPU load (%) during last 5 seconds:
core   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
       *   0   3   2   2   3   3   3   4   4   2   3   2   3   3   2
       *   0   3   2   2   3   3   3   3   4   2   3   2   3   3   2
       *   0   3   3   2   4   4   3   3   3   2   2   2   3   3   3
       *   0   3   2   2   3   4   3   3   3   2   3   2   3   4   2
       *   0   3   3   2   3   3   3   3   3   2   2   2   3   4   2
core  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31
       2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3
       2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3
       2   3   2   2   2   3   3   3   2   4   3   3   2   3   3   2
       2   3   2   2   2   3   2   3   2   3   3   3   2   3   3   3
       2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3
core  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47
       3   2   2   2   2   2   3   2   2   2   2   2   3   2   4   9
       3   2   2   2   2   2   2   2   2   2   2   2   3   2   4   9
       3   2   2   3   2   2   2   2   2   2   2   2   3   2   4   9
       3   2   2   2   3   2   2   2   2   2   2   2   3   2   4   9
       3   2   3   2   2   2   3   2   2   2   2   2   3   2   4   9

Resource utilization (%) during last 5 seconds:
session:
  0   0   0   0   0 
packet buffer:
 14  13  13  13  12 
packet descriptor:
  0   0   0   0   0 
packet descriptor (on-chip):
100 100 100 100 100
<snip>

 


Environment


  • PAN-OS
  • Schutzzone
  • DOS der Schutz


Cause


NOTE:
Hohe On-Chip-Deskriptor- und Paketpuffernutzung kann unter verschiedenen Bedingungen auftreten.
Dieser Artikel behandelt einen speziellen Fall von Slowpath-Verweigerung, der zu policy hohen On-Chip-Deskriptoren und Paketpuffern führt.

Hinweis: Eine weitere Ursache für On-Chip-Deskriptor-Spike wird in Packet Buffer und Descriptor on-Chip Spiking aufgrund von WildFire Uploadsdiskutiert
Bitte beachten
Sie, dass dieser Artikel nur gilt, wenn die folgenden Bedingungen erfüllt sind:

1.  Die oberste Sitzung in show running resource-monitor ingress-backlogs has grp id 2 oder grp id 16
Weitere Informationen zu grp id 2 und grp id 16 in "Zusätzliche Informationen"

Beispiel:
> show running resource-monitor ingress-backlogs 
<snip>
-- SLOT: s1, DP: dp0 --
USAGE - ATOMIC: 88% TOTAL: 89%

TOP SESSIONS:
SESS-ID         PCT     GRP-ID  COUNT
2022536315      88%     16      3640

<snip>

2. Es gibt Spike in flow_policy_deny globalen Zählern.
3. Show <id> </id> Session-ID der Sitzung aus Ingress-Backlogs erhalten, zeigt "Bad Key"
Beispiel:
> show session id 2022536315

Session      2022536315

            Bad Key: c2s: 'c2s'
            Bad Key: s2c: 's2c'
        index(local):                        : 9270395
Hinweis: In den meisten Fällen ist es die gleiche 6 Tuples UDP Syslog-Verkehr, die das Problem verursacht.
UDP syslog-Verkehr ist in der Regel hohe Lautstärke und verwendet den gleichen Quell-Port (Socket).


4. Der verweigerte Datenverkehr hat die gleichen 6 Tupeln (Quelle/Ziel, IP Quell-/Zielport, Protokoll (L3-Header), Eingangszone).

Wann/Warum policy verursacht Deny die Verwendung von Spike/High On-Chip-Deskriptoren?
  • Wenn ein eingehendes Paket nicht mit einer vorhandenen Sitzung übereinstimmt, unterliegt es slowpath.
  • Wenn das Paket mit einem Deny policy in Slowpath übereinstimmt (wenn die Sitzungsprotokollierung aktiviert ist), wird das Paket verworfen und ein Datenverkehrsprotokolleintrag erstellt, aber eine Sitzung wird nicht installiert.
  • Das nächste Paket mit den gleichen 6 Tupeln würde denselben Pfad wie das vorherige Paket durchlaufen.
  • Slowpathkann, wie der Name schon sagt, eine größere Anzahl von Verarbeitungszyklen in Anspruch nehmen, da in diesem Schritt alle Aufgaben im Zusammenhang mit dem Einrichten einer Sitzung ausgeführt werden.
  • Die Zeit, die zum Abschließen des Slowpaths erforderlich ist, hängt von der Firewall Konfiguration und dem Datenverkehrsmuster ab.
  • Wenn z. B. eine große Anzahl von Sicherheits- oder Nat-Richtlinien vorhanden ist, wäre die Zeit, die für den Abschluss des Slowpaths aufgedauert wird, höher.
  • Alle Pakete mit den gleichen 6 Tupeln werden ATOMIC der seriellen Paketverarbeitung in der eingehenden Reihenfolge (einmaliger) unterzogen.
  • Da diese Pakete seriell verarbeitet werden müssen, können sie nicht zur parallelen Verarbeitung an verschiedene Kerne oder Threads gesendet werden.
  • Da die Pakete darauf warten, von der verarbeitet zu DP CPU werden, kann es je nach der Eingangsrate der Pakete und der Zeit, die zum Abschließen des Slowpaths für jedes Paket verwendet wird, zu einer Anhäufung von Paketen kommen.
  • Wenn es eine signifikante Rate/Menge von solchen 6 Tupeln Verkehr trifft die Firewall , wird auf Slowpath verweigert, die On-Chip-Deskriptoren und schließlich die Paketpuffer können gefüllt werden.
  • An diesem Punkt würden Sie beginnen, Verkehrsprobleme zu sehen.
Weitere Informationen finden Sie im Abschnitt "Zusätzliche Informationen".


Resolution


NOTE
  • Nachdem Sie festgestellt haben, dass die policy Verweigerung deutlich höher oder höher als üblich ist, besteht der nächste Schritt darin, die Quelle dieses Datenverkehrs zu identifizieren.
  • Wenn "Log at session-end" für die Verweigerung des Datenverkehrs aktiviert policy ist, kann der "beleidigende" Datenverkehr gefunden werden, indem die Datenverkehrsprotokolle nach policy -deny gefiltert werden.
Hinweis: In den meisten Fällen ist es die gleiche 6 Tuples UDP Syslog-Verkehr, die das Problem verursacht.
UDP syslog-Verkehr ist in der Regel hohe Lautstärke und verwendet den gleichen Quell-Port (Socket).

Milderung

1.
Sobald die Quelle des verweigerten Datenverkehrs identifiziert wurde, überprüfen Sie, ob es möglich ist, diesen Datenverkehr an der Quelle oder näher an der Quelle zu stoppen.
Beispiel: Wenn ein Gerät Syslog-Nachrichten an ein bestimmtes Ziel überflutt, können Sie das Syslog-Serverziel von diesem Gerät entfernen, um die Überflutung zu stoppen.

2. Zulassen von Datenverkehr mit Sicherheitsrichtlinien
  • Bevor wir in Minderungstechniken einsteigen, sollten wir sicherstellen, dass der Datenverkehr, der zugelassen werden soll, tatsächlich durch Sicherheitsrichtlinien zugelassen wird.
  • Wenn der Datenverkehr zugelassen werden muss, erstellen Sie die erforderliche Sicherheit policy . Sobald der Datenverkehr zugelassen ist, wird eine Sitzung installiert, und der Datenverkehr unterliegt nicht dem langsamen Pfad.
  • Wenn das Datenverkehrsmuster im Netzwerk nicht bekannt ist, kann eine Sicherheit policy erstellt werden, um Datenverkehr mit hohem Volumen wie syslog aus internen/vertrauenswürdigen Zonen zuzulassen (nach Bedarf Sicherheitsprofile anwenden).
3. Schutz vor bekannten Straftätern (DoS policy )
  • Wenn genaue IPs der Hosts, die das Problem verursachen, bekannt sind, hilft das Erstellen eines DoS policy mit der Aktion "Verweigern".
  • DoS-Regeln policy sind spezifisch (Quell-/Zielzone, IP-Nachrichten, Dienstport) und können ähnliche Sicherheit policy durch Aktionsverweigerung ersetzen.
  • Da DoS-Richtlinien vor der Sicherheitssuche ausgewertet werden policy und keine große Anzahl von Einträgen enthalten, werden Pakete früher blockiert, wodurch Ressourcen gespart firewall werden.
4. Schutz vor unbekannten Tätern (DoS policy )
  • Erstellen eines DoS, das mit der Aktion "Schützen" klassifiziert ist policy
  • A klassifiziert DoS kann mit der policy Aktion "Protect" und der Adresse angewendet werden, die auf "source-ip only" oder "src-dest-ip-both" abgestimmt ist.
Benutzeriertes Bild
Hinweis: Konfigurierte Schwellenwerte sind nur Beispiele, diese müssen basierend auf der Kundenumgebung optimiert werden.

Benutzeriertes Bild
  • Sobald der konfigurierte Schwellenwert erreicht ist, würde das DoS policy eine DoS ip-Block-Tabelle erstellen, die mit dem Ablegen von Paketen beginnt, ohne einem Slowpath enthont zu werden.
  • Bei Geräten mit einem Abladeprozessor würde die Blocktabelle in der Offload installiert, hardware um die Last auf dem weiter zu DP CPU reduzieren.
  • Weitere Informationen finden Sie unter : Monitor-Blockliste und DoS-Schutzprofile und Policy -regeln
Einschränkung:
  • Schwellenwerte für das klassifizierte DoS-Objekt würden sich basierend auf dem Kundenverkehrsmuster und dem Netzwerk ändern, die Standardwerte sind möglicherweise nicht für alle Umgebungen anwendbar.
  • Bei Slowpath-Deny-Angriffen würde nur "source-ip only" oder "src-dest-ip-both" funktionieren, die Verwendung von "destination-ip only" hilft nicht.
  • Für Internet-Zonen, da Quell-IP-Anbieter potenziell riesig sein könnten, hat die firewall nicht die Kapazität, Zähler für jede mögliche Adresse im Internet zu IP speichern.
  • Refer: Klassifizierte vs Aggregate DoS-Profile
5. Paketpufferschutz ( PBP )
  • Packet Buffer Protection ( ) ist eine Funktion, die PBP ab PAN-OS 8.0 verfügbar ist.
  • PBP wird bevorzugt, da es automatisch ist und basierend auf der tatsächlichen Ressourcenauslastung ausgelöst wird, im Vergleich zu DoS, policy das bei vorkonfigurierten Verbindungen pro Sekunde ausgelöst wird
  • PBP schützt sowohl den firewall Slowpath- als auch den Fastpath-Puffer (vorhandene Sitzung).
  • Firewall überwacht Pufferabusers automatisch.
  • Nach Erreichen des konfigurierten Aktivierungsschwellenwerts (Standard 50%) beginnt der firewall Start, den beleidigenden Datenverkehr fallen zu lassen ( RED ).
  • Wenn die Pufferauslastung über 80 % liegt (dieser Schwellenwert ist intern hartcodiert und nicht konfigurierbar), wird für eine Sperrdauer ein Dos-Blocktabelleneintrag erstellt.
  • Siehe: Paketpufferschutz
In diesem speziellen Fall von Slowpath-Verweigerung in der Regel eine Kombination von PBP + DoS policy mit der Aktion "Schützen" klassifiziert bietet bessere Ergebnisse.

Überwachung:

SNMP kann unter anderem zur Überwachung der Pufferauslastung genutzt werden. DP Ressourcen sind Teil von HOST-RESOURCES-MIB . Weitere Informationen finden Sie hier:
SNMP für Monitoring Palo Alto Networks Devices
snmp-mibs

Liste der nützlichen OIDs:
1. Beschreibung - .1.3.6.1.2.1.25.2.3.1.3.xxxx
Beispiel:
.1.3.6.1.2.1.25.2.3.1.3.1011 = STRING : "Slot-1 Data Processor-0 Hardware Packet Buffers"
.1.3.6.1.2.1.25.2.3.1.3.1111 = STRING : "Slot-1 Data Processor-1 Hardware Packet Buffers"

2. Hardware Paketpuffer-Poolgröße - .1.3.6.1.2.1.25.2.3.1.5.xxxx
Beispiel:
.1.3.6.1.2.1.25.2.3.1.1.1011 = INTEGER :
17203 .1.3.6.1.2.1.25.2.3.1.5.1111 = INTEGER : 17203

3. Aktuelle Pufferauslastung - .1.3.6.1.2.1.25.2.3.1.6.xxxx
Beispiel:
.1.3.6.1.2.1.25.2.3.1.6.1011 = INTEGER : 122
.1.3.6.1.2.1.25.2.3.1.6.1111 = INTEGER : 128
 

DoS-bezogene Zähler über SNMP (Teil von PAN-COMMON-MIB ):
 

MIB IdentitätZähler BeschreibungOID
panFlowPolicyDenyflow_policy_denySitzungseinrichtung: verweigert von policy.1.3.6.1.4.1.25461.2.1.2.1.19.8.10
panFlowDosBlkNumEinträgeflow_dos_blk_num_entriesAnzahl der Einträge in DOS der Blocktabelle.1.3.6.1.4.1.25461.2.1.2.1.19.8.2
 
panFlowDosBlkSwEinträgeflow_dos_blk_sw_entriesAnzahl der Einträge in der DOS Softwareblocktabelle.1.3.6.1.4.1.25461.2.1.2.1.19.8.33
panFlowDosBlkHwEntriesflow_dos_blk_hw_entriesAnzahl der Einträge in DOS Hardware der Blocktabelle.1.3.6.1.4.1.25461.2.1.2.1.19.8.34
panFlowDosDropIpBlockedflow_dos_drop_ip_blockedVerworfene Pakete: Gekennzeichnet für Blockierung und Blockdauer durch DoS oder andere Module.1.3.6.1.4.1.25461.2.1.2.1.19.8.13
panFlowDosRuleDropflow_dos_rule_dropVerworfene Pakete: Rate begrenzt oder IP blockiert.1.3.6.1.4.1.25461.2.1.2.1.19.8.23


 


Additional Information


Weitere Informationen zum Befehl finden Sie unter Detaillierte Informationen zum Befehl " Show running CLI resource-monitor ingress-backlogs".

Warum sehen wir 'Bad Key' beim Ausführen der Show-Session-ID <id> </id> der Sitzung, die aus Ingress-Backlogs erhalten wurde?
Da die Sitzung zu diesem Zeitpunkt noch SESS-ID nicht installiert ist, ist der Wert unter ein interner tag Wert und nicht die tatsächliche Sitzungs-ID.
In diesem speziellen Fall von Slowpath-Verweigerung SESS-ID ist der Wert viel höher als der Sitzungsindexbereich, wenn Sie sich den Wert unter sorgfältig ansehen. (Was für sich genommen ein Hinweis ist. dass es nota Session ID ist)
Wenn Sie also die Show-Sitzungs-ID verwenden, <idx> da der Wert keine tatsächliche Sitzungs-ID ist, sehen Sie 'Bad Key'.

Warum benötigen wir ATOMIC eine serielle Paketverarbeitung (on-at-a-time)?</idx>

  • Jede Paketverarbeitungsphase hat unterschiedliche Anforderungen, ob sie einer seriellen Paketverarbeitung (einmal in der eingehenden Reihenfolge) oder der parallelen Paketverarbeitung für ein bestimmtes 6 Tupel/Sitzung unterzogen werden soll.
  • Das Ziel der seriellen Paketverarbeitung besteht darin, zu vermeiden, dass mehrere Kerne/Threads denselben Vorgang ausführen oder auf dieselben Daten zugreifen/schreiben.
  • Wenn wir z. B. einen neuen Datenverkehr erhalten, der zur gleichen Sitzung gehören sollte, möchten wir nicht, dass mehrere Kerne/Threads die Sitzungsinstallation durchführen, daher verarbeiten wir die Pakete nicht parallel, sondern unterwerfen sie der seriellen Verarbeitung.
Warum ist die DP CPU niedrige, aber die On-Chip-Deskriptor und Paketpuffer-Nutzung ist hoch?
  • Wie bereits erläutert, da die gleichen 6 Tupeln den Datenverkehr einer seriellen Verarbeitung unterziehen, ist es möglich, dass die meisten Kerne nur auf die Verarbeitung von Arbeit/Paketen warten.
  • Daher wäre die CPU Nutzung gering, aber der Paketpuffer und die On-Chip-Deskriptorressourcen könnten sich füllen.
Wann würden ausgeführte Ressourcen-Monitor-Ingress-Backlogs grp id 2 anzeigen und wann würde es grp id 16anzeigen?
  • Jeder Gruppe viz. flow_fastpath, flow_slowpath usw. wird eine Gruppen-ID (grp-ID) zugewiesen.
  • grp id 2 und 16 stehen beide für slowpath/ flow_slowpath
  • Bei älteren hardware Modellen (Z.B.: PA-3000 PA-5000 etc.) und bei PA-7000 serienalten älteren NPC Modellen würden Sie grp id 2 sehen
  • Bei neueren hardware Modellen (Z.B.: PA-5200 ) und bei PA-3200 PA-7000 NPC Serien-Neuerer Modellen sehen Sie grp id 16

 


Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA14u000000HBjNCAW&lang=de&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language