AWS Client VPN ili bastion za pristup peeranom VPC-u
Oba puta rade, ali se lome na različitim mjestima. Usporedite rute krajnje točke, povratno usmjeravanje i tri slučaja u kojima je bastion poštena granica.
Jedna krajnja točka Client VPN-a može dosegnuti VPC koji je peeran s njegovim pridruženim VPC-om, i ne treba vam bastion da to učinite legitimnim. Izbor koji vrijedi napraviti jest gdje promet mijenja ruke: ruta krajnje točke koja završava u podmreži pridruživanja i prelazi peering vezu, ili host u peeranom VPC-u koji završava sesiju. Oba puta rade i lome se na različitim mjestima, pa je odluka o vlasništvu i reviziji, a ne o tome što AWS dopušta. Evo kako biram između njih i četiri unosa koji čine usmjerenu putanju ispravnom.
Dva puta, jedna krajnja točka, različiti vlasnici
Na usmjerenoj putanji klijentski promet stiže do krajnje točke, prevodi se u adresu mrežnog sučelja Client VPN-a u podmreži pridruživanja i napušta tu podmrežu preko peering veze od A do B. VPC B ne završava nijednu VPN sesiju; on vidi običan promet iz VPC-a A, zato njegova povratna ruta pokazuje na VPC A, a ne na klijentski skup.
Na putanji preko bastiona klijent prvo stiže do hosta. Bastion u A i dalje ostavlja zadnji skok preko peering veze, pa zadržavate peering posao i dodajete sesiju. Bastion u B također treba put od klijenta, a kada je taj put ista ruta krajnje točke, imate usmjereni dizajn plus jedan skok. Bastion uklanja posao samo kada već postoji, već ima odobrenje, a stvar iza njega treba granicu sesije, a ne mrežnu granicu.
Četiri unosa čine usmjerenu putanju ispravnom
AWS dokumentira ovaj scenarij na stranici Client VPN how-it-works, a u praksi se sve svodi na četiri unosa koje posjeduju dva ili tri tima. Rasponi su ilustrativni; peerani raspon mora biti jedinstven, a povratni raspon mora odgovarati vašem planu.
| Control | What it must say |
|---|---|
| Endpoint route | 10.70.0.0/16 targets the association subnet |
| Authorization rule | The approved group may reach 10.70.0.0/16 |
| VPC A association-subnet table | 10.70.0.0/16 targets the peering connection |
| VPC B resource-subnet table | VPC A's range targets the same peering connection |
Ruta i dozvola odvojene su kontrole. Ispravna ruta krajnje točke bez odgovarajućeg pravila autorizacije ne daje klijentu ništa; pravilo autorizacije za odredište koje krajnja točka ne može usmjeriti daje mu crnu rupu. Oba moraju navesti isti raspon.
Ruta krajnje točke pokazuje na podmrežu u vlastitom VPC-u krajnje točke, nikada na peering vezu. Tablice ruta VPC-a pokazuju na peering vezu, nikada na instancu ili sučelje. Kopiranje vrijednosti između njih čuva se bez prigovora i ne usmjerava ništa.
Budući da podmreža pridruživanja prevodi izvor klijenta, B mora usmjeriti natrag na VPC A, a ne na klijentski skup. Slanje klijentskog raspona preko peering veze izgleda simetrično, prolazi reviziju i tiho pada jer B nikada ne vidi paket s klijentskim izvorom.
Sigurnosne grupe i zadnji metar dozvole
Usmjeravanje unosi pakete u B; B i dalje odlučuje. Za aktivnu peering vezu u istoj regiji, sigurnosna grupa u B može referencirati grupu primijenjenu na pridruživanje Client VPN-a, što pravilo drži uskim i preživljava promjene adresa. Gdje referenca na grupu nije izvediva, dopustite raspon podmreže pridruživanja izričito umjesto širenja na 0.0.0.0/0, što grešku usmjeravanja pretvara u neobjašnjeni istek vremena.
Zatim provjerite ono što usmjeravanje nikada ne dira: mrežne ACL-ove na obje podmreže, popis dopuštenih aplikacije ili publiku tokena, i DNS. Peering ne kopira privatne hostane zone, pa laptop može držati radnu rutu do adrese koju ne može razriješiti, a peering veza ne dodaje povjerenje certifikatu. Usmjerite krajnju točku na razrješivač koji odgovara za B, pa potvrdite da se privatno ime i certifikat podudaraju.
Kada je bastion pošten odgovor
Držim tri okidača za namjeran odabir bastiona. Peerani VPC pripada timu koji neće dodati povratnu rutu za vaš raspon ili neće prihvatiti referencu na grupu. Pristup mora biti odobren ili zabilježen po sesiji, a aplikacija to ne može nositi sama. Ili zadnji skok mora ostati unutar B jer se servis razrješava samo tamo i njegov TLS identitet je prikovan za interno ime.
Ništa od toga nije zaobilaženje činjenice da peering nije tranzitivan. Netranzitivnost ograničava što resursi u B smiju raditi: ne mogu koristiti A kao tranzit do trećeg VPC-a s kojim je A peeran. To nikada nije značilo da VPN korisnik ne može dosegnuti izravno peeran VPC, a bastion izgrađen da zaobiđe to pogrešno čitanje host je koji se krpa bez razloga.
Obrnuta greška vremenom košta više: provucite svaki tim kroz jedini bastion koji već postoji, pa otkrijte da su njegova sigurnosna grupa, tablica ruta i prozor za krpanje proizvodna ovisnost. Zapišite kojem okidaču host služi i povucite ga kada okidač nestane.
Transit Gateway i više pridruživanja mijenjaju aritmetiku
Ako je krajnja točka priključena izravno na Transit Gateway, a ne na podmrežu, model se mijenja: klijenti se više ne prevode u adresu sučelja u podmreži pridruživanja, a tablice ruta pristupnika moraju nositi klijentski raspon plus priključak koji vodi do peeranog VPC-a. To je čistije na skali, ali posao se seli iz četiri unosa u tablice ruta pristupnika.
Više pridruživanja umnožava provjere. Ruta krajnje točke pripada krajnjoj točki, ali svaka podmreža pridruživanja treba tablicu ruta sa stvarnim peering sljedećim skokom. Sesija može uspjeti kroz jedno pridruživanje dok drugo nema povratni put, pa testirajte svako.
Redoslijed provjere koji brzo pronalazi prekid
Izvodite ove po redu; svaki korak može proći dok sljedeći pada, a istek vremena klijenta gotovo nikada ne kaže koji se slomio.
- Razriješite ime aplikacije s klijenta i provjerite da je adresa unutar peeranog raspona.
- Povežite se, pa pročitajte dnevnik veza krajnje točke za pridruživanje koje je završilo sesiju.
- Na toj podmreži pridruživanja potvrdite da tablica ruta usmjerava peerani raspon na aktivnu peering vezu.
- Na podmreži resursa u B potvrdite povratni unos za raspon sučelja i odgovarajuća pravila grupe.
- Testirajte jednu dopuštenu operaciju i jedan resurs koji mora ostati nedostupan; drugi hvata ostatke otklanjanja pogrešaka.
- Ponovno se povežite nakon svake promjene split-tunnel rute, jer pokrenuti tunel neće preuzeti novi skup ruta.
Dva simptoma vrijedi zapamtiti. SYN koji stigne do B bez odgovora gotovo je uvijek povratna ruta koja nedostaje. Veza koja se završi i zatim resetira obično je grupa, ACL ili aplikacija. Nijedan se u dnevniku krajnje točke ne pojavljuje kao uzrok, pa držite četiri unosa s vlasnikom pokraj svakog.
Ako nijedan od tri okidača ne vrijedi, dovršite usmjerenu putanju i zabilježite ta četiri unosa. Ako jedan vrijedi, zadržite bastion samo za tu granicu i ostavite rutu krajnje točke za servise kojima ne treba sesija ispred njih.