Verstoen Reseau Politik Optiounen mat Calico

Verstoen Reseau Politik Optiounen mat Calico

De Calico Netzwierk Plugin bitt eng breet Palette vun Netzwierkpolitike mat enger vereenegter Syntax fir Hardware Hosten, virtuelle Maschinnen a Pods ze schützen. Dës Politiken kënnen an engem Nummraum applizéiert ginn oder global Netzwierkpolitike sinn, déi op gëllen Host Endpunkt (fir Uwendungen ze schützen déi direkt um Host lafen - de Host kann e Server oder eng virtuell Maschinn sinn) oder Aarbechtslaaschtendpunkt (fir Uwendungen ze schützen déi a Container oder gehost virtuelle Maschinnen lafen). Calico Politiken erlaben Iech Sécherheetsmoossnamen op verschiddene Punkten am Wee vun engem Paket z'applizéieren mat Optiounen wéi preDNAT, unraracked, an applicationOnForward. Verstoen wéi dës Optiounen funktionnéieren kann hëllefen d'Sécherheet an d'Leeschtung vun Ärem Gesamtsystem ze verbesseren. Dësen Artikel erkläert d'Essenz vun dëse Calico Politikoptiounen (preDNAT, unraracked an applicationOnForward) applizéiert op Hostendpunkte, mat engem Akzent op wat a Paketveraarbechtungsweeër geschitt (iptabels Ketten).

Dësen Artikel gëtt ugeholl datt Dir e Basisverständnis hutt wéi d'Kubernetes- a Calico-Netzpolitik funktionnéiert. Wann net, recommandéiere mir et ze probéieren Basis Reseau Politik Tutorial и Host Schutz Tutorial benotzt Calico ier Dir dësen Artikel liest. Mir erwaarden och datt Dir e Basisverständnis vun der Aarbecht hutt Iteef an linux.

Calico global Reseau Politik erlaabt Iech eng Rei vun Zougangsregelen duerch Etiketten z'applizéieren (op Gruppe vu Hosten a Workloads / Pods). Dëst ass ganz nëtzlech wann Dir heterogen Systemer zesumme benotzt - virtuelle Maschinnen, e System direkt op Hardware oder eng kubernetes Infrastruktur. Zousätzlech kënnt Dir Äre Stärekoup (Noden) schützen andeems Dir eng Rei vun deklarativen Politiken benotzt an d'Netzpolitik op den erakommende Traffic uwenden (zum Beispill duerch den NodePorts oder External IPs Service).

Op engem fundamentalen Niveau, wann Calico e Pod un d'Netz verbënnt (kuckt Diagramm hei ënnen), verbënnt se mat engem virtuellen Ethernet Interface (veth). De Traffic, dee vum Pod geschéckt gëtt, kënnt op den Host vun dëser virtueller Interface a gëtt op déiselwecht Manéier veraarbecht wéi wann et aus enger kierperlecher Netzwierkinterface kënnt. Par défaut nennt Calico dës Interfaces caliXXX. Zënter datt de Traffic duerch déi virtuell Interface kënnt, geet et duerch iptables wéi wann de Pod een Hop ewech wier. Dofir, wann de Traffic op / vun engem Pod kënnt, gëtt et aus der Siicht vum Host weidergeleet.

Op engem Kubernetes Node Lafen Calico, Dir kënnt eng virtuell Interface Kaart (veth) op eng Aarbechtslaascht wéi follegt. Am Beispill hei drënner kënnt Dir gesinn datt veth # 10 (calic1cbf1ca0f8) mat cnx-manager-* am Calico-Monitoring Nummraum verbonnen ass.

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

Verstoen Reseau Politik Optiounen mat Calico

Gitt datt Calico e Veth-Interface fir all Aarbechtslaascht erstellt, wéi ëmsetzen et Politiken? Fir dëst ze maachen, erstellt Calico Haken a verschiddene Ketten vum Paketveraarbechtungswee mat iptables.

D'Diagramm hei drënner weist d'Ketten involvéiert an der Paketveraarbechtung an iptables (oder dem Netfilter Subsystem). Wann e Paket duerch en Netzwierk Interface ukomm ass, geet et fir d'éischt duerch d'PREROUTING Kette. Eng Routingentscheedung gëtt dann gemaach, a baséiert op dëser, geet de Paket entweder duerch INPUT (geriicht op Hostprozesser) oder FORWARD (geriicht op e Pod oder en aneren Node am Netz). Vum lokalen Prozess geet de Paket duerch den OUTPUT an dann POSTROUTING Kette ier de Kabel erofgeschéckt gëtt.

Notéiert datt de Pod och eng extern Entitéit ass (verbonne mat der Veth) a punkto iptables Veraarbechtung. Loosst eis zesummefaassen:

  • Forwarded Traffic (nat, routed oder op / vun engem Pod) passéiert duerch d'PREROUTING - FORWARD - POSTROUTING Ketten.
  • De Verkéier op de lokalen Hostprozess passéiert duerch d'PREROUTING - INPUT Kette.
  • Den Traffic vum lokalen Hostprozess geet duerch d'OUTPUT - POSTROUTING Kette.

Verstoen Reseau Politik Optiounen mat Calico

Calico bitt Politikoptiounen déi Iech erlaben Politiken iwwer all Ketten z'applizéieren. Mat deem vergiessen, loosst eis déi verschidde Politikkonfiguratiounsoptioune kucken, déi am Calico verfügbar sinn. D'Zuelen an der Lëscht vun den Optiounen hei ënnen entspriechen d'Zuelen am Diagramm uewen.

  1. Aarbechtslaaschtendpunkt (Pod) Politik
  2. Host Endpunkt Politik
  3. ApplyOnForward Optioun
  4. PreDNAT Politik
  5. Onverfollegt Politik

Loosst eis ufänken ze kucken wéi d'Politik op Aarbechtslaaschtendpunkte applizéiert ginn (Kubernetes Pods oder OpenStack VMs), a kuckt dann d'Politikoptioune fir Hostendpunkten.

Aarbechtslaascht Endpoints

Aarbechtslaascht Endpunkt Politik (1)

Dëst ass eng Optioun fir Är kubernetes Pods ze schützen. Calico ënnerstëtzt d'Aarbecht mat Kubernetes NetworkPolicy, awer et bitt och zousätzlech Politiken - Calico NetworkPolicy a GlobalNetworkPolicy. Calico erstellt eng Kette fir all Pod (Aarbechtslaascht) an haken an den INPUT an OUTPUT Ketten fir d'Aarbechtslaascht op d'Filtertabelle vun der FORWARD Kette.

Host Endpoints

Host Endpunkt Politik (2)

Zousätzlech zu CNI (Container-Netzwierk-Interface) bitt Calico Politik d'Fäegkeet fir den Host selwer ze schützen. Am Calico kënnt Dir en Hostendpunkt erstellen andeems Dir eng Kombinatioun vun der Host-Interface an, wann néideg, Portnummeren spezifizéiert. D'Politik Duerchféierung fir dës Entitéit gëtt erreecht mat enger Filtertabelle an den INPUT an OUTPUT Ketten. Wéi Dir aus dem Diagramm kënnt gesinn, (2) gëllen se op lokal Prozesser um Node / Host. Dat ass, wann Dir eng Politik erstellt déi fir den Hostendpunkt gëlt, wäert et keen Afloss op den Traffic deen op / vun Äre Pods geet. Awer et bitt eng eenzeg Interface / Syntax fir de Traffic fir Ären Host a Pods ze blockéieren mat Calico Politiken. Dëst vereinfacht vill de Prozess vun der Gestioun vun der Politik fir en heterogen Netzwierk. D'Konfiguratioun vun Hostendpunkt-Politik fir d'Clustersécherheet ze verbesseren ass e weidere wichtege Benotzungsfall.

ApplyOnForward Politik (3)

D'ApplyOnForward Optioun ass verfügbar an der Calico global Netzwierkpolitik fir Politiken ze erlaben fir all Traffic ze applizéieren, deen duerch den Hostendpunkt passéiert, inklusiv Traffic dee vum Host weidergeleet gëtt. Dëst beinhalt den Traffic deen op de lokale Pod oder soss anzwousch am Netz weidergeleet gëtt. Calico erfuerdert dës Astellung fir Politiken ze aktivéieren déi PreDNAT benotzen an net verfollegt ginn, kuckt déi folgend Rubriken. Zousätzlech kann ApplyOnForward benotzt ginn fir den Hostverkéier ze iwwerwaachen a Fäll wou e virtuelle Router oder Software NAT benotzt gëtt.

Notéiert datt wann Dir déiselwecht Netzpolitik fir béid Hostprozesser a Pods benotze musst, da musst Dir d'ApplyOnForward Optioun net benotzen. Alles wat Dir maache musst ass e Label fir den erfuerderlechen Hostendpoint an den Aarbechtslaaschtendpunkt (Pod) ze kreéieren. Calico ass intelligent genuch fir Politik op Basis vun Etiketten ëmzesetzen, onofhängeg vun der Endpunkttyp (Hostendpunkt oder Aarbechtslaascht).

PreDNAT Politik (4)

A Kubernetes kënnen d'Service Entity Ports extern ausgesat ginn mat der NodePorts Optioun oder, optional (wann Dir Calico benotzt), andeems se se mat de Cluster IPs oder External IPs Optiounen annoncéieren. Kube-Proxy balancéiert erakommen Traffic gebonnen un e Service un de Pods vum entspriechende Service mat DNAT. Gitt dëst, wéi ëmsetzen Dir Politik fir den Traffic deen duerch NodePorts kënnt? Fir sécherzestellen datt dës Politiken applizéiert ginn ier de Traffic vun DNAT veraarbecht gëtt (wat eng Kaart tëscht Host:Port an entspriechende Service ass), gëtt Calico e Parameter fir globalNetworkPolicy genannt "preDNAT: true".

Wann Pre-DNAT aktivéiert ass, sinn dës Politiken ëmgesat an (4) am Diagramm - an der Mangle Dësch vun der PREROUTING Kette - direkt virun DNAT. Déi üblech Politikuerdnung gëtt hei net gefollegt, well d'Applikatioun vun dëse Politiken vill méi fréi am Verkéiersveraarbechtungswee geschitt. Wéi och ëmmer, preDNAT Politik respektéiert d'Uerdnung vun der Uwendung ënner sech.

Wann Dir Politik mat Pre-DNAT erstellt, ass et wichteg virsiichteg ze sinn iwwer de Traffic deen Dir wëllt veraarbechten an d'Majoritéit ze refuséieren. Traffic markéiert als 'Erlaabt' an der Pre-DNAT Politik gëtt net méi vun der Hostendpoint Politik iwwerpréift, während de Verkéier, deen d'Pre-DNAT Politik feelt, duerch déi verbleiwen Ketten weider geet.
Calico huet et obligatoresch gemaach fir d'ApplyOnForward Optioun z'aktivéieren wann Dir preDNAT benotzt, well per Definitioun d'Destinatioun vum Traffic nach net ausgewielt gouf. Traffic kann op den Hostprozess geleet ginn, oder et kann op e Pod oder en aneren Node weidergeleet ginn.

Onverfollegt Politik (5)

Netzwierker an Uwendungen kënne grouss Differenzen am Verhalen hunn. An e puer extrem Fäll kënnen Uwendungen vill kuerzlieweg Verbindungen generéieren. Dëst kann Conntrack (e Kärkomponent vum Linux Netzwierkstack) verursaache fir aus Erënnerung ze lafen. Traditionell, fir dës Aarte vun Uwendungen op Linux auszeféieren, musst Dir manuell Conntrack konfiguréieren oder deaktivéieren, oder iptables Reegele schreiwen fir Conntrack ëmzegoen. Untracked Politik am Calico ass eng méi einfach a méi effizient Optioun wann Dir Verbindunge sou séier wéi méiglech wëllt veraarbechten. Zum Beispill, wann Dir massiv benotzt memcache oder als zousätzlech Schutzmoossname géint drun deelhuelen.

Liest dëst Blog Post (oder eis Iwwersetzung) fir méi Informatiounen, dorënner Leeschtung Tester mat untracked Politik.

Wann Dir d'Optioun "doNotTrack: true" a Calico globalNetworkPolicy setzt, gëtt et eng **untracked** Politik a gëtt ganz fréi an der Linux Paketveraarbechtungspipeline applizéiert. Wann Dir d'Diagramm hei uewen kuckt, ginn net verfollegt Politiken an de PREROUTING an OUTPUT Ketten an der rauer Tabelle applizéiert ier d'Verbindungsverfolgung (Conntrack) gestart gëtt. Wann e Paket vun der net verfollegt Politik erlaabt ass, ass et markéiert fir d'Verbindungsverfolgung fir dee Paket auszeschalten. Et heescht:

  • Déi net verfollegt Politik gëtt op enger pro-Paket Basis applizéiert. Et gëtt kee Konzept vu Verbindung (oder Flow). Mangel u Verbindungen huet verschidde wichteg Konsequenzen:
  • Wann Dir wëllt souwuel Ufro an Äntwert Traffic erlaben, Dir braucht eng Regel fir souwuel Inbound an Outbound (well Calico typesch benotzt Conntrack Äntwert Traffic als erlaabt ze markéieren).
  • Déi net verfollegt Politik funktionnéiert net fir Kubernetes Workloads (Pods), well an dësem Fall gëtt et kee Wee fir déi erausgaang Verbindung vum Pod ze verfolgen.
  • NAT funktionnéiert net korrekt mat onverfollegte Päckchen (well de Kernel d'NAT Mapping am Conntrack späichert).
  • Wann Dir duerch d'Regel "Allerlaabt alles" an der net verfollegt Politik passéiert, ginn all Pakete als net verfollegt markéiert. Dëst ass bal ëmmer net wat Dir wëllt, also ass et wichteg ganz selektiv iwwer d'Päckchen ze sinn, déi duerch net verfollegt Politik erlaabt sinn (an erlaabt de meeschte Traffic duerch normal verfollegt Politik ze goen).
  • Onverfollegt Politik ginn am Ufank vun der Packetveraarbechtungspipeline ugewannt. Dëst ass ganz wichteg ze verstoen wann Dir Calico Politik erstellt. Dir kënnt eng Pod Politik mat Uerdnung hunn: 1 an eng net verfollegt Politik mat Uerdnung: 1000. Et wäert egal. D'Untracked Politik gëtt virun der Politik fir de Pod applizéiert. Onverfollegt Politik respektéiert d'Ausféierungsuerdnung nëmmen ënner sech.

Well ee vun den Zwecker vun der doNotTrack Politik ass d'Politik ganz fréi an der Linux Paketveraarbechtungspipeline ëmzesetzen, mécht Calico et obligatoresch fir d'ApplyOnForward Optioun ze spezifizéieren wann Dir doNotTrack benotzt. Bezitt op de Paketveraarbechtungsdiagramm, bemierkt datt déi net verfollegt (5) Politik virun all Routingentscheedungen applizéiert gëtt. Traffic kann op den Hostprozess geleet ginn, oder et kann op e Pod oder en aneren Node weidergeleet ginn.

Resultater

Mir hunn déi verschidde Politikoptiounen (Host Endpunkt, ApplyOnForward, preDNAT, an Untracked) am Calico gekuckt a wéi se laanscht de Paketveraarbechtungswee applizéiert ginn. Verstoen wéi se funktionnéieren hëlleft bei der Entwécklung vun effektiven a séchere Politiken. Mat Calico kënnt Dir eng global Netzwierkpolitik benotzen, déi op e Label gëllt (eng Grupp vu Wirbelen a Pods) a Politik mat verschiddene Parameteren uwenden. Dëst erlaabt d'Sécherheet an d'Netzwierkdesign Professionnelen bequem ze schützen "alles" (Endpunkttypen) op eemol mat enger eenzeger Politiksprooch mat Calico Politik.

Unerkennung: Ech wëll Merci soen Sean Crampton и Alexa Pollitta fir hir Iwwerpréiwung a wäertvoll Informatioun.

Source: will.com

Setzt e Commentaire