GKE-Pods hunn no 1.14 de VPN-Zougang verluer: zwee Weeër fir d'Quell ze fixen
No 1.14 erreechen d'Pods d'VPN mat hiren eegenen Adressen, dofir verwerfen d'Peers d'Äntwerten. Wielt de Quellkontrakt an stellt dann nonMasqueradeCIDRs entspriechend an.
En Upgrade kënnt, an d'Systemer op der anerer Säit vum Tunnel fänken un, Pod-Traffic ofzeleeën, dee virdrun Woch nach funktionéiert huet. Den Tunnel ass op, d'Firewall-Reegelen sinn net ugepaakt, an et huet keen d'Peer-Politik geännert. Wat sech geännert huet, ass an de Cluster-Logs onsiichtbar: d'Quelladress, déi dës Systemer elo gesinn. Dës Lück erkläert e Feeler, deen wéi en Netzwierkausfall ausgesäit an sech wéi e Berechtegungsproblem verhält.
Et gëtt zwou gültege Äntwerten, an si féieren Iech op verschidde Plazen. Wielt de Quellkontrakt, ier Dir eng ConfigMap ännert.
D'Standardregel, déi net méi installéiert gëtt
Fréier GKE-Versiounen hunn eng Masquerade-Regel installéiert, déi d'Pod-Quellen duerch d'Knuetadress ersat huet, wann d'Zil baussent 10.0.0.0/8 louch. En VPN-Gateway bannent dësem Beräich huet d'Pod-Adress gesinn, wärend alles wat méi wäit ewech louch, ausgesinn huet wéi wann et vum Knuet kënnt. D'Peers hunn Erlaabnislëschten an Zréckweeër ëm d'Knuetadressen opgebaut, well si dat observéiert hunn.
Spéider Versiounen hunn déi Standardregel net méi installéiert. Pod-Traffic kënnt elo mat de Pod-Adressen op de Gateway, egal wéi d'Zil ass. En Peer, deen nëmme Knuetadressen routet, verwërft d'Äntwerten, an et schreift keng Säit eng nëtzlech Logzeil. D'Ufro kann och um wäiten Enn geléngen, an dat ass wat de Feeler schwéier ze verfollege mécht.
Näischt ass futti am Sënn vun engem doudege Bestanddeel. Déi zwou Säiten sinn einfach net eeneg, wéi eng Quell legitim ass.
Wielt d'Quell, déi de Peer solle gesinn
Pod-Adressen ze behalen ass de méi genee Kontrakt. Déi wäit Säit gesäit d'Aarbechtslaascht, déi den Traffic produzéiert huet, d'Logs bleiwe richtegeg, an eng Politik pro Pod gëtt méiglech. De Präis ass, datt de Peer de Pod-Präfix muss droen.
Knuetadressen ze behalen ass de méi bëllegen Kontrakt. Schalt d'Masquerade fir dat Zil erëm an, an de Peer gesäit weiderhin eng Adress, där hien schonn traut.
Eng Fro entscheet tëschent deenen zwou: wat mécht de Peer mat der Quell? Wann hien loggt, eng Politik pro Quell uwendt oder eng enk Zréckrouting erzwingt, da gerechtfäerdegen d'Pod-Adressen déi zousätzlech Konfiguratioun. Wann hien nëmmen Äntwerten schécke muss, kascht d'Masquerade manner a verlaangt näischt vun der anerer Säit. Béid Wiel sinn ze verdeedegen, soulaang béid Teamer se opschreiwen.
Eng drëtt Optioun ass meeschtens e Feeler: alles masquerade an d'Fäegkeet verléieren, den Traffic zouzeuerdnen. Vermeit se, ausser en Peer kann wierklech näischt anescht wéi Knuetadressen route.
Riicht nonMasqueradeCIDRs op déi richteg Beräicher
GKE bedreift den ip-masq-agent am kube-system, an seng ConfigMap lëscht d'Ziler op, déi d'Masquerade iwwersprangen. Fir d'Pod-Quellen a Richtung Tunnel ze behalen, gehéieren de Pod-Beräich, de Knuet-Subnetz an de lokale Präfix all op déi Lëscht.
Ersetzt d'Beispillwäerter duerch Beräicher aus Ärem eegene Cluster. Maacht d'Lëscht net méi breet wéi d'Ufuerderung et verlaangt, well all zousätzlech Zeil ännert, wat en anert Zil gesäit. Déi dräi Zeilen hei drënner stinn fir de Pod-Netzwierk, de Knuet-Subnetz an de Präfix hannert dem Tunnel:
nonMasqueradeCIDRs:
- 10.12.0.0/14
- 10.100.0.0/16
- 172.16.0.0/12
masqLinkLocal: false
resyncInterval: 60sEng Zeil mat 0.0.0.0/0 deaktivéiert d'Masquerade fir all Ziler, wat ännert, wéi onzusammenhängend Aarbechtslaaschten externen Déngschter erschéngen, a gëtt seelen absichtlech gesat. Den Agent liest seng Konfiguratioun bei resyncInterval nei, sou datt en Neistart normalerweis net néideg ass. Kontrolléiert, ob de Pod vum Agent leeft, an opent duerno d'Datei, déi doban montéiert ass. D'Liesen vun där Datei ass et, wat beweist, datt d'Ännerung ukomm ass.
Den Zréckwee ass déi aner Halschent
Masquerade ännert d'Quell vun der Ufro an näischt anescht. Wéi eng Quell de Peer och kritt, hien brauch weiderhin eng Route zréck dohinner, an de Cluster brauch weiderhin eng Route Richtung Peer.
Eng Opnam um VPN-Gateway trennt déi zwou Feeler séier. Pakete mat Pod-Adressen, déi ni eng Äntwert kréien, bedeiten, datt dem Peer eng Route fir de Pod-Präfix feelt. Eng Äntwert, déi um Gateway erschéngt awer ni de Cluster erreecht, bedeit, datt déi lokal Route feelt. Schreift de Kontrakt esou oder esou an den Ticket: wéi eng Quell de Peer gesäit, a wéi ee Präfix hien zréck routet.
Kontrolléiert no all Upgrade nei
D'Standardverhalen vun der Masquerade huet sech schonn eemol geännert, an den Ersatz vun engem Knuetpool kann d'Clusternetzwierk zrécksetzen. Behandelt de Quellkontrakt als eppes, wat verifizéiert gëtt, an net als eppes, wat ugeholl gëtt.
Schéckt nodeems en Upgrade eng Ufro vun engem Pod un en lokalen Déngscht a liest d'Quell, déi de Peer loggt. Déi eenzeg Observatioun fänkt eng Regressioun, déi eng Tunnelstatus-Säit gär als gesond mellt. Se widderhuelen kascht eng Minutt a spuert der nächster Persoun en Owend.