Nifhmu l-għażliet ta 'politika tan-netwerk ma' Calico

Nifhmu l-għażliet ta 'politika tan-netwerk ma' Calico

Il-plugin tan-netwerk Calico jipprovdi firxa wiesgħa ta 'politiki tan-netwerk b'sintassi unifikata biex tipproteġi l-hosts tal-hardware, il-magni virtwali u l-imżiewed. Dawn il-politiki jistgħu jiġu applikati fi spazju tal-isem jew ikunu politiki tan-netwerk globali li japplikaw għal endpoint ospitanti (biex jipproteġu l-applikazzjonijiet li jaħdmu direttament fuq il-host - il-host jista 'jkun server jew magna virtwali) jew endpoint tal-piż tax-xogħol (biex jipproteġu applikazzjonijiet li jaħdmu f'kontenituri jew magni virtwali ospitati). Il-politiki Calico jippermettulek tapplika miżuri ta' sigurtà f'diversi punti fil-mogħdija ta' pakkett billi tuża għażliet bħal preDNAT, unraracked, u applyOnForward. Il-fehim ta' kif jaħdmu dawn l-għażliet jista' jgħin biex itejjeb is-sigurtà u l-prestazzjoni tas-sistema ġenerali tiegħek. Dan l-artikolu jispjega l-essenza ta 'dawn l-għażliet ta' politika Calico (preDNAT, unraracked u applyOnForward) applikati għal endpoints ospitanti, b'enfasi fuq dak li jiġri fil-mogħdijiet tal-ipproċessar tal-pakketti (ktajjen iptabels).

Dan l-artikolu jassumi li għandek fehim bażiku ta 'kif jaħdmu l-politiki tan-netwerk ta' Kubernetes u Calico. Jekk le, nirrakkomandaw li tipprovaha tutorja bażika tal-politika tan-netwerk и tutorja tal-protezzjoni tal-host tuża Calico qabel taqra dan l-artikolu. Nistennew ukoll li jkollok fehim bażiku tax-xogħol iptables fil-linux.

Calico politika tan-netwerk globali jippermettilek tapplika sett ta’ regoli ta’ aċċess permezz ta’ tikketti (għal gruppi ta’ hosts u xogħolijiet/pods). Dan huwa utli ħafna jekk tuża sistemi eteroġeni flimkien - magni virtwali, sistema direttament fuq hardware, jew infrastruttura kubernetes. Barra minn hekk, tista 'tipproteġi l-cluster tiegħek (nodes) billi tuża sett ta' politiki dikjarattivi u tapplika politiki tan-netwerk għat-traffiku li jkun dieħel (pereżempju, permezz tas-servizz NodePorts jew External IPs).

Fuq livell fundamentali, meta Calico jgħaqqad pod man-netwerk (ara d-dijagramma hawn taħt), jgħaqqadha mal-ospitant billi tuża interface Ethernet virtwali (veth). It-traffiku mibgħut mill-pod jasal għand il-host minn din l-interface virtwali u jiġi pproċessat bl-istess mod bħallikieku ġie minn interface ta’ netwerk fiżiku. B'mod awtomatiku, Calico issemmi dawn l-interfaces caliXXX. Peress li t-traffiku jiġi mill-interface virtwali, jgħaddi minn iptables bħallikieku l-pod kien hop wieħed bogħod. Għalhekk, meta t-traffiku jasal lejn/minn pod, dan jintbagħat mill-perspettiva tal-host.

Fuq nodu Kubernetes li jħaddem Calico, tista 'mappa interface virtwali (veth) għal ammont ta' xogħol kif ġej. Fl-eżempju hawn taħt, tista 'tara li veth#10 (calic1cbf1ca0f8) huwa konness ma' cnx-manager-* fl-ispazju tal-isem tal-calico-monitoring.

[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
...

Nifhmu l-għażliet ta 'politika tan-netwerk ma' Calico

Minħabba li Calico joħloq interface veth għal kull ammont ta' xogħol, kif jinforza l-politiki? Biex tagħmel dan, Calico joħloq ganċijiet f'diversi ktajjen tal-mogħdija tal-ipproċessar tal-pakketti bl-użu ta 'iptables.

Id-dijagramma hawn taħt turi l-ktajjen involuti fl-ipproċessar tal-pakketti f'iptables (jew is-subsistema netfilter). Meta pakkett jasal minn interface tan-netwerk, l-ewwel jgħaddi mill-katina PREROUTING. Imbagħad tittieħed deċiżjoni dwar ir-routing, u abbażi ta' dan, il-pakkett jgħaddi jew minn INPUT (diretti lejn proċessi ospitanti) jew WORD (diretti lejn pod jew nodu ieħor fin-netwerk). Mill-proċess lokali, il-pakkett jgħaddi mill-katina OUTPUT u mbagħad POSTROUTING qabel ma jintbagħat 'l isfel mill-cable.

Innota li l-pod hija wkoll entità esterna (konnessa mal-veth) f'termini ta 'proċessar iptables. Ejja nġabru fil-qosor:

  • It-traffiku mibgħut (nat, routed jew lejn/minn pod) jgħaddi mill-ktajjen PREROUTING - FORWARD - POSTROUTING.
  • It-traffiku lejn il-proċess ospitanti lokali jgħaddi mill-katina PREROUTING - INPUT.
  • It-traffiku mill-proċess ospitanti lokali jgħaddi mill-katina OUTPUT - POSTROUTING.

Nifhmu l-għażliet ta 'politika tan-netwerk ma' Calico

Calico jipprovdi għażliet ta’ politika li jippermettulek tapplika politiki fil-ktajjen kollha. B'dan f'moħħna, ejja nħarsu lejn l-għażliet differenti ta 'konfigurazzjoni ta' politika disponibbli f'Calico. In-numri fil-lista ta 'għażliet hawn taħt jikkorrispondu man-numri fid-dijagramma ta' hawn fuq.

  1. Politika tal-endpoint tal-piż tax-xogħol (pod).
  2. Politika tal-endpoint ospitanti
  3. Għażla ApplyOnForward
  4. Politika PreDNAT
  5. Politika Mhux Traċċata

Nibdew billi nħarsu lejn kif il-politiki huma applikati għall-endpoints tal-piż tax-xogħol (Kubernetes pods jew OpenStack VMs), u mbagħad inħarsu lejn l-għażliet tal-politika għall-endpoints ospitanti.

Punti ta' tmiem tal-piż tax-xogħol

Politika ta' Endpoint ta' l-Importazzjoni tax-Xogħol (1)

Din hija għażla biex tipproteġi l-imżiewed tal-kubernetes tiegħek. Calico jappoġġja l-ħidma ma' Kubernetes NetworkPolicy, iżda jipprovdi wkoll politiki addizzjonali - Calico NetworkPolicy u GlobalNetworkPolicy. Calico joħloq katina għal kull pod (tagħbija tax-xogħol) u ganċijiet fil-ktajjen INPUT u OUTPUT għat-tagħbija tax-xogħol għat-tabella tal-filtru tal-katina FORWARD.

Ospitanti Endpoints

Politika ta' Endpoint Ospitanti (2)

Minbarra CNI (container network interface), il-politiki Calico jipprovdu l-abbiltà li jipproteġu lill-host innifsu. F'Calico, tista' toħloq endpoint ospitanti billi tispeċifika kombinazzjoni tal-interface tal-host u, jekk meħtieġ, numri tal-port. L-infurzar tal-politika għal din l-entità jinkiseb permezz ta’ tabella ta’ filtru fil-ktajjen INPUT u OUTPUT. Kif tistgħu taraw mid-dijagramma, (2) japplikaw għal proċessi lokali fuq in-node/host. Jiġifieri, jekk toħloq politika li tapplika għall-endpoint ospitanti, ma taffettwax it-traffiku li jmur lejn/minn il-miżwed tiegħek. Iżda jipprovdi interface/sintassi waħda għall-imblukkar tat-traffiku għall-host u l-imżiewed tiegħek billi tuża politiki Calico. Dan jissimplifika bil-kbir il-proċess tal-ġestjoni tal-politiki għal netwerk eteroġenju. Il-konfigurazzjoni ta' politiki tal-endpoint ospitanti biex tissaħħaħ is-sigurtà tal-clusters huwa każ ta' użu importanti ieħor.

Politika ApplyOnForward (3)

L-għażla ApplyOnForward hija disponibbli fil-politika tan-netwerk globali ta' Calico biex tippermetti li jiġu applikati politiki għat-traffiku kollu li jgħaddi mill-endpoint ospitanti, inkluż it-traffiku li se jintbagħat mill-host. Dan jinkludi t-traffiku mgħoddi lill-pod lokali jew kwalunkwe post ieħor fin-netwerk. Calico jeħtieġ li din l-issettjar tkun attivata għall-politiki li jużaw PreDNAT u mhux traċċati, ara t-taqsimiet li ġejjin. Barra minn hekk, ApplyOnForward jista 'jintuża biex jimmonitorja t-traffiku ospitanti f'każijiet fejn jintuża router virtwali jew softwer NAT.

Innota li jekk għandek bżonn tapplika l-istess politika tan-netwerk kemm għall-proċessi ospitanti kif ukoll għall-imżiewed, allura m'għandekx bżonn tuża l-għażla ApplyOnForward. Kull ma trid tagħmel hu li toħloq tikketta għall-hostendpoint meħtieġ u l-endpoint tal-piż tax-xogħol (pod). Calico huwa intelliġenti biżżejjed biex jinforza politika bbażata fuq tikketti, irrispettivament mit-tip ta 'endpoint (hostendpoint jew xogħol).

Politika PreDNAT (4)

F'Kubernetes, il-portijiet tal-entità tas-servizz jistgħu jiġu esposti esternament billi tuża l-għażla NodePorts jew, b'mod fakultattiv (meta tuża Calico), billi tirreklamahom bl-użu tal-għażliet Cluster IPs jew External IPs. Kube-proxy jibbilanċja t-traffiku li jkun dieħel marbut ma' servizz mal-miżwed tas-servizz korrispondenti bl-użu tad-DNAT. Minħabba dan, kif tinforza l-politiki għat-traffiku li ġej minn NodePorts? Biex jiġi żgurat li dawn il-politiki jiġu applikati qabel ma t-traffiku jiġi pproċessat mid-DNAT (li huwa mapping bejn host:port u servizz korrispondenti), Calico jipprovdi parametru għal globalNetworkPolicy imsejjaħ "preDNAT: true".

Meta pre-DNAT ikun attivat, dawn il-politiki huma implimentati f'(4) fid-dijagramma - fit-tabella mangle tal-katina PREROUTING - immedjatament qabel DNAT. L-ordni tas-soltu tal-politiki mhix segwita hawnhekk, peress li l-applikazzjoni ta 'dawn il-politiki sseħħ ħafna qabel fil-mogħdija tal-ipproċessar tat-traffiku. Madankollu, il-politiki preDNAT jirrispettaw l-ordni ta 'applikazzjoni bejniethom.

Meta toħloq politiki bi pre-DNAT, huwa importanti li toqgħod attenta dwar it-traffiku li trid tipproċessa u tippermetti li l-maġġoranza tiġi rrifjutata. It-traffiku mmarkat bħala 'permess' fil-politika ta' qabel id-DNAT mhux se jibqa' jiġi ċċekkjat mill-politika tal-hostendpoint, filwaqt li t-traffiku li jonqos mill-politika ta' qabel id-DNAT se jkompli permezz tal-ktajjen li fadal.
Calico għamilha obbligatorja li tkun attivata l-għażla applyOnForward meta tuża preDNAT, peress li b'definizzjoni d-destinazzjoni tat-traffiku għadha ma ntgħażlitx. It-traffiku jista 'jiġi dirett lejn il-proċess ospitanti, jew jista' jintbagħat lil pod jew nodu ieħor.

Politika mhux segwita (5)

Netwerks u applikazzjonijiet jista 'jkollhom differenzi kbar fl-imġieba. F'xi każijiet estremi, l-applikazzjonijiet jistgħu jiġġeneraw ħafna konnessjonijiet ta' ħajja qasira. Dan jista 'jikkawża li conntrack (komponent ewlieni tal-munzell tan-netwerking Linux) jispiċċa mingħajr memorja. Tradizzjonalment, biex tħaddem dawn it-tipi ta 'applikazzjonijiet fuq Linux, ikollok tikkonfigura manwalment jew tiddiżattiva conntrack, jew tikteb regoli iptables biex tevita l-conntrack. Il-politika mhux segwita f'Calico hija għażla aktar sempliċi u effiċjenti jekk trid tipproċessa konnessjonijiet malajr kemm jista 'jkun. Per eżempju, jekk tuża massiv memcache jew bħala miżura addizzjonali ta’ protezzjoni kontra DDOS.

Aqra dan blog post (Jew it-traduzzjoni tagħna) għal aktar informazzjoni, inklużi testijiet tal-prestazzjoni bl-użu ta' politika mhux traċċata.

Meta tissettja l-għażla "doNotTrack: true" f'Calico globalNetworkPolicy, din issir politika **untracked** u tiġi applikata kmieni ħafna fil-pipeline tal-ipproċessar tal-pakketti Linux. Meta wieħed iħares lejn id-dijagramma ta 'hawn fuq, politiki mhux traċċati huma applikati fil-ktajjen PREROUTING u OUTPUT fit-tabella mhux maħduma qabel ma jinbeda l-intraċċar tal-konnessjoni (conntrack). Meta pakkett ikun permess mill-politika mhux traċċata, huwa mmarkat biex jiskonnettja l-intraċċar tal-konnessjoni għal dak il-pakkett. Tfisser:

  • Il-politika mhux traċċata hija applikata fuq bażi ta' kull pakkett. M'hemm l-ebda kunċett ta 'konnessjoni (jew fluss). Nuqqas ta' konnessjonijiet għandu diversi konsegwenzi importanti:
  • Jekk trid tippermetti kemm it-traffiku tat-talba kif ukoll ir-rispons, għandek bżonn regola kemm għall-inbound kif ukoll barra (peress Calico tipikament juża conttrack biex jimmarka t-traffiku tar-rispons bħala permess).
  • Il-politika mhux traċċata ma taħdimx għall-piżijiet tax-xogħol ta 'Kubernetes (miżwed), minħabba li f'dan il-każ m'hemm l-ebda mod biex issegwi l-konnessjoni ħerġin mill-pod.
  • NAT ma jaħdimx b'mod korrett b'pakketti mhux traċċati (peress li l-kernel jaħżen l-immappjar NAT f'conntrack).
  • Meta tgħaddi mir-regola "jħallu kollox" fil-politika mhux traċċata, il-pakketti kollha se jkunu mmarkati bħala mhux traċċati. Dan huwa kważi dejjem mhux dak li trid, għalhekk huwa importanti li tkun selettiv ħafna dwar il-pakketti permessi minn politiki mhux traċċati (u jippermettu li l-biċċa l-kbira tat-traffiku jgħaddi minn politiki traċċati normali).
  • Politiki mhux traċċati huma applikati fil-bidu nett tal-pipeline tal-ipproċessar tal-pakkett. Dan huwa importanti ħafna li wieħed jifhem meta toħloq politiki Calico. Jista' jkollok politika tal-pod b'ordni:1 u politika mhux traċċata b'ordni:1000. Mhux se jimpurtah. Il-politika Untracked se tiġi applikata qabel il-politika għall-pod. Politiki mhux traċċati jirrispettaw l-ordni ta' eżekuzzjoni bejniethom biss.

Minħabba li wieħed mill-għanijiet tal-politika doNotTrack huwa li tinforza l-politika kmieni ħafna fil-pipeline tal-ipproċessar tal-pakketti Linux, Calico jagħmilha obbligatorja li tiġi speċifikata l-għażla applyOnForward meta tuża doNotTrack. B'referenza għad-dijagramma tal-ipproċessar tal-pakketti, innota li l-politika untracked(5) hija applikata qabel kwalunkwe deċiżjoni dwar ir-rotot. It-traffiku jista 'jiġi dirett lejn il-proċess ospitanti, jew jista' jintbagħat lil pod jew nodu ieħor.

Riżultati ta '

Ħarsa lejn id-diversi għażliet ta 'politika (Host endpoint, ApplyOnForward, preDNAT, u Untracked) f'Calico u kif huma applikati tul il-mogħdija tal-ipproċessar tal-pakkett. Il-fehim ta’ kif jaħdmu jgħin fl-iżvilupp ta’ politiki effettivi u sikuri. B'Calico tista' tuża politika ta' netwerk globali li tapplika għal tikketta (grupp ta' nodi u imżiewed) u tapplika politiki b'diversi parametri. Dan jippermetti lill-professjonisti tas-sigurtà u tad-disinn tan-netwerk jipproteġu b'mod konvenjenti "kollox" (tipi ta' endpoint) f'daqqa billi jużaw lingwa tal-politika waħda mal-politiki Calico.

Rikonoxximent: Nixtieq nirringrazzja Sean Crampton и Alexa Pollitta għar-reviżjoni u l-informazzjoni siewja tagħhom.

Sors: www.habr.com

Żid kumment