GCP VPN-route werkt alleen in één regio: controleer dynamische routering
Een globale VPC maakt BGP-geleerde routes niet globaal. Lees de routeringsmodus, wijzig die één keer en controleer wat de andere kant aankondigt.
De Amerikaanse workload bereikt het kantoorprefix via de HA VPN zonder problemen, terwijl de Europese workload in dezelfde VPC helemaal niets ontvangt. De routeringstabel bevat geen vermelding voor het prefix, geen enkele tunnel ligt eruit en geen enkele firewallregel is gewijzigd. De tunnel en zijn BGP-sessie zijn in beide richtingen gezond. Een VPC dat regio's omspant is niet hetzelfde als de geleerde routes die regio's omspannen, en juist dat verschil verklaart het hele symptoom.
Hier worden twee eigenschappen verward: waar de subnetten leven en waar een geleerde volgende hop mag worden gebruikt.
Waar het regionale bereik vandaan komt
Cloud Router installeert geleerde routes met een bereik dat de dynamische routeringsmodus van de VPC volgt. In regionale modus is een route die in één regio is geleerd alleen bruikbaar voor resources van die regio, daarom is de Europese tabel leeg in plaats van een kapotte volgende hop te tonen. In globale modus worden geschikte geleerde routes beschikbaar voor resources in elke regio van de VPC. Lees de huidige waarde voordat je iets wijzigt, want regionaal is de standaard. De instelling staat op het netwerk, niet op de tunnel en niet op de router.
De inventariscommando is alleen-lezen en beantwoordt dat in één regel:
gcloud compute networks describe VPC_NAME --format='value(routingConfig.routingMode)'
Voer het uit in het hostproject wanneer de VPC gedeeld is. Het netwerk hoort bij dat project, en een kijkersrol in het workloadproject toont de routeringsconfiguratie misschien niet eens. Een snel antwoord uit het verkeerde project is erger dan geen antwoord.
De wijziging is één commando en één richting
Omschakelen is een bewerking van het controlevlak voor de hele VPC, geen omweg per VM: gcloud compute networks update VPC_NAME --routing-mode=GLOBAL. Het is ook eenrichtingsverkeer, want een netwerk dat op globaal is gezet, kan niet terug naar regionaal. Controleer de project- en netwerknaam nog één keer voordat je het uitvoert, omdat het commando niet om bevestiging vraagt. De wijziging verdient een onderhoudsnotitie en goedkeuring van de netwerkeigenaar, niet een snel experiment op een gedeelde VPC.
Elke Cloud Router-, VPN- en Interconnect-koppeling in dat netwerk erft het nieuwe bereik meteen. Dat geldt ook voor de koppelingen die niemand in het wijzigingsverzoek noemde. Regio's die de route nooit eerder hadden, gaan hem ontvangen zodra de wijziging ingaat, daarom is er geen gefaseerde uitrol voor deze omschakeling.
Globaal is een bereik, geen garantie
Geschiktheid en voorkeur staan los van het bereik. Een route die botst met een specifieker prefix, de selectie van het beste pad verliest of door beleid wordt gefilterd, gedraagt zich precies zoals voorheen. Globale modus verruimt waar een route mag worden gebruikt, maar beslist niet welke route wint. Een geleerde route kan binnen het bereik liggen en toch verliezen van een statisch of specifieker pad in dezelfde VPC.
Dat onderscheid is belangrijk omdat de moduswijziging later makkelijk de schuld krijgt. Als het Europese subnet na de omschakeling nog steeds geen route heeft, is de vraag of de route bestaat en geschikt is, niet of het bereik van kracht is geworden. Prefixconflicten en de gezondheid van de volgende hop zijn de volgende twee dingen om te lezen.
De andere kant kondigt ook anders aan
Aankondigingsgedrag volgt dezelfde instelling. Bij standaardgedrag kondigt een router in regionale modus de subnetten van zijn eigen regio aan, terwijl globale modus de subnetten van de VPC breder aankondigt. De modus wijzigen verandert dus niet alleen wat jouw regio's mogen gebruiken, maar ook wat de andere kant installeert.
Een aangepaste aankondigingslijst breidt niet uit wanneer de modus verandert. Houdt de lokale router een handgeschreven lijst met bereiken bij, dan blijft het Europese prefix daarin ontbreken. Het retourpad blijft in dat geval kapot, ook al bestaat de uitgaande route nu. Controleer wat de andere kant heeft geïnstalleerd in plaats van wat je hebt geëxporteerd.
Wat de modus nooit zal repareren
Globale routering geeft geen toegang tot het openbare internet, geen doorvoer tussen niet-verwante VPC's en geen ontbrekende statische routes. Het wijzigt geen firewallregels of IAM, dus een verbinding die door beleid wordt geweigerd, blijft geweigerd.
Die fouten zien er van binnenuit een workload hetzelfde uit en hebben niets met het routebereik te maken.
Test vanaf de verre regio naar de echte dienst en bevestig daarna dat het antwoord via de bedoelde tunnel terugkomt. Noteer de modus, de aankondigingsconfiguratie en de bestemming die je hebt getest. Als de test nog steeds mislukt, vergelijk dan de BGP-tabel van de verre router met de routelijst van de VPC voordat je de modus opnieuw aanraakt. Dan begint het volgende verslag tussen regio's met feiten in plaats van met een moduswijziging.