Leistungsproblem mit Linux iptables / conntrack


9

Ich habe einen Testaufbau im Labor mit 4 Maschinen:

  • 2 alte P4-Maschinen (t1, t2)
  • 1 Xeon 5420 DP 2,5 GHz 8 GB RAM (t3) Intel e1000
  • 1 Xeon 5420 DP 2,5 GHz 8 GB RAM (t4) Intel e1000

um die Leistung der Linux-Firewall zu testen, da wir in den letzten Monaten von einer Reihe von Syn-Flood-Angriffen gebissen wurden. Auf allen Computern wird Ubuntu 12.04 64bit ausgeführt. t1, t2, t3 sind über einen 1 GB / s-Schalter miteinander verbunden, t4 ist über eine zusätzliche Schnittstelle mit t3 verbunden. Also simuliert t3 die Firewall, t4 ist das Ziel, t1, t2 spielen die Angreifer, die einen Paketsturm erzeugen (192.168.4.199 ist t4):

hping3 -I eth1 --rand-source --syn --flood 192.168.4.199 -p 80

t4 verwirft alle eingehenden Pakete, um Verwechslungen mit Gateways, Leistungsproblemen von t4 usw. zu vermeiden. Ich beobachte die Paketstatistiken in iptraf. Ich habe die Firewall (t3) wie folgt konfiguriert:

  • stock 3.2.0-31-generic # 50-Ubuntu SMP Kernel
  • rhash_entries = 33554432 als Kernel-Parameter
  • sysctl wie folgt:

    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
    

(Ich habe viel optimiert, um t3 am Laufen zu halten, wenn t1 + t2 so viele Pakete wie möglich senden).

Das Ergebnis dieser Bemühungen ist etwas seltsam:

  • t1 + t2 schaffen es, jeweils etwa 200.000 Pakete / s zu senden. t4 sieht im besten Fall ungefähr 200k, so dass die Hälfte der Pakete verloren geht.
  • t3 ist auf der Konsole fast unbrauchbar, obwohl Pakete durch sie fließen (hohe Anzahl von Soft-IRQs)
  • Der Routen-Cache-Garbage-Collector ist bei weitem nicht vorhersehbar und in der Standardeinstellung von sehr wenigen Paketen / s (<50.000 Pakete / s) überfordert.
  • Durch Aktivieren der Stateful Iptables-Regeln sinkt die auf t4 ankommende Paketrate auf etwa 100.000 Pakete / s, wodurch effektiv mehr als 75% der Pakete verloren gehen

Und das - hier ist mein Hauptanliegen - mit zwei alten P4-Maschinen, die so viele Pakete wie möglich senden - was bedeutet, dass fast jeder im Netz dazu in der Lage sein sollte.

Hier ist meine Frage: Habe ich einen wichtigen Punkt in der Konfiguration oder in meinem Test-Setup übersehen? Gibt es Alternativen zum Aufbau eines Firewall-Systems, insbesondere auf SMP-Systemen?


Ist es möglich, dass Sie nur das Netzwerk überlasten? Das würde einen Teil des Paketverlusts erklären.
Preston

Ich denke nicht, da das Netzwerk mit 1 Gbit / s ausgestattet ist, die jeweils über einen HP 2848-Switch verbunden sind, zeigt die Flusskontrolle und der Überlauf des Hochlast- und Routen-Cache bei t3 an, dass t3 selbst die Schwachstelle ist.
Tim

Antworten:


1

Ich würde auf Kernel> = 3.6 migrieren, der keinen Routing-Cache mehr hat. Das sollte einen Teil Ihrer Probleme lösen.


0

Wie ist Ihr Protokollierungssetup auf T3? Wenn alle verworfenen Pakete protokolliert werden, kann die Festplatten-E / A die Ursache sein.

Da dies eine Testumgebung ist, können Sie den Test bei deaktivierter T3-Protokollierung versuchen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.