GCP VM-ə Cloud VPN: NAT IP deyil, daxili IP istifadə edin
Şlüz son nöqtəsi, VM-in daxili ünvanı və xarici bir-birə NAT ünvanı üç fərqli iş görür. Marşrutunuzun hansını istifadə etdiyini yoxlayın.
Lokal şəbəkə Cloud VPN vasitəsilə VPC-yə çatdıqdan sonra Compute Engine xidməti üçün təyinat adətən VM-in daxili ünvanıdır. Xarici IPv4 ünvanı eyni şəxsi marşruta əvəz edə biləcəyiniz ikinci ünvan deyil. Bu sahədəki qarışıqlığın çoxu üç fərqli işi olan üç ünvanın bir-birini əvəz edən kimi qəbul edilməsindən gəlir, ona görə də əvvəlcə verilmiş paketin hansını istifadə etdiyini adlandırın.
Üç ünvan, üç iş
Onlardan hər hansı birini sazlamağa başlamazdan əvvəl hər üçünü adlandırın, çünki cavab növbəti yoxlayacağınız obyekti dəyişir.
| Address | Job |
|---|---|
| Cloud VPN endpoint | where the IPsec peers meet |
| Internal IP | the address your route and firewall must name |
| External IPv4 | the platform's inbound mapping, not a guest address |
Birinci tunelə aiddir. İkinci marşrut və firewall dizaynınıza aiddir. Üçüncü daxil olan internet çıxışına aiddir və əlavə edilmir, xəritələnir. Onlardan biri üçün işləyən dizayn digər ikisi barədə heç nə demir.
Niyə xarici ünvan ikinci interfeys deyil
Ünvanlaşdırma təlimatı Compute Engine-də daxili və xarici əlçatanlığın necə fərqləndiyi üçün səlahiyyətli mənbədir. Compute Engine xarici IPv4 instansın yeganə daxili NIC-i üzərində bir-birə xəritələmədir, buna görə qonaq sistem o NIC-də heç vaxt ikinci interfeys və ya ikinci ünvan görmür. VM-in daxildə bildirdiyi hələ də bir əsas daxili ünvandır.
Buna görə şəxsi müştəri tunel vasitəsilə 10.24.1.7 ünvanına doğru marşrutlaşdırarkən, VM-in xarici ünvanını hədəfləyən müştəri ilə fərqli yollardadır. İctimai ünvan üçün firewall qaydası açmaq tunel trafikini daşımalı olan VPC marşrutunda heç nəyi dəyişmir və qonaq sistem marşrutunu redaktə etmək platformanın xəritələməsini yerindən tərpətmir. Marşrutunuzun adlandırdığı ünvanı seçin, sonra yalnız onu idarə edən obyektləri yoxlayın. Bu intizam bu nasazlıq axtarışı yolundan təxminlərin çoxunu çıxarır.
gcloud ilə yolu addımlayın
İnstansdan başlayın və hər iki ünvanı eyni obyektdən oxuyun ki, sənədləşdirmənizin hansından bəhs etdiyini biləsiniz:
gcloud compute instances describe app-1 --zone=europe-west1-b \
--format="value(networkInterfaces[0].networkIP,networkInterfaces[0].accessConfigs[0].natIP)"Sonra yolun həqiqətən asılı olduğu marşrutlaşdırmanı və icazəni təsdiqləyin:
gcloud compute routes list --filter="destRange:10.24.1.0/24"
gcloud compute firewall-rules list --filter="sourceRanges:10.99.0.0/24"
gcloud compute vpn-tunnels describe TUNNEL_NAME --region=europe-west1Tunelin elan etdiyi və öyrəndiyi aralıqları oxuyun, iş yükü alt şəbəkəsi üçün VPC marşrutunu və lokal mənbəyə icazə verən firewall qaydasını. Bu üçü qonaq sistemdəki dinləyicinin əhəmiyyəti olmadan əvvəl uyğun olmalıdır.
Sonra qonaq sistemi yoxlayın: xidmət daxili ünvanda dinləyirmi və onun geri dönüş yolu yenidən VPC-dən keçirmi? Yalnız ictimai ünvana bağlanmış dinləyici, bulud tərəfindəki hər obyekt düzgün olsa belə, bu testdə uğursuz olacaq.
İctimai prefiks başqa sualdır
Yuxarıdakıların heç biri VPN daxilində daşınan hər ünvanın RFC1918 olması demək deyil. Uzaq şəbəkə qanuni olaraq ictimai məkandan nömrələnə bilər, bir şərtlə ki, platforma marşrutlaşdırmanı dəstəkləsin və operator ünvan səlahiyyətinə sahib olsun. Bu normal dizayn seçimidir.
Bu, adi xarici NAT ünvanına başqa daxili alt şəbəkə ünvanı kimi yanaşmaqla eyni şey deyil. Biri marşrutlaşdırdığınız prefiksdır; digəri platformanın daxil olan çıxışa tətbiq etdiyi xəritələmədir.
Xarici IPv6 və xüsusi dizayn edilmiş ünvan quruluşlarının öz semantikası var. Planınız bunlardan birinə bağlıdırsa, IPv4 halından ümumiləşdirmək əvəzinə həmin funksiya üçün platforma sənədlərini oxuyun. IPv4 xəritələməsi ümumi haldır, yeganə deyil və istisnaların hər birinin öz qaydaları var.
Üst-üstə düşən aralıqlar başqa problemdir
Üst-üstə düşən şəxsi aralıqlar insanların ictimai ünvana əl atmasının real səbəbidir və bu, yanlış rıçaqdır. Təyinatı VM-in NAT ünvanına dəyişmək üst-üstə düşməni həll etmir; paketin hansı ünvan üçün olduğunu iddia etdiyini dəyişir, geri dönüş yolunun necə işlədiyini isə müəyyən etmir.
Üst-üstə düşməni qəsdən həll edin: nömrələməni dəyişin, dəstəklənən tərcümə dizaynı istifadə edin və ya prefikslərin toqquşmadığı şəbəkədən marşrutlaşdırın. Bunların hər biri sahibi olan dizayndır. NAT ünvanı dizayn deyil.
İki sahəni ayrıca sənədləşdirin
Tunel həmkarını və iş yükü təyinatını iki ayrı runbook sahəsi kimi qeyd edin, hər biri özünü dəstəkləyən marşrut və firewall qaydası ilə. Qalxan IPsec tuneli yalnız tərəflərin razılaşdığını bildirir; iş yükünün hansı ünvanda əlçatan olduğunu və şəxsi marşrutunun tam olub-olmadığını demir.
Digər tərəfdə real müştəri ilə yoxlayın: adı həll edin, daxili ünvanı qaytardığını təsdiqləyin, qoşulun və geri dönüş trafikini yoxlayın. Compute Engine IP ünvan sənədləri yuxarıda istifadə olunan daxili-xarici fərqinə dair istinaddır.