Int konness mal-endpoint ta' AWS Client VPN, is-subnet privat iwieġeb, u minkejja dan kull paġna pubblika tispiċċa b'timeout. Din il-kombinazzjoni tnaqqas il-problema għal wieħed minn tliet oġġetti fuq in-naħa ġestita: ir-rotta li l-klijent jinstalla, ir-rotta tal-endpoint flimkien mar-regola tal-awtorizzazzjoni tagħha, jew il-qabża li jmiss tas-subnet assoċjat. Nivverifika dawn f'dan l-ordni għax kull falliment jidher differenti mill-klijent. Dan il-gwida jkopri l-endpoint ġestit assoċjat ma' VPC, mhux server OpenVPN fuq istanza EC2 u mhux konnessjoni Cloud WAN jew Transit Gateway.

Ibda b'dak li l-klijent tabilħaqq jirrotta

Stat konness jipprova s-sessjoni TLS u l-allokazzjoni tas-CIDR lill-klijent, xejn aktar. Staqsi lis-sistema operattiva fejn tmur indirizz pubbliku waqt li t-tunnel ikun attiv. Fuq Linux, ip route get 1.1.1.1 għandu jsemmi l-interface tat-tunnel; fuq macOS, netstat -rn -f inet | head -5 juri d-dħul default; fuq Windows, Find-NetRoute -RemoteIPAddress 1.1.1.1 jipprintja l-interface magħżul u l-qabża li jmiss.

Imbagħad aqra l-bandiera tas-split-tunnel, għax tiddetermina jekk ir-rotot ippubblikati mill-endpoint humiex l-uniċi destinazzjonijiet li l-klijent jibgħat fit-tunnel:

aws ec2 describe-client-vpn-endpoints \
  --client-vpn-endpoint-ids cvpn-endpoint-0123456789abcdef0 \
  --query 'ClientVpnEndpoints[0].SplitTunnel'

Meta SplitTunnel huwa true, destinazzjoni pubblika tuża t-tunnel biss meta l-endpoint jippubblika rotta li tkopriha, għalhekk 0.0.0.0/0 nieqsa tħalli dak it-traffiku fuq l-interface lokali. Meta huwa false, il-klijent jaqbad it-traffiku, imma l-endpoint xorta jrid jirrotta u jawtorizza, inkella l-pakketti jidħlu fit-tunnel u jieqfu hemm. Erġa' għaqqad il-klijent wara li tbiddel waħda miż-żewġ settings, għax ir-rotot u s-servers DNS jiġu kkonsenjati fil-ħin tal-konnessjoni u klijent li jaħdem jista' jżomm is-sett antik tiegħu.

Jaqra r-rotta tal-endpoint u r-regola tal-awtorizzazzjoni separatament

Dawn huma żewġ oġġetti, u l-ħolqien ta' wieħed ma joħloqx l-ieħor. Elenka r-rotot tal-endpoint u fittex rotta default li l-mira tagħha hija subnet assoċjat:

aws ec2 describe-client-vpn-routes \
  --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0

Kull rotta għandha eżattament subnet mira waħda, għalhekk tliet assoċjazzjonijiet jeħtieġu rotta default li tqabbel għal kull waħda. AWS tiddokumenta dan ir-rekwiżit ta' kopertura, u s-sintomu prattiku ta' lakuna huwa utent li jaħdem minn subnet waħda u jieqaf minn oħra, li jinqara bħala ħsara intermittenti minflok rotta nieqsa. Id-dokumentazzjoni uffiċjali tax-xenarju tal-Client VPN tiddeskrivi l-arranġament tas-subnet pubbliku li dawn ir-rotot jappartjenu għalih.

L-awtorizzazzjoni hija t-tieni oġġett. Meta l-ebda regola ma tkopri d-destinazzjoni pubblika, it-tunnel iġorr il-pakkett u s-servizz jarmih, għalhekk ir-riżorsi privati jibqgħu jaħdmu waqt li l-internet le:

aws ec2 describe-client-vpn-authorization-rules \
  --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0

Regola għas-CIDR tal-VPC ma tgħid xejn dwar 0.0.0.0/0. Iż-żieda tal-biċċiet neqsin għal tunnel sħiħ tfisser rotta waħda għal kull subnet assoċjat flimkien ma' regola tal-awtorizzazzjoni li tista' tawditja aktar tard:

aws ec2 create-client-vpn-route \
  --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0 \
  --destination-cidr-block 0.0.0.0/0 \
  --target-vpc-subnet-id subnet-0a1b2c3d4e5f67890
aws ec2 create-client-vpn-authorization-rule \
  --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0 \
  --destination-cidr-block 0.0.0.0/0 \
  --access-all \
  --description "internet egress for full tunnel"

--access-all tagħti d-destinazzjoni lil kull klijent tal-endpoint, għalhekk żommha biss sakemm it-tunnel għandu jkun sħiħ; regola marbuta ma' grupp tad-direttorju hija preferibbli meta għandek gruppi x'torbot.

Ssegwi l-pakkett 'il barra mis-subnet assoċjat

Rotta tal-endpoint tiddetermina li AWS tagħti l-pakkett lil dak is-subnet. Ma tiddeterminax il-qabża li jmiss wara, li tgħix fit-tabella tar-rotot tal-VPC tas-subnet stess:

aws ec2 describe-route-tables \
  --filters Name=association.subnet-id,Values=subnet-0a1b2c3d4e5f67890 \
  --query 'RouteTables[].Routes[?DestinationCidrBlock==`0.0.0.0/0`]'

Rotta default użabbli tipponta lejn internet gateway għal subnet pubbliku, jew lejn NAT gateway għal wieħed privat, u stat blackhole ifisser li l-mira tħassret u t-triq issa tmut bil-kwiet. Dawn huma tabelli differenti mil-lista tar-rotot tal-endpoint, u t-tiswija ta' waħda ma tiswix l-oħra.

Fuq din il-qabża joqogħdu żewġ filtri. Il-grupp tas-sigurtà applikat għall-assoċjazzjoni tan-netwerk tal-mira għandu jippermetti traffiku ħiereġ lejn id-destinazzjoni pubblika, u kull ACL tan-netwerk applikabbli għandu jippermetti t-talba u t-traffiku tar-ritorn fuq ports ephemeral. Grupp tas-sigurtà tal-assoċjazzjoni restrittiv huwa raġuni komuni għalxiex l-aċċess privat jaħdem u dak pubbliku le.

Agħżel l-ewwel saff mis-sintomu minflok ma tbiddel it-tlieta kollha f'daqqa:

What you observeLayer to check first
No tunnel interface for a public IPClient route or split-tunnel flag
Tunnel interface chosen, request times outEndpoint route and authorization rule
Endpoint route present, still times outSubnet route table, association security group
Named host fails, numeric address worksDNS servers and their own authorization

IFRED il-falliment tad-DNS minn rotta mejta

Is-soluzzjoni tal-ismijiet tfalli b'mod differenti mill-ġarr 'il quddiem, u t-tunnel sħiħ jagħmel id-differenza importanti għax issa jintlaħaq is-solver imbuttat permezz tat-tunnel. Jekk l-endpoint jispeċifika servers DNS tal-VPC, l-indirizzi tagħhom jeħtieġu kopertura tar-rotta u awtorizzazzjoni bħal kull destinazzjoni oħra. Staqsi lis-solver direttament biex tara liema falliment għandek: dig +short example.com @10.0.0.2, jew nslookup example.com 10.0.0.2 fuq Windows.

Meta URL numeriku jwieġeb u wieħed bl-isem ma jwieġibx, waqqaf milli teditja r-rotta default u aħdem fuq id-DNS. Talba lejn indirizz IP ma tipprovax xejn dwar host virtwali bl-isem u ċ-ċertifikat tiegħu, għalhekk żomm test wieħed bl-isem fil-verifika finali.

Il-ħin jgħin. Konnessjoni TCP li ma tirċevix tweġiba fi ftit sekondi tipponta lejn ir-rototar jew filtru, filwaqt li talba li tiddendel fit-tiftix tal-isem tipponta lejn is-solver. It-tibdil tar-rotta default waqt li s-solver mhux aċċessibbli spiss ibiddel falliment wieħed f'żewġ fallimenti.

Irritorna lura b'mod nadif, imbagħad ivverifika t-triq tal-ħruġ

Iż-żewġ oġġetti kienu addittivi, għalhekk ir-ritorn lura huwa tħassir u mhux tiswija:

aws ec2 delete-client-vpn-route \
  --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0 \
  --destination-cidr-block 0.0.0.0/0 \
  --target-vpc-subnet-id subnet-0a1b2c3d4e5f67890
aws ec2 delete-client-vpn-authorization-rule \
  --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0 \
  --destination-cidr-block 0.0.0.0/0 \
  --access-all

Erġa' għaqqad, imbagħad ikkonferma minn liema triq joħroġ it-traffiku. Qabbel l-indirizz pubbliku osservat mal-indirizz IP elastiku tal-NAT gateway, jew mal-internet gateway li kien ħsiebek tuża, u ċċekkja li riżors privat għadu jwieġeb fl-istess sessjoni.

Iffinalizza b'lista qasira, u ttratta l-aħħar punt bħala parti mill-bidla u mhux bħala dokumentazzjoni:

  • Waħda 0.0.0.0/0 rotta tal-endpoint għal kull subnet assoċjat.
  • Regola tal-awtorizzazzjoni li tkopri 0.0.0.0/0 għall-klijenti li trid taqdi.
  • Rotta default tal-VPC li mhix fi stat blackhole fuq kull subnet assoċjat.
  • Ħruġ tal-grupp tas-sigurtà tal-assoċjazzjoni, flimkien mat-traffiku tar-ritorn tal-ACL.
  • Indirizzi tas-solver irrotati u awtorizzati, ivverifikati b'talba bl-isem.
  • Ritorn lura rreġistrat għar-rotta u r-regola.

Nota waħda dwar l-ambitu: din hija triq IPv4. Klijent b'doppja stack iżomm il-konnettività IPv6 li diġà għandu, għalhekk rotta default IPv6 hija deċiżjoni separata bl-awtorizzazzjoni tagħha u mhux effett sekondarju ta' din.

Artikli relatati