Ha Linux contrack ha e sa le motsoalle oa hau

Ha Linux contrack ha e sa le motsoalle oa hau

Ho latela khokahano ("conntrack") ke karolo ea mantlha ea "Linux kernel networking stack". E lumella kernel ho boloka tlaleho ea likhokahano tsohle tse hlakileng tsa marang-rang kapa phallo mme ka hona e tsebahatse lipakete tsohle tse etsang phallo ka 'ngoe e le hore li ka sebetsoa hammoho ka tatellano.

Contrack ke karolo ea bohlokoa ea kernel e sebelisoang maemong a mang a mantlha:

  • NAT e itšetleha ka tlhahisoleseling e tsoang ho contrack kahoo e khona ho tšoara lipakete tsohle tse tsoang molapong o le mong ka ho lekana. Mohlala, ha pod e fihlella ts'ebeletso ea Kubernetes, selefouno ea kube-proxy load e sebelisa NAT ho lebisa sephethephethe ho pod e itseng ka har'a sehlopha. Litlaleho tsa Conntrack hore bakeng sa khokahanyo e fanoeng, lipakete tsohle tsa tšebeletso ea IP li tlameha ho romelloa ho pod e le 'ngoe, le hore lipakete tse khutliselitsoeng ke mokokotlo oa mokokotlo li tlameha ho khutlisetsoa ho pod eo kopo e tsoang ho eona.
  • Li-firewall tse hlakileng joalo ka Calico li itšetleha ka tlhaiso-leseling e tsoang ho sehokelo ho ea ho sephethephethe sa "karabo" ea whitelist. Sena se u nolofalletsa ho ngola leano la marang-rang le reng "lumella pod ea ka hore e hokahane le aterese leha e le efe e hole ea IP" ntle le ho ngola leano ho lumella sephethephethe sa karabo ka ho hlaka. (Kantle ho sena, o tla tlameha ho eketsa tse sireletsehileng haholo "lumella lipakete ho pod ho tsoa molaong ofe kapa ofe oa IP".)

Ntle le moo, conntrack e atisa ho ntlafatsa ts'ebetso ea sistimi (ka ho fokotsa ts'ebeliso ea CPU le latency ea pakete) ho tloha feela pakete ea pele molapong.
e tlameha ho feta har'a marang-rang a marang-rang ho fumana hore na u etse eng ka eona. Sheba poso "Papiso ea mekhoa ea kube-proxy" ho bona mohlala oa kamoo e sebetsang kateng.

Leha ho le joalo, contrack e na le mefokolo ea eona ...

Joale ho ile ha senyeha hokae?

Tafole ea contrack e na le boholo bo ka lokisoang, 'me haeba e tlala, likhokahano hangata li qala ho haneloa kapa ho theoa. Ho na le sebaka se lekaneng sa mahala tafoleng ho sebetsana le sephethephethe sa likopo tse ngata, 'me sena se ke ke sa fetoha bothata. Leha ho le joalo, ho na le maemo a 'maloa ao u ka ratang ho nahana ka ho sebelisa tafole ea contrack:

  • Taba e totobetseng ke hore seva ea hau e sebetsana le palo e kholo haholo ea likhokahano tse sebetsang ka nako e le 'ngoe. Mohlala, haeba tafole ea hau ea contrack e lokiselitsoe ho kenya 128k, empa u na le> 128k likhokahano tsa nako e le ngoe, ka sebele u tla kena bothateng!
  • Nyeoe e sa bonahaleng hanyane: haeba seva sa hau se sebetsa palo e kholo haholo ea likhokahano motsotsoana. Leha likhokahano li phela nakoana, li ntse li tsoela pele ho beoa leihlo ke Linux ka nako e itseng (li-120s ka ho sa feleng). Mohlala, haeba tafole ea hau ea contrack e lokiselitsoe ho kenya 128k 'me u leka ho sebetsana le likhokahano tse 1100 motsotsoana, li tla feta boholo ba tafole ea contrack, leha likhokahano li phela nako e khuts'oane haholo (128k/120s = 1092 likhokahano/ s).

Ho na le mefuta e mengata ea li-niche tsa li-apps tse oelang likarolong tsena. Ho feta moo, haeba u na le batšoantšisi ba bangata ba babe, ho tlatsa tafole ea contrack ea seva sa hau ka likhokahano tse ngata tse bulehileng ho ka sebelisoa e le karolo ea tlhaselo ea ho hana tšebeletso (DOS). Maemong ana ka bobeli, conntrack e ka ba tšitiso e fokolang tsamaisong ea hau. Maemong a mang, ho lokisa li-parameter tsa tafole ea contrack ho ka ba ho lekaneng ho fihlela litlhoko tsa hau - ka ho eketsa boholo kapa ho fokotsa nako ea contrack (empa haeba u e etsa hampe, u tla kena mathateng a mangata). Bakeng sa linyeoe tse ling ho tla hlokahala hore ho khelohe contrack bakeng sa sephethephethe se mabifi.

Mohlala oa sebele

Ha re fane ka mohlala o ikhethileng: mofani e mong e moholo oa SaaS eo re sebelitseng le eena o ne a e-na le li-server tse 'maloa tse bolokiloeng ho mabotho (eseng mechini ea sebele), e' ngoe le e 'ngoe e sebetsanang le likhokahano tsa nako e khuts'oane tsa 50K + motsotsoana.

Ba ile ba leka ka tlhophiso ea conntrack, ho eketsa boholo ba litafole le ho fokotsa nako ea ho latela, empa tlhophiso e ne e sa tšepahale, tšebeliso ea RAM e ile ea eketseha haholo, e leng bothata (ka taelo ea GBytes!), 'me likhokahano li ne li le khutšoanyane hoo conntrack e sa kang ea e-ba teng. theha molemo oa eona o tloaelehileng oa ts'ebetso (CPU e fokotsehileng kapa latency ea pakete).

Ba ile ba retelehela ho Calico e le mokhoa o mong. Melao ea marang-rang ea Calico e u lumella hore u se sebelise contrack bakeng sa mefuta e itseng ea sephethephethe (u sebelisa khetho ea leano la doNotTrack). Sena se ile sa ba fa boemo ba ts'ebetso eo ba e hlokang, hammoho le boemo bo eketsehileng ba tšireletso bo fanoeng ke Calico.

U tla tlameha ho nka nako e kae ho feta contrack?

  • Melao-motheo ea ho se latelle marang-rang e tlameha ho ba ea symmetrical. Tabeng ea mofani oa SaaS: likopo tsa bona li ne li sebetsa ka hare ho sebaka se sirelelitsoeng 'me ka hona, ho sebelisa leano la marang-rang, ba ne ba ka etsa whitelist sephethephethe ho tsoa lits'ebetsong tse ling tse khethehileng tse lumelloang ho fihlella memcached.
  • Leano la ho se latelle ha le ele hloko tataiso ea khokahano. Kahoo, haeba seva sa memcached se utsuoa, u ka leka ho hokela leha e le efe ea bareki ba memcached, ha feela e sebelisa boema-kepe bo nepahetseng ba mohloli. Leha ho le joalo, haeba u hlalositse ka nepo pholisi ea marang-rang bakeng sa bareki ba hau ba memcached, liteko tsena tsa khokahano li ntse li tla hanoa ka lehlakoreng la bareki.
  • Leano la ho se ts'oarelle le sebelisoa ho pakete e 'ngoe le e' ngoe, ho fapana le maano a tloaelehileng, a sebelisoang feela ho pakete ea pele ka phallo. Sena se ka eketsa tšebeliso ea CPU pakete ka 'ngoe hobane leano le tlameha ho sebelisoa bakeng sa pakete ka 'ngoe. Empa bakeng sa likhokahano tsa nako e khuts'oane, litšenyehelo tsena li lekanngoe ke phokotso ea tšebeliso ea lisebelisoa bakeng sa ts'ebetso ea conntrack. Ka mohlala, tabeng ea mofani oa SaaS, palo ea lipakete bakeng sa khokahanyo e 'ngoe le e' ngoe e ne e le nyenyane haholo, kahoo tšebeliso e eketsehileng ea CPU ha u sebelisa maano ho pakete ka 'ngoe e ne e nepahetse.

Ha re qaleng ho etsa liteko

Re ile ra etsa tlhahlobo ho pod e le 'ngoe e nang le seva e kentsoeng le li-pods tsa bareki ba memcached tse ngata tse sebetsang ho li-node tse hole e le hore re ka tsamaisa palo e kholo haholo ea likhokahano motsotsoana. Seva e nang le memcached server pod e ne e na le li-cores tse 8 le 512k tse kentsoeng tafoleng ea conntrack (tekanyo e tloaelehileng ea boholo ba tafole bakeng sa moamoheli).
Re ile ra lekanya phapang ea ts'ebetso pakeng tsa: ha ho leano la marang-rang; ka leano la kamehla la Calico; le leano la Calico u se ke oa latella.

Bakeng sa teko ea pele, re behile palo ea likhokahano ho 4.000 ka motsotsoana, kahoo re ka tsepamisa maikutlo phapanong ea tšebeliso ea CPU. Ho ne ho se na liphapang tse kholo lipakeng tsa ho se be le leano le leano le tloaelehileng, empa u se ke oa latela tšebeliso ea CPU ka hoo e ka bang 20%:

Ha Linux contrack ha e sa le motsoalle oa hau

Tekong ea bobeli, re ile ra thakhola likhokahano tse ngata kamoo bareki ba rona ba ka hlahisang le ho lekanya palo e kholo ea likhokahano ka motsotsoana tseo seva ea rona ea memcached e ka sebetsanang le eona. Joalo ka ha ho lebelletsoe, linyeoe tsa "ha ho pholisi" le "pholisi ea kamehla" ka bobeli li fihletse moeli oa likhokahano tse fetang 4,000 motsotsoana (512k / 120s = 4,369 connections/s). Ka leano la ho se latelle, bareki ba rona ba rometse likhokahano tse 60,000 motsotsoana ntle le mathata. Re na le bonnete ba hore re ka eketsa palo ena ka ho eketsa bareki ba bangata, empa re ikutloa hore linomoro tsena li se li lekane ho bontša ntlha ea sengoloa sena!

Ha Linux contrack ha e sa le motsoalle oa hau

fihlela qeto e

Contrack ke karolo ea bohlokoa ea kernel. O etsa mosebetsi oa hae ka ho phethahala. Hangata e sebelisoa ke likarolo tsa bohlokoa tsa tsamaiso. Leha ho le joalo, maemong a mang a khethehileng, tšubuhlellano e bakoang ke contrack e feta melemo e tloaelehileng eo e fanang ka eona. Boemong bona, maano a marang-rang a Calico a ka sebelisoa ho thibela ts'ebeliso ea contrack ha a ntse a eketsa ts'ireletso ea marang-rang. Bakeng sa sephethephethe se seng kaofela, contrack e ntse e tsoela pele ho ba motsoalle oa hau!

Hape bala lingoliloeng tse ling ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso