Lè Linux conttrack pa zanmi ou ankò

Lè Linux conttrack pa zanmi ou ankò

Suivi koneksyon ("conntrack") se yon karakteristik debaz nan pil rezo nwayo Linux la. Li pèmèt nwayo a kenbe tras nan tout koneksyon rezo lojik oswa koule epi kidonk idantifye tout pake ki fòme chak koule pou yo ka trete yo ansanm sekans.

Conntrack se yon karakteristik nwayo enpòtan ki itilize nan kèk ka debaz:

  • NAT depann sou enfòmasyon ki soti nan conttrack pou li ka trete tout pake ki soti nan menm kouran an egalman. Pou egzanp, lè yon gous jwenn aksè nan yon sèvis Kubernetes, balans chaj kube-proxy itilize NAT pou dirije trafik nan yon gous espesifik nan gwoup la. Conntrack anrejistre ke pou yon koneksyon bay, tout pake nan sèvis IP yo dwe voye nan menm gous la, epi ke pake ki retounen nan gous backend la dwe NAT tounen nan gous kote demann lan soti.
  • Pare-feu Stateful tankou Calico konte sou enfòmasyon ki soti nan connecttrack nan lis blan "repons" trafik. Sa a pèmèt ou ekri yon politik rezo ki di "pèmèt gous mwen an konekte nan nenpòt adrès IP aleka" san yo pa bezwen ekri yon politik ki klèman pèmèt trafik repons. (San sa a, ou ta dwe ajoute règ la "pèmèt pake nan gous mwen an soti nan nenpòt ki IP" ki pa an sekirite.)

Anplis de sa, conntrack anjeneral amelyore pèfòmans sistèm (pa diminye konsomasyon CPU ak latansi pake) depi sèlman premye pake a nan yon kouran dlo.
dwe ale nan tout pil rezo a pou detèmine kisa pou fè ak li. Gade pòs la "Konparezon mòd kube-proxy"pou wè yon egzanp sou fason li fonksyone.

Sepandan, conttrack gen limit li yo...

Se konsa, kote tout bagay ale mal?

Tablo conntrack la gen yon gwosè maksimòm configurable, epi si li vin plen, koneksyon anjeneral kòmanse rejte oswa tonbe. Gen ase espas gratis nan tab la pou okipe trafik pifò aplikasyon yo, e sa p ap janm vin yon pwoblèm. Sepandan, gen kèk senaryo kote ou ta ka vle konsidere lè l sèvi avèk tab konttrack la:

  • Ka ki pi evidan se si sèvè ou a okipe yon gwo kantite koneksyon aktif ansanm. Pou egzanp, si tab conntrack ou a konfigirasyon pou antre 128k, men ou gen> 128k koneksyon konkouran, ou pral siman kouri nan yon pwoblèm!
  • Yon ka yon ti kras mwens evidan: si sèvè ou a trete yon gwo kantite koneksyon pou chak segonn. Menm si koneksyon yo kout, yo kontinye ap kontwole pa Linux pou kèk peryòd de tan (120s pa default). Pou egzanp, si tab conntrack ou a konfiguré pou antre 128k epi w ap eseye okipe 1100 koneksyon pou chak segonn, yo pral depase gwosè tab la conntrack, menm si koneksyon yo trè kout (128k/120s = 1092 koneksyon/). s).

Gen plizyè kalite nich aplikasyon ki tonbe nan kategori sa yo. Anplis de sa, si ou gen anpil move aktè, ranpli tab kontaktif sèvè ou a ak anpil koneksyon demi-louvri ka itilize kòm yon pati nan yon atak refi sèvis (DOS). Nan tou de ka yo, conntrack ka vin yon bouche limite nan sistèm ou an. Nan kèk ka, ajiste paramèt tab conntrack yo ka ase pou satisfè bezwen ou yo - lè w ogmante gwosè a oswa diminye timeouts conntrack yo (men si ou fè li mal, ou pral kouri nan anpil pwoblèm). Pou lòt ka li pral nesesè yo kontoune kontrak pou trafik agresif.

Vrè egzanp

Ann bay yon egzanp espesifik: yon gwo founisè SaaS nou te travay ak te gen yon kantite sèvè memcached sou lame (pa machin vityèl), chak nan yo ki trete 50K + kout tèm koneksyon pou chak segonn.

Yo te fè eksperyans ak konfigirasyon conntrack la, ogmante gwosè tab la ak diminye tan swivi, men konfigirasyon an pa t fyab, konsomasyon RAM ogmante anpil, ki te yon pwoblèm (sou lòd GBytes!), ak koneksyon yo te tèlman kout ke conntrack pa t '. kreye benefis pèfòmans nòmal li yo (diminye CPU konsomasyon oswa latansi pake).

Yo te tounen vin jwenn Calico kòm yon altènatif. Règleman rezo Calico pèmèt ou pa sèvi ak conntrack pou sèten kalite trafik (itilize opsyon politik doNotTrack). Sa a te ba yo nivo pèfòmans yo te bezwen, plis nivo sekirite te ajoute pa Calico.

Ki longè ou pral oblije ale nan kontoune conttrack?

  • Règleman rezo ki pa swiv yo ta dwe jeneralman simetrik. Nan ka a nan founisè SaaS la: aplikasyon yo te kouri andedan zòn nan pwoteje ak Se poutèt sa, lè l sèvi avèk politik rezo, yo te kapab lis trafik nan lòt aplikasyon espesifik ki te pèmèt aksè nan memcached.
  • Règleman pa swiv la pa pran an kont direksyon koneksyon an. Kidonk, si sèvè memcached la rache, ou ka teyorikman eseye konekte ak nenpòt nan kliyan memcached yo, osi lontan ke li sèvi ak pò sous ki kòrèk la. Sepandan, si ou te defini kòrèkteman politik rezo a pou kliyan memcached ou yo, lè sa a, tantativ koneksyon sa yo ap toujou rejte sou bò kliyan an.
  • Règleman pa swiv la aplike nan chak pake, kontrèman ak règleman nòmal, ki aplike sèlman nan premye pake nan yon koule. Sa a ka ogmante konsomasyon CPU pou chak pake paske politik la dwe aplike pou chak pake. Men, pou koneksyon ki dire lontan, depans sa a balanse pa rediksyon nan konsomasyon resous pou pwosesis konttrack. Pou egzanp, nan ka a nan yon founisè SaaS, kantite pake pou chak koneksyon te piti anpil, kidonk konsomasyon CPU adisyonèl lè w ap aplike règleman pou chak pake te jistifye.

Ann kòmanse teste

Nou te kouri tès la sou yon sèl gous ak yon sèvè memcached ak plizyè gous kliyan memcached kouri sou nœuds aleka pou nou ka kouri yon gwo kantite koneksyon pou chak segonn. Sèvè a ak gous sèvè memcached la te gen 8 nwayo ak 512k antre nan tab la conntrack (tabli estanda gwosè tab la pou lame a).
Nou mezire diferans pèfòmans ant: pa gen okenn politik rezo; ak politik Calico regilye; ak politik Calico pa swiv.

Pou premye tès la, nou mete kantite koneksyon a 4.000 pou chak segonn, pou nou ka konsantre sou diferans ki genyen nan konsomasyon CPU. Pa te gen okenn diferans enpòtan ant pa gen okenn politik ak règleman regilye, men-pa-swiv ogmante konsomasyon CPU pa apeprè 20%:

Lè Linux conttrack pa zanmi ou ankò

Nan dezyèm tès la, nou te lanse anpil koneksyon jan kliyan nou yo te kapab jenere ak mezire kantite maksimòm koneksyon pa segonn ke sèvè memcached nou an te kapab okipe. Kòm espere, ka "pa gen okenn politik" ak "politik regilye" tou de te rive nan limit kontre a nan plis pase 4,000 koneksyon pou chak segonn (512k / 120s = 4,369 koneksyon / s). Avèk yon politik pa swiv, kliyan nou yo voye 60,000 koneksyon pa segonn san okenn pwoblèm. Nou sèten nou ta ka ogmante nimewo sa a lè nou ajoute plis kliyan, men nou santi nimewo sa yo deja ase pou ilistre pwen atik sa a!

Lè Linux conttrack pa zanmi ou ankò

Konklizyon

Conntrack se yon karakteristik nwayo enpòtan. Li fè travay li pafètman. Li se souvan itilize pa eleman kle sistèm yo. Sepandan, nan kèk senaryo espesifik, konjesyon an akòz conntrack depase benefis nòmal li bay. Nan senaryo sa a, politik rezo Calico yo ka itilize pou oaza enfim itilizasyon conntrack pandan y ap ogmante sekirite rezo a. Pou tout lòt trafik, conttrack ap kontinye zanmi w!

Epitou li lòt atik sou blog nou an:

Sous: www.habr.com

Add nouvo kòmantè