GKE podovi izgubili VPN pristup nakon 1.14: dva načina da popravite izvor
Nakon 1.14 podovi dolaze do VPN-a s vlastitim adresama, pa peer-ovi odbacuju odgovore. Odaberite ugovor o izvoru, zatim postavite nonMasqueradeCIDRs u skladu s njim.
Stigne nadogradnja i sistemi s druge strane tunela počnu odbijati promet podova koji je radio prethodne sedmice. Tunel je aktivan, pravila firewall-a su netaknuta i nitko nije uređivao politiku peera. Ono što se promijenilo nevidljivo je u logovima klastera: izvorišna adresa koju ti sistemi sada vide. Taj jaz objašnjava kvar koji izgleda kao prekid mreže, a ponaša se kao problem s dozvolama.
Postoje dva valjana odgovora i oni vas vode na različita mjesta. Odaberite ugovor o izvoru prije nego uredite ConfigMap.
Zadano pravilo koje se prestalo instalirati
Ranija GKE izdanja instalirala su pravilo masquerade koje je zamjenjivalo izvore podova adresom čvora kad god je odredište bilo izvan 10.0.0.0/8. VPN pristupnik unutar tog raspona vidio je adresu poda, dok je sve dalje izgledalo kao da dolazi s čvora. Peer-ovi su gradili popise dopuštenih adresa i povratne rute oko adresa čvorova jer su to promatrali.
Kasnija izdanja prestala su instalirati to zadano pravilo. Promet podova sada dolazi na pristupnik s adresama podova, bez obzira na odredište. Peer koji usmjerava samo adrese čvorova odbacuje odgovore i nijedna strana ne zapisuje koristan unos u log. Zahtjev može čak uspjeti na udaljenoj strani, i to je ono što kvar čini zbunjujućim za praćenje.
Ništa nije pokvareno u smislu mrtve komponente. Dvije strane se jednostavno ne slažu oko toga koji je izvor legitiman.
Odaberite izvor koji peer treba vidjeti
Zadržavanje adresa podova točniji je ugovor. Udaljena strana vidi radno opterećenje koje je stvorilo promet, logovi ostaju iskreni i politika po podu postaje moguća. Cijena je da peer mora nositi prefiks podova.
Zadržavanje adresa čvorova jeftiniji je ugovor. Ponovno uključite maskiranje za to odredište i peer nastavlja vidjeti adresu kojoj već vjeruje.
Jedno pitanje odlučuje između njih: što peer radi s izvorom? Ako bilježi, primjenjuje politiku po izvoru ili nameće usko povratno usmjeravanje, adrese podova opravdavaju dodatnu konfiguraciju. Ako samo treba slati odgovore, maskiranje košta manje i ne traži ništa od druge strane. Bilo koji izbor je obranjiv dokle god ga oba tima zapišu.
Treća opcija obično je pogreška: maskirati sve i izgubiti mogućnost pripisivanja prometa. Izbjegavajte je osim ako peer doista ne može usmjeravati ništa osim adresa čvorova.
Usmjerite nonMasqueradeCIDRs na stvarne raspone
GKE pokreće ip-masq-agent u kube-systemu, a njegov ConfigMap navodi odredišta koja preskaču maskiranje. Da biste sačuvali izvore podova prema tunelu, raspon podova, podmreža čvorova i lokalni prefiks svi pripadaju tom popisu.
Zamijenite primjerne vrijednosti rasponima iz vlastitog klastera. Ne širite popis više nego što zahtjev nalaže, jer svaki dodatni unos mijenja što neko drugo odredište vidi. Tri unosa u nastavku predstavljaju mrežu podova, podmrežu čvorova i prefiks iza tunela:
nonMasqueradeCIDRs:
- 10.12.0.0/14
- 10.100.0.0/16
- 172.16.0.0/12
masqLinkLocal: false
resyncInterval: 60sUnos 0.0.0.0/0 onemogućuje maskiranje za sva odredišta, što mijenja kako nepovezana radna opterećenja izgledaju vanjskim servisima i rijetko je namjerno. Agent ponovno čita svoju konfiguraciju na resyncInterval, pa restart obično nije potreban. Provjerite radi li agentov pod, zatim otvorite montiranu datoteku unutar njega. Čitanje te datoteke dokazuje da je promjena stigla.
Povratna putanja je druga polovica
Maskiranje mijenja izvor zahtjeva i ništa drugo. Koji god izvor peer primi, još mu treba ruta natrag do njega, a klasteru još treba ruta prema peeru.
Snimka na VPN pristupniku brzo razdvaja dva kvara. Paketi koji dolaze s adresama podova i nikada ne dobiju odgovor znače da peer nema rutu za prefiks podova. Odgovor koji se pojavi na pristupniku, ali nikada ne stigne do klastera, znači da lokalna ruta nedostaje. Zapišite ugovor u tiket u svakom slučaju: koji izvor peer vidi i prema kojem prefiksu usmjerava odgovor.
Provjerite ponovno nakon svake nadogradnje
Zadano ponašanje maskiranja već se jednom promijenilo, a zamjena skupa čvorova može poništiti mrežu klastera. Tretirajte ugovor o izvoru kao nešto što treba provjeriti, a ne pretpostaviti.
Nakon nadogradnje pošaljite jedan zahtjev iz poda prema lokalnom servisu i pročitajte izvor koji peer bilježi. To jedno promatranje hvata regresiju koju će stranica stanja tunela rado prijaviti kao zdravu. Ponavljanje košta minutu i štedi sljedećoj osobi večer.