Ruta GCP VPN funcționează doar într-o singură regiune: verificați rutarea dinamică
Un VPC global nu face globale rutele învățate prin BGP. Citiți modul de rutare, schimbați-l o dată și verificați ce anunță partea îndepărtată.
Sarcina de lucru din SUA ajunge la prefixul biroului prin HA VPN fără probleme, în timp ce sarcina europeană din același VPC nu primește nimic. Tabelul său de rutare nu conține nicio intrare pentru prefix, niciun tunel nu este căzut și nicio regulă de firewall nu s-a schimbat. Tunelul și sesiunea sa BGP sunt sănătoase în ambele direcții. Un VPC care se întinde pe regiuni nu este același lucru cu rutele sale învățate care se întind pe regiuni, iar această diferență explică întregul simptom.
Aici se confundă două proprietăți: unde se află subrețelele și unde poate fi folosit următorul salt învățat.
De unde vine domeniul regional
Cloud Router instalează rutele învățate cu un domeniu care urmează modul de rutare dinamică al VPC-ului. În modul regional, o rută învățată într-o regiune poate fi folosită doar de resursele acelei regiuni, de aceea tabelul european este gol în loc să arate un următor salt rupt. În modul global, rutele învățate eligibile devin disponibile resurselor din fiecare regiune a VPC-ului. Citiți valoarea curentă înainte de a schimba ceva, deoarece modul regional este implicit. Setarea se află pe rețea, nu pe tunel și nu pe router.
Comanda de inventar este doar pentru citire și răspunde la asta într-o singură linie:
gcloud compute networks describe VPC_NAME --format='value(routingConfig.routingMode)'
Rulați-o în proiectul gazdă când VPC-ul este partajat. Rețeaua aparține acelui proiect, iar un rol de vizualizator în proiectul sarcinii de lucru poate nici să nu afișeze configurația de rutare. Un răspuns rapid din proiectul greșit este mai rău decât niciun răspuns.
Schimbarea este o comandă și o direcție
Comutarea este o editare a planului de control pentru întregul VPC, nu o soluție ocolitoare per VM: gcloud compute networks update VPC_NAME --routing-mode=GLOBAL. Este și într-un singur sens, deoarece o rețea setată pe global nu poate fi readusă la regional. Verificați încă o dată numele proiectului și al rețelei înainte de a o rula, deoarece comanda nu cere confirmare. Schimbarea merită o notă de mentenanță și aprobarea proprietarului rețelei, nu un experiment rapid pe un VPC partajat.
Fiecare atașament Cloud Router, VPN și Interconnect din acea rețea moștenește noul domeniu imediat. Aceasta include atașamentele pe care nimeni nu le-a menționat în cererea de schimbare. Regiunile care nu au avut niciodată ruta încep să o primească imediat ce schimbarea intră în vigoare, de aceea nu există o implementare etapizată pentru această comutare.
Global este un domeniu, nu o garanție
Eligibilitatea și preferința sunt separate de domeniu. O rută care intră în conflict cu un prefix mai specific, pierde selecția celei mai bune căi sau este filtrată de politică se comportă exact ca înainte. Modul global lărgește unde poate fi folosită o rută, dar nu decide care rută câștigă. O rută învățată poate fi în domeniu și totuși să piardă în fața unei căi statice sau mai specifice în același VPC.
Această distincție contează pentru că schimbarea modului este ușor de învinuit mai târziu. Dacă subrețeaua europeană încă nu are rută după comutare, întrebarea este dacă ruta există și este eligibilă, nu dacă domeniul a intrat în vigoare. Conflictele de prefixe și sănătatea următorului salt sunt următoarele două lucruri de citit.
Partea îndepărtată anunță și ea altfel
Comportamentul de anunțare urmează aceeași setare. Cu comportamentul implicit, un router în mod regional anunță subrețelele propriei regiuni, în timp ce modul global anunță subrețelele VPC-ului mai larg. De aceea schimbarea modului modifică nu doar ce pot folosi regiunile dumneavoastră, ci și ce instalează partea îndepărtată.
O listă de anunțuri personalizată nu se extinde când se schimbă modul. Dacă routerul local păstrează o listă scrisă de mână cu intervale, prefixul european rămâne absent din ea. Calea de întoarcere rămâne ruptă în acel caz, deși ruta de ieșire există acum. Verificați ce a instalat partea îndepărtată, nu ce ați exportat.
Ce nu va repara niciodată modul
Rutarea globală nu acordă acces la internetul public, tranzit între VPC-uri neînrudite sau rute statice lipsă. Nu modifică regulile de firewall sau IAM, așa că o conexiune refuzată de politică rămâne refuzată.
Aceste eșecuri arată la fel din interiorul unei sarcini de lucru și nu au nicio legătură cu domeniul rutelor.
Testați din regiunea îndepărtată către serviciul real, apoi confirmați că răspunsul se întoarce prin tunelul dorit. Notați modul, configurația de anunțare și destinația testată. Dacă testul tot eșuează, comparați tabelul BGP al routerului îndepărtat cu lista de rute a VPC-ului înainte de a atinge din nou modul. Atunci următorul raport între regiuni începe cu fapte, nu cu o schimbare de mod.