IP-edastuse lubamine olemasoleval GCE VPN-lüüsil
canIpForward on uuendatav omadus, mitte põhjus VM-i uuesti ehitada. Ekspordi ressurss, muuda üks rida, valideeri ja rakenda seejärel refresh-iga.
VM loodi ilma IP-edastuseta, see juba käivitab VPN-tarkvara, ja instinkt on see lipuga mallist uuesti ehitada. See ümberehitus on tarbetu. Compute Engine pakub canIpForward-i uuendatava omadusena ning dokumenteeritud uuendustee rakendab selle refresh-iga, mitte taaskäivitusega. Mida lipp tegelikult juhib, on kitsas: ilma selleta viskab platvorm kõrvale paketid, mis jõuavad instansile, kuid ei ole adresseeritud instansi enda aadressile. Lüüs, mis edastab teiste masinate liiklust, teeb täpselt seda, seega peab lipp olema sees. Kõik pärast seda on külalise konfiguratsioon ja marsruutimine, mida lipp ei puuduta.
Mida lipp lubab ja mida mitte
Edastuse väljalülitamisel kohtleb platvorm instantsi lõpp-punktina. Paketid, mille sihtkohaks on instansi enda aadress, toimetatakse kohale; paketid, mille instans peaks kellegi teise nimel edasi andma, mitte.
Edastuse sisselülitamisel võib instans toimida VPC-marsruudi järgmise hüppena, mis ongi VPN-seadme jaoks vajalik roll. Lipp ei ütle midagi tulemüüride, külalise marsruutimise, tunnelikonfiguratsiooni ega tagasiteede kohta ning true väärtus katkisel lüüsil on ikka katkine lüüs.
Loe praegune omadus
Kontrolli seadet enne mis tahes muudatust, kasutades ainult lugemiseks mõeldud describe'i kavandatud instansi, projekti ja tsooni vastu:
gcloud compute instances describe VM_NAME --project PROJECT_ID --zone ZONE --format='value(canIpForward)'
False väärtus loeb ainult siis, kui see VM peaks olema järgmine hüpe. Kui on, tuleb ülejäänud teed ikkagi eraldi kontrollida, sest omadus on üks rida pikemas ahelas.
Uuenda olemasolevat instantsi
Google'i instantsi omaduste uuendamise protseduur ekspordib praeguse ressursi, muudab omadust ja esitab tulemuse. See on teine töövoog kui loomisaja lipp --can-ip-forward, ja just see töötab töötaval VM-il.
Ekspordi esmalt definitsioon kohalikku faili ja hoia võrdlemiseks muutmata koopia:
gcloud compute instances export VM_NAME --project PROJECT_ID --zone ZONE --destination=instance.yaml
Selles eksporditud failis määra omadus ja ära muuda midagi muud:
canIpForward: true
Hoia kogu ressurss, sealhulgas selle sõrmejälg. Faili asendamine üherealise YAML-dokumendiga või masinatüübi, ketta või liidese seotud muudatuste koondamine samasse esitusse on viis, kuidas omaduse muudatusest saab katkestus.
Palu uuendusmehhanismil fail valideerida ja teatada, mida see nõuaks, enne kui lubatakse mis tahes tegelik muudatus:
gcloud compute instances update-from-file VM_NAME --project PROJECT_ID --zone ZONE --source=instance.yaml --most-disruptive-allowed-action=NO_EFFECT
See valideerimiskäivitus ei lülita edastust sisse. Loe vastusest kehtetuid omadusi ja tegevust, mida see vajalikuks peab. Selle üksiku muudatuse jaoks on dokumenteeritud tegevus REFRESH. Kui tulemus küsib taaskäivitust, sisaldab fail rohkemat kui omadus, mida sa muuta tahtsid, seega kontrolli seda, selle asemel et taaskäivitust lubada.
Rakenda ülevaadatud fail refresh-piiranguga:
gcloud compute instances update-from-file VM_NAME --project PROJECT_ID --zone ZONE --source=instance.yaml --most-disruptive-allowed-action=REFRESH
Kontrolli, et toiming lõppes, ja käivita describe-käsk uuesti. Kui sõrmejälg enam ei klapi, muutis keegi teine instantsi sinu redigeerimise ajal, seega ekspordi värske koopia ja vaata muudatus uuesti üle, selle asemel et oma aegunud fail läbi suruda.
Külaline peab paketi ikkagi marsruutima
Pilveõigus ei tee seadmest ruuterit. Kinnita, et VPC-marsruut valib selle VM-i sihtkoha prefiksi järgmiseks hüppeks, ja et külaline marsruudib tunneli ja õige liidese vahel oma edastuspoliitika sisselülitatuna.
Tulemüüri poliitika peab lubama nii sisemist voogu kui ka välist kuulajat. Ainult VPN-pordi avamine kirjeldab krüpteeritud transporti ega ütle midagi selle sees toimuva rakendusvahetuse kohta.
Lõpuks vajab sihtkoht tagasiteed kliendikogumi juurde või peab disain allikaid teadlikult tõlkima. Kui sihtkoht näeb tõlgitud liiklust, kontrolli tõlgitud allikat; kui disain säilitab kogumi, kontrolli seda kogumit tagasiteel ja juurdepääsureeglites. NAT-i lisamine enne, kui otsustad, millist disaini tahad, varjab puuduva marsruudi ja muudab poliitikat, mida sihtkoht näeb.
Linuxi lüüsil on kerneli edastus osa külalise konfiguratsioonist. pfSense'i seadmel on oma vaste, ja Linuxi sysctl-käsu sinna kopeerimine ei ole vastav samm.
Kontrolli kliendi poolt, kes vajab juurdepääsu
Testi VPN-kliendist ühe sihtteenuseni, mitte lüüsilt endalt. Lüüsil algatatud ühendus kasutab teist allikat ega harjuta kunagi edastusreegleid, mille sa just sisse lülitasid.
Kirjenda omadus selles, mis seadet haldab. Käsitsi parandatud VM töötab, kuni selle järgmine asendus toob vaikselt tagasi algse seade, ja see tõrge näeb välja nagu VPN-tarkvara regressioon.
Töö järjekord: loe omadus, ekspordi ja muuda üks rida, valideeri NO_EFFECT-iga, rakenda REFRESH-iga, kinnita, et külaline edastab, seejärel testi kliendist.