Een geografische beperking is een beslissing over een IP-adres, en een VPN verandert welk adres de dienst ziet. Die ene zin verklaart de meeste verwarrende meldingen die bij een supportwachtrij binnenkomen: «de site werkt thuis en faalt op de tunnel» en «de site werkt op de tunnel maar niemand anders op kantoor kan hem laden» zijn hetzelfde mechanisme met tegengestelde uitkomsten. Deze runbook doorloopt de diagnose in de volgorde die oorzaken uitsluit, te beginnen met wat de edge u werkelijk heeft verteld. Hetzelfde uitgangsadres kan de ene controle halen en de volgende falen, omdat elke controle een andere eigenschap van dat adres beoordeelt.

Lees de 403 voordat u iets wijzigt

Een geoblokkering en een WAF-blokkering komen beide als 403 binnen, en ze worden op verschillende plaatsen opgelost. Leg de responsheaders en de eerste regel van de body vast, want CloudFront voegt een cacheheader en een redenstring toe die vertellen welke laag heeft geantwoord:

curl -sS -o /tmp/body.txt -D /tmp/headers.txt https://d111111abcdef8.cloudfront.net/
grep -i "x-cache\|via" /tmp/headers.txt
head -c 300 /tmp/body.txt

Wanneer de distributie zelf het verzoek om geografische redenen heeft geblokkeerd, bevat de body een bericht dat de landbeperking noemt. Wanneer een WAF-regel het heeft geblokkeerd, is de body meestal een generieke verboden pagina en is de distributie-request-ID in de headers wat u meeneemt naar de WAF-logs. Een fout hier stuurt u voor een probleem met een snelheidsgebaseerde regel naar de landen-allowlist, wat een werkdag is die niet kan slagen.

Stap 1: bevestig welk adres de distributie ziet

Vraag het netwerk wat de buitenwereld ziet, vanaf dezelfde machine en dezelfde route als de browser die faalt. curl -s https://checkip.amazonaws.com geeft het openbare adres van de aanroeper terug, dat voor een VPN-client de uitgang is in plaats van de thuisverbinding van de abonnee:

curl -s https://checkip.amazonaws.com
nslookup d111111abcdef8.cloudfront.net

Als dat adres bij de uitgang van uw provider in een ander land hoort, is de geobeslissing al genomen en niets op de client zal die veranderen. Schrijf het adres in het ticket voordat u een instelling aanraakt, want het is het enige feit in het rapport waarover u en de dienst het eens zijn.

Stap 2: scheid land van reputatie

CloudFront bepaalt de locatie van de kijker uit een GeoIP-database van derden die is gebaseerd op het bronadres van het verzoek, en de toewijzing is bij benadering en regionaal, niet een precieze vaststelling. Wanneer de locatie niet kan worden bepaald, is de gedocumenteerde standaard om de inhoud toch te leveren. Er zijn dus drie mogelijke toestanden: de uitgang wordt toegewezen aan een geblokkeerd land, aan een toegestaan land, of de database heeft geen mening en het verzoek gaat door.

Een gebruiker in een geblokkeerd land kan in een toegestaan land lijken te zijn als de provider daar een uitgang heeft, en een gebruiker in een toegestaan land kan worden geblokkeerd omdat de uitgang elders is geregistreerd. Geen van beide uitkomsten bewijst dat de beperking kapot is. Beide zijn de beperking die werkt op het adres dat zij heeft gekregen, zoals de CloudFront-documentatie over geografische beperkingen beschrijft.

Reputatie is de tweede as en die overleeft de tunnel. De beheerde AWS WAF-regelgroep voor anonieme IP's is gebouwd om verzoeken van VPN's, proxy's, Tor-knooppunten en hostingproviders te blokkeren, dus een verzoek dat de landcontrole haalt kan alsnog worden geweigerd vanwege wat het adres is, niet waar het is. Als de blokkering begon toen u de tunnel naar een cloudhost verplaatste, is dit waarschijnlijk die laag.

Stap 3: controleer het quotagedrag

Gedeelde uitgangen falen op een derde manier. Snelheidslimieten per IP en sessietellingen behandelen één adres als één client, en een consumentenuitgang draagt veel abonnees tegelijk, dus een verzoekpatroon dat vanaf een thuisverbinding onopvallend is, ziet er vanaf de uitgang uit als automatisering. Het symptoom is beperking of een tijdelijke blokkering die vanzelf verdwijnt, niet een geografische foutmelding.

Een distributie kan ook bewust sessies per adres tellen, bijvoorbeeld met een Lambda@Edge-functie die naar DynamoDB schrijft. Dat identificeert niet de persoon achter de uitgang, maar het laat één adres zich gedragen als één client, wat vaak de werkelijke bedoeling is. Log de verschillende adressen achter een klacht voordat u een drempel aanpast, want een bedrijfs-NAT voor tweehonderd bureaus ziet er van buiten precies uit als een drukke uitgang. Verwacht valse positieven van bedrijfs-NAT, een universiteitsnetwerk of een groot huishouden die allemaal één adres presenteren.

Bekijk de gesamplede verzoeken van de WAF en de metrieken van snelheidsgebaseerde regels voordat u de geografie de schuld geeft. Een regel die afgaat op het verzoekvolume van de uitgang laat een duidelijke signatuur achter, en vertelt u ook of de oplossing een limietaanpassing of een ander uitgangspad is.

Wat te wijzigen, en in welke volgorde

Bepaal eerst waarvoor de controle dient. Een regionale catalogus onderhouden, misbruik beperken en een contract handhaven zijn drie verschillende doelen, en alleen het eerste wordt met een landenlijst aangepakt. Als het doel misbruikbeheersing is, is de uitgang de verkeerde eenheid van identiteit, en geen enkele hoeveelheid allowlists maakt een gedeeld adres betrouwbaar.

Als er echt een stabiel adres nodig is voor een allowlist, helpt een toegewijde of statische uitgang omdat het adres kan worden geregistreerd en niet roteert. Het maakt het adres niet residentieel, en het verandert niet het land dat een GeoIP-database eraan toekent. Uitgangen roteren tot er één werkt is een tijdelijke reputatieverandering, geen oplossing voor het beleid.

Schrijf daarna de uitkomst op in de termen die de aanvrager gebruikte: dit adres is geblokkeerd op land, op reputatie of op snelheid, en dit is de controle die zal veranderen. Iets vaags nodigt volgende week hetzelfde ticket uit met een andere uitgang.

Gerelateerde artikelen