IP tal-klijent VPN fi Kubernetes: inżommuh jew nagħmlu SNAT?
Agħżel bejn li tħares l-indirizz veru tal-klijent VPN u n-NAT tas-sors fi Kubernetes permezz ta' tliet kundizzjonijiet, imbagħad ivverifika t-triq tar-ritorn u l-bdil tal-pods.
X'imkien bejn it-tunnel u l-backend, indirizz tal-klijent jew jibqa' ħaj jew jiġi sostitwit, u ż-żewġ riżultati huma difendibbli. L-għażla tappartjeni lil min jippossjedi s-servizz li jirċievi, mhux lil min installa s-CNI. Meta l-awtorizzazzjoni għal kull klijent, il-kwoti jew ir-rekords tal-awditjar huma importanti, l-indirizz irid jibqa' ħaj f'kull pass. Meta l-attribuzzjoni kondiviża hija aċċettabbli, in-NAT tas-sors ineħħi problema ta' routing li kieku żżomm għal dejjem.
Fejn l-indirizz tal-klijent tassew jisparixxi
Il-pakkett ta' klijent remot jasal fil-pod VPN b'sors intern fil-firxa tat-tunnel, ejja ngħidu 10.90.0.42. Meta l-pod jgħaddi dak il-pakkett lejn ClusterIP jew IP tal-pod, tliet mekkaniżmi differenti jistgħu jerġgħu jiktbu s-sors. Ir-regola tal-masquerade tas-CNI fuq in-node tkopri traffiku li l-pod jibgħat barra mis-CIDR tal-cluster. Id-dħul tal-conntrack ta' kube-proxy fuq in-node tad-destinazzjoni jkopri l-pass tas-Service stess. Proxy li jtemm il-konnessjoni ma jgħaddix il-pakkett xejn, għalhekk is-sors li fl-aħħar tara jappartjeni lill-proxy.
Kull wieħed jgħix f'saff differenti, u għalhekk qasam wieħed tas-Service kważi qatt ma jsewwi t-triq kollha.
externalTrafficPolicy fuq is-Service pubbliku tal-VPN jiddeċiedi biss x'jiġri mill-konnessjoni ta' barra: Local iżomm l-indirizz remot fuq in-node li rċevieh, filwaqt li Cluster iħalli lil kube-proxy jagħti l-pakkett lil node ieħor u jagħmel masquerade hemmhekk. Dik is-setting tiggverna l-listener li l-klijenti tiegħek jissejħu. Ma tgħid xejn dwar il-pakkett dekriptat li l-proċess VPN tiegħek jidderieġi fil-cluster wara.
Tliet kundizzjonijiet li jsolvu l-argument
Nistaqsi l-istess tliet mistoqsijiet fl-istess ordni kull darba li dan joħroġ, għax l-ewwel wieħed normalment itemm id-diskussjoni. Wieġeb għalihom għall-ħidma konkreta u mhux għall-cluster kollu. Żewġ clusters fi ħdan kumpanija waħda jistgħu jaslu għal tweġibiet differenti u t-tnejn ikunu korretti.
| Question | Preserve | SNAT |
|---|---|---|
| Does the backend enforce policy per client? | Yes, the address is the identity | Only if a trusted proxy supplies identity |
| Can the cluster route 10.90.0.0/24 back to a stable gateway? | Required | Not needed |
| Is the workload a forwarder or a proxy? | Forwarder | Proxy is fine |
Jekk il-backend iwieġeb iva għall-ewwel mistoqsija u le għat-tieni, għandek xogħol tan-netwerk x'tagħmel minflok manifest x'editja. Jekk it-tielet ringiela tgħid proxy, l-indirizz qatt ma kien se jibqa' ħaj, u li tippretendi mod ieħor jiswa ġimgħa ta' qbid ta' pakketti.
X'jitlob il-mod preserve min-netwerk
Li tħares is-sors ifisser li n-node tad-destinazzjoni jrid jibgħat it-traffiku lura lejn 10.90.0.42 permezz ta' gateway VPN attiv. Il-pool tal-VPN mhuwiex CIDR tal-cluster, għalhekk l-ebda CNI ma jidderieġih għalik b'mod awtomatiku. Żżid ir-rotta int stess u mbagħad tiżgura li l-endpoint tal-gateway li lejh tindika jibqa' ħaj wara skedar mill-ġdid.
ip route add 10.90.0.0/24 via 10.244.3.17 dev eth0
sysctl -w net.ipv4.conf.eth0.rp_filter=2
Dak il-pass li jmiss huwa indirizz ta' pod, u l-indirizzi tal-pods jiċċaqilqu. Idderieġi r-rotta lejn VIP tas-Service jew indirizz tan-node li jibqa' f'postu, jew aċċetta li se tiġri wara l-gateway wara kull tkeċċija. Il-filtrazzjoni tat-triq inversa hija n-nassa l-oħra: il-mod strett iwarrab pakketti li t-triq tar-ritorn tagħhom ma taqbilx mal-interface li waslu fiha, u din hija eżatt il-forma ta' fluss VPN ippreservat.
Validazzjoni laxka spiss hija d-differenza bejn triq tar-ritorn li taħdem u tweġibiet li jisparixxu wara li jitilqu l-backend. Ir-regoli tal-masquerade fuq in-node VPN iridu wkoll jeskludu l-firxa tat-tunnel, inkella l-pakkett mgħoddi joħroġ bl-indirizz tal-pod, irrispettivament minn liema rotta bnejt. Ippreferi tesprimi dik l-esklużjoni fil-konfigurazzjoni tas-CNI stess minflok ma tedita iptables bl-idejn, għax l-aġent jerġa' jikteb il-ktajjen tiegħu meta jerġa' jibda u r-regola miktuba bl-idejn tiegħek tibqa' ħajja eżatt sal-aġġornament li jmiss.
NetworkPolicy hija kontroll tal-aċċess, mhux routing. Issikkar ta' policy qatt mhu se jirrestawra indirizz li l-masquerade diġà sostitwixxa.
X'jiswa s-SNAT, u kif tiktbu
In-NAT tas-sors lejn il-cluster huwa d-disinn orħos, u mhuwiex żball. Il-backend jara l-indirizz tal-pod jew tan-node VPN, ir-reġistri jaqblu ma' xulxin, u m'hemmx għalfejn tkun teżisti rotta tar-ritorn. Dak li titlef huwa l-abbiltà li tiddistingwi żewġ klijenti fil-livell tan-netwerk, għalhekk il-kwoti, il-projbizzjonijiet u l-traċċi tal-awditjar iridu jiġu minn xi mkien ieħor.
Normalment dak xi mkien ieħor hija l-applikazzjoni: token tas-sessjoni, header iffirmat, jew linja tal-protokoll PROXY miktuba minn proxy li tikkontrolla. Dawn jagħtu lir-riċevitur identità li jista' jafda biss meta l-proxy jkun fit-triq u l-header ma jistax jiġi stabbilit mill-ġenb tal-klijent. Kun espliċitu fir-runbook dwar liema tapplika, għax l-inġinier li jmiss se jassumi li l-indirizz fir-reġistru huwa l-klijent. Mhuwiex, u inċident wieħed biżżejjed biex dik l-assunzjoni ssir għalja.
L-iskambju jibqa' onest sakemm ikun miktub.
Kontrolli li jifirdu triq li taħdem minn waħda xortik tajba
Ittestja b'konnessjoni friska minflok waħda fil-cache, u ittestja fiż-żewġ direzzjonijiet. Diversi fallimenti jidhru intermittenti biss għax flussi ġodda jieħdu t-triq miktuba mill-ġdid.
Aqbad it-tuple fi tliet punti waqt talba awtorizzata waħda: eżatt wara d-dekapsulazzjoni, fuq l-interface tal-ħruġ tal-pod VPN, u fuq il-backend. Jekk is-sors jinbidel bejn it-tieni u t-tielet qbid, il-kawża tinsab 'l isfel mill-pod. Jekk jinbidel qabel it-tieni, il-pod innifsu qed jittraduċi.
Imbagħad ħassar il-pod VPN u erġa' għamel it-test waqt li jerġa' jiġi skedat. Triq ippreservata li tinqasam mat-tkeċċija hija mhux mitmuma, u l-istess regola NAT imwaħħla ma' indirizz li m'għadux jeżisti. Fl-aħħar, ibgħat talba waħda minn sors li tistenna li jiġi miċħud u kkonferma li ċ-ċaħda tiġi mill-policy u mhux minn rotta nieqsa.