Exemple : Utilisation de mécanismes de contrôle pour gérer la sursouscription
Vous pouvez utiliser un mécanisme de contrôle lorsqu’une interface est surabonnée et que vous souhaitez contrôler ce qui se passera en cas d’encombrement. Par exemple, vous pouvez avoir des serveurs connectés à un commutateur, comme indiqué dans Tableau 1.
Type de serveur |
Connexion |
Adresse IP |
---|---|---|
Serveur d’applications réseau |
Interface 1 gigabit |
10.0.0.1 |
Serveur d’authentification |
Interface 1 gigabit |
10.0.0.2 |
Serveur de base de données |
Interface 10 gigabits |
10.0.0.3 |
Dans cet exemple, les utilisateurs accèdent aux services fournis par le serveur d’applications réseau, qui demande des informations au serveur de base de données, le cas échéant. Lorsqu’il reçoit une demande d’un utilisateur, le serveur d’applications réseau contacte d’abord le serveur d’authentification pour vérifier les informations d’identification de l’utilisateur. Lorsqu’un utilisateur est authentifié et que le serveur d’applications réseau fournit le service demandé, tous les paquets envoyés du serveur de base de données au serveur d’applications doivent transiter deux fois par l’interface Ethernet 1 Gigabit connectée au serveur d’applications, une fois à l’entrée vers le serveur d’applications et une autre fois à la sortie vers l’utilisateur.
La séquence des événements d’une session utilisateur est la suivante :
Un utilisateur se connecte au serveur d’applications et demande un service.
Le serveur d’applications demande les informations d’identification de l’utilisateur et les transmet au serveur d’authentification.
Si le serveur d’authentification vérifie les informations d’identification, il lance le service demandé.
Le serveur d’applications demande au serveur de base de données les fichiers nécessaires pour répondre à la demande de l’utilisateur.
Le serveur de base de données envoie les fichiers demandés au serveur d’applications.
Le serveur d’applications inclut les fichiers demandés dans sa réponse à l’utilisateur.
Le trafic entre le serveur de base de données et le serveur d’applications peut encombrer l’interface 1 gigabit à laquelle le serveur d’applications est connecté. Cet encombrement peut empêcher le serveur de répondre aux demandes des utilisateurs et de créer de nouvelles sessions pour eux. Vous pouvez faire appel à la police pour vous assurer que cela ne se produise pas.
Pour créer cette configuration de pare-feu, effectuez les opérations suivantes sur le serveur de base de données :
Créez un mécanisme de contrôle pour supprimer le trafic du serveur de base de données vers le serveur d’applications s’il dépasse certaines limites :
[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
Créez un filtre pour examiner le trafic du serveur de base de données vers le serveur d’applications :
[edit firewall] user@switch# edit family inet filter Database-Egress-Filter
Configurez le filtre pour appliquer le mécanisme de contrôle au trafic sortant du serveur de base de données et destiné au serveur d’applications :
[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
Si nécessaire, configurez un terme pour autoriser le trafic du serveur de base de données vers d’autres destinations (sinon le trafic sera abandonné par l’instruction de refus implicite) :
[edit firewall family inet filter Database-Egress-Filter] user@switch# set term term-2 then accept
Notez que l’omission d’une
from
instruction entraîne la correspondance du terme avec tous les paquets, ce qui est le comportement souhaité.Installez le filtre de sortie en tant que filtre de sortie sur l’interface du serveur de base de données connectée au serveur d’applications :
[edit interfaces] user@switch# set xe-0/0/3 unit 0 family inet filter output Database-Egress-Filter
Voici à quoi ressemblerait la configuration finale :
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; } } } ]