Linux problem z wydajnością iptables / conntrack


9

Mam konfigurację testową w laboratorium na 4 maszynach:

  • 2 stare maszyny P4 (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

aby przetestować wydajność zapory linuksowej, ponieważ w ostatnich miesiącach ugryzły nas liczne ataki syn-flood. Wszystkie maszyny działają pod kontrolą Ubuntu 12.04 64bit. t1, t2, t3 są połączone za pomocą przełącznika 1 GB / s, t4 jest podłączony do t3 za pomocą dodatkowego interfejsu. Więc t3 symuluje zaporę ogniową, t4 jest celem, t1, t2 grają atakujących generujących burzę pakietów (192.168.4.199 to t4):

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

t4 zrzuca wszystkie przychodzące pakiety, aby uniknąć pomyłek z bramami, problemów z wydajnością t4 itp. Oglądam statystyki pakietów w iptraf. Skonfigurowałem zaporę (t3) w następujący sposób:

  • stock 3.2.0-31-generic # 50-Ubuntu Jądro SMP
  • rhash_entries = 33554432 jako parametr jądra
  • sysctl w następujący sposób:

    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
    

(Wiele poprawiłem, aby t3 działał, gdy t1 + t2 wysyłają tyle pakietów, ile to możliwe).

Rezultaty tych wysiłków są nieco dziwne:

  • t1 + t2 zarządzają wysyłaniem każdego około 200 000 pakietów / s. t4 w najlepszym przypadku widzi w sumie około 200 tys., więc połowa pakietów zostaje utracona.
  • t3 jest prawie bezużyteczny na konsoli, chociaż przepływają przez niego pakiety (duża liczba soft-irqs)
  • kolektor śmieci pamięci podręcznej trasy nie jest bliski przewidywalności, aw ustawieniu domyślnym jest przytłoczony bardzo małą liczbą pakietów / s (<50 000 pakietów / s)
  • aktywacja stanowych reguł iptables powoduje, że szybkość pakietów docierających do t4 spada do około 100 000 pakietów / s, skutecznie tracąc ponad 75% pakietów

I to - oto moja główna obawa - gdy dwie stare maszyny P4 wysyłają tyle pakietów, ile mogą - co oznacza, że ​​prawie każdy w sieci powinien mieć taką możliwość.

Oto moje pytanie: czy przeoczyłem jakiś punkt importu w konfiguracji lub konfiguracji testowej? Czy są jakieś alternatywy dla budowy systemu zapory ogniowej, szczególnie w systemach SMP?


Czy to możliwe, że nasycasz sieć? To by tłumaczyło część utraty pakietów.
Preston,

Nie sądzę, ponieważ sieć działa z prędkością 1 Gb / s, każda jest podłączona za pomocą przełącznika hp 2848, kontrola przepływu włączona, a przepełnienie pamięci podręcznej trasy i dużego obciążenia na t3 wskazuje, że samo t3 jest słabym punktem.
tim

Odpowiedzi:


1

Przeprowadzę migrację do jądra> = 3.6, które nie mają już pamięci podręcznej routingu. To powinno rozwiązać część twoich problemów.


0

Jak wygląda konfiguracja logowania na T3? Jeśli wszystkie upuszczone pakiety są rejestrowane, przyczyną może być We / Wy dysku.

Ponieważ jest to środowisko testowe, możesz wypróbować test z wyłączonym rejestrowaniem T3.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.