Firwat AWS Client VPN Traffic verléiert ouni passend Route
Den Endpunkt leet e Pak nëmmen dann weider, wann seng Routentabell d'Ziel deckt. Liest d'Routen, deklaréiert Präfixer mat for_each, iwwerpréift de Réckwee.
Client VPN gëtt dem Client eng Adress, den Handshake ass fäerdeg, an d'Verbindung geet nach ëmmer nirgendwu. Ier Dir Certificaten oder Clientversiounen ufänkt, kuckt op d'Routentabell vum Endpunkt selwer. En AWS Client VPN Endpunkt leet e Pak nëmmen dann weider, wann eng vu senge Routen de Präfix vum Ziel deckt; wann näischt passt, gëtt de Pak um Endpunkt verworf an den Zilhost gesäit ni e SYN.
Dat ass eng Weiderleesungsentscheedung, keng Authentifizéierungsentscheedung. Si geschitt nodeems den Tunnel steet a nodeems d'Autorisatiounsregelen evaluéiert goufen, dofir kënnen e gültege Certificat an eng gülteg Grupp nach ëmmer eng doudeg Verbindung maachen.
Den Endpunkt leet nëmmen dat weider, wat seng Routentabell deckt
All Route ass en Zil-CIDR plus d'Subnetz, dat den Traffic soll kréien. Den Endpunkt vergläicht d'Zil vum Client mat där Lëscht, wielt de passenden Aschreiwung an schéckt de Pak an dat associéiert Subnetz. Keng Aschreiwung heescht keen nächsten Hop.
Passt op wat d'Route net ass. Si ass keen Aschreiwung an der Routentabell vun der VPC, an si autoriséiert näischt. Autorisatiounsregele bestëmmen, ob eng Grupp en Zil erreeche kann; Routen bestëmmen, ob den Endpunkt eng Plaz huet, wou de Pak soll hin. Béides muss iwwereneen stëmmen, a si fale mat verschiddene Symptomer aus, dofir kascht et en Nomëtteg, ze roden, wat futti ass.
Déi klassiciv Onstëmmegkeet ass eng gepeerte VPC. Een hëlt eng Route fir 10.20.0.0/24 derbäi, während den Host an 10.20.4.0/24 läit, dofir fällt d'Adress aus all Aschreiwung eraus. Eng Opnam op der Client-Säit weist widderholl SYN ouni Äntwert, an d'Loge vum Zil weisen iwwerhaapt näischt.
Liest d'Routelëscht virum Certificat
D'Routen vum Endpunkt sinn en eegene Objet, dofir froe si direkt un, amplaz d'Tabell vun der VPC ze liesen:
aws ec2 describe-client-vpn-routes --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0 --query 'Routes[].{Dest:DestinationCidr,Target:TargetSubnet,Origin:Origin}'Hëlt déi genee Adress an d'Präfixlängt vum Client, dee feelt, an iwwerpréift dann d'Ofdeckung Zeechen fir Zeechen. Déi längst Präfix-Korrespondenz gëllt, dofir rett eng méi breet Route Iech net, wann eng méi schmuel eng aner Plaz weist.
Eng Ressource pro Zil mat for_each
Handgeschriwwe Routeblocke verréckelen de Moment, wou een e Präfix an der Konsole derbäisetzt. Halt d'Ziler an enger Map a schaf eng Ressource pro Schlëssel, sou datt all Derbäisetzen oder Ewechhuele separéiert bleift.
variable "client_vpn_routes" {
type = map(string)
default = {
"10.20.0.0/16" = "subnet-0aa11bb22cc33dd44"
"172.31.0.0/20" = "subnet-0aa11bb22cc33dd44"
}
}
resource "aws_ec2_client_vpn_route" "this" {
for_each = var.client_vpn_routes
client_vpn_endpoint_id = var.client_vpn_endpoint_id
destination_cidr_block = each.key
target_vpc_subnet_id = each.value
depends_on = [aws_ec2_client_vpn_network_association.this]
}Behält d'Ofhängegkeet vun der Netzwierkassociatioun. Eng Route brauch en associéiert Subnetz, dofir muss en apply, deen allebéid schaaft, d'Associatioun als éischt uerdnen, an ouni déi Referenz ass Terraform fräi, d'Route als éischt ze probéieren. Duerno liest de Plang: d'Zuel vun de Route-Derbäisetzunge soll de Präfixer entspriechen, déi Dir derbäigesat hutt. Wann de Plang och den Endpunkt ersetzt, ass d'Endpunktressource falsch geschriwwen, an hiren Uwendung trennt all verbonne Client.
En Endpunkt iwwerhuelen, deen Dir net erstallt hutt
Déi meescht Teams ierwe vun engem Endpunkt, deen an der Konsole gebaut gouf, dofir gëtt et kee Routecode. Richt keen zweeten Endpunkt op just fir Routen an Terraform ze kréien.
Importéiert amplaz, oder gitt d'Id-en als Variabelen un a loosst déi ierwegt Objeten onverwalt. En Import brauch de Format vum Identifiant, deen de Provider fir all Ressourcetyp dokumentéiert; en encodéiert den Endpunkt, de Präfix vum Zil an d'Zil-Subnetz. Kopéiert dee String aus der Dokumentatioun vun der Ressource amplaz en aus dem Kapp zesummenzesetzen, fuert e Plang aus, a waart keng Ännerungen, ier Dir eppes Neies derbäisetzt.
Verfollegt de Pak an der Rei, wéi en reest
Wann d'Route existéiert an d'Verbindung nach ëmmer feelt, geet de Wee an der Rei duerch, amplaz an der ieweschter Schicht ze roden.
- Route: e Präfix deckt d'Zil a weist op en Subnetz, dat mam Endpunkt associéiert ass.
- Autorisatioun: eng Autorisatiounsregel erlaabt dat Zil fir d'Grupp vum Benotzer. Eng Route eleng gëtt ni Zougang.
- Réckwee: d'Routentabell vum Zil-Subnetz schéckt Äntwerten zréck Richtung Endpunkt, an d'Sécherheetsgrupp erlaabt de Port aus dem Adresspool vum Client.
- Applikatioun: maacht eng richteg TCP-Verbindung vum Client op, a bestätegt dann, datt d'Loge vum Zil déi erwaart Quelladress aus dem Pool weisen.
Ännert ee Präfix pro apply, liest duerno d'Routelëscht nach eng Kéier, a notéiert d'Zil, d'autoriséierend Regel an de Réckwee zesummen. Déi nächst Persoun, déi eng refuséiert Verbindung debuggen, soll vun där Lëscht ufänken, net vun enger Certificatstheorie.