Nigbati Conntrack Linux kii ṣe ọrẹ rẹ mọ

Nigbati Conntrack Linux kii ṣe ọrẹ rẹ mọ

Ipasẹ asopọ (“conntrack”) jẹ ẹya pataki ti akopọ Nẹtiwọọki ekuro Linux. O gba ekuro laaye lati tọju abala gbogbo awọn asopọ nẹtiwọọki ọgbọn tabi awọn ṣiṣan ati nitorinaa ṣe idanimọ gbogbo awọn apo-iwe ti o jẹ ṣiṣan kọọkan ki wọn le ṣe ilana papọ ni atẹlera.

Conntrack jẹ ẹya pataki ekuro ti o lo ni diẹ ninu awọn ọran ipilẹ:

  • NAT da lori alaye lati conntrack ki o le toju gbogbo awọn apo-iwe lati kanna san se. Fun apẹẹrẹ, nigbati adarọ ese ba wọle si iṣẹ Kubernetes kan, iwọntunwọnsi fifuye kube-proxy lo NAT lati darí ijabọ si adarọ-ese kan pato laarin iṣupọ. Conntrack ṣe igbasilẹ pe fun asopọ ti a fun, gbogbo awọn apo-iwe si iṣẹ IP gbọdọ wa ni fifiranṣẹ si adarọ-ese kanna, ati pe awọn apo-iwe ti o pada nipasẹ adarọ ese gbọdọ jẹ NATed pada si podu lati eyiti ibeere naa ti wa.
  • Awọn ogiriina ti ipinlẹ gẹgẹbi Calico gbarale alaye lati ọna asopọ si iwe ijabọ “idahun”. Eyi n gba ọ laaye lati kọ eto imulo nẹtiwọọki kan ti o sọ pe “gba adarọ-ese mi laaye lati sopọ si eyikeyi adiresi IP latọna jijin” laisi nini lati kọ eto imulo kan lati gba awọn ijabọ esi ni gbangba. (Laisi eyi, iwọ yoo ni lati ṣafikun aabo ti o kere pupọ “gba awọn apo-iwe laaye si adarọ-ese mi lati eyikeyi ofin IP”.)

Ni afikun, conntrack ni igbagbogbo ṣe ilọsiwaju iṣẹ ṣiṣe eto (nipa idinku agbara Sipiyu ati airi soso) niwọn igba akọkọ ti soso ninu ṣiṣan kan nikan
gbọdọ lọ nipasẹ gbogbo akopọ nẹtiwọki lati pinnu kini lati ṣe pẹlu rẹ. Wo ifiweranṣẹ naa "Afiwera ti kube-aṣoju igbe"lati wo apẹẹrẹ ti bii eyi ṣe n ṣiṣẹ.

Sibẹsibẹ, conntrack ni awọn idiwọn rẹ ...

Nitorina nibo ni gbogbo rẹ ti jẹ aṣiṣe?

Awọn conntrack tabili ni o ni a Configurable o pọju iwọn, ati ti o ba ti o ma n ni kikun, awọn isopọ maa bẹrẹ a kọ tabi silẹ. Aaye ọfẹ to wa ninu tabili lati mu ijabọ ti awọn ohun elo pupọ julọ, ati pe eyi kii yoo di iṣoro rara. Sibẹsibẹ, awọn oju iṣẹlẹ diẹ wa ninu eyiti o le fẹ lati ronu nipa lilo tabili conntrack:

  • Ọran ti o han julọ julọ ni ti olupin rẹ ba n kapa nọmba ti o tobi pupọ ti awọn asopọ ti nṣiṣe lọwọ nigbakanna. Fun apẹẹrẹ, ti o ba tunto tabili conntrack rẹ fun awọn titẹ sii 128k, ṣugbọn o ni> 128k awọn asopọ nigbakanna, dajudaju iwọ yoo ṣiṣe sinu iṣoro kan!
  • Ẹran ti o han gedegbe diẹ: ti olupin rẹ ba ṣe ilana nọmba ti o tobi pupọ ti awọn asopọ fun iṣẹju-aaya. Paapa ti awọn asopọ ba jẹ igba diẹ, wọn tẹsiwaju lati ṣe abojuto Linux fun igba diẹ (120s nipasẹ aiyipada). Fun apẹẹrẹ, ti o ba tunto tabili conntrack rẹ fun awọn titẹ sii 128k ati pe o n gbiyanju lati mu awọn asopọ 1100 fun iṣẹju kan, wọn yoo kọja iwọn ti tabili conntrack, paapaa ti awọn asopọ jẹ igba kukuru pupọ (128k/120s = 1092 awọn isopọ / s).

Ọpọlọpọ awọn oriṣi onakan ti awọn lw ti o ṣubu sinu awọn ẹka wọnyi. Ni afikun, ti o ba ni ọpọlọpọ awọn oṣere buburu, kikun tabili conntrack olupin rẹ pẹlu ọpọlọpọ awọn asopọ ṣiṣi-idaji le ṣee lo gẹgẹbi apakan ti ikọlu ikọlu iṣẹ (DOS). Ni awọn ọran mejeeji, conntrack le di igo diwọn ninu eto rẹ. Ni awọn igba miiran, ṣatunṣe awọn paramita tabili conntrack le to lati pade awọn iwulo rẹ - nipa jijẹ iwọn tabi idinku awọn akoko isọdi (ṣugbọn ti o ba ṣe aṣiṣe, iwọ yoo lọ sinu wahala pupọ). Fun awọn ọran miiran yoo jẹ pataki lati fori conntrack fun ijabọ ibinu.

Apeere gidi

Jẹ ki a fun apẹẹrẹ kan pato: olupese SaaS nla kan ti a ṣiṣẹ pẹlu ni nọmba awọn olupin memcached lori awọn ọmọ-ogun (kii ṣe awọn ẹrọ foju), ọkọọkan eyiti o ṣe ilana 50K + awọn asopọ igba kukuru fun iṣẹju-aaya.

Wọn ṣe idanwo pẹlu iṣeto ni conntrack, jijẹ awọn iwọn tabili ati idinku akoko ipasẹ, ṣugbọn iṣeto naa ko ni igbẹkẹle, agbara Ramu pọ si ni pataki, eyiti o jẹ iṣoro (lori aṣẹ GBytes!), Ati pe awọn asopọ jẹ kukuru pe conntrack ko ṣe. ṣẹda anfani iṣẹ deede rẹ (CPU agbara idinku tabi lairi soso).

Wọn yipada si Calico bi yiyan. Awọn eto imulo nẹtiwọọki Calico gba ọ laaye lati ma lo conntrack fun awọn iru ijabọ kan (lilo aṣayan eto imulo doNotTrack). Eyi fun wọn ni ipele ti iṣẹ ṣiṣe ti wọn nilo, pẹlu ipele aabo ti a ṣafikun nipasẹ Calico.

Awọn ipari wo ni iwọ yoo ni lati lọ lati fori isọdọkan?

  • Maṣe tọpa awọn ilana nẹtiwọọki yẹ ki o jẹ alapọpọ ni gbogbogbo. Ninu ọran ti olupese SaaS: awọn ohun elo wọn ṣiṣẹ ni agbegbe agbegbe ti o ni aabo ati nitorinaa, ni lilo eto imulo nẹtiwọọki, wọn le ṣe funfun awọn ijabọ lati awọn ohun elo kan pato ti o gba laaye lati wọle si memcached.
  • Ilana maṣe-orin ko ṣe akiyesi itọsọna ti asopọ. Nitorinaa, ti olupin memcached ba ti gepa, o le ni imọ-jinlẹ gbiyanju lati sopọ si eyikeyi awọn alabara memcached, niwọn igba ti o nlo ibudo orisun to pe. Bibẹẹkọ, ti o ba ti ṣalaye eto imulo nẹtiwọọki ni deede fun awọn alabara memcached rẹ, lẹhinna awọn igbiyanju asopọ wọnyi yoo tun kọ ni ẹgbẹ alabara.
  • Ilana maṣe-orin ni a lo si gbogbo apo-iwe, ni idakeji si awọn eto imulo deede, eyiti a lo nikan si apo-iwe akọkọ ni ṣiṣan kan. Eyi le mu agbara Sipiyu pọ si fun soso nitori eto imulo gbọdọ wa ni lilo fun soso kọọkan. Ṣugbọn fun awọn asopọ igba kukuru, inawo yii jẹ iwọntunwọnsi nipasẹ idinku ninu lilo awọn orisun fun sisẹ ilodisi. Fun apẹẹrẹ, ninu ọran ti olupese SaaS, nọmba awọn apo-iwe fun asopọ kọọkan kere pupọ, nitorinaa afikun agbara Sipiyu nigba lilo awọn eto imulo si apo-iwe kọọkan jẹ idalare.

Jẹ ki a bẹrẹ idanwo

A ṣe idanwo naa lori adarọ ese kan pẹlu olupin memcached ati ọpọlọpọ awọn adarọ-ese alabara memcached ti nṣiṣẹ lori awọn apa jijin ki a le ṣiṣe nọmba ti o tobi pupọ ti awọn isopọ fun iṣẹju kan. Olupin pẹlu adarọ-ese olupin memcached ni awọn ohun kohun 8 ati awọn titẹ sii 512k ninu tabili conntrack (iwọn tabili ti a tunto boṣewa fun agbalejo).
A ṣe iwọn iyatọ iṣẹ laarin: ko si eto imulo nẹtiwọki; pẹlu eto imulo Calico deede; ati Calico ma-ko-orin imulo.

Fun idanwo akọkọ, a ṣeto nọmba awọn asopọ si 4.000 fun iṣẹju kan, nitorinaa a le dojukọ iyatọ ninu lilo Sipiyu. Ko si awọn iyatọ pataki laarin ko si eto imulo ati eto imulo deede, ṣugbọn maṣe tọpinpin agbara Sipiyu pọ si nipa iwọn 20%:

Nigbati Conntrack Linux kii ṣe ọrẹ rẹ mọ

Ninu idanwo keji, a ṣe ifilọlẹ ọpọlọpọ awọn asopọ bi awọn alabara wa ṣe le ṣe ipilẹṣẹ ati wiwọn nọmba awọn asopọ ti o pọ julọ fun iṣẹju kan ti olupin memcached le mu. Gẹgẹbi a ti ṣe yẹ, awọn ọran “ko si eto imulo” ati “eto imulo deede” awọn mejeeji de opin isunmọ ti o ju awọn asopọ 4,000 fun iṣẹju kan (512k/120s = 4,369 awọn asopọ/s). Pẹlu eto imulo maṣe-orin, awọn alabara wa firanṣẹ awọn asopọ 60,000 fun iṣẹju kan laisi awọn iṣoro eyikeyi. A ni idaniloju pe a le mu nọmba yii pọ si nipa fifi awọn alabara diẹ sii, ṣugbọn a lero pe awọn nọmba wọnyi ti to lati ṣapejuwe aaye ti nkan yii!

Nigbati Conntrack Linux kii ṣe ọrẹ rẹ mọ

ipari

Conntrack jẹ ẹya pataki ekuro. O ṣe iṣẹ rẹ ni pipe. Nigbagbogbo a lo nipasẹ awọn paati eto bọtini. Bibẹẹkọ, ni diẹ ninu awọn oju iṣẹlẹ kan pato, isunmọ nitori conntrack ju awọn anfani deede ti o pese. Ninu oju iṣẹlẹ yii, awọn eto nẹtiwọọki Calico le ṣee lo lati yan yiyan lilo lilo ilodisi lakoko ti o npọ si aabo nẹtiwọọki. Fun gbogbo awọn ijabọ miiran, contrack tẹsiwaju lati jẹ ọrẹ rẹ!

Tun ka awọn nkan miiran lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun