Eu migraria para o Kernel > = 3.6, que não possui mais um cache de roteamento. Isso deve resolver uma parte dos seus problemas.
Eu tenho uma configuração de teste no laboratório com 4 máquinas:
para testar o desempenho do firewall do linux desde que fomos mordidos por uma série de ataques de inundação sincronizada nos últimos meses. Todas as máquinas rodam o Ubuntu 12.04 64bit. t1, t2, t3 são interconectados através de um comutador de 1GB / s, t4 é conectado a t3 por meio de uma interface extra. Então t3 simula o firewall, t4 é o alvo, t1, t2 joga os atacantes gerando uma tempestade de pacotes (192.168.4.199 é t4):
hping3 -I eth1 --rand-source --syn --flood 192.168.4.199 -p 80
t4 descarta todos os pacotes de entrada para evitar confusão com gateways, problemas de desempenho de t4 etc. Eu assisto as estatísticas de pacotes no iptraf. Eu configurei o firewall (t3) da seguinte forma:
sysctl da seguinte forma:
net.ipv4.ip_forward = 1
net.ipv4.route.gc_elasticity = 2
net.ipv4.route.gc_timeout = 1
net.ipv4.route.gc_interval = 5
net.ipv4.route.gc_min_interval_ms = 500
net.ipv4.route.gc_thresh = 2000000
net.ipv4.route.max_size = 20000000
(Eu mudei muito para manter o t3 rodando quando t1 + t2 está enviando o maior número de pacotes possível).
O resultado desse esforço é um pouco estranho:
E essa - aqui é minha principal preocupação - com duas antigas máquinas P4 enviando o maior número de pacotes possível - o que significa que quase todos na rede devem ser capazes disso.
Então, aqui vai a minha pergunta: Eu ignorei algum ponto importante na configuração ou na configuração do meu teste? Existem alternativas para a criação de sistemas de firewall, especialmente em sistemas smp?
Eu migraria para o Kernel > = 3.6, que não possui mais um cache de roteamento. Isso deve resolver uma parte dos seus problemas.
Como está sua configuração de registro em T3? Se todos os pacotes descartados estiverem registrados, a E / S do disco talvez seja a causa.
Como esse é um ambiente de teste, você pode tentar o teste com o log T3 desativado.