Jedna krajnja tačka Client VPN-a može dosegnuti VPC koji je peerovan s njenim pridruženim VPC-om, i ne treba vam bastion da to učinite legitimnim. Izbor koji vrijedi napraviti je gdje promet mijenja ruke: ruta krajnje tačke koja završava u podmreži pridruživanja i prelazi peering vezu, ili host u peerovanom 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 šta AWS dozvoljava. Evo kako biram između njih i četiri unosa koji čine rutiranu putanju ispravnom.

Dva puta, jedna krajnja tačka, različiti vlasnici

Na rutiranoj putanji klijentski promet stiže do krajnje tačke, prevodi se u adresu mrežnog interfejsa 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 pul.

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đe treba put od klijenta, a kada je taj put ista ruta krajnje tačke, imate rutirani 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 rutiranu putanju ispravnom

AWS dokumentuje ovaj scenario 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; peerovani raspon mora biti jedinstven, a povratni raspon mora odgovarati vašem planu.

ControlWhat it must say
Endpoint route10.70.0.0/16 targets the association subnet
Authorization ruleThe approved group may reach 10.70.0.0/16
VPC A association-subnet table10.70.0.0/16 targets the peering connection
VPC B resource-subnet tableVPC A's range targets the same peering connection

Ruta i dozvola su odvojene kontrole. Ispravna ruta krajnje tačke bez odgovarajućeg pravila autorizacije ne daje klijentu ništa; pravilo autorizacije za odredište koje krajnja tačka ne može rutirati daje mu crnu rupu. Oba moraju navesti isti raspon.

Ruta krajnje tačke pokazuje na podmrežu u vlastitom VPC-u krajnje tačke, nikada na peering vezu. Tabele ruta VPC-a pokazuju na peering vezu, nikada na instancu ili interfejs. Kopiranje vrijednosti između njih se čuva bez prigovora i ne rutira ništa.

Pošto podmreža pridruživanja prevodi izvor klijenta, B mora rutirati natrag na VPC A, a ne na klijentski pul. 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

Rutiranje 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, dozvolite raspon podmreže pridruživanja izričito umjesto širenja na 0.0.0.0/0, što grešku rutiranja pretvara u neobjašnjeni tajmaut.

Zatim provjerite ono što rutiranje nikada ne dira: mrežne ACL-ove na obje podmreže, allow-list aplikacije ili publiku tokena, i DNS. Peering ne kopira privatne hostovane 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 tačku na resolver koji odgovara za B, pa potvrdite da se privatno ime i certifikat poklapaju.

Kada je bastion pošten odgovor

Držim tri okidača za namjeran izbor bastiona. Peerovani 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 šta resursi u B smiju raditi: ne mogu koristiti A kao tranzit do trećeg VPC-a s kojim je A peerovan. To nikada nije značilo da VPN korisnik ne može dosegnuti direktno peerovan VPC, a bastion izgrađen da zaobiđe to pogrešno čitanje je host koji se krpi 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, tabela ruta i prozor za krpljenje proizvodna zavisnost. 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 tačka priključena direktno na Transit Gateway, a ne na podmrežu, model se mijenja: klijenti se više ne prevode u adresu interfejsa u podmreži pridruživanja, a tabele ruta gatewaya moraju nositi klijentski raspon plus priključak koji vodi do peerovanog VPC-a. To je čistije na skali, ali posao se seli iz četiri unosa u tabele ruta gatewaya.

Više pridruživanja umnožava provjere. Ruta krajnje tačke pripada krajnjoj tački, ali svaka podmreža pridruživanja treba tabelu 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 tajmaut klijenta gotovo nikada ne kaže koji se slomio.

  1. Razriješite ime aplikacije s klijenta i provjerite da je adresa unutar peerovanog raspona.
  2. Povežite se, pa pročitajte dnevnik veza krajnje tačke za pridruživanje koje je završilo sesiju.
  3. Na toj podmreži pridruživanja potvrdite da tabela ruta usmjerava peerovani raspon na aktivnu peering vezu.
  4. Na podmreži resursa u B potvrdite povratni unos za raspon interfejsa i odgovarajuća pravila grupe.
  5. Testirajte jednu dozvoljenu operaciju i jedan resurs koji mora ostati nedostupan; drugi hvata ostatke debagovanja.
  6. Ponovo 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 resetuje obično je grupa, ACL ili aplikacija. Nijedan se u dnevniku krajnje tačke ne pojavljuje kao uzrok, pa držite četiri unosa s vlasnikom pored svakog.

Ako nijedan od tri okidača ne vrijedi, dovršite rutiranu putanju i zabilježite ta četiri unosa. Ako jedan vrijedi, zadržite bastion samo za tu granicu i ostavite rutu krajnje tačke za servise kojima ne treba sesija ispred njih.

Povezani članci