Nuair nach bhfuil Linux conntrack do chara a thuilleadh

Nuair nach bhfuil Linux conntrack do chara a thuilleadh

Is gné lárnach de chruach líonraithe eithne Linux é rianú naisc (“conntrack”). Ligeann sé don eithne súil a choinneáil ar gach nasc nó sreabhadh loighciúil líonra agus ar an mbealach sin na paicéid go léir a dhéanann suas gach sreabhadh a shainaithint ionas gur féidir iad a phróiseáil le chéile go seicheamhach.

Is gné thábhachtach eithne é Conntrack a úsáidtear i roinnt cásanna bunúsacha:

  • Bíonn NAT ag brath ar fhaisnéis ó conntrack ionas gur féidir leis gach paicéad ón sruth céanna a chóireáil go cothrom. Mar shampla, nuair a fhaigheann pod rochtain ar sheirbhís Kubernetes, úsáideann an comhardaithe ualaigh kube-proxy NAT chun trácht a dhíriú chuig pod sonrach laistigh den bhraisle. Taifeadann Conntrack nach mór na paicéid go léir chuig an tseirbhís IP a sheoladh chuig an pod céanna, i gcás nasc áirithe, agus go gcaithfear paicéid a sheoltar ar ais ag an gcúlcheann a thabhairt ar ais go dtí an pod ónar tháinig an t-iarratas.
  • Bíonn ballaí dóiteáin státracha ar nós Calico ag brath ar fhaisnéis ó nascrian go trácht “freagra” bánliosta. Ligeann sé seo duit polasaí líonra a scríobh a deir " lig do mo phod ceangal le haon seoladh IP iargúlta" gan polasaí a scríobh chun trácht freagartha a cheadú go sainráite. (Gan é seo, bheadh ​​ort riail i bhfad níos lú slán a chur leis “ceadaigh paicéid chuig mo phod ó aon IP”.)

Ina theannta sin, is gnách go bhfeabhsaíonn conntrack feidhmíocht an chórais (trí thomhaltas LAP agus latency paicéid a laghdú) ós rud é nach bhfuil ach an chéad phaicéad i sruth
Ní mór dul tríd an chairn líonra iomlán chun a chinneadh cad atá le déanamh leis. Féach ar an bpost"Comparáid idir modhanna kube-seachfhreastalaí" sampla a fheiceáil den chaoi a n-oibríonn sé.

Mar sin féin, tá teorainneacha ag contrack ...

Mar sin cá ndeachaigh sé go léir mícheart?

Tá uasmhéid inchumraithe ag an tábla conntrack, agus má éiríonn sé lán, is gnách go dtosófar ar naisc a dhiúltú nó a scaoileadh. Tá go leor spáis saor in aisce sa tábla chun trácht an chuid is mó de na hiarratais a láimhseáil, agus ní bheidh sé seo ina fhadhb. Mar sin féin, tá roinnt cásanna ann inar féidir leat smaoineamh ar an tábla conntrack a úsáid:

  • Is é an cás is soiléire ná má láimhseálann do fhreastalaí líon an-mhór de naisc atá gníomhach i gcomhthráth. Mar shampla, má tá do thábla conntrack cumraithe le haghaidh iontrálacha 128k, ach tá naisc chomhthráthacha> 128k agat, is cinnte go mbeidh fadhb agat!
  • Cás nach bhfuil chomh soiléir céanna: má phróiseálann do fhreastalaí líon mór nasc in aghaidh an tsoicind. Fiú má tá na naisc gearr-chónaí, leanann Linux ar aghaidh ag déanamh monatóireachta orthu ar feadh roinnt ama (120s de réir réamhshocraithe). Mar shampla, má tá do tábla conntrack cumraithe le haghaidh iontráil 128k agus má tá tú ag iarraidh 1100 nasc a láimhseáil in aghaidh an tsoicind, sáróidh siad méid an tábla conntrack fiú má tá na naisc an-ghearr (128k/120s = 1092 nasc/s ).

Tá roinnt cineálacha nideoige apps a thagann isteach sna catagóirí seo. Ina theannta sin, má tá go leor droch-aisteoirí agat, d'fhéadfaí tábla conntrack do fhreastalaí a líonadh le go leor naisc leath-oscailte a úsáid mar chuid d'ionsaí séanadh seirbhíse (DOS). Sa dá chás, is féidir le conntrack a bheith ina scrogall teorannach i do chóras. I gcásanna áirithe, b’fhéidir gur leor paraiméadair an tábla conntrack a choigeartú chun freastal ar do chuid riachtanas - tríd an méid a mhéadú nó trí na tréimhsí ama conntrack a laghdú (ach má dhéanann tú mícheart é, beidh go leor trioblóide agat). I gcásanna eile beidh sé riachtanach conrian a sheachbhóthar do thrácht ionsaitheach.

Fíor-shampla

Tabhair dúinn sampla sonrach: bhí roinnt freastalaithe memcached ar óstach (ní meaisíní fíorúla) ag soláthraí SaaS mór amháin ar oibrigh muid leis, agus phróiseáil gach ceann acu naisc ghearrthéarmacha 50K + in aghaidh an tsoicind.

Rinne siad turgnamh le cumraíocht conntrack, ag méadú méideanna tábla agus ag laghdú am rianaithe, ach ní raibh an chumraíocht iontaofa, tháinig méadú suntasach ar thomhaltas RAM, rud a bhí ina fhadhb (ar ordú GBytes!), Agus bhí na naisc chomh gearr sin nach raibh conntrack a ghnáth-thairbhe feidhmíochta a chruthú (LAP tomhaltas laghdaithe nó latency paicéad).

Thiontaigh siad go Calico mar mhalairt air sin. Ligeann beartais líonra Calico duit gan conntrack a úsáid le haghaidh cineálacha áirithe tráchta (ag baint úsáide as an rogha beartais doNotTrack). Thug sé seo an leibhéal feidhmíochta a bhí de dhíth orthu chomh maith leis an leibhéal breise slándála a chuir Calico ar fáil.

Cén faid a chaithfidh tú a dhéanamh chun conntrack a sheachbhóthar?

  • Go ginearálta, ba cheart go mbeadh beartais líonra Ná Déan Rian siméadrach. I gcás an tsoláthraí SaaS: bhí a bhfeidhmchláir ar siúl laistigh de chrios cosanta agus mar sin, trí úsáid a bhaint as beartas líonra, d'fhéadfaidís trácht a liostú ó fheidhmchláir shonracha eile ar ceadaíodh rochtain dóibh ar memcached.
  • Ní chuirtear treo an naisc san áireamh sa bheartas ná rian. Mar sin, má tá an freastalaí memcached hacked, is féidir leat go teoiriciúil iarracht a dhéanamh ceangal le haon cheann de na cliaint memcached, chomh fada agus a úsáideann sé an bunphort ceart. Mar sin féin, má tá an polasaí líonra sainmhínithe i gceart agat do do chliaint memcached, diúltófar do na hiarrachtaí nasc seo fós ar thaobh an chliaint.
  • Cuirtear an beartas do-not-track i bhfeidhm ar gach paicéad, seachas ar ghnáthbheartais, nach gcuirtear i bhfeidhm ach ar an gcéad phaicéad i sreabhadh. Is féidir leis seo an tomhaltas LAP in aghaidh an phaicéid a mhéadú mar ní mór an polasaí a chur i bhfeidhm do gach paicéad. Ach maidir le naisc ghearrthréimhseacha, déantar an costas seo a chothromú leis an laghdú ar thomhaltas acmhainní le haghaidh próiseála conntrack. Mar shampla, i gcás soláthraí SaaS, bhí líon na bpacáistí do gach nasc an-bheag, agus mar sin bhí an tomhaltas breise LAP agus polasaithe á gcur i bhfeidhm ar gach paicéad inchosanta.

Let tús le tástáil

Reáchtáil muid an tástáil ar pod amháin le freastalaí memcached agus pods cliant memcached iolracha ag rith ar nóid iargúlta, agus mar sin d'fhéadfadh muid a reáchtáil líon an-mhór de naisc in aghaidh an tsoicind. Bhí 8 gcroí agus 512k iontráil sa tábla conntrack ag an bhfreastalaí leis an pod freastalaí memcached (an gnáthmhéid tábla cumraithe don óstach).
Thomhaiseamar an difríocht feidhmíochta idir: gan aon bheartas líonra; le beartas rialta Calico; agus beartas ná rian Calico.

Don chéad tástáil, leagamar líon na nasc go 4.000 in aghaidh an tsoicind, ionas go bhféadfaimis díriú ar an difríocht i dtomhaltas LAP. Ní raibh aon difríochtaí suntasacha idir aon pholasaí agus beartas rialta, ach ná déan rianú ar thomhaltas méadaithe LAP thart ar 20%:

Nuair nach bhfuil Linux conntrack do chara a thuilleadh

Sa dara tástáil, sheolamar an oiread naisc agus a d'fhéadfadh ár gcliaint an t-uaslíon nasc in aghaidh an tsoicind a ghiniúint agus a thomhas a d'fhéadfadh ár bhfreastalaí memcached a láimhseáil. Mar a bheifí ag súil leis, shroich na cásanna “gan pholasaí” agus “polasaí rialta” an teorainn conrianta de níos mó ná 4,000 nasc in aghaidh an tsoicind (512k / 120s = 4,369 nasc/s). Le polasaí ná rian, sheol ár gcliaint 60,000 nasc in aghaidh an tsoicind gan aon fhadhbanna. Táimid cinnte go bhféadfaimis an líon seo a mhéadú trí níos mó cliant a chur leis, ach is dóigh linn go bhfuil na huimhreacha seo go leor cheana féin chun pointe an ailt seo a léiriú!

Nuair nach bhfuil Linux conntrack do chara a thuilleadh

Conclúid

Is gné thábhachtach eithne é Conntrack. Déanann sé a phost go foirfe. Is minic a úsáideann comhpháirteanna lárnacha an chórais é. I roinnt cásanna sonracha, áfach, is mó an plódú de bharr conrianta ná na gnáthbhuntáistí a sholáthraíonn sé. Sa chás seo, is féidir beartais líonra Calico a úsáid chun úsáid conntrack a dhíchumasú go roghnach agus slándáil líonra a mhéadú. Maidir le gach trácht eile, is é conntrack fós do chara!

Léigh ailt eile ar ár mblag freisin:

Foinse: will.com

Add a comment