kernel: sonewconn: pcb...

Dan Lukes dan at obluda.cz
Wed Feb 24 16:24:51 CET 2016


Miroslav Lachman wrote:
>>>     "kernel: sonewconn: pcb '0xffff..hexadecimal..': Listen queue overflow:..."

> Dokazal bys popsat, jaky typ utoku zpusobi tenhle problem?

Kdyz prichazi TCP spojeni, vytvori se pro nej struktura a ta se ulozi do 
fronty, odkud si to spojeni aplikace nasledne "vyzvedne" (API funkce 
accept() ).

Velikost fronty je dana bud' aplikaci (druhy parametr listen()) kde 
casto byva ovlivnitelna konfiguraci (treba ListenBacklog u Apache), 
nebo systemovym defaultem (kern.ipc.somaxconn sysctl).

Ve skutecnosti se ale pri naplneni fronty na 100% nedeje nic, teprve pri 
dosazeni 150% se prichozi spojeni zacnou zahazovat, pricemz se vypisuje 
citovana hlaska (ne s kazdym zahozenym spojenim, jen "jednou za cas").


Takze to zpusobi kazdy utok, ktery znamena, ze po doby delsi nez kratkou 
(pro kratke spicky je tam ta fronta) prichazi vic prichozich spojeni, 
nez kolik aplikace stiha obsluhovat.

Vetsi fronta dokaze vstrebat vetsi/delsi spicky, ale pokud jde o 
trvajici utok (nebo i trvale velke legitimni zatizeni), tak neni resenim 
problemu, protoze sebevetsi fronta se nakonec preplni.

U utoku nezbyva nez najit zpusob jak omezit pocet prichozich spojeni, u 
legitimniho zatizeni je nutne zvysit vykon aplikace.

Dan



More information about the Users-l mailing list