VM IP yönləndirməsi olmadan yaradılıb, artıq VPN proqramını işlədir və instinkt onu bayraq qoyulmuş şablondan yenidən qurmaqdır. Bu yenidənqurma lazımsızdır. Compute Engine canIpForward-ı yenilənə bilən xassə kimi təqdim edir və sənədləşdirilmiş yeniləmə yolu onu yenidən başlatma yerinə refresh ilə tətbiq edir. Bayrağın həqiqətən idarə etdiyi şey dardır: o olmadan platforma instansa gələn, lakin instansın öz ünvanına ünvanlanmayan paketləri atır. Digər maşınların trafikini yönləndirən şlüz məhz bunu edir, ona görə bayraq açıq olmalıdır. Bundan sonrakı hər şey qonaq konfiqurasiyası və marşrutlaşdırmadır, bayraq onlara toxunmur.

Bayraq nəyə icazə verir və nəyə vermir

Yönləndirmə söndürüldükdə platforma instansa son nöqtə kimi baxır. Təyinatı instansın öz ünvanı olan paketlər çatdırılır; instansın başqası adından ötürməli olduğu paketlər isə çatdırılmır.

Yönləndirmə aktiv olduqda instans VPC marşrutu üçün növbəti hop rolunu oynaya bilər, bu da VPN cihazının ehtiyac duyduğu roldur. Bayraq firewall, qonaq marşrutlaşdırması, tunel konfiqurasiyası və ya geri dönüş yolları haqqında heç nə demir və pozulmuş şlüzdə true dəyəri yenə də pozulmuş şlüzdür.

Cari xassəni oxuyun

Heç nəyi dəyişməzdən əvvəl ayarı nəzərdə tutulan instans, layihə və zona üzərində yalnız oxuma describe ilə yoxlayın:

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

false dəyəri yalnız bu VM növbəti hop olmalıdırsa əhəmiyyət daşıyır. Əgər belədirsə, yolun qalan hissəsi yenə də ayrıca yoxlanmalıdır, çünki xassə daha uzun zəncirdə bir sətirdir.

Mövcud instansı yeniləyin

Google-un instans xassələrinin yenilənmə proseduru cari resursu ixrac edir, xassəni dəyişdirir və nəticəni təqdim edir. Bu, yaradılma zamanındaki --can-ip-forward bayrağından fərqli iş axınıdır və işləyən VM-də işləyən də elə həmin axındır.

Tərifi əvvəlcə yerli fayla ixrac edin və müqayisə üçün dəyişməmiş surət saxlayın:

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

Həmin ixrac edilmiş faylda xassəni qurun və başqa heç nəyi dəyişməyin:

canIpForward: true

Bütün resursu, o cümlədən barmaq izini saxlayın. Faylı bir sətirlik YAML sənədi ilə əvəz etmək və ya maşın növü, disk və ya interfeys üzrə əlaqəsiz düzəlişləri eyni təqdimata birləşdirmək xassə dəyişikliyini kəsintiyə çevirən yoldur.

Hər hansı real dəyişikliyə icazə verilməzdən əvvəl yeniləmə mexanizmindən faylı yoxlamasını və nə tələb edəcəyini bildirməsini istəyin:

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

Bu yoxlama yönləndirməni aktivləşdirmir. Cavabı etibarsız xassələr və tələb olunduğu deyilən əməliyyat üçün oxuyun. Bu təcrid olunmuş dəyişiklik üçün sənədləşdirilmiş əməliyyat REFRESH-dir. Nəticə yenidən başlatma istəyirsə, faylda dəyişmək istədiyiniz xassədən daha çoxu var, ona görə yenidən başlatmaya icazə vermək əvəzinə onu yoxlayın.

Nəzərdən keçirilmiş faylı refresh limiti ilə tətbiq edin:

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

Əməliyyatın tamamlandığını yoxlayın və describe əmrini yenidən işlədin. Barmaq izi artıq uyğun gəlmirsə, siz redaktə edərkən başqası instansı dəyişdirib, ona görə köhnəlmiş faylınızı zorla keçirmək əvəzinə təzə surət ixrac edin və dəyişikliyi yenidən nəzərdən keçirin.

Qonaq hələ də paketi marşrutlaşdırmalıdır

Bulud icazəsi cihazı marşrutlaşdırıcı etmir. VPC marşrutunun bu VM-i təyinat prefiksi üçün növbəti hop kimi seçdiyini və qonağın öz yönləndirmə siyasəti aktiv halda tunel ilə düzgün interfeys arasında marşrutlaşdırdığını təsdiqləyin.

Firewall siyasəti xarici dinləyici ilə yanaşı daxili axına da icazə verməlidir. Yalnız VPN portunu açmaq şifrələnmiş nəqli təsvir edir və içindəki tətbiq mübadiləsi haqqında heç nə demir.

Nəhayət, təyinatın müştəri hovuzuna geri dönüş yolu olmalıdır, ya da dizayn mənbələri qəsdən çevirməlidir. Təyinat çevrilmiş trafik görürsə, çevrilmiş mənbəni yoxlayın; dizayn hovuzu qoruyursa, geri dönüş marşrutunda və giriş qaydalarında həmin hovuzu yoxlayın. Hansı dizaynı istədiyinizə qərar verməzdən əvvəl NAT əlavə etmək çatışmayan marşrutu gizlədir və təyinatın gördüyü siyasəti dəyişir.

Linux şlüzündə kernel yönləndirməsi qonaq konfiqurasiyasının bir hissəsidir. pfSense cihazının öz ekvivalenti var və ona Linux sysctl əmrini köçürmək uyğun addım deyil.

Girişə ehtiyacı olan müştəridən yoxlayın

Şlüzün özündən deyil, VPN müştərindən bir hədəf xidmətə test edin. Şlüzdə başladılan bağlantı fərqli mənbədən istifadə edir və yenicə aktivləşdirdiyiniz yönləndirmə qaydalarını heç vaxt işə salmır.

Xassəni cihazı idarə edən hər nədirsə orada qeyd edin. Əl ilə düzəldilmiş VM növbəti dəyişdirilməsinə qədər işləyir, sonra həmin dəyişdirmə orijinal ayarı səssizcə geri gətirir və bu nasazlıq VPN proqramında reqressiya kimi görünəcək.

İş sırası: xassəni oxuyun, bir sətri ixrac edib redaktə edin, NO_EFFECT ilə yoxlayın, REFRESH ilə tətbiq edin, qonağın yönləndirdiyini təsdiqləyin, sonra müştəridən test edin.

Əlaqəli məqalələr