VM bola vytvorená bez preposielania IP, už spúšťa VPN softvér a inštinkt velí znova ju postaviť zo šablóny s nastaveným príznakom. Taká prestavba je zbytočná. Compute Engine vystavuje canIpForward ako aktualizovateľnú vlastnosť a dokumentovaná cesta aktualizácie ju uplatní s refresh, nie s reštartom. Čo príznak skutočne riadi, je úzke: bez neho platforma zahadzuje pakety, ktoré dorazia do inštancie, ale nie sú adresované na vlastnú adresu inštancie. Brána, ktorá preposiela prevádzku iných strojov, robí presne to, takže príznak musí byť zapnutý. Všetko po tom je konfigurácia hosťa a smerovanie, ktorých sa príznak netýka.

Čo príznak povoľuje a čo nie

Pri vypnutom preposielaní platforma považuje inštanciu za koncový bod. Pakety, ktorých cieľom je vlastná adresa inštancie, sa doručia; pakety, ktoré má inštancia odovzdať ďalej v mene niekoho iného, nie.

Pri zapnutom preposielaní môže inštancia pôsobiť ako ďalší skok pre trasu VPC, a to je rola, ktorú VPN zariadenie potrebuje. Príznak nehovorí nič o firewalloch, smerovaní hosťa, konfigurácii tunela ani spätných cestách a hodnota true na pokazenej bráne je stále pokazená brána.

Prečítajte aktuálnu vlastnosť

Prezrite nastavenie, kým čokoľvek zmeníte, pomocou describe iba na čítanie voči zamýšľanej inštancii, projektu a zóne:

gcloud compute instances describe VM_NAME --project PROJECT_ID --zone ZONE --format='value(canIpForward)'

Hodnota false je dôležitá len vtedy, ak má byť táto VM ďalším skokom. Ak áno, zvyšok cesty treba aj tak overiť samostatne, pretože vlastnosť je jeden riadok v dlhšej reťazi.

Aktualizujte existujúcu inštanciu

Postup Google aktualizácie vlastností inštancie exportuje aktuálny prostriedok, upraví vlastnosť a odošle výsledok. To je iný pracovný postup než príznak --can-ip-forward pri vytváraní a práve ten funguje na bežiacej VM.

Najprv exportujte definíciu do lokálneho súboru a ponechajte nezmenenú kópiu na porovnanie:

gcloud compute instances export VM_NAME --project PROJECT_ID --zone ZONE --destination=instance.yaml

V tomto exportovanom súbore nastavte vlastnosť a nič iné nemeňte:

canIpForward: true

Zachovajte celý prostriedok vrátane jeho odtlačku. Nahradenie súboru jednoriadkovým dokumentom YAML alebo zlúčenie nesúvisiacich úprav typu stroja, disku či rozhrania do toho istého odoslania je spôsob, akým sa zmena vlastnosti stane výpadkom.

Požiadajte mechanizmus aktualizácie, aby súbor overil a oznámil, čo by vyžadoval, kým sa povolí akákoľvek skutočná zmena:

gcloud compute instances update-from-file VM_NAME --project PROJECT_ID --zone ZONE --source=instance.yaml --most-disruptive-allowed-action=NO_EFFECT

Toto overovacie spustenie preposielanie nezapne. Prečítajte odpoveď na neplatné vlastnosti a na akciu, ktorá je podľa nej potrebná. Pre túto izolovanú zmenu je dokumentovanou akciou REFRESH. Ak výsledok žiada reštart, súbor obsahuje viac než vlastnosť, ktorú ste chceli zmeniť, takže ho prezrite, namiesto toho, aby ste reštart povolili.

Použite prezretý súbor s limitom refresh:

gcloud compute instances update-from-file VM_NAME --project PROJECT_ID --zone ZONE --source=instance.yaml --most-disruptive-allowed-action=REFRESH

Skontrolujte, či operácia skončila, a znova spustite príkaz describe. Ak odtlačok už nesedí, niekto iný zmenil inštanciu počas vašej úpravy, takže exportujte čerstvú kópiu a znova zmenu prezrite, namiesto toho, aby ste pretlačili svoj zastaraný súbor.

Hosť musí paket stále smerovať

Oprávnenie v cloude nerobí zo zariadenia router. Potvrďte, že trasa VPC vyberá túto VM ako ďalší skok pre cieľový prefix a že hosť smeruje medzi tunelom a správnym rozhraním so zapnutou vlastnou politikou preposielania.

Politika firewallu musí povoliť vnútorný tok aj vonkajšieho poslucháča. Otvorenie iba portu VPN opisuje šifrovaný prenos a nič nehovorí o výmene aplikácie v jeho vnútri.

Napokon cieľ potrebuje spätnú cestu k fondu klientov, alebo musí návrh zdroje zámerne prekladať. Ak cieľ vidí preloženú prevádzku, skontrolujte preložený zdroj; ak návrh fond zachováva, skontrolujte ten fond v spätnej trase a v pravidlách prístupu. Pridanie NAT predtým, než sa rozhodnete, ktorý návrh chcete, skrýva chýbajúcu trasu a mení politiku, ktorú cieľ vidí.

Na linuxovej bráne je preposielanie v jadre súčasťou konfigurácie hosťa. Zariadenie pfSense má svoj ekvivalent a kopírovanie linuxového príkazu sysctl doň nie je zodpovedajúcim krokom.

Overte z klienta, ktorý potrebuje prístup

Testujte z VPN klienta na jednu cieľovú službu, nie z brány samotnej. Spojenie začaté na bráne používa iný zdroj a nikdy neprecvičí pravidlá preposielania, ktoré ste práve zapnuli.

Zapíšte vlastnosť do toho, čo zariadenie spravuje. Ručne opravená VM funguje do ďalšieho nahradenia, ktoré ticho vráti pôvodné nastavenie, a tento výpadok bude vyzerať ako regresia VPN softvéru.

Poradie práce: prečítajte vlastnosť, exportujte a upravte jeden riadok, overte s NO_EFFECT, použite s REFRESH, potvrďte, že hosť preposiela, a potom testujte z klienta.

Súvisiace články