Considerações sobre desempenho de Firewalls

Quando de minhas reuniões com clientes, sou freqüentemente questionado a respeito dos parâmetros mais adequados para medir o desempenho de Firewalls. Muitas das análises que vejo, se limitam a olhar o valor nominal de “throughput” (Gbps) e simplesmente ignoram aspectos vitais para o bom funcionamento de um Stateful Firewall . O presente texto é uma tentativa de revisitar tais parâmetros.

1. Novas conexões por segundo (Connections per second) – Há várias soluções no mercado que, apesar de apresentarem um número grande de throughput (Gbps), têm valor muito baixo para o parâmetro connections per second (CPS ). Para entender a importância deste parâmetro, basta lembrar que há várias verificações efetuadas pelo Firewall antes que o tráfego possa passar através do “backplane” dele.  Dentre elas, algumas merecem especial destaque:

  • Análise de Fluxo:  o pacote que chegou `a interface de entrada é parte de um fluxo (conexão) existente ou é justamente o primeiro pacote e, portanto, uma nova conexão precisará ser criada ? Isto é particularmente importante para protocolos de aplicação que usam o TCP como transporte. (Basta lembrar das tarefas associadas ao “Three-way Handshake”…)
  • O pacote que chegou é permitido pela ACL de entrada ?
  • Existe regra de NAT que permita a passagem do tráfego ? (É sempre interessante questionar se os números de desempenho alegados por um fabricante levam em conta o uso de tal funcionalidade).
  • Existe rota para encaminhar o pacote ?
  • Existe regra de inspeção avançada (inspeção das instruções dentro do protocolo de aplicação)  para este fluxo  ?

Só após estas verificações o tráfego poderá usar o “backplane”.  A limitação do valor de CPS geralmente impede que o elemento chegue a usar o throughput (Gbps).

*Note que a atuação do Firewall é bem diferente de L2 Switching ( a análise deste é feita apenas buscando o MAC de destino numa tabela que associa o endereço L2 à uma porta física…)

** Muitos testes são feitos com pacotes UDP. O mais realista, no entanto, seria usar TCP, não só pelo fato de haver muito mais aplicações práticas que usam tal transporte mas também pelos aspectos de criação e manutenção de conexões (TCP é o transporte eminentemente Stateful, pois possui uma máquina de estados da qual constam Flags, números de seqüência e ACK, etc).

*** O atributo CPS ajuda a lidar com situações de acréscimo brusco de conexões (“flash flood”). Negar conexões por falta de CPS gera retransmissões e mais tráfego agregado de rede.

2. Pacotes por Segundo (pps) – Esta é a principal métrica para Roteadores e, considerando que os Stateful Firewalls (na maioria dos casos) se inserem na topologia como elementos L3, este parâmetro também não pode ser desprezado.

  • Na visão de um Firewall Stateful, uma mesma conexão pode envolver muitos pacotes trafegados. (Pense, por exemplo, em uma transferência de um grande arquivo via FTP).
  • Já vi vários clientes questionarem o desempenho de algumas plataformas quando implementadas em ambientes com “pacotes pequenos”. Às vezes havia a impressão que os Firewalls em uso possuíam algum tipo de limitação no tratamento de tais pacotes. Na realidade, o que acontecia era o seguinte:  – os números de “Marketing” eram calculados com Jumbo Frames (~9000 bytes) e o resultado expresso em Gbps. Os números do ambiente real seguiam um perfil IMIX (~450 bytes). Como a expectativa de desempenho estava associada a Gbps, a decepção era grande… (desempenho 20 vezes menor do que o que constava no data sheet).

Algumas contas que podem ajudar no cálculo de pps:

450 bytes/pacote = 3600 bits/pacote = 3,6 x 103 bits/pacote

1 Gigabit/segundo = 109 bits/segundo = (Y pacotes/segundo) x (3,6 x 103 bits/pacote) -> Y = 2,78 x 105 pacotes/segundo  = 278.000 pps

Diante do exposto, uma conta realista (pacotes médios de 450 bytes) dedicaria cerca de 300.000 pps de encaminhamento L3 para cada  1 Gbps solicitado.

3. Conexões Simultâneas ( memória específica para manutenção da tabela de estados): corresponde ao número instantâneo máximo de entradas na tabela de conexões.

  • A entrada é removida da tabela de estados após um tempo de inatividade (“idle timeout”).
  • Este atributo está de certa forma relacionado com o número de CPS. Por quanto tempo o Firewall consegue absorver novas conexões (sem descartá-las) até o limite de conexões simultâneas ?

4. Throughput (Gigabits/segundo), um parâmetro associado à capacidade de encaminhamento.

Apesar de ser uma métrica muito importante para encaminhamento L2, no caso dos Stateful Firewalls este parâmetro acaba se tornando secundário. Diante do que já foi exposto, o valor de Gbps deveria ser uma conseqüência do número de Pacotes por Segundo (pps) suportado pelo equipamento e do conhecimento das características de tamanho de pacote do ambiente em que o Firewall será instalado.

Um artigo mais detalhado sobre o tema está disponível no seguinte link:

https://supportforums.cisco.com/docs/DOC-16954

Leave a comment

Filed under Português, Segurança

Comments are closed.