Exemplo: Usando os policers para gerenciar excesso de assinatura
É possível usar um policial quando uma interface estiver sobresscrevendo e quiser controlar o que acontecerá se ocorrer congestionamento. Por exemplo, você pode ter servidores conectados a um switch conforme indicado em Tabela 1 .
Tipo de servidor |
Conexão |
Endereço IP |
---|---|---|
Servidor de aplicativos de rede |
interface de 1 gigabit |
10.0.0.1 |
Servidor de autenticação |
interface de 1 gigabit |
10.0.0.2 |
Servidor de banco de dados |
interface de 10 gigabits |
10.0.0.3 |
Neste exemplo, os usuários acessam serviços fornecidos pelo servidor de aplicativos de rede, que solicitam informações do servidor de banco de dados conforme apropriado. Quando ele recebe uma solicitação de um usuário, o servidor de aplicativos de rede primeiro contatou o servidor de autenticação para verificar as credenciais do usuário. Quando um usuário é autenticado e o servidor de aplicativos de rede fornece o serviço solicitado, todos os pacotes enviados do servidor de banco de dados para o servidor de aplicativos devem transitar pela interface Ethernet de 1 Gigabit conectada ao servidor de aplicativos duas vezes, uma vez na entrada no servidor de aplicativos e novamente na saída para o usuário.
A sequência de eventos para uma sessão de usuário é a seguinte:
Um usuário se conecta ao servidor de aplicativos e solicita um serviço.
O servidor de aplicativo solicita as credenciais do usuário e as transmite ao servidor de autenticação.
Se o servidor de autenticação verificar as credenciais, o servidor de aplicativos iniciará o serviço solicitado.
O servidor de aplicativos solicita os arquivos necessários para atender à solicitação do usuário do servidor do banco de dados.
O servidor do banco de dados envia os arquivos solicitados para o servidor de aplicativos.
O servidor de aplicativos inclui os arquivos solicitados em sua resposta ao usuário.
O tráfego do servidor do banco de dados para o servidor de aplicativos pode congestionar a interface de 1 gigabit à qual o servidor de aplicativos está conectado. Esse congestionamento pode impedir o servidor de responder a solicitações dos usuários e criar novas sessões para eles. Você pode usar o policiamento para garantir que isso não ocorra.
Para criar essa configuração de firewall, execute as seguintes etapas no servidor do banco de dados:
Crie um policial para soltar tráfego do servidor do banco de dados para o servidor de aplicativos se exceder determinados 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
Crie um filtro para examinar o tráfego do servidor do banco de dados até o servidor de aplicativos:
[edit firewall] user@switch# edit family inet filter Database-Egress-Filter
Configure o filtro para aplicar o policial ao tráfego de saída do servidor de banco de dados e destinado ao servidor de aplicativos:
[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
Se necessário, configure um termo para permitir o tráfego do servidor do banco de dados até outros destinos (caso contrário, o tráfego será eliminado pela instrução de negação implícita):
[edit firewall family inet filter Database-Egress-Filter] user@switch# set term term-2 then accept
Observe que omitir uma declaração faz com que o termo se adeque a todos os
from
pacotes, que é o comportamento desejado.Instale o filtro de saída como um filtro de saída na interface do servidor do banco de dados que está conectada ao servidor de aplicativos:
[edit interfaces] user@switch# set xe-0/0/3 unit 0 family inet filter output Database-Egress-Filter
Veja como a configuração final parece:
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; } } } ]