Exemplo: Usando policiais para gerenciar a sobrescrição
Você pode querer usar um policial quando uma interface é subscrita demais e deseja controlar o que acontecerá se ocorrer congestionamento. Por exemplo, você pode ter servidores conectados a um switch conforme listado em Tabela 1.
Tipo de servidor |
Conexão |
Endereço IP |
---|---|---|
Servidor de aplicativo 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 aplicativo de rede, que solicita informações do servidor de banco de dados conforme apropriado. Quando ele recebe uma solicitação de um usuário, o servidor de aplicativo de rede entra em contato primeiro com o servidor de autenticação para verificar as credenciais do usuário. Quando um usuário é autenticado e o servidor de aplicativo de rede fornece o serviço solicitado, todos os pacotes enviados do servidor de banco de dados para o servidor de aplicativo devem transitar pela interface Ethernet de 1 Gigabit conectada ao servidor do aplicativo duas vezes — uma vez na entrada do servidor do aplicativo 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 do aplicativo e solicita um serviço.
O servidor do 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 do aplicativo inicia o serviço solicitado.
O servidor do aplicativo solicita os arquivos necessários para atender à solicitação do usuário no servidor do banco de dados.
O servidor de banco de dados envia os arquivos solicitados para o servidor do aplicativo.
O servidor do aplicativo inclui os arquivos solicitados em sua resposta ao usuário.
O tráfego do servidor de banco de dados para o servidor do aplicativo pode congestionar a interface de 1 gigabit à qual o servidor do aplicativo está conectado. Esse congestionamento pode impedir que o servidor responda às solicitações dos usuários e crie 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 de banco de dados:
Crie um policial para soltar o tráfego do servidor de banco de dados para o servidor do aplicativo 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 de banco de dados até o servidor do aplicativo:
[edit firewall] user@switch# edit family inet filter Database-Egress-Filter
Configure o filtro para aplicar o policiador à saída de tráfego do servidor de banco de dados e destinado ao servidor do aplicativo:
[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 de banco de dados para outros destinos (caso contrário, o tráfego será descartado pela declaraçã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
from
declaração faz com que o termo corresponda a todos os pacotes, que é o comportamento desejado.Instale o filtro de saída como um filtro de saída na interface do servidor de banco de dados que está conectada ao servidor do aplicativo:
[edit interfaces] user@switch# set xe-0/0/3 unit 0 family inet filter output Database-Egress-Filter
Veja como a configuração final apareceria:
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; } } } ]