Beispiel: Verwendung von Policern zur Verwaltung der Überzeichnung
Sie können einen Policer verwenden, wenn eine Schnittstelle überlastet ist, und Sie möchten kontrollieren, was passiert, wenn es zu Überlastungen kommt. Beispielsweise können Server mit einem Switch verbunden sein, wie in Tabelle 1aufgeführt.
Servertyp |
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 die Dienste zu, die vom Netzwerkanwendungsserver bereitgestellt werden, der gegebenenfalls Informationen vom Datenbankserver anfordert. Wenn eine Anfrage von einem Benutzer empfangen wird, wendet sich der Netzwerkanwendungsserver zuerst an den Authentifizierungsserver, um die Anmeldeinformationen des Benutzers zu überprüfen. Wenn ein Benutzer authentifiziert wird und der Netzwerkanwendungsserver den angeforderten Dienst bereitstellt, müssen alle Vom Datenbankserver an den Anwendungsserver gesendeten Pakete die mit dem Anwendungsserver verbundene 1-Gigabit Ethernet-Schnittstelle zweimal übertragen – einmal beim Eingang zum Anwendungsserver und erneut beim Ausgehenden zum Benutzer.
Die Abfolge von Ereignissen für eine Benutzersitzung lautet wie folgt:
Ein Benutzer verbindet sich mit dem Anwendungsserver und fordert einen Dienst 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 Dienst.
Der Anwendungsserver fordert die Dateien an, die erforderlich sind, um die Anforderungen des Benutzers vom Datenbankserver zu erfüllen.
Der Datenbankserver sendet die angeforderten Dateien an den Anwendungsserver.
Der Anwendungsserver enthält die angeforderten Dateien in seiner Antwort auf den Benutzer.
Der Datenverkehr vom Datenbankserver zum Anwendungsserver überlastet möglicherweise die 1-Gigabit-Schnittstelle, mit der der Anwendungsserver verbunden ist. Diese Überlastung kann verhindern, dass der Server auf Anfragen von Benutzern reagiert und neue Sitzungen für sie erstellt. Sie können policing verwenden, um sicherzustellen, dass dies nicht eintritt.
Um diese Firewall-Konfiguration zu erstellen, führen Sie die folgenden Schritte auf dem Datenbankserver aus:
Erstellen Sie einen Policer, um den Datenverkehr vom Datenbankserver zum Anwendungsserver abzulegen, wenn dieser bestimmte Grenzwerte überschreitet:
[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, um den Policer auf den Datenverkehr anzuwenden, der den Datenbankserver abtritt 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 unterbrochen):
[edit firewall family inet filter Database-Egress-Filter] user@switch# set term term-2 then accept
Beachten Sie, dass das Auslassen einer
from
Anweisung dazu führt, dass der Begriff mit allen Paketen übereinstimmt, was das gewünschte Verhalten ist.Installieren Sie den Ausgangsfilter als Ausgabefilter auf der Schnittstelle des Datenbankservers, die mit dem Anwendungsserver verbunden ist:
[edit interfaces] user@switch# set xe-0/0/3 unit 0 family inet filter output Database-Egress-Filter
Hier erfahren Sie, wie die endgültige Konfiguration aussehen würde:
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; } } } ]