Kontrolle des Netzwerkzugriffs mithilfe von Traffic Policing – Übersicht
Überlastungsmanagement für IP-Datenverkehrsströme
Traffic Policing, auch bekannt als Rate Limiting, ist eine wesentliche Komponente der Netzwerkzugriffssicherheit, die darauf ausgelegt ist, Denial-of-Service-Angriffe (DoS) zu vereiteln. Mit Traffic Policing können Sie die maximale Geschwindigkeit des über eine Schnittstelle gesendeten oder empfangenen IP-Datenverkehrs steuern und den Netzwerkdatenverkehr in mehrere Prioritätsstufen, auch bekannt als Classes of Service, partitionieren. Ein Policer definiert eine Reihe von Grenzwerten für die Datenverkehrsgeschwindigkeit und setzt Konsequenzen für den Datenverkehr, der nicht mit den konfigurierten Grenzwerten übereinstimmt. Pakete in einem Datenverkehrsfluss, die nicht den Datenverkehrsgrenzen entsprechen, werden entweder verworfen oder mit einer anderen Weiterleitungsklasse oder Paketverlustspriorität (PLP)-Ebene markiert.
Mit Ausnahme von Policern, die so konfiguriert sind, den aggregierten Datenverkehr zu begrenzen (alle Protokollfamilien und logischen Schnittstellen, die auf einer physischen Schnittstelle konfiguriert sind), können Sie einen Policer auf alle IP-Pakete in einem Layer-2- oder Layer-3-Datenverkehrsfluss an einer logischen Schnittstelle anwenden.
Mit Ausnahme von Policern, die eine Geschwindigkeitsbegrenzung basierend auf der Medienrate der physischen Schnittstelle konfiguriert haben, können Sie mithilfe eines zustandslosen Firewall-Filters einen Policer auf bestimmte IP-Pakete in einem Layer-3-Datenverkehrsfluss an einer logischen Schnittstelle anwenden.
Sie können einen Policer auf eingehenden oder ausgehenden Schnittstellenverkehr anwenden. Policer, die auf eingehenden Datenverkehr angewendet werden, tragen dazu bei, Ressourcen zu sparen, indem sie Datenverkehr, der nicht durch ein Netzwerk geleitet werden muss, fallen lassen. Das Herunterfallen des eingehenden Datenverkehrs hilft auch, Denial-of-Service -Angriffe (DoS) zu verhindern. Auf ausgehenden Datenverkehr angewendete Policer kontrollieren die genutzte Bandbreite.
Verkehrspolizatoren werden auf PIC-Basis instanziiert. Die Überwachung des Datenverkehrs funktioniert nicht, wenn der Datenverkehr für eine lokale Richtlinienentscheidungsfunktion (L-PDF) über mehrere Multiservices-PICs in einer AMS-Gruppe verteilt wird.
Datenverkehrsbeschränkungen
Junos OS-Policer verwenden einen Token-Bucket-Algorithmus , um eine Begrenzung der durchschnittlichen Übertragungs- oder Empfangsrate des Datenverkehrs an einer Schnittstelle durchzusetzen, während gleichzeitig Datenverkehrsausbrüche bis zu einem maximalen Wert basierend auf dem konfigurierten Bandbreitenlimit und der konfigurierten Burst-Größe möglich sind. Der Token-Bucket-Algorithmus bietet mehr Flexibilität als ein leckiger Bucket-Algorithmus , da Sie einen bestimmten Datenverkehrs-Burst zulassen können, bevor Sie beginnen, Pakete zu verwerfen oder eine Strafe wie Paketausgangswarteschlangenpriorität oder Packet-Drop-Priorität zu verwerfen.
Im Token-Bucket-Modell stellt der Bucket die Geschwindigkeitsbegrenzungsfunktion des Policers dar. Token werden dem Bucket mit einer festen Rate hinzugefügt, aber sobald die angegebene Tiefe des Eimers erreicht ist, können token, die danach zugewiesen werden, nicht gespeichert und verwendet werden. Jedes Token stellt eine "Gutschrift" für einige Bits dar, und Token im Eimer werden für die Fähigkeit, Datenverkehr an der Schnittstelle zu senden oder zu empfangen, "eingelöst". Wenn genügend Token im Bucket vorhanden sind, setzt sich der Datenverkehr uneingeschränkt fort. Andernfalls können Pakete mit einer niedrigeren Weiterleitungsklasse, einer höheren Paketverlustpriorität (PLP) oder beidem abgelegt oder neu markiert werden.
Die Rate, mit der Token zum Bucket hinzugefügt werden, stellt die höchste durchschnittliche Übertragungs- oder Empfangsrate in Bits pro Sekunde dar, die für ein bestimmtes Servicelevel zulässig ist. Sie geben diese höchste durchschnittliche Datenverkehrsrate als Bandbreitengrenze für den Policer an. Wenn die Datenverkehrsankunftsrate (oder feste Bits pro Sekunde) so hoch ist, dass irgendwann nicht genügend Token im Eimer vorhanden sind, dann entspricht der Datenverkehrsfluss nicht mehr dem Datenverkehrslimit. In Zeiten relativ geringen Datenverkehrs (Datenverkehr, der mit durchschnittlichen Geschwindigkeiten unter der Token-Ankunftsrate ankommt oder von der Schnittstelle abfährt) sammeln sich ungenutzte Token im Eimer an.
Die Tiefe des Buckets in Bytes bestimmt die Menge der zulässigen Back-to-Back-Bursting. Sie geben diesen Faktor als Burst-Size-Limit des Policers an. Diese zweite Begrenzung wirkt sich auf die durchschnittliche Übertragungs- oder Empfangsrate aus, indem die Anzahl der in einem Übertragungs-Burst zulässigen Bytes für ein bestimmtes Zeitintervall begrenzt wird. Bursts, die die aktuelle Burst-Größengrenze überschreiten, werden unterbrochen, bis genügend Token verfügbar sind, um den Burst fortzufahren.
Abbildung 1: Netzwerkverkehr und Burst-RatenWie in der Abbildung oben dargestellt, ist ein UPC-Strichcode ein gutes Faksimile dafür, wie Datenverkehr in der Zeile aussieht. eine Schnittstelle sendet entweder (burstt bei voller Geschwindigkeit) oder nicht. Die schwarzen Linien stellen Perioden der Datenübertragung dar, und der Leerraum stellt Perioden der Stille dar, wenn sich der Token-Eimer auffüllen kann.
Je nach Art des verwendeten Policers können Pakete in einem kontrollierten Datenverkehrsfluss, der die definierten Grenzwerte überschreitet, implizit auf eine höhere PLP-Ebene festgelegt, einer konfigurierten Weiterleitungsklasse zugewiesen oder auf eine konfigurierte PLP-Ebene (oder beides) festgelegt oder einfach verworfen werden. Wenn Pakete auf Nachstromüberlastung stoßen, ist die Wahrscheinlichkeit, dass Pakete mit einer low
PLP-Ebene verworfen werden, geringer als solche mit einer medium-low
, oder medium-high
high
PLP-Ebene.
Farbmarkierung des Datenverkehrs
Basierend auf den konfigurierten Verkehrsgrenzen identifiziert ein Policer einen Verkehrsfluss als einer von zwei oder drei Kategorien, die den Farben einer Ampel ähneln, die zur Steuerung des Automobilverkehrs verwendet wird.
Single-Rate Zwei-Farben: Ein zweifarbiger Marking Policer (oder "Policer" bei unqualifizierter Verwendung misst den Datenverkehr und klassifiziert Pakete in zwei Kategorien von Paketverlustpriorität (PLP) gemäß einer konfigurierten Bandbreiten- und Burst-Größenbeschränkung. Sie können Pakete, die die Bandbreiten- und Burst-Größenbeschränkung überschreiten, auf irgendeine Weise markieren oder einfach verwerfen.
Ein Policer ist am nützlichsten für die Messung des Datenverkehrs auf Portebene (physische Schnittstelle).
Single-Rate Three-Color: Diese Art von Policer wird in RFC 2697, Einem Single Rate Three Color Marker, als Teil eines PHB-Klassifizierungssystems für Differenzierte Services (DiffServ) definiert. Diese Art von Policer misst den Datenverkehr basierend auf der konfigurierten Committed Information Rate (CIR), der Committed Burst-Größe (CBS) und der übermäßigen Burst-Größe (EBS). Der Datenverkehr wird als einer von drei Kategorien (grün, gelb oder rot) gekennzeichnet, je nach dem, ob die eingehenden Pakete unterhalb des CBS (grün), das CBS (gelb), aber nicht das EBS (rot) überschreiten oder das EBS (rot) überschreiten.
Ein Single-Rate-Policer mit drei Farben ist am nützlichsten, wenn ein Service nach Paketlänge und nicht nach Spitzengeschwindigkeit strukturiert ist.
Zwei Raten drei Farben: Diese Art von Policer wird in RFC 2698, A Two Rate Three Color Marker, als Teil eines garantierten Weiterleitungssystems (AF) pro Hopverhalten (PHB) für eine DiffServ-Umgebung (Differenzierte Services) definiert. Diese Art von Policer misst den Datenverkehr basierend auf dem konfigurierten CIR und der Spitzeninformationsrate (PIR) zusammen mit den zugehörigen Burstgrößen, dem CBS und peak burst size (PBS). Der Datenverkehr wird als einer von drei Kategorien (grün, gelb oder rot) gekennzeichnet, je nach dem, ob die eingehenden Pakete unterhalb des CIR (grün), den CIR (gelb), nicht aber die PIR (rot) überschreiten.
Ein zweistufiger, dreifarbiger Policer ist am nützlichsten, wenn ein Service nach Ankunftsraten und nicht unbedingt nach Paketlänge strukturiert ist.
Policer-Aktionen sind implizit oder explizit und variieren je nach Policer-Typ. Der Begriff Implizit bedeutet, dass Junos die Verlustpriorität automatisch zuweist. Tabelle 1 beschreibt die Aktionen der Polizei.
Polizeibeamter |
Kennzeichnung |
Implizite Aktion |
Konfigurierbare Aktion |
---|---|---|---|
Single-Rate- zweifarbig |
Grün (konform) |
Priorität mit geringem Verlust zuweisen |
Keine |
Rot (nichtkonformierend) |
Keine |
Priorität mit geringem oder hohem Verlust zuweisen, Weiterleitungsklasse zuweisen oder verwerfenAuf einigen Plattformen können Sie eine Priorität mit mittleren bis mittleren oder mittleren Verlusten zuweisen. |
|
Single-Rate drei Farben |
Grün (konform) |
Priorität mit geringem Verlust zuweisen |
Keine |
Gelb (über CIR und CBS) |
Priorität mit mittlerem bis hohem Verlust zuweisen |
Keine |
|
Rot (über dem EBS) |
Hohe Verlustpriorität zuweisen |
Verwerfen |
|
Zwei Raten drei Farben |
Grün (konform) |
Priorität mit geringem Verlust zuweisen |
Keine |
Gelb (über CIR und CBS) |
Priorität mit mittlerem bis hohem Verlust zuweisen |
Keine |
|
Rot (über PIR und PBS) |
Hohe Verlustpriorität zuweisen |
Verwerfen |
Forwarding-Klassen und PLP-Ebenen
Die Weiterleitungsklassenzuweisung eines Pakets und die PLP-Ebene werden von den CoS-Funktionen (Class of Service) von Junos OS verwendet. Die Junos OS CoS-Funktionen umfassen eine Reihe von Mechanismen, mit denen Sie differenzierte Services bereitstellen können, wenn die Bereitstellung des bestmöglichen Datenverkehrs nicht ausreicht. Für Router- (und Switch-)Schnittstellen, die IPv4-, IPv6- und MPLS-Datenverkehr übertragen, können Sie CoS-Funktionen so konfigurieren, dass sie einen einzigen Datenverkehrsstrom aufnehmen, der am Netzwerk-Edge eindringt, und unterschiedliche Servicelevel im gesamten Netzwerk bereitstellen – interne Weiterleitung und Planung (Warteschlangen) für die Ausgabe – basierend auf den Weiterleitungsklassenzuweisungen und PLP-Ebenen der einzelnen Pakete.
Weiterleitungsklassen- oder Verlustprioritätszuweisungen, die von einem Policer oder einem zustandslosen Firewall-Filter durchgeführt werden, überschreiben solche Zuweisungen, die am Eingangsbereich durch die CoS-Standard-IP-Rangklassifizierung an allen logischen Schnittstellen oder durch einen konfigurierten Verhaltensaggregat (BA), der explizit einer logischen Schnittstelle zugeordnet ist.
Basierend auf CoS-Konfigurationen werden Pakete einer bestimmten Weiterleitungsklasse durch eine bestimmte Ausgabewarteschlange übertragen, und jede Ausgabewarteschlange wird mit einem in einem Scheduler definierten Übertragungsservicelevel verknüpft.
Basierend auf anderen CoS-Konfigurationen werden Pakete mit höherer Verlustpriorität durch den Random Early Detection (RED)-Algorithmus mit höherer Wahrscheinlichkeit gelöscht, wenn Pakete in einer Ausgabewarteschlange auf Überlastung stoßen. Prioritätswerte für Paketverluste wirken sich auf die Planung eines Pakets aus, ohne die relative Reihenfolge des Pakets innerhalb des Datenverkehrsstroms zu beeinträchtigen.
Policer-Anwendung für Datenverkehr
Nachdem Sie einen Policer definiert und benannt haben, wird er als Vorlage gespeichert. Sie können später denselben Policer-Namen verwenden, um die gleiche Policer-Konfiguration jedes Mal anzugeben, wenn Sie ihn verwenden möchten. Dadurch entfällt die Notwendigkeit, dieselben Policer-Werte mehr als einmal zu definieren.
Sie können einen Policer auf zwei Arten auf einen Datenverkehrsfluss anwenden:
Sie können einen standardmäßigen, zustandslosen Firewall-Filter konfigurieren, der die
policer policer-name
nichtterminierende aktion oder diethree-color-policer (single-rate | two-rate) policer-name
nichtterminierende Aktion angibt. Wenn Sie den Standardfilter auf die Ein- oder Ausgabe an einer logischen Schnittstelle anwenden, wird der Policer auf alle Pakete der filterspezifischen Protokollfamilie angewendet, die den in der Filterkonfiguration angegebenen Bedingungen entsprechen.Mit dieser Methode zum Anwenden eines Policers können Sie bestimmte Klassen von Datenverkehr auf einer Schnittstelle definieren und die Datenverkehrsgeschwindigkeit auf jede Klasse begrenzen.
Sie können einen Policer direkt auf eine Schnittstelle anwenden, sodass die Begrenzung der Datenverkehrsgeschwindigkeit für den gesamten Datenverkehr auf dieser Schnittstelle gilt, unabhängig von der Protokollfamilie oder den Übereinstimmungsbedingungen.
Sie können Policer auf Warteschlangen-, logischer Schnittstellen- oder Layer 2 (MAC)-Ebene konfigurieren. Nur ein einzelner Policer wird auf ein Paket in der Ausgangswarteschlange angewendet, und die Suche nach Policern erfolgt in der folgenden Reihenfolge:
Warteschlangenebene
Logische Schnittstellenebene
Mac-Ebene (Layer 2)