Et AWS Client VPN-endepunkt deler ut klientadresser fra en pool du velger, og AWS sjekker denne poolen mot målnettet før endepunktet opprettes. Sjekken handler ikke om et subnett ser ledig ut. Den handler om poolen overlapper VPC-området, og svaret er det samme uansett om en EC2-instans bruker adressene i dag eller ikke. Overlapping er et spørsmål om områder, ikke om tildelinger.

Arbeid deg gjennom fem kontroller i rekkefølge. Stopp ved den første som feiler, fordi ingen senere trinn kan reparere en tidligere beslutning.

Overlapping er en områdetest, ikke en test for ledige adresser

Begynn med VPC-CIDR-en, ikke med subnettet du planlegger å knytte til. En pool på 172.20.0.0/22 ligger inne i en VPC på 172.20.0.0/16 og avvises selv når ingen subnett bruker den, fordi overlapping er en egenskap ved områdene og ikke ved dagens tildelinger. Legg så til destinasjonene endepunktet ruter til: peer-VPC-er, en transit gateway og lokale områder over en site-to-site-forbindelse. Ethvert område en klient kan måtte nå, hører på listen.

Hent dem fra kontoen i stedet for fra hukommelsen: aws ec2 describe-vpcs --query "Vpcs[].CidrBlock", plus rutetabelloppføringene for subnettet du vil knytte til.

Poolstørrelsen bestemmes før du bygger

AWS godtar en IPv4-klientpool mellom /22 og /12 på Client VPN. En /24 er for liten, en /8 er utenfor det dokumenterte området, og begge feilene kommer av å dimensjonere poolen som et arbeidsbelastningssubnett. Dimensjoner den etter forventede samtidige klienter pluss margin, og rund deretter av til et tillatt prefiks.

Sjekk aritmetikken før du skriver den inn i konsollen, fordi et feilskrevet prefiks endrer poolstørrelsen uten noen advarsel:

python3 -c "import ipaddress; p=ipaddress.ip_network('172.16.0.0/22'); print(p.num_addresses, p.prefixlen, p.overlaps(ipaddress.ip_network('172.20.0.0/16')))"

Det skriver ut antall adresser, prefikslengden og om kandidaten kolliderer med VPC-området, noe som er raskere enn å tenke på nettmaskeved slutten av et endringsvindu.

Resolveren har sin egen adresserolle

VPC-resolveren svarer på basisadressen i VPC-området pluss to, som ikke nødvendigvis ligger inne i subnettet du knyttet til. Å anta at resolveren må bo i klientpoolen, eller å bygge et subnett rundt den adressen, legger til objekter uten å endre noe. Det viktige er at endepunktet har en DNS-innstilling klienten kan bruke, og at resolveren er nåbar fra tunnelen.

Noter resolveren, klientpoolen og det tilknyttede subnettet som tre separate poster i adresseplanen. De feiler uavhengig, og at én er riktig sier ingenting om de to andre.

Fire felt du binder deg til ved opprettelsen

Klientens IPv4-CIDR er låst ved oppretting. Å bytte DNS-server, legge til en tilknytning, bytte sikkerhetsgruppe, redigere autorisasjonsregler eller endre split-tunnel-ruter er alle vanlige endringer, og ingen av dem gir poolen nytt navn. Asymmetrien er grunnen til at dette fortjener en gjennomgang: de billige innstillingene er dem du vil endre senere, og den dyre er den du binder deg til først. Les endepunktbeskrivelsen før du planlegger et endringsvindu.

Undersøk det utrullede endepunktet før du antar en gjenoppbygging. aws ec2 describe-client-vpn-endpoints returnerer poolen, DNS, split-tunnel-flagget og tilknytningene i ett svar, som vanligvis er nok til å utelukke en gjenoppbygging.

Bytt ut endepunktet i stedet for å lappe det

Et nytt endepunkt er et nytt endepunkt, ikke en migrering. Eksisterende økter flyttes ikke over, klientprofiler peker på et annet navn, og hver innstilling du tok for gitt, må gjenskapes: servertsertifikat, autentisering, tilknytninger, ruter, autorisasjonsgrupper, logging. Valider med én klient mot en påkrevd privat tjeneste og mot en destinasjon som skal avvises, og utvid deretter tilgangen. Alt du hopper over, blir en støttebillett senere.

Hold det gamle endepunktet i drift til valideringen går gjennom, og behold en administrativ vei som ikke avhenger av det nye.

Én grense verdt å nevne: dette dekker IPv4-klientpoolen. Innstillinger for dual-stack- og IPv6-trafikk på Client VPN følger sin egen adresseringsmodell, så ikke kopier denne sjekklisten uten å lese dokumentasjonen for den modusen.

Relaterte artikler