Provocările inginerilor Cloudflare în gestionarea stivei de rețea Linux
Inginerii Cloudflare își testează limitele stivei de rețea Linux
Inginerii de la Cloudflare se confruntă cu provocări în extinderea funcționalității soft-unicast, crucială pentru utilizarea extensivă a anycast. Aceștia au întâmpinat probleme cu modulul de urmărire a conexiunilor Netfilter (conntrack) și cu subsistemul de socketuri Linux, în special în contextual rescrierii pachetelor.
În cazul soft-unicast, este vital ca mai multe procese să fie conștiente de aceleași conexiuni, dar arhitectura Linux face imposibilă utilizarea rescrierii pachetelor. Astfel, inginerii au fost nevoiți să utilizeze un proxy local inițial, ceea ce a generat un overhead semnificativ. Soluția găsită a fost utilizarea opțiunii TCP_REPAIR, destinată în mod normal migrației conexiunilor de rețea pentru mașini virtuale, pentru a descrie întregul stat al conexiunii socket, permițând „repararea” acesteia.
Combinând această opțiune cu TCP Fast Open pentru a evita handshake-ul inițial, ingeniozitatea inginerilor a dus la noi soluții. Totuși, provocările nu s-au încheiat aici, iar utilizarea unui demux devreme a adus alte linii de soluționare. Ironia a fost că, în cele din urmă, s-a decis ca nu este recomandat să se afecteze semnificativ stiva de rețea Linux, optând astfel pentru o soluție conexă mai simplă, terminând conexiunile TCP prin proxy-uri locale și redirecționând traficul către socket-uri locale.
Astfel, evadarea din constrângerile stivei de rețea Linux se dovedește a fi o provocare complexă.