[MASOCH-L] Roteador/filtro de pacotes com Linux: necessidade de rotear/filtrar tráfego gigabit: especificação de hardware.

Leonardo Rodrigues Magalhães leolistas at solutti.com.br
Sun Sep 30 12:43:18 BRT 2007


   Não acompanhei a discussão inteira .... mas alguns outros fatores que 
eu consideraria caso fosse lidar com um firewall de tráfego tão alto 
como seu caso:

1) evitar COMPLETAMENTE a utilização de alguns módulos sabidamente 
devoradores de CPU, como o string ou layer7 por exemplo

2) usar (e abusar) das chains criadas por você. Ao invés de mandar 
centenas/milhares de regras no FORWARD, talvez você consiga criar novas 
chains pra cada 'sentido' de tráfego da rede e, nessas chains, inserir 
as regras. Na FORWARD, por sua vez, você terá apenas algumas poucas 
regras simples, geralmente interface de entrada e interface de saída, 
apontando então para suas chains criadas. Eu já vi caso que até mesmo 
chains por protocolo eram criadas. Você cria tipo uma 'árvore' pro 
pacote passar. Certamente torna o script de criação e a resolução de 
problemas mais complicado. Mas também, certamente, diminui drasticamente 
o número de regras que o pacote vai ter que percorrer até ter um match.

3) pense um pouquinho nas suas regras, antes de sair criando-as. É 
geralmente inteligente organizá-las, manualmente mesmo, de forma que as 
regras que aceitarão ou bloquearão mais pacotes venham primeiro. Utilize 
uma regra 'genérica' que permita , antes de todas as outras, que o 
tráfego já estabelecido flua. Deixe somente as novas conexões 
atravessaram toda a cadeia de regras. Em linux, você consegue isso com o 
STATE.

4) 'gaste' um pouquinho a mais de CPU e bote alguma coisa pra monitorar 
seu sistema, gerando gráficos de uso de CPU. Se não quiser rodar um 
cacti/rrdtool na máquina, suba apenas o snmpd e gere os gráficos em 
outra máquina, permitindo assim que você acompanhe o uso de CPU da 
máquina e, principalmente, se as alterações sugeridas ai em 2 e 3 
surtiram efeito, pra melhor ou pra pior


   Acho que com essas observações e um bom tweak no kernel, você 
consegue preparar um Linux pra lidar com um tráfego bem alto sim !! 
Talvez não de forma 'automática', você VAI ter que pensar no que está 
fazendo. Mas deve conseguir sim.


casfre at gmail.com escreveu:
> Pessoal,
>
>      Desculpem-me pela demora na resposta, mas os dias andaram
> atribulados por aqui.
>
>      Quando fiz a pergunta temi que fosse algo trivial para muitos,
> exceto para mim. Pelo jeito, o problema é um pouco mais complexo do
> que eu imaginava.
>
>      A seguir, um resumo do que me foi informado.
>
>      Reunindo as informações obtidas, pelas quais agradeço novamente,
> a conclusão é que: rotear/filtrar Gigabit não é tarefa para "pouca"
> máquina e, logo, um investimento compatível deve ser feito, seja em um
> "appliance" seja em um "PC" ajustado para tal.
>
>      Com relação a usar um "PC" para a tarefa, a conclusão a que
> cheguei foi: há que se ajustar uma CPU suficiente mas que não eleve
> muito o custo, o que será feito através de observação da CPU atual. As
> placas de rede deverão utilizar o barramento PCIe (não compartilhado),
> devido à necessidade de largura de banda demandada, a qual, segundo os
> números, o barramento PCI, compartilhado, não oferece.
>
>      Com relação ao SO a utilizar, a conclusão é de que há plataformas
> com Linux + iptables e com FreeBSD + ipfw fazendo tarefas similares ou
> superiores à que informei. No entanto, os números informados mostram
> uma eficiência maior quando se usa o FreeBSD+ipfw.
>
>      Além disso, há considerações de que existem outros números
> envolvidos, além do roteamento/filtragem, como o efeito envolvendo o
> "route cache" e a análise de que, no fluxo de dados que informei,
> haverá necessidade de "dobrar" os números, pois o tráfego ocorrerá,
> simultaneamente, em ambas as direções ( considerando-se duas placas de
> rede apenas ). Essa última consideração leva à necessidade de que, a
> arquitetura do PC escolhido, esteja ajustada para suportar o tráfego
> entre os barramentos e o processador (controlador de memória).
>
>      Por fim, felizmente, com a evolução do hardware dos "PCs" e com a
> diminuição de seu preço (aliados à existência do Software Livre e
> gratuito e de listas de discussão como esta), já existem no mercado,
> segundo informações, equipamentos com alta capacidade de processamento
> ( placas para servidores ) por preços bem abaixo daqueles praticados
> para muitos appliances e para muitas soluções de "PCs" especializados.
> Obviamente, salvas as devidas proporções.
>
>      Neste momento, vou limitar meu campo de ação. Observarei a CPU e
> o tráfego atuais, usando as placas PCI. Assim que o gargalo aparecer,
> pretendo adquirir uma placa de rede Gigabit PCIe e substituir a atual
> placa PCI ( a placa de rede on-board é uma Intel - e1000 e, segundo o
> lspci -vvv do Linux, usa o barramento PCIe x1). Novamente, observarei
> os números e, se o gargalo persistir, partirei para um equipamento
> (PC) otimizado para desempenho em rede.
>
>      Como não estou familiarizado com o FreeBSD+ipfw, no momento,
> usarei Linux+iptables.
>
>      Agradeço a todos pela atenção e continuo aberto a sugestões.
> Assim que eu conseguir novidades sobre o assunto, volto a informar à
> lista. Se me esqueci de alguma consideração, por favor, me perdoem.
>
>   

-- 


	Atenciosamente / Sincerily,
	Leonardo Rodrigues
	Solutti Tecnologia
	http://www.solutti.com.br

	Minha armadilha de SPAM, NÃO mandem email
	gertrudes at solutti.com.br
	My SPAMTRAP, do not email it






More information about the masoch-l mailing list