CIDR клијента на AWS Client VPN не сме да се преклапа са опсегом VPC-а
AWS фиксира pool на Client VPN-у при креирању, а преклапање се одлучује опсезима, а не неискоришћеним адресама. Пет провера пре изградње.
AWS Client VPN endpoint додељује адресе клијената из pool-а који ви бирате, а AWS проверава тај pool према циљној мрежи пре него што креира endpoint. Провера није да ли subnet изгледа слободан. Провера је да ли се pool преклапа са опсегом VPC-а, а одговор је исти без обзира на то да ли данас нека EC2 инстанца користи те адресе. Преклапање је питање опсега, а не алокација.
Прођите кроз пет провера по реду. Зауставите се на првој која падне, јер ниједан каснији корак не може да поправи ранију одлуку.
Преклапање је тест опсега, а не тест слободних адреса
Крените од VPC CIDR-а, а не од subneta који планирате да повежете. Pool од 172.20.0.0/22 налази се унутар VPC-а од 172.20.0.0/16 и бива одбијен чак и када га ниједан subnet не заузима, јер је преклапање својство опсега, а не тренутних алокација. Затим додајте одредишта према којима endpoint усмерава: peered VPC-ови, transit gateway и локални опсези преко site-to-site везе. Сваки опсег до којег клијенту може затребати приступ припада листи.
Прикупљајте их из налога, а не из сећања: aws ec2 describe-vpcs --query "Vpcs[].CidrBlock", плус уноси табеле рутирања за subnet који намеравате да повежете.
Величина pool-а одлучује се пре изградње
AWS прихвата IPv4 клијентски pool између /22 и /12 на Client VPN-у. /24 је премали, /8 је изван документованог опсега, а обе грешке долазе од димензионисања pool-а као subneta за радно оптерећење. Димензионишите га према очекиваним истовременим клијентима плус резерви, а затим заокружите на дозвољени префикс.
Проверите аритметику пре него што је упишете у конзолу, јер погрешно уписан префикс мења величину pool-а без икаквог упозорења:
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')))"То исписује број адреса, дужину префикса и да ли се кандидат судара са опсегом VPC-а, што је брже од размишљања о мрежним маскама на крају прозора за промене.
Resolver има сопствену улогу адресе
VPC resolver одговара на базној адреси опсега VPC-а плус два, што није нужно унутар subneta који сте повезали. Претпоставка да resolver мора да живи у клијентском pool-у, или градња subneta око те адресе, додаје објекте без икакве промене. Важно је да endpoint носи DNS поставку коју клијент може да примени и да је resolver доступан из тунела.
Забележите resolver, клијентски pool и повезани subnet као три одвојене ставке у плану адреса. Они падају независно, а то што је једно исправно не говори ништа о друга два.
Четири поља која фиксирате при креирању
Клијентски IPv4 CIDR је фиксиран при креирању. Промена DNS сервера, додавање придруживања, замена безбедносне групе, уређивање правила ауторизације или измена split-tunnel рута све су обичне измене и ниједна од њих не преименује pool. Та асиметрија је разлог зашто ово заслужује преглед: јефтине поставке су оне које ћете касније пожелети да мењате, а скупа је она коју фиксирате прво. Прочитајте опис endpoint-а пре него што планирате прозор за промене.
Прегледајте имплементирани endpoint пре него што претпоставите поновну изградњу. aws ec2 describe-client-vpn-endpoints враћа pool, DNS, split-tunnel заставицу и придруживања у једном одговору, што је обично довољно да искључи поновну изградњу.
Замените endpoint уместо да га крпите
Нови endpoint је нови endpoint, а не миграција. Постојеће сесије не прелазе на њега, клијентски профили показују на друго име, а свака поставка коју сте узимали здраво за готово мора поново да се створи: серверски сертификат, аутентификација, придруживања, руте, ауторизационе групе, логовање. Проверите са једним клијентом према обавезној приватној услузи и према одредишту које мора да буде одбијено, па проширите приступ. Све што прескочите касније постаје тикет за подршку.
Држите стари endpoint у раду док та провера не прође и задржите административни пут који не зависи од новог.
Једна граница коју вреди навести: ово покрива IPv4 клијентски pool. Поставке dual-stack и IPv6 саобраћаја на Client VPN-у следе сопствени модел адресирања, па немојте копирати ову листу без читања документације за тај режим.