sábado, 31 de março de 2012

Considerações sobre desempenho de Firewalls

Achei valido as informações de nosso amigo Alexandre M. S. P. Morais que trabalha na Cisco Brasil desde 1998 em projetos que envolvem Segurança e VPN, Design de Protocolos de Roteamento, Design de grandes redes LAN e Design de Redes MPLS. 

Certificações
  • CCSP (Cisco Certified Security Professional)
  • CISSP (Certified Information Systems Security Professional)
  • CCIE #6063 (Routing & Switching, Security, Service Provider)
Autor do Livro
  • Cisco Firewalls (Concepts, design and deployment for Cisco Stateful Firewall solutions) –  [Cisco Press, 2011]

Muitas das análises  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).
  • 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).
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:

Nenhum comentário:

Postar um comentário