Cloud VPN prema VM na GCP: koristite internu IP adresu, ne NAT IP adresu
Završna tačka gejtveja, interna adresa VM-a i spoljna jedan-na-jedan NAT adresa imaju tri različita posla. Proverite koju koristi vaša ruta.
Kada lokalna mreža stigne do VPC-a kroz Cloud VPN, odredište za uslugu na Compute Engine-u obično je interna adresa VM-a. Spoljna IPv4 adresa nije druga adresa koju možete ubaciti u istu privatnu rutu. Većina zabune u ovoj oblasti dolazi od toga da se tri adrese sa tri posla tretiraju kao zamenljive, pa počnite tako što ćete imenovati koju od njih koristi dati paket.
Tri adrese, tri posla
Imenujte sve tri pre nego što počnete da otklanjate greške na bilo kojoj od njih, jer odgovor menja objekat koji sledeće pregledate.
| Address | Job |
|---|---|
| Cloud VPN endpoint | where the IPsec peers meet |
| Internal IP | the address your route and firewall must name |
| External IPv4 | the platform's inbound mapping, not a guest address |
Prva pripada tunelu. Druga pripada vašem dizajnu rute i zaštitnog zida. Treća pripada dolaznom internet pristupu i preslikava se, a ne priključuje. Dizajn koji radi za jednu od njih ne govori ništa o druge dve.
Zašto spoljna adresa nije drugi interfejs
Vodič za adresiranje je merodavan za to kako se razlikuju interna i spoljna dostupnost na Compute Engine-u. Spoljna IPv4 adresa na Compute Engine-u je preslikavanje jedan-na-jedan na jedini interni NIC instance, pa gost nikada ne vidi drugi interfejs ni drugu adresu na tom NIC-u. Ono što VM iznutra prijavljuje i dalje je jedna primarna interna adresa.
Zato su privatni klijent koji usmerava saobraćaj kroz tunel prema 10.24.1.7 i klijent koji cilja spoljnu adresu VM-a na različitim putevima. Otvaranje pravila zaštitnog zida za javnu adresu ne menja ništa na VPC ruti koja mora da nosi saobraćaj tunela, a uređivanje rute na gostu ne pomera preslikavanje platforme. Izaberite adresu koju vaša ruta imenuje, pa proveravajte samo objekte koji njome upravljaju. Ta disciplina uklanja većinu nagađanja sa ovog puta otklanjanja grešaka.
Prođite put sa gcloud-om
Počnite od instance i pročitajte obe adrese iz istog objekta, da biste znali o kojoj govori vaša dokumentacija:
gcloud compute instances describe app-1 --zone=europe-west1-b \
--format="value(networkInterfaces[0].networkIP,networkInterfaces[0].accessConfigs[0].natIP)"Zatim potvrdite usmeravanje i dozvolu od kojih put zapravo zavisi:
gcloud compute routes list --filter="destRange:10.24.1.0/24"
gcloud compute firewall-rules list --filter="sourceRanges:10.99.0.0/24"
gcloud compute vpn-tunnels describe TUNNEL_NAME --region=europe-west1Pročitajte objavljene i naučene raspone tunela, VPC rutu za podmrežu radnog opterećenja i pravilo zaštitnog zida koje dozvoljava lokalni izvor. To troje mora da se slaže pre nego što je slušalac na gostu uopšte relevantan.
Zatim proverite gosta: da li usluga sluša na internoj adresi i da li se njen povratni put vraća ponovo kroz VPC? Slušalac vezan samo za javnu adresu pašće ovaj test čak i kada je svaki objekat na strani oblaka ispravan.
Javni prefiks je drugo pitanje
Ništa od navedenog ne znači da svaka adresa nošena unutar VPN-a mora biti RFC1918. Udaljena mreža može legitimno da se numeriše iz javnog prostora, pod uslovom da platforma podržava usmeravanje i da operater ima ovlašćenje nad adresom. To je normalan dizajnerski izbor.
To nije isto kao tretirati običnu spoljnu NAT adresu kao da je još jedna interna adresa podmreže. Jedno je prefiks koji usmeravate; drugo je preslikavanje koje platforma primenjuje na dolazni pristup.
Spoljna IPv6 adresa i posebno osmišljeni rasporedi adresa imaju sopstvenu semantiku. Ako vaš plan zavisi od nečega od toga, pročitajte dokumentaciju platforme za tu funkciju umesto da generalizujete iz slučaja IPv4. Preslikavanje IPv4 je uobičajen slučaj, ali ne i jedini, a izuzeci imaju sopstvena pravila.
Preklapajući rasponi su drugi problem
Preklapajući privatni rasponi su stvarni razlog zašto ljudi posežu za javnom adresom, a to je pogrešna poluga. Promena odredišta na NAT adresu VM-a ne rešava preklapanje; menja za koju adresu paket tvrdi da jeste, bez definisanja kako povratni put funkcioniše.
Rešite preklapanje namerno: prenumerišite, upotrebite podržani dizajn prevođenja ili usmerite kroz mrežu u kojoj se prefiksi ne sudaraju. Svako od toga je dizajn sa vlasnikom. NAT adresa nije dizajn.
Dokumentujte dva polja odvojeno
Zabeležite partnera tunela i odredište radnog opterećenja kao dva odvojena polja u runbook-u, svako sa rutom i pravilom zaštitnog zida koje ga podržava. IPsec tunel koji se podigne samo govori da su se strane složile; ne govori ništa o tome na kojoj je adresi radno opterećenje dostupno, ni o tome da li je njegova privatna ruta kompletna.
Proverite stvarnim klijentom na drugoj strani: razrešite ime, potvrdite da vraća internu adresu, povežite se i proverite povratni saobraćaj. Dokumentacija o IP adresama za Compute Engine je referenca za razliku između internog i spoljnog korišćenu gore.