Укључивање прослеђивања IP на постојећем GCE VPN гејтвеју
canIpForward је својство које се може ажурирати, а не разлог да се VM поново гради. Извезите ресурс, измените један ред, проверите и затим примените са refresh.
VM је направљен без прослеђивања IP, већ покреће VPN софтвер, а инстинкт је да се поново изгради из шаблона са постављеном заставицом. То поновно грађење није потребно. Compute Engine излаже canIpForward као својство које се може ажурирати, а документовани пут ажурирања га примењује са refresh уместо са поновним покретањем. Оно што заставица заправо контролише је уско: без ње платформа одбацује пакете који стижу на инстанцу, али нису адресирани на сопствену адресу инстанце. Гејтвеј који прослеђује саобраћај других машина чини управо то, па заставица мора бити укључена. Све после тога је конфигурација госта и рутирање, које заставица не дира.
Шта заставица дозвољава, а шта не
Када је прослеђивање онемогућено, платформа третира инстанцу као крајњу тачку. Пакети чије је одредиште сопствена адреса инстанце достављају се; пакети које инстанца треба да пренесе даље у нечије име не достављају се.
Када је прослеђивање омогућено, инстанца може да делује као следећи скок за VPC руту, а то је улога која је потребна VPN уређају. Заставица не говори ништа о заштитним зидовима, рутирању госта, конфигурацији тунела или повратним путевима, и вредност true на поквареном гејтвеју је и даље покварен гејтвеј.
Прочитајте тренутно својство
Прегледајте подешавање пре него што било шта промените, користећи describe само за читање према предвиђеној инстанци, пројекту и зони:
gcloud compute instances describe VM_NAME --project PROJECT_ID --zone ZONE --format='value(canIpForward)'
Вредност false је важна само ако овај VM треба да буде следећи скок. Ако јесте, остатак пута и даље треба проверити одвојено, јер је својство један ред у дужем ланцу.
Ажурирајте постојећу инстанцу
Google-ова процедура за ажурирање својстава инстанце извози тренутни ресурс, мења својство и подноси резултат. То је другачији ток рада од заставице --can-ip-forward при стварању, и то је онај који ради на VM-у који се извршава.
Прво извезите дефиницију у локалну датотеку и сачувајте непромењену копију за поређење:
gcloud compute instances export VM_NAME --project PROJECT_ID --zone ZONE --destination=instance.yaml
У тој извезеној датотеци поставите својство и не мењајте ништа друго:
canIpForward: true
Задржите цео ресурс, укључујући његов отисак. Замена датотеке једноредним YAML документом или груписање неповезаних измена типа машине, диска или интерфејса у исто подношење је пут којим промена својства постаје прекид.
Замолите механизам за ажурирање да провери датотеку и пријави шта би захтевао, пре него што се дозволи било каква стварна промена:
gcloud compute instances update-from-file VM_NAME --project PROJECT_ID --zone ZONE --source=instance.yaml --most-disruptive-allowed-action=NO_EFFECT
То извршавање провере не укључује прослеђивање. Прочитајте одговор о неважећим својствима и о радњи која се наводи као потребна. За ову изоловану промену документована радња је REFRESH. Ако резултат тражи поновно покретање, датотека садржи више од својства које сте хтели да промените, па је прегледајте уместо да дозволите поновно покретање.
Примените прегледану датотеку са ограничењем refresh:
gcloud compute instances update-from-file VM_NAME --project PROJECT_ID --zone ZONE --source=instance.yaml --most-disruptive-allowed-action=REFRESH
Проверите да ли је операција завршена и поново извршите команду describe. Ако се отисак више не подудара, неко други је променио инстанцу док сте уређивали, па извезите свежу копију и поново прегледајте промену уместо да прогурате своју застарелу датотеку.
Гост и даље мора да рутира пакет
Дозвола у облаку не чини уређај рутером. Потврдите да VPC рута бира овај VM као следећи скок за префикс одредишта и да гост рутира између тунела и правог интерфејса са сопственом политиком прослеђивања укљученом.
Политика заштитног зида мора да дозволи унутрашњи ток, као и спољни слушалац. Отварање само порта VPN описује шифровани транспорт и не говори ништа о размени апликације унутар њега.
На крају, одредишту је потребан повратни пут до скупа клијената, или пројекат мора намерно да преводи изворе. Ако одредиште види преведени саобраћај, проверите преведени извор; ако пројекат чува скуп, проверите тај скуп у повратној рути и правилима приступа. Додавање NAT пре него што одлучите који пројекат желите крије руту која недостаје и мења политику коју одредиште види.
На Linux гејтвеју, прослеђивање у језгру је део конфигурације госта. Уређај pfSense има свој еквивалент, а копирање Linux sysctl команде у њега није одговарајући корак.
Проверите са клијента којем је потребан приступ
Тестирајте са VPN клијента ка једној циљној услузи, не са самог гејтвеја. Веза започета на гејтвеју користи други извор и никада не примењује правила прослеђивања која сте управо укључили.
Забележите својство у свему што управља уређајем. Ручно исправљен VM ради док његова следећа замена тихо не врати првобитно подешавање, и тај квар ће изгледати као регресија у VPN софтверу.
Редослед рада: прочитајте својство, извезите и уредите један ред, проверите са NO_EFFECT, примените са REFRESH, потврдите да гост прослеђује, затим тестирајте са клијента.