Konprann opsyon politik rezo ak Calico

Konprann opsyon politik rezo ak Calico

Plugin rezo Calico a bay yon pakèt politik rezo ak yon sentaks inifye pou pwoteje lame pyès ki nan konpitè, machin vityèl ak gous. Règleman sa yo ka aplike nan yon espas non oswa politik rezo mondyal ki aplike a pwen final lame (pou pwoteje aplikasyon yo kouri dirèkteman sou lame a - lame a kapab yon sèvè oswa yon machin vityèl) oswa pwen final chaj travay (pou pwoteje aplikasyon ki kouri nan resipyan oswa machin vityèl ki anime). Règleman Calico pèmèt ou aplike mezi sekirite nan plizyè pwen nan chemen yon pake lè l sèvi avèk opsyon tankou preDNAT, unraracked, ak applyOnForward. Konprann ki jan opsyon sa yo travay ka ede amelyore sekirite ak pèfòmans sistèm jeneral ou a. Atik sa a eksplike sans opsyon politik Calico sa yo (preDNAT, unraracked ak applyOnForward) aplike nan pwen final lame yo, ak yon anfaz sou sa k ap pase nan chemen pwosesis pake (chenn iptabels).

Atik sa a sipoze ke ou gen yon konpreyansyon debaz sou fason politik rezo Kubernetes ak Calico travay. Si ou pa, nou rekòmande eseye li leson patikilye de baz politik rezo и leson patikilye pwoteksyon lame itilize Calico anvan ou li atik sa a. Nou espere tou ou gen yon konpreyansyon debaz sou travay la iptables nan linux.

endyèn politik rezo mondyal pèmèt ou aplike yon seri règ aksè pa etikèt (nan gwoup lame ak chaj travay/gous). Sa a se trè itil si ou itilize sistèm etewojèn ansanm - machin vityèl, yon sistèm dirèkteman sou pyès ki nan konpitè, oswa yon enfrastrikti kubernetes. Anplis de sa, ou ka pwoteje gwoup ou a (nœuds) lè l sèvi avèk yon seri politik deklaratif epi aplike règleman rezo a trafik fèk ap rantre (pa egzanp, atravè sèvis NodePorts oswa IP ekstèn).

Nan yon nivo fondamantal, lè Calico konekte yon gous nan rezo a (gade dyagram anba a), li konekte li ak lame a lè l sèvi avèk yon koòdone Ethernet vityèl (veth). Trafik la voye pa gous la vini nan lame a soti nan koòdone vityèl sa a epi yo trete nan menm fason an kòm si li te soti nan yon koòdone rezo fizik. Pa default, Calico non koòdone sa yo caliXXX. Depi trafik la vini nan koòdone vityèl la, li ale nan iptables kòm si gous la te yon sèl hop ale. Se poutèt sa, lè trafik vini nan / soti nan yon gous, li voye soti nan pwen de vi lame a.

Sou yon ne Kubernetes ki kouri Calico, ou ka kat yon koòdone vityèl (veth) nan yon kantite travay jan sa a. Nan egzanp ki anba a, ou ka wè ke veth#10 (calic1cbf1ca0f8) konekte ak cnx-manager-* nan espas non kalico-monitoring la.

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

Konprann opsyon politik rezo ak Calico

Etandone ke Calico kreye yon koòdone veth pou chak kantite travay, ki jan li fè respekte règleman yo? Pou fè sa, Calico kreye kwòk nan divès chenn nan chemen an pwosesis pake lè l sèvi avèk iptables.

Dyagram ki anba a montre chèn ki enplike nan pwosesis pake nan iptables (oswa subsistèm netfilter la). Lè yon pake rive nan yon koòdone rezo, li premye ale nan chèn PREROUTING la. Lè sa a, yo pran yon desizyon routage, epi ki baze sou sa a, pake a pase nan swa INPUT (ki dirije nan pwosesis lame) oswa FORWARD (dirije nan yon gous oswa yon lòt ne sou rezo a). Soti nan pwosesis lokal la, pake a ale nan OUTPUT la ak Lè sa a, chèn POSTROUTING anvan yo te voye desann kab la.

Remake byen ke gous la se tou yon antite ekstèn (konekte ak veth la) an tèm de pwosesis iptables. Ann rezime:

  • Trafik anvwaye (nat, route oswa pou/soti nan yon gous) pase nan chèn PREROUTING - FORWARD - POSTROUTING.
  • Trafik nan pwosesis lame lokal la pase nan chèn PREROUTING - INPUT.
  • Trafik soti nan pwosesis lame lokal la ale nan chèn OUTPUT - POSTROUTING.

Konprann opsyon politik rezo ak Calico

Calico bay opsyon politik ki pèmèt ou aplike politik atravè tout chenn yo. Avèk sa nan tèt ou, ann gade diferan opsyon konfigirasyon politik ki disponib nan Calico. Nimewo ki nan lis opsyon ki anba a koresponn ak nimewo ki nan dyagram ki anwo a.

  1. Politik nan pwen chaj travay (gous).
  2. Politik pwen final lame
  3. Opsyon ApplyOnForward
  4. Règleman PreDNAT
  5. Règleman Untracked

Ann kòmanse pa gade ki jan règleman yo aplike nan pwen final chaj travay (Kubernetes gous oswa OpenStack VMs), ak Lè sa a, gade nan opsyon politik yo pou pwen final lame yo.

Pwen chaj travay yo

Règleman sou chaj travay (1)

Sa a se yon opsyon pou pwoteje gous kubernetes ou yo. Calico sipòte travay ak Kubernetes NetworkPolicy, men li bay règleman adisyonèl tou - Calico NetworkPolicy ak GlobalNetworkPolicy. Calico kreye yon chèn pou chak gous (chaj travay) ak kwòk nan chèn INPUT ak OUTPUT pou kantite travay la sou tab filtre chèn FORWARD la.

Pwen lame yo

Règleman sou pwen final lame (2)

Anplis CNI (koòdone rezo veso), politik Calico bay kapasite pou pwoteje lame a tèt li. Nan Calico, ou ka kreye yon pwen final lame lè w espesifye yon konbinezon de koòdone lame a ak, si sa nesesè, nimewo pò. Ranfòsman politik pou antite sa a reyalize lè l sèvi avèk yon tablo filtre nan chèn INPUT ak OUTPUT yo. Kòm ou ka wè nan dyagram nan, (2) yo aplike nan pwosesis lokal sou ne / lame a. Sa vle di, si ou kreye yon politik ki aplike nan pwen final la lame a, li pa pral afekte trafik ale nan / soti nan gous ou yo. Men, li bay yon sèl koòdone / sentaks pou bloke trafik pou lame ou a ak gous lè l sèvi avèk politik Calico. Sa a anpil senplifye pwosesis la nan jere politik pou yon rezo etewojèn. Konfigirasyon politik pwen final lame pou amelyore sekirite gwoup se yon lòt ka itilizasyon enpòtan.

Règleman ApplyOnForward (3)

Opsyon ApplyOnForward disponib nan politik rezo mondyal Calico pou pèmèt règleman yo aplike nan tout trafik k ap pase nan pwen final lame a, ki gen ladan trafik ke lame a pral voye. Sa gen ladann trafik voye bay gous lokal la oswa nenpòt lòt kote sou rezo a. Calico mande pou yo aktive paramèt sa a pou règleman ki itilize PreDNAT epi ki pa swiv, gade seksyon sa yo. Anplis de sa, ApplyOnForward ka itilize pou kontwole trafik lame nan ka kote yo itilize yon routeur vityèl oswa lojisyèl NAT.

Remake byen ke si ou bezwen aplike menm politik rezo a nan tou de pwosesis lame ak gous, Lè sa a, ou pa bezwen sèvi ak opsyon nan ApplyOnForward. Tout sa ou bezwen fè se kreye yon etikèt pou pwen hostendpoint obligatwa a ak pwen final chaj travay (gous). Calico se entelijan ase pou aplike politik ki baze sou etikèt, kèlkeswa kalite pwen final la (hostendpoint oswa kantite travay).

Règleman PreDNAT (4)

Nan Kubernetes, pò antite sèvis yo ka ekspoze deyò lè l sèvi avèk opsyon NodePorts la oswa, opsyonèlman (lè w ap itilize Calico), lè w fè piblisite yo lè l sèvi avèk opsyon IP Cluster oswa IP Ekstèn. Kube-proxy balanse trafik k ap rantre nan yon sèvis nan gous sèvis korespondan yo lè l sèvi avèk DNAT. Etandone sa, ki jan ou fè respekte règleman pou trafik k ap vini nan NodePorts? Pou asire ke règleman sa yo aplike anvan DNAT trete trafik la (ki se yon kat ant host:port ak sèvis korespondan), Calico bay yon paramèt pou globalNetworkPolicy ki rele "preDNAT: true".

Lè pre-DNAT aktive, règleman sa yo aplike nan (4) nan dyagram nan - nan tablo mangle nan chèn PREROUTING la - imedyatman anvan DNAT. Lòd nòmal règleman yo pa swiv isit la, depi aplikasyon règleman sa yo rive pi bonè nan chemen pwosesis trafik la. Sepandan, règleman preDNAT yo respekte lòd aplikasyon an nan mitan yo.

Lè w ap kreye règleman ak pre-DNAT, li enpòtan pou w fè atansyon sou trafik ou vle trete epi pèmèt majorite a rejte. Trafik ki make kòm 'pèmèt' nan politik pre-DNAT la p ap tcheke ankò pa politik hostendpoint, pandan trafik ki echwe politik pre-DNAT la ap kontinye atravè chenn ki rete yo.
Calico te rann li obligatwa pou pèmèt opsyon applyOnForward lè w ap itilize preDNAT, paske pa definisyon destinasyon trafik la poko chwazi. Trafik ka dirije nan pwosesis lame a, oswa li ka voye nan yon gous oswa yon lòt ne.

Règleman pa Suivi (5)

Rezo ak aplikasyon yo ka gen gwo diferans nan konpòtman. Nan kèk ka ekstrèm, aplikasyon yo ka jenere anpil koneksyon ki dire lontan. Sa a ka lakòz conntrack (yon eleman debaz nan pil rezo Linux la) pèdi memwa. Tradisyonèlman, pou kouri kalite aplikasyon sa yo sou Linux, ou ta dwe manyèlman konfigirasyon oswa enfim conntrack, oswa ekri règ iptables pou kontoune conntrack. Politik Untracked nan Calico se yon opsyon ki pi senp ak pi efikas si ou vle trete koneksyon pi vit ke posib. Pou egzanp, si ou itilize masiv memcache oswa kòm yon mezi adisyonèl nan pwoteksyon kont DDOS.

Li sa post blog (Oswa tradiksyon nou an) pou plis enfòmasyon, ki gen ladan tès pèfòmans lè l sèvi avèk règleman ki pa swiv.

Lè ou mete opsyon "doNotTrack: true" nan Calico globalNetworkPolicy, li vin tounen yon politik **untracked** epi li aplike byen bonè nan liy pwosesis Linux pake a. Lè w gade dyagram ki anwo a, règleman ki pa swiv yo aplike nan chèn PREROUTING ak OUTPUT nan tablo anvan tout koreksyon swiv koneksyon (conntrack) kòmanse. Lè règleman ki pa swiv yo pèmèt yon pake, li make pou enfim swivi koneksyon pou pake sa a. Sa vle di:

  • Règleman ki pa swiv la aplike sou yon baz pou chak pake. Pa gen okenn konsèp nan koneksyon (oswa koule). Mank koneksyon gen plizyè konsekans enpòtan:
  • Si ou vle pèmèt tou de demann ak repons trafik, ou bezwen yon règ pou tou de entrant ak sortant (piske Calico anjeneral itilize conntrack pou make trafik repons kòm pèmèt).
  • Règleman ki pa swiv la pa travay pou chaj travay Kubernetes (gous), paske nan ka sa a pa gen okenn fason yo swiv koneksyon an sortan soti nan gous la.
  • NAT pa travay kòrèkteman ak pake ki pa swiv (piske nwayo a estoke kat NAT la nan conntrack).
  • Lè w ap pase nan règ "pèmèt tout" nan règleman an pa swiv, tout pake yo pral make kòm san swiv. Sa a se prèske toujou pa sa ou vle, kidonk li enpòtan yo dwe trè selektif sou pakè yo pèmèt pa règleman ki pa swiv (epi pèmèt pifò trafik yo ale nan règleman nòmal Suivi).
  • Règleman ki pa swiv yo aplike nan kòmansman an nan tiyo pwosesis pake a. Sa enpòtan anpil pou w konprann lè w ap kreye politik Calico. Ou ka gen yon politik gous ak lòd:1 ak yon politik ki pa swiv ak lòd:1000. Li pa pral gen pwoblèm. Règleman Untracked la pral aplike anvan politik pou gous la. Politik ki pa swiv yo respekte lòd ekzekisyon sèlman nan mitan tèt yo.

Paske youn nan objektif politik doNotTrack la se aplike politik la byen bonè nan tiyo pwosesis pake Linux, Calico fè li obligatwa pou presize opsyon applyOnForward lè w ap itilize doNotTrack. An referans a dyagram nan pwosesis pake a, sonje ke politik la pa swiv(5) aplike anvan nenpòt desizyon routage. Trafik ka dirije nan pwosesis lame a, oswa li ka voye nan yon gous oswa yon lòt ne.

Rezilta

Nou te gade divès opsyon politik (Host endpoint, ApplyOnForward, preDNAT, ak Untracked) nan Calico ak fason yo aplike sou chemen pwosesis pake a. Konprann ki jan yo travay ede nan devlope politik efikas ak san danje. Avèk Calico ou ka itilize yon politik rezo mondyal ki aplike nan yon etikèt (yon gwoup nœuds ak gous) epi aplike règleman ak divès paramèt. Sa a pèmèt pwofesyonèl sekirite ak konsepsyon rezo yo byen pwoteje "tout bagay" (kalite pwen final) alafwa lè l sèvi avèk yon sèl lang politik ak règleman Calico.

Rekonesans: Mwen ta renmen remèsye Sean Crampton и Alexa Pollitta pou revizyon yo ak enfòmasyon ki gen anpil valè.

Sous: www.habr.com

Add nouvo kòmantè