Et AWS Client VPN-endpoint uddeler klientadresser fra en pulje, du vælger, og AWS kontrollerer den pulje mod målnettet, før det opretter endpointet. Kontrollen handler ikke om, hvorvidt et subnet ser ledigt ud. Den handler om, hvorvidt puljen overlapper VPC-intervallet, og svaret er det samme, uanset om en EC2-instans tilfældigvis bruger adresserne i dag. Overlap er et spørgsmål om intervaller, ikke om tildelinger.

Gå gennem fem kontroller i rækkefølge. Stop ved den første, der fejler, fordi ingen senere trin kan reparere en tidligere beslutning.

Overlap er en intervaltest, ikke en test for ledige adresser

Start fra VPC-CIDR'et, ikke fra det subnet, du planlægger at tilknytte. En pulje på 172.20.0.0/22 ligger inde i en VPC på 172.20.0.0/16 og afvises, selv når ingen subnet optager den, fordi overlap er en egenskab ved intervallerne og ikke ved de aktuelle tildelinger. Tilføj derefter de destinationer, endpointet ruter til: peered VPC'er, en transit gateway og lokale intervaller over en site-to-site-forbindelse. Ethvert interval, en klient kan få brug for at nå, hører på listen.

Indsaml dem fra kontoen i stedet for fra hukommelsen: aws ec2 describe-vpcs --query "Vpcs[].CidrBlock", plus rutetabelposterne for det subnet, du vil tilknytte.

Puljens størrelse besluttes, før du bygger

AWS accepterer en IPv4-klientpulje mellem /22 og /12 på Client VPN. Et /24 er for lille, et /8 ligger uden for det dokumenterede interval, og begge fejl kommer af at dimensionere puljen som et workload-subnet. Dimensionér den efter forventede samtidige klienter plus plads, og afrund derefter til et tilladt præfiks.

Kontrollér aritmetikken, før du skriver den i konsollen, fordi et forkert indtastet præfiks ændrer puljens størrelse uden nogen 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 udskriver adresseantallet, præfikslængden og hvorvidt kandidaten kolliderer med VPC-intervallet, hvilket er hurtigere end at ræsonnere om netmasker i slutningen af et ændringsvindue.

Resolveren har sin egen adresserolle

VPC-resolveren svarer på basisadressen i VPC-intervallet plus to, hvilket ikke nødvendigvis ligger inde i det subnet, du tilknyttede. At antage, at resolveren skal bo i klientpuljen, eller at bygge et subnet omkring den adresse, tilføjer objekter uden at ændre noget. Det afgørende er, at endpointet bærer en DNS-indstilling, klienten kan anvende, og at resolveren kan nås fra tunnelen.

Notér resolveren, klientpuljen og det tilknyttede subnet som tre separate poster i adresseplanen. De fejler uafhængigt, og at én er rigtig siger intet om de to andre.

Fire felter du binder dig til ved oprettelsen

Klientens IPv4-CIDR er fastlåst ved oprettelsen. At skifte DNS-server, tilføje en tilknytning, udskifte sikkerhedsgruppen, redigere autorisationsregler eller ændre split-tunnel-ruter er alle almindelige rettelser, og ingen af dem omdøber puljen. Den asymmetri er grunden til, at dette fortjener en gennemgang: de billige indstillinger er dem, du vil ændre senere, og den dyre er den, du binder dig til først. Læs endpoint-beskrivelsen, før du planlægger et ændringsvindue.

Undersøg det udrullede endpoint, før du antager en genopbygning. aws ec2 describe-client-vpn-endpoints returnerer puljen, DNS, split-tunnel-flaget og tilknytningerne i ét svar, hvilket normalt er nok til at udelukke en genopbygning.

Erstat endpointet i stedet for at lappe det

Et nyt endpoint er et nyt endpoint, ikke en migrering. Eksisterende sessioner flytter ikke over, klientprofiler peger på et andet navn, og hver indstilling, du tog for givet, skal genskabes: servercertifikat, godkendelse, tilknytninger, ruter, autorisationsgrupper, logning. Validér med én klient mod en påkrævet privat tjeneste og mod en destination, der skal afvises, og udvid derefter adgangen. Alt, du springer over, bliver en supportbillet senere.

Hold det gamle endpoint kørende, indtil den validering består, og behold en administrativ vej, der ikke afhænger af det nye.

Én grænse, der er værd at nævne: dette dækker IPv4-klientpuljen. Indstillinger for dual-stack og IPv6-trafik på Client VPN følger deres egen adresseringsmodel, så kopiér ikke denne tjekliste uden at læse dokumentationen for den tilstand.

Relaterede artikler