Cloud VPN uz GCP VM: izmantojiet iekšējo IP, nevis NAT IP
Vārtejas galapunkts, VM iekšējā adrese un ārējā viens-pret-vienu NAT adrese veic trīs dažādus uzdevumus. Pārbaudiet, kuru izmanto jūsu maršruts.
Kad vietējais tīkls sasniedz VPC caur Cloud VPN, Compute Engine pakalpojuma galamērķis parasti ir VM iekšējā adrese. Ārējā IPv4 adrese nav otra adrese, ko varētu ievietot tajā pašā privātajā maršrutā. Lielākā daļa neskaidrību šajā jomā rodas no tā, ka trīs adreses ar trim uzdevumiem tiek uzskatītas par aizvietojamām, tāpēc sāciet ar nosaukšanu, kuru izmanto konkrēta pakete.
Trīs adreses, trīs uzdevumi
Nosauciet visas trīs pirms jebkuras atkļūdošanas, jo atbilde maina objektu, ko pārbaudīsiet tālāk.
| 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 |
Pirmā pieder tunelim. Otrā pieder jūsu maršruta un ugunsmūra dizainam. Trešā pieder ienākošajai interneta piekļuvei un tiek kartēta, nevis pievienota. Dizains, kas darbojas vienai no tām, neko nepasaka par pārējām divām.
Kāpēc ārējā adrese nav otra saskarne
Adresācijas rokasgrāmata ir autoritāte tam, kā Compute Engine atšķiras iekšējā un ārējā sasniedzamība. Compute Engine ārējā IPv4 ir viens-pret-vienu kartējums uz instances vienīgo iekšējo NIC, tāpēc viesis nekad neredz otru saskarni vai otru adresi šajā NIC. Tas, ko VM ziņo no iekšpuses, joprojām ir viena primārā iekšējā adrese.
Tāpēc privāts klients, kas maršrutē caur tuneli uz 10.24.1.7, un klients, kas mērķē uz VM ārējo adresi, atrodas dažādos ceļos. Ugunsmūra noteikuma atvēršana publiskajai adresei neko nemaina VPC maršrutā, kuram jāpārvadā tuneļa satiksme, un viesa maršruta rediģēšana nepārvieto platformas kartējumu. Izvēlieties adresi, ko nosauc jūsu maršruts, un pēc tam pārbaudiet tikai tos objektus, kas to pārvalda. Šī disciplīna noņem lielāko daļu minējumu no šī traucējummeklēšanas ceļa.
Izejiet ceļu ar gcloud
Sāciet ar instanci un nolasiet abas adreses no tā paša objekta, lai zinātu, par kuru runā jūsu dokumentācija:
gcloud compute instances describe app-1 --zone=europe-west1-b \
--format="value(networkInterfaces[0].networkIP,networkInterfaces[0].accessConfigs[0].natIP)"Pēc tam apstipriniet maršrutēšanu un atļauju, no kurām ceļš faktiski ir atkarīgs:
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-west1Nolasiet tuneļa paziņotos un apgūtos diapazonus, VPC maršrutu darba slodzes apakštīklam un ugunsmūra noteikumu, kas atļauj vietējo avotu. Šiem trim jāsakrīt, pirms viesa klausītājs vispār kļūst nozīmīgs.
Pēc tam pārbaudiet viesi: vai pakalpojums klausās iekšējā adresē, un vai tā atgriešanās ceļš atkal iet caur VPC? Klausītājs, kas piesaistīts tikai publiskai adresei, šajā testā neizturēs pat tad, ja katrs mākoņa puses objekts ir pareizs.
Publisks prefikss ir cits jautājums
Nekas no iepriekš minētā nenozīmē, ka katrai VPN iekšienē pārvadātajai adresei jābūt RFC1918. Attālinātu tīklu var likumīgi numurēt no publiskas telpas, ja vien platforma atbalsta maršrutēšanu un operatoram ir adreses pilnvaras. Tā ir normāla dizaina izvēle.
Tas nav tas pats, kas parastu ārējo NAT adresi uzskatīt par vēl vienu iekšējo apakštīkla adresi. Viena ir prefikss, ko jūs maršrutējat; otra ir kartējums, ko platforma piemēro ienākošajai piekļuvei.
Ārējai IPv6 un speciāli veidotiem adrešu izkārtojumiem ir sava semantika. Ja jūsu plāns ir atkarīgs no kāda no tiem, lasiet platformas dokumentāciju par šo funkciju, nevis vispāriniet no IPv4 gadījuma. IPv4 kartējums ir parastais gadījums, ne vienīgais, un katram izņēmumam ir savi noteikumi.
Pārklājošie diapazoni ir cita problēma
Pārklājošie privātie diapazoni ir reāls iemesls, kāpēc cilvēki ķeras pie publiskās adreses, un tas ir nepareizais sviras instruments. Galamērķa maiņa uz VM NAT adresi pārklāšanos neatrisina; tā maina, kurai adresei pakete apgalvo, ka ir domāta, nenosakot, kā darbojas atgriešanās ceļš.
Atrisiniet pārklāšanos apzināti: pārnumurējiet, izmantojiet atbalstītu tulkošanas dizainu vai maršrutējiet caur tīklu, kurā prefiksi nesaduras. Katrs no tiem ir dizains ar atbildīgo. NAT adrese nav dizains.
Dokumentējiet abus laukus atsevišķi
Ierakstiet tuneļa partneri un darba slodzes galamērķi kā divus atsevišķus runbook laukus, katru ar to atbalstošo maršrutu un ugunsmūra noteikumu. Uzcēlies IPsec tunelis tikai pasaka, ka puses vienojas; tas neko nepasaka par to, kurā adresē darba slodze ir sasniedzama, un neko par to, vai tās privātais maršruts ir pilnīgs.
Pārbaudiet ar īstu klientu otrā pusē: atrisiniet vārdu, apstipriniet, ka tas atgriež iekšējo adresi, izveidojiet savienojumu un pārbaudiet atgriešanās satiksmi. Compute Engine IP adrešu dokumentācija ir atsauce uz iepriekš izmantoto iekšējā un ārējā atšķirību.