Cloud VPN prema VM-u na GCP-u: koristite internu IP adresu, a ne NAT IP adresu
Krajnja točka pristupnika, interna adresa VM-a i vanjska jedno-na-jedan NAT adresa imaju tri različita posla. Provjerite koju koristi vaša ruta.
Kada lokalna mreža dosegne VPC kroz Cloud VPN, odredište za uslugu na Compute Engineu obično je interna adresa VM-a. Vanjska IPv4 adresa nije druga adresa koju možete ubaciti u istu privatnu rutu. Većina zbrke u ovom području dolazi od toga da se tri adrese s tri posla tretiraju kao zamjenjive, pa počnite tako da imenujete koju od njih koristi dati paket.
Tri adrese, tri posla
Imenujte sve tri prije nego što počnete otklanjati pogreške na bilo kojoj od njih, jer odgovor mijenja objekt koji sljedeće pregledavate.
| 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 vatrozida. Treća pripada dolaznom internetskom pristupu i preslikava se, a ne priključuje. Dizajn koji radi za jednu od njih ne govori ništa o druge dvije.
Zašto vanjska adresa nije drugo sučelje
Vodič za adresiranje mjerodavan je za to kako se razlikuju interna i vanjska dostupnost na Compute Engineu. Vanjska IPv4 adresa na Compute Engineu preslikavanje je jedan-na-jedan na jedini interni NIC instance, pa gost nikada ne vidi drugo sučelje ni drugu adresu na tom NIC-u. Ono što VM iznutra prijavljuje i dalje je jedna primarna interna adresa.
Zato su privatni klijent koji usmjerava promet kroz tunel prema 10.24.1.7 i klijent koji cilja vanjsku adresu VM-a na različitim putovima. Otvaranje pravila vatrozida za javnu adresu ne mijenja ništa na VPC ruti koja mora nositi promet tunela, a uređivanje rute na gostu ne pomiče preslikavanje platforme. Odaberite adresu koju vaša ruta imenuje, pa provjeravajte samo objekte koji njome upravljaju. Ta disciplina uklanja većinu nagađanja s ovog puta otklanjanja pogrešaka.
Prođite put s gcloudom
Počnite od instance i pročitajte obje 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 usmjeravanje i dopuštenje o kojima put zapravo ovisi:
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 vatrozida koje dopušta lokalni izvor. To troje mora se slagati prije nego što je slušatelj na gostu uopće relevantan.
Zatim provjerite gosta: sluša li usluga na internoj adresi i vraća li se njezin povratni put ponovno kroz VPC? Slušatelj vezan samo za javnu adresu past će ovaj test čak i kada je svaki objekt 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 se legitimno numerirati iz javnog prostora, pod uvjetom da platforma podržava usmjeravanje i da operater ima ovlast nad adresom. To je normalan dizajnerski izbor.
To nije isto kao tretirati običnu vanjsku NAT adresu kao da je još jedna interna adresa podmreže. Jedno je prefiks koji usmjeravate; drugo je preslikavanje koje platforma primjenjuje na dolazni pristup.
Vanjska IPv6 adresa i posebno osmišljeni rasporedi adresa imaju vlastitu semantiku. Ako vaš plan ovisi o nečemu od toga, pročitajte dokumentaciju platforme za tu značajku umjesto da generalizirate iz slučaja IPv4. Preslikavanje IPv4 uobičajen je slučaj, ali ne i jedini, a iznimke imaju vlastita pravila.
Preklapajući rasponi su drugi problem
Preklapajući privatni rasponi stvarni su razlog zašto ljudi posežu za javnom adresom, a to je pogrešna poluga. Promjena odredišta na NAT adresu VM-a ne rješava preklapanje; mijenja za koju adresa paket tvrdi da jest, bez definiranja kako povratni put funkcionira.
Riješite preklapanje namjerno: prenumerirajte, upotrijebite podržani dizajn prijevoda ili usmjerite kroz mrežu u kojoj se prefiksi ne sudaraju. Svako od toga je dizajn s vlasnikom. NAT adresa nije dizajn.
Dokumentirajte dva polja odvojeno
Zabilježite partnera tunela i odredište radnog opterećenja kao dva odvojena polja u runbooku, svako s rutom i pravilom vatrozida 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 je li njegova privatna ruta potpuna.
Provjerite stvarnim klijentom na drugoj strani: razriješite ime, potvrdite da vraća internu adresu, povežite se i provjerite povratni promet. Dokumentacija o IP adresama za Compute Engine referenca je za razliku između internog i vanjskog korištenu gore.