Fahamka fursadaha siyaasadda shabakada ee Calico

Fahamka fursadaha siyaasadda shabakada ee Calico

Shabakadda Calico waxay bixisaa siyaasado shabakadeed oo kala duwan oo leh hab-raac midaysan si loo ilaaliyo martigeliyayaasha qalabka, mishiinnada farsamada iyo boodhka. Xeerarkan waxaa lagu dabaqi karaa meel magac ah ama waxay noqon karaan siyaasado shabakad caalami ah oo khuseeya barta dhamaadka (si loo ilaaliyo codsiyada si toos ah ugu socda martigeliyaha - martigeliyaha wuxuu noqon karaa server ama mashiinka farsamada) ama dhamaadka shaqada (si loo ilaaliyo codsiyada ku dhex jira weelasha ama mashiinada farsamada gacanta ee la marti galiyay). Siyaasadaha Calico waxay kuu oggolaanayaan inaad ku dabaqdo tillaabooyinka amniga meelo kala duwan oo ah dariiqa xirmada adoo adeegsanaya xulashooyinka ay ka midka yihiin preDNAT, unracked, iyo applyOnForward. Fahamka sida xulashooyinkani u shaqeeyaan waxay gacan ka geysan kartaa hagaajinta amniga iyo waxqabadka nidaamkaaga guud. Maqaalkani waxa uu sharxayaa nuxurka xulashooyinka siyaasadda Calico (preDNAT, unracked and applyOnForward) lagu dabaqay dhibcaha dhamaadka, iyada oo xoogga la saarayo waxa ka dhacaya waddooyinka habaynta baakadaha (silsiladda iptabels).

Maqaalkani wuxuu u maleynayaa inaad leedahay faham aasaasi ah oo ku saabsan sida Kubernetes iyo siyaasadaha shabakada Calico u shaqeeyaan. Haddii aysan ahayn, waxaan kugula talineynaa inaad tijaabiso casharrada siyaasadda shabakadda aasaasiga ah ΠΈ tababarka ilaalinta martida loo yahay adigoo isticmaalaya Calico ka hor intaadan akhrin maqaalkan. Waxaan sidoo kale kaa fileynaa inaad faham aasaasi ah ka yeelato shaqada Iptables linux.

Calico siyaasadda shabakadda caalamiga ah Waxay kuu ogolaanaysaa inaad ku dabaqdo jaangooyooyin ka mid ah xeerarka gelitaanka ee sumadaha (kooxaha martida loo yahay iyo culaysyada shaqada/pods). Tani aad bay faa'iido u leedahay haddii aad si wada jir ah u isticmaasho nidaamyada kala duwan - mashiinnada farsamada, nidaam si toos ah qalabka, ama kaabayaasha kubernetes. Intaa waxaa dheer, waxaad ilaalin kartaa kutladaada (nodes) adiga oo isticmaalaya siyaasado cadeyn ah oo waxaad ku dabaqi kartaa siyaasadaha shabakada gaadiidka soo galaya (tusaale ahaan, adoo adeegsanaya NodePorts ama adeega IP-yada Dibadda).

Heer aasaasi ah, marka Calico uu ku xiro boodhka shabakadda (eeg jaantuska hoose), wuxuu ku xiraa martigeliyaha iyadoo la adeegsanayo is-dhexgalka Ethernet-ka ah (veth). Taraafikada ay soo dirtay boodhka ayaa u yimaada martida loo yahay interface-ka casriga ah waxaana loo farsameeyaa si la mid ah haddii ay ka timid shabakad muuqaal ah. Sida caadiga ah, Calico waxay u magacawday is-dhexgalka caliXXX. Mar haddii taraafikada ay ka timaaddo interface-ka farsamada, waxay martaa iptables sida haddii boodhka uu hal hop ka fog yahay. Sidaa darteed, marka taraafku ka yimaado/ka soo baxayo boodhka, waxa laga soo gudbiyaa aragtida martida loo yahay.

Dusha Kubernetes ee ku orda Calico, waxaad khariidad kartaa interface interfiyuuga ah (veth) culeyska shaqada sida soo socota. Tusaalaha hoose, waxaad arki kartaa in veth#10 (calic1cbf1ca0f8) uu ku xiran yahay cnx-maareeye-* ee goobta magac-kormeerka calico.

[centos@ip-172-31-31-46 K8S]$ sudo ip a
...
10: calic1cbf1ca0f8@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 5
    inet6 fe80::ecee:eeff:feee:eeee/64 scope link
       valid_lft forever preferred_lft forever
...

[centos@ip-172-31-31-46 K8S]$ calicoctl get wep --all-namespaces
...
calico-monitoring cnx-manager-8f778bd66-lz45m                            ip-172-31-31-46.ec2.internal 192.168.103.134/32
calic1cbf1ca0f8
...

Fahamka fursadaha siyaasadda shabakada ee Calico

Marka la eego in Calico ay u abuurto is-dhexgalka veth ee culeys kasta oo shaqo, sidee ayay u dhaqangelisaa siyaasadaha? Si tan loo sameeyo, Calico waxay ku abuurtaa silsilado silsilado kala duwan oo ah dariiqa farsamaynta baakidhka iyadoo la adeegsanayo iptables.

Jaantuska hoose wuxuu muujinayaa silsiladaha ku lug leh habaynta baakadaha ee iptables (ama nidaamka hoose ee netfilter). Marka baakidhku ka yimaado is-dhex-galka shabakadda, wuxuu marka hore maraa silsiladda PREROUTING. Go'aanka dariiqa ah ayaa markaa la sameeyaa, iyadoo taas ku saleysan, baakidhku wuxuu soo maraa INPUT (oo lagu hago habraacyada martigelinta) ama HORE (oo lagu hago boodh ama nood kale oo shabakadda ah). Laga bilaabo habka maxaliga ah, baakidhku waxa uu maraa OUTPUT ka dibna POSTROUTING silsiladda ka hor inta aan la soo dejin fiilada.

Ogsoonow in boodhku uu sidoo kale yahay wax ka baxsan (ku xidhan veth) marka la eego habaynta iptables. Aan soo koobno:

  • Taraafikada la sii gudbiyo (nat, la leexiyo ama laga soo leexiyo boodhka) ayaa dhex mara silsiladaha HORMARINTA - HOR-U-SOCODKA.
  • Gaadiidka u socda habka martida loo yahay ee maxaliga ahi waxa uu maraa silsilada PREROUTING - INPUT.
  • Gaadiidka ka imaanaya habka martida loo yahay ee deegaanka ayaa mara silsiladda OUTPUT - POSTROUTING.

Fahamka fursadaha siyaasadda shabakada ee Calico

Calico waxay ku siinaysaa doorashooyin siyaasadeed oo kuu oggolaanaya inaad ku dabaqdo siyaasadaha dhammaan silsiladaha. Anigoo taas maskaxda ku hayna, aan eegno xulashooyinka qaabeynta siyaasadda ee kala duwan ee laga heli karo Calico. Tirooyinka ku jira liiska xulashooyinka hoose waxay u dhigmaan tirooyinka jaantuska kore.

  1. Siyaasadda culayska shaqada ee dhammaadka (pod).
  2. Siyaasadda dhamaadka barta martida
  3. Xulashada ApplyOnForward
  4. Siyaasadda PreDNAT
  5. Siyaasad Aan La Raad-raacin

Aan ku bilowno inaan eegno sida siyaasadaha loogu dabaqo dhamaadka culeyska shaqada (Kubernetes pods ama OpenStack VMs), ka dibna aan eegno xulashooyinka siyaasada ee dhibcaha dhamaadka martigelinta.

Dhibcaha ugu dambeeya ee culeyska shaqada

Siyaasadda Halka Dhamaadka Shaqada (1)

Tani waa ikhtiyaar lagu ilaalinayo kubernetes galalkaaga. Calico waxay taageertaa la shaqaynta Kubernetes NetworkPolicy, laakiin waxay sidoo kale bixisaa siyaasado dheeraad ah - Calico NetworkPolicy iyo GlobalNetworkPolicy. Calico waxay u abuurtaa silsilad kasta oo ka mid ah boodhka (culayska shaqada) iyo xadhigga silsiladaha INPUT iyo OUTPUT ee culeyska shaqada ee miiska shaandhada ee silsiladda HORE.

Dhibcaha martida loo yahay

Siyaasadda Halka Dhamaadka ee Martigelinta (2)

Marka lagu daro CNI (container interface network), siyaasadaha Calico waxay bixiyaan awooda lagu ilaaliyo martida loo yahay lafteeda. Calico, waxaad abuuri kartaa barta dhamaadka martigelinta adoo qeexaya isku-darka isdhexgalka martida loo yahay iyo, haddii loo baahdo, lambarrada dekedaha. Dhaqangelinta siyaasadda ee hay'addan waxaa lagu gaaraa iyadoo la isticmaalayo miis filter oo ku jira silsiladaha INPUT iyo OUTPUT. Sida aad ka arki karto jaantuska, (2) waxay khuseeyaan hababka maxaliga ah ee nooda/martigeliyaha. Taasi waa, haddii aad abuurto siyaasad khuseeysa barta dhamaadka martida loo yahay, ma saameyn doonto taraafikada u socda / ka soo galaya boogahaaga. Laakin waxay ku siinaysaa hal interface/syntax loogu talagalay xannibaadda taraafikada martidaada iyo boodhadhka adiga oo isticmaalaya siyaasadaha Calico. Tani waxay si weyn u fududaynaysaa habka maaraynta siyaasadaha shabakad kala duwan. Dejinta siyaasadaha bar-dhamaadka martida loo yahay si kor loogu qaado amniga kooxda waa kiis kale oo muhiim ah oo la isticmaalo.

CodsoOnForward Policy (3)

Xulashada ApplyOnForward waxay ku jirtaa siyaasadda shabakadda caalamiga ah ee Calico si loogu oggolaado siyaasadaha in lagu dabaqo dhammaan taraafikada maraya barta dhammaadka martida loo yahay, oo ay ku jiraan taraafikada uu gudbin doono martida loo yahay. Tan waxaa ka mid ah taraafikada loo soo gudbiyo boodhka deegaanka ama meel kasta oo kale oo shabakada ah. Calico waxa uu u baahan yahay in goobtan loo sahlo siyaasadaha la isticmaalayo PreDNAT oo aan la raadin, arag qaybaha soo socda. Intaa waxaa dheer, ApplyOnForward waxaa loo isticmaali karaa si loola socdo taraafikada martida loo yahay kiisaska halka router-ka-muuqaalka ah ama software NAT la isticmaalo.

Ogsoonow in haddii aad u baahan tahay inaad ku dabaqdo isla siyaasad shabakad isku mid ah hababka martida loo yahay iyo boodhadhka, markaa uma baahnid inaad isticmaasho ikhtiyaarka ApplyOnForward. Waxa kaliya ee aad u baahan tahay inaad sameyso waa u samee calaamadda goobta loo baahan yahay ee martida loo yahay iyo dhamaadka culeyska shaqada (pod). Calico waa caqli ku filan inuu dhaqan geliyo siyaasada ku saleysan calaamadaha, iyadoon loo eegin nooca dhamaadka (hostendpoint ama culayska shaqada).

Siyaasadda PreDNAT (4)

Kubernetes gudaheeda, dekedaha hay'adda adeegga waxaa lagu soo bandhigi karaa dibadda iyadoo la adeegsanayo ikhtiyaarka NodePorts ama, ikhtiyaari ahaan (marka la isticmaalayo Calico), adoo xayaysiinaya iyaga oo isticmaalaya IPs-ka Cluster ama doorashooyinka IP-yada Dibadda. Kube-wakiil waxay isu dheellitiraysaa taraafikada soo gelaysa ee ku xidhan adeegga gunnada adeegga u dhigma iyadoo la isticmaalayo DNAT. Marka la eego tan, sidee ayaad u dhaqan galinaysaa siyaasadaha taraafikada soo mara NodePorts? Si loo hubiyo in siyaasadahan la dabaqo ka hor inta aan taraafikada lagu farsamayn DNAT (taas oo ah khariidad u dhaxaysa martigeliyaha:dekedda iyo adeega u dhigma), Calico waxa ay bixisaa halbeeg loogu talagalay GlobalNetworkPolicy oo loo yaqaan "preDNAT: run".

Marka hore-DNAT la furo, siyaasadahan waxaa lagu fuliyaa (4) jaantuska - miiska mangle ee silsiladda PREROUTING - isla markiiba ka hor DNAT. Nidaamka caadiga ah ee siyaasadaha laguma raacin halkan, maadaama ku dhaqanka siyaasadahan ay aad uga sii horeyso dariiqa socodsiinta taraafikada. Si kastaba ha ahaatee, siyaasadaha preDNAT waxay ixtiraamaan nidaamka codsiga dhexdooda.

Marka la abuurayo siyaasado leh pre-DNAT, waa muhiim inaad ka taxadarto taraafikada aad rabto inaad ka shaqeyso oo u oggolow badi in la diido. Gaadiidka loo calaamadeeyay 'ogolaan' ee siyaasada kahor-DNAT ma sii hubin doono siyaasada hostendpoint, halka taraafikada ku guul dareysata siyaasada kahor-DNAT ay ku sii socon doonto silsiladaha haray.
Calico waxa ay qasab ka dhigtay in ay awood siiso applyOnForward doorashada marka la isticmaalayo preDNAT,maadaama qeexitaan ahaan meesha taraafikada aan wali la dooran. Gaadiidka waxaa lagu jiheyn karaa habka martida loo yahay, ama waxaa loo gudbin karaa boodh ama nood kale.

Siyaasada aan la daba galin (5)

Shabakadaha iyo codsiyadu waxay yeelan karaan farqi weyn oo xagga dhaqanka ah. Xaaladaha aadka u daran, codsiyadu waxay dhalin karaan xidhiidho badan oo waqti-gaaban ah. Tani waxay keeni kartaa in isku-dheellitirka (qayb xudunta u ah xirmooyinka isku-xidhka Linux) ay ka baxdo xusuusta. Dhaqan ahaan, si aad u socodsiiso codsiyada noocaan ah Linux, waa inaad gacanta ku habaysataa ama aad joojisaa conntrack, ama aad qorto xeerarka iptables si aad uga gudubto conntrack. Siyaasadda aan la raacin ee Calico waa ikhtiyaar ka fudud oo waxtar badan haddii aad rabto inaad ka shaqeyso isku xirka sida ugu dhakhsaha badan ee suurtogalka ah. Tusaale ahaan, haddii aad isticmaasho mid weyn xasuusin ama sida cabbir dheeraad ah oo ka hortag ah DDOS.

Akhri kan post blog (ama turjumadeenaMacluumaad dheeraad ah, oo ay ku jiraan imtixaannada waxqabadka iyadoo la adeegsanayo siyaasad aan la socon.

Markaad dejiso ikhtiyaarka "doNotTrack: run" ee Calico globalNetworkPolicy, waxay noqonaysaa siyaasad ** aan la dabagalin waxaana lagu dabaqaa xilli hore dhuumaha farsamaynta xirmada Linux. Marka la eego jaantuska sare, siyaasadaha aan la raacin ayaa lagu dabaqaa silsiladaha PREROUTING iyo OUTPUT ee miiska ceeriin ka hor inta aan la bilaabin raadinta xiriirka (conntrack). Marka baakidhku ogolaado siyaasada aan la dabagalin, waxa lagu calaamadeeyay in la joojiyo xidhiidhka xidhidhiyaha baakidhkaas. Waxaa loola jeedaa:

  • Siyaasadda aan la dabagalin waxa lagu dabaqaa baakidhkiiba. Ma jiro fikrad xiriir (ama socodka). Xiriir la'aanta waxay leedahay dhowr cawaaqib oo muhiim ah:
  • Haddii aad rabto inaad oggolaato codsiga iyo taraafikada jawaabta labadaba, waxaad u baahan tahay sharci labadaba gudaha iyo dibeddaba (maadaama Calico caadi ahaan adeegsato conntrack si ay u calaamadiso taraafikada jawaabta sida la oggol yahay).
  • Siyaasadda aan la soconin uma shaqeyso Kubernetes culeyska shaqada (pods), sababtoo ah kiiskan ma jirto hab lagu ogaanayo xiriirka ka baxaya podska.
  • NAT si sax ah uguma shaqeyso baakado aan la raadin (maadaama kernel-ku uu kaydiyo khariidaynta NAT si toos ah).
  • Marka la dhex maro sharciga "ogolow dhammaan" ee ku jira siyaasadda aan la raadin, dhammaan xirmooyinka waxaa loo calaamadeyn doonaa kuwo aan la raadin. Tani had iyo jeer maaha waxa aad rabto, markaa waa muhiim inaad aad u doorato xirmooyinka ay ogol yihiin siyaasadaha aan la daba gelin (oo u oggolow taraafikada inteeda badan inay maraan siyaasadaha la raadraacay ee caadiga ah).
  • Xeerarka aan la raacin ayaa lagu dabaqaa bilowga hore ee dhuumaha farsamaynta baakadaha. Tani aad ayey muhiim u tahay in la fahmo marka la abuurayo siyaasadaha Calico. Waxaad yeelan kartaa siyaasad boodh ah oo leh nidaam:1 iyo siyaasad aan la daba socon oo leh:1000. Dhib ma yeelan doonto. Siyaasadda aan la raadin ayaa lagu dabaqi doonaa ka hor siyaasadda boodhka. Siyaasadaha aan la raacin waxay ixtiraamaan nidaamka fulinta dhexdooda oo keliya.

Sababtoo ah mid ka mid ah ujeedooyinka siyaasadda doNotTrack waa in la dhaqan geliyo siyaasadda goor hore ee dhuumaha farsamaynta baakadaha Linux, Calico waxay ka dhigaysaa mid qasab ah in la qeexo ikhtiyaarka applyOnForward marka la isticmaalayo doNotTrack. Iyadoo la tixraacayo jaantuska habaynta baakidhka, ogow in siyaasadda aan la raadin(5) la dabaqo ka hor inta aan la gaadhin go'aanno kale. Gaadiidka waxaa lagu jiheyn karaa habka martida loo yahay, ama waxaa loo gudbin karaa boodh ama nood kale.

Natiijooyinka

Waxaan eegnay xulashooyinka siyaasadeed ee kala duwan (Dhibcaha martida loo yahay, ApplyOnForward, preDNAT, iyo Untracked) ee Calico iyo sida loogu dabaqo dariiqa socodsiinta xirmooyinka. Fahamka sida ay u shaqeeyaan waxay ka caawisaa samaynta siyaasado wax ku ool ah oo badbaado leh. Calico waxaad isticmaali kartaa siyaasad shabakad caalami ah oo khusaysa summada (koox ka mid ah noodhka iyo pods) oo aad ku dabaqdo siyaasado leh cabbirro kala duwan. Tani waxay u ogolaaneysaa amniga iyo xirfadlayaasha naqshadeynta shabakada inay si ku habboon u ilaashadaan "wax walba" (noocyada dhamaadka) hal mar iyagoo isticmaalaya hal luqad siyaasad leh siyaasadaha Calico.

Mahadnaq: Waxaan jeclaan lahaa inaan u mahadceliyo Sean Crampton ΠΈ Alexa Pollitta dib u eegistooda iyo xogtooda qiimaha leh.

Source: www.habr.com

Add a comment