Beispiel: Verwendung von Policers zur Verwaltung von Überzeichnung
Möglicherweise möchten Sie einen Policer verwenden, wenn eine Schnittstelle überbelegt ist und Sie steuern möchten, was passiert, wenn eine Überlastung auftritt. Angenommen, Sie haben Server, die mit einem Switch verbunden sind, wie in aufgeführt.Tabelle 1
Server-Typ |
Verbindung |
IP-Adresse |
---|---|---|
Netzwerkanwendungsserver |
1-Gigabit-Schnittstelle |
10.0.0.1 |
Authentifizierungsserver |
1-Gigabit-Schnittstelle |
10.0.0.2 |
Datenbankserver |
10-Gigabit-Schnittstelle |
10.0.0.3 |
In diesem Beispiel greifen Benutzer auf Services zu, die vom Netzwerkanwendungsserver bereitgestellt werden, der entsprechend Informationen vom Datenbankserver anfordert. Wenn der Netzwerkanwendungsserver eine Anforderung von einem Benutzer erhält, kontaktiert er zunächst den Authentifizierungsserver, um die Anmeldeinformationen des Benutzers zu überprüfen. Wenn ein Benutzer authentifiziert ist und der Netzwerkanwendungsserver den angeforderten Service bereitstellt, müssen alle Pakete, die vom Datenbankserver an den Anwendungsserver gesendet werden, die mit dem Anwendungsserver verbundene 1-Gigabit-Ethernet-Schnittstelle zweimal durchlaufen – einmal beim Eingang zum Anwendungsserver und einmal beim Ausgang zum Benutzer.
Die Reihenfolge der Ereignisse für eine Benutzersitzung ist wie folgt:
Ein Benutzer stellt eine Verbindung zum Anwendungsserver her und fordert einen Service an.
Der Anwendungsserver fordert die Anmeldeinformationen des Benutzers an und leitet sie an den Authentifizierungsserver weiter.
Wenn der Authentifizierungsserver die Anmeldeinformationen überprüft, initiiert der Anwendungsserver den angeforderten Service.
Der Anwendungsserver fordert die Dateien vom Datenbankserver an, die erforderlich sind, um die Anforderung des Benutzers zu erfüllen.
Der Datenbankserver sendet die angeforderten Dateien an den Anwendungsserver.
Der Anwendungsserver nimmt die angeforderten Dateien in seine Antwort an den Benutzer auf.
Der Datenverkehr vom Datenbankserver zum Anwendungsserver kann die 1-Gigabit-Schnittstelle, mit der der Anwendungsserver verbunden ist, überlasten. Diese Überlastung kann den Server möglicherweise daran hindern, auf Anforderungen von Benutzern zu antworten und neue Sitzungen für sie zu erstellen. Sie können die Polizeiarbeit nutzen, um sicherzustellen, dass dies nicht geschieht.
Um diese Firewall-Konfiguration zu erstellen, führen Sie die folgenden Schritte auf dem Datenbankserver aus:
Erstellen Sie einen Policer, um Datenverkehr vom Datenbankserver zum Anwendungsserver zu verwerfen, wenn bestimmte Grenzwerte überschritten werden:
[edit firewall] user@switch# set policer Database-Egress-Policer if-exceeding bandwidth-limit 400 burst-size-limit 500m user@switch# set policer Database-Egress-Policer then discard
Erstellen Sie einen Filter, um den Datenverkehr vom Datenbankserver zum Anwendungsserver zu untersuchen:
[edit firewall] user@switch# edit family inet filter Database-Egress-Filter
Konfigurieren Sie den Filter so, dass der Policer auf den Datenverkehr angewendet wird, der den Datenbankserver ausgeht und für den Anwendungsserver bestimmt ist:
[edit firewall family inet filter Database-Egress-Filter] user@switch# set term term-1 from destination-address 10.0.0.1 user@switch# set term term-1 then policer Database-Egress-Policer
Konfigurieren Sie bei Bedarf einen Begriff, um Datenverkehr vom Datenbankserver zu anderen Zielen zuzulassen (andernfalls wird der Datenverkehr durch die implizite deny-Anweisung verworfen):
[edit firewall family inet filter Database-Egress-Filter] user@switch# set term term-2 then accept
Beachten Sie, dass das Weglassen einer Anweisung dazu führt, dass der Begriff mit allen Paketen übereinstimmt, was dem gewünschten Verhalten entspricht.
from
Installieren Sie den Ausgangsfilter als Ausgabefilter auf der Datenbankserverschnittstelle, die mit dem Anwendungsserver verbunden ist:
[edit interfaces] user@switch# set xe-0/0/3 unit 0 family inet filter output Database-Egress-Filter
So sieht die endgültige Konfiguration aus:
firewall { policer Database-Egress-Policer { if-exceeding { bandwidth-limit 400; burst-size-limit 500m; } then discard; } family inet { filter Database-Egress-Filter { term term-1 { from { destination-address { 10.0.0.1/24; } } then policer Database-Egress-Policer; } term term-2 { # If required, include this term so that traffic from the database server to other destinations is allowed. then accept; } } } ]