VM tika izveidota bez IP pāradresācijas, tā jau darbojas ar VPN programmatūru, un instinkts ir pārbūvēt to no veidnes ar ieslēgtu karodziņu. Šī pārbūve nav nepieciešama. Compute Engine atklāj canIpForward kā atjaunināmu īpašību, un dokumentētā atjaunināšanas metode to piemēro ar refresh, nevis ar restartu. Tas, ko karodziņš faktiski kontrolē, ir šaurs: bez tā platforma izmet paketes, kas nonāk instancē, bet nav adresētas uz pašas instances adresi. Vārteja, kas pārsūta citu mašīnu datplūsmu, dara tieši to, tāpēc karodziņam jābūt ieslēgtam. Viss pēc tam ir viesa konfigurācija un maršrutēšana, ko karodziņš neaiztiek.

Ko karodziņš atļauj un ko ne

Kad pāradresācija ir izslēgta, platforma instanci uzskata par galapunktu. Paketes, kuru galamērķis ir pašas instances adrese, tiek piegādātas; paketes, kuras instancei būtu jāpārsūta kāda cita vārdā, netiek piegādātas.

Kad pāradresācija ir ieslēgta, instance var darboties kā nākamais lēciens VPC maršrutam, un tā ir loma, kas nepieciešama VPN ierīcei. Karodziņš neko nesaka par ugunsmūriem, viesa maršrutēšanu, tuneļa konfigurāciju vai atgriešanās ceļiem, un vērtība true bojātā vārtejā joprojām ir bojāta vārteja.

Nolasiet pašreizējo īpašību

Pārbaudiet iestatījumu pirms kaut kā mainīt, izmantojot tikai lasāmu describe pret paredzēto instanci, projektu un zonu:

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

Vērtībai false ir nozīme tikai tad, ja šai VM jābūt nākamajam lēcienam. Ja tā ir, pārējais ceļš tomēr jāpārbauda atsevišķi, jo īpašība ir viena rinda garākā ķēdē.

Atjauniniet esošo instanci

Google instances īpašību atjaunināšanas procedūra eksportē pašreizējo resursu, maina īpašību un iesniedz rezultātu. Tas ir cits darbplūsmas veids nekā izveides laika karodziņš --can-ip-forward, un tieši tas darbojas darbojošā VM.

Vispirms eksportējiet definīciju lokālā failā un saglabājiet nemainītu kopiju salīdzināšanai:

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

Šajā eksportētajā failā iestatiet īpašību un neko citu nemainiet:

canIpForward: true

Saglabājiet visu resursu, tostarp tā pirksta nospiedumu. Faila aizstāšana ar vienas rindas YAML dokumentu vai nesaistītu mašīnas tipa, diska vai saskarnes labojumu apvienošana vienā iesniegumā ir ceļš, kā īpašības maiņa kļūst par pārtraukumu.

Palūdziet atjaunināšanas mehānismam validēt failu un ziņot, kas būtu nepieciešams, pirms tiek atļauta jebkāda faktiska izmaiņa:

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

Šis validācijas palaidums neiespējo pāradresāciju. Lasiet atbildi par nederīgām īpašībām un par darbību, kas tiek nosaukta kā nepieciešama. Šai izolētajai izmaiņai dokumentētā darbība ir REFRESH. Ja rezultāts prasa restartu, failā ir vairāk nekā īpašība, kuru gribējāt mainīt, tāpēc pārbaudiet to, nevis piešķiriet restartu.

Piemērojiet pārskatīto failu ar refresh ierobežojumu:

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

Pārbaudiet, vai operācija ir pabeigta, un vēlreiz palaidiet describe komandu. Ja pirksta nospiedums vairs neatbilst, kāds cits ir mainījis instanci jūsu rediģēšanas laikā, tāpēc eksportējiet svaigu kopiju un vēlreiz pārskatiet izmaiņas, nevis spiediet cauri savu novecojušo failu.

Viesim joprojām ir jāmaršrutē pakete

Mākoņa atļauja nepadara ierīci par maršrutētāju. Apstipriniet, ka VPC maršruts izvēlas šo VM kā nākamo lēcienu galamērķa prefiksam, un ka viesis maršrutē starp tuneli un pareizo saskarni ar iespējotu savu pāradresācijas politiku.

Ugunsmūra politikai jāatļauj gan iekšējā plūsma, gan ārējais klausītājs. Tikai VPN porta atvēršana apraksta šifrēto transportu un neko nesaka par programmas apmaiņu tā iekšienē.

Visbeidzot, galamērķim ir vajadzīgs atgriešanās ceļš uz klientu kopu, vai arī dizainam apzināti jātulko avoti. Ja galamērķis redz tulkotu datplūsmu, pārbaudiet tulkoto avotu; ja dizains saglabā kopu, pārbaudiet šo kopu atgriešanās maršrutā un piekļuves noteikumos. NAT pievienošana pirms lēmuma par dizainu paslēpj trūkstošu maršrutu un maina politiku, ko redz galamērķis.

Linux vārtejā kodola pāradresācija ir daļa no viesa konfigurācijas. pfSense ierīcei ir savs ekvivalents, un Linux sysctl komandas kopēšana tajā nav atbilstošais solis.

Pārbaudiet no klienta, kuram nepieciešama piekļuve

Testējiet no VPN klienta uz vienu mērķa pakalpojumu, nevis no pašas vārtejas. Savienojums, kas sākts vārtejā, izmanto citu avotu un nekad neizmēģina pāradresācijas noteikumus, kurus tikko iespējojāt.

Ierakstiet īpašību tajā, kas pārvalda ierīci. Manuāli labota VM darbojas, līdz tās nākamā nomaiņa klusi atgriež sākotnējo iestatījumu, un šī kļūme izskatīsies kā regresija VPN programmatūrā.

Darba secība: nolasiet īpašību, eksportējiet un rediģējiet vienu rindu, validējiet ar NO_EFFECT, piemērojiet ar REFRESH, apstipriniet, ka viesis pārsūta, pēc tam testējiet no klienta.

Saistītie raksti