Ellenállóbb lesz az elosztott szolgáltatásmegtagadásos támadásokkal szemben a pingvinünk

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

kami911 képe

A Linux 6.18-as kernelhez a hálózati frissítések részeként egy sor új javítás került be, amelyek jelentősen javítják a szerverek ellenálló képességét a elosztott szolgáltatásmegtagadásos (DDoS) támadásokkal szemben. A Google mérnökének, Eric Dumazetnek köszönhetően a kernel UDP fogadási teljesítménye optimalizálásra került, különösen terhelés alatt, ami például DDoS esetén kritikus lehet.

Dumazet részletezte, hogy a javítás-sorozat célja a UDP-stack fogadó oldalának optimalizálása. Az IPv6 UDP csomagok 120 bájtos terhelésével 47%-kal nőtt a teljesítmény, amikor egyetlen socketet támadás ért 16 CPU használatával. A javítások főbb elemei a következők:

  1. struct ipv6_pinfo méretének csökkentése és mezők átrendezése a hatékonyabb TX út érdekében, ami a TCP teljesítményét is javítja a cache-hibák csökkentésével.
  2. sk->sk_rmem_alloc olvasásának és frissítésének módosítása a spinlock versengés csökkentésére.
  3. sk_backlog, sk_receive_queue és sk_drop_counters sorrendjének optimalizálása a jobb adatelérhetőség érdekében.
  4. Hash-táblás spinlock-ok eltávolítása, helyette socket-specifikus lock alkalmazása.
  5. skb_attempt_defer_free() bevezetése a TCP-nél már bevált módszer alapján.

A legfontosabb javítás a busylock helyett NUMA-kompatibilis lockmentes sorok bevezetése volt, így kevesebb CPU-nak kell megszereznie a UDP receive queue lockot. A csomagok vagy azonnal eldobhatók, vagy a saját NUMA-s sorukba kerülnek, majd egy CPU dolgozza fel őket batch-módban. Ez jelentősen csökkenti a késleltetést és a csomagvesztést.

Tesztelésnél, hat NUMA csomóponttal rendelkező Intel Xeon szerveren, a javítás után a host másodpercenként 14,2 millióval több csomagot tudott feldolgozni, míg a célzott socket 11%-kal több csomagot kapott. Ez különösen fontos, mivel a Linux 6.18 idén Hosszú Távú Támogatású (LTS) kernelként fog megjelenni, és széles körű szerverhasználatra számítanak a jövőben.

Ez a fejlesztés jelentősen növeli a Linux-alapú szerverek ellenállóképességét nagyszabású hálózati támadásokkal szemben, miközben javítja az UDP teljesítményt és stabilitást terhelt környezetben.