Većina pogrešaka s AWS Site-to-Site VPN su pogreške u adresama i čine se prije nego što se ijedan paket pomakne. Vanjske adrese tunela dosežu IPsec partnere, unutarnje adrese tvore usmjerivačku vezu između njih, a zaštićeni prefiksi su ono čemu ta veza služi. Kopirajte jednu ulogu u drugu i tunel se podiže dok ništa ne usmjerava. Ovo je slijed pročitaj-provjeri-konfiguriraj koji koristim na BGP korisničkom pristupniku, s vrijednostima iz preuzete konfiguracije uređaja, a ne iz pamćenja.

Tri uloge adresa, jedan tunel

Vanjske adrese su javne i pripadaju IPsec partnerima: jedna po tunelu na strani AWS-a, te dostupni identitet korisničkog pristupnika na vašoj strani, prilagođen kakvom god NAT rasporedu imate. Unutarnje adrese su privatne i pripadaju logičkoj vezi, koju AWS dokumentira kao /30 izvučen iz 169.254.0.0/16. Zaštićeni prefiksi su VPC, lokalne ili tranzitne mreže koje usmjeravate i oglašavate preko te veze.

Dodjeljivanje LAN prefiksa kao adrese sučelja tunela klasična je verzija ove pogreške. Sučelje izgleda konfigurirano, LAN se ne oglašava, a suprotna strana nema rutu za njega. Tunel može čak proći vlastiti unutarnji ping dok svako ime aplikacije istječe. Referenca o mogućnostima tunela navodi ograničenja unutarnjeg CIDR-a, uključujući raspon adresa iz kojeg mora doći.

Pročitajte vrijednosti iz preuzete konfiguracije

Preuzmite konfiguraciju za svoj model uređaja s veze, a zatim njezinu tablicu adresa uzmite kao izvor istine. Konzola prikazuje iste vrijednosti po tunelu: vanjski IP, unutarnji CIDR i adresu BGP partnera na strani AWS-a. Dva su tunela odvojeni objekti s odvojenim vanjskim krajnjim točkama i odvojenim unutarnjim /30, iako oba nose iste zaštićene mreže.

aws ec2 describe-vpn-connections --vpn-connection-ids vpn-0123456789abcdef0 \
  --query 'VpnConnections[0].Options.TunnelOptions[].[OutsideIpAddress,TunnelInsideCidr]'
aws ec2 describe-customer-gateways --customer-gateway-ids cgw-0123456789abcdef0 \
  --query 'CustomerGateways[0].[IpAddress,BgpAsn]'

Ako se preuzeta datoteka i živa konzola razilaze, datoteka je zastarjela. Ponovno preuzmite umjesto ručnog uređivanja adresa, jer nesklad između unutarnjeg para i konfiguriranog susjeda partnera znači tihi BGP kvar.

Izgradite vezu s pravom adresom na njoj

Na Linux pristupniku tunel je VTI ili XFRM sučelje, a unutarnji /30 ide na to sučelje. Dva tunela znače dva sučelja i dva BGP susjeda, po jedan za svaku AWS krajnju točku. Konvencija koju AWS ispisuje u preuzetoj konfiguraciji uređaja stavlja virtualni privatni pristupnik na prvu adresu svakog unutarnjeg /30, a vaš korisnički pristupnik na drugu, pa uzimate višu adresu i uspostavljate susjedstvo s nižom. Ništa ovdje ne treba LAN adresu.

ip tunnel add tun0 mode vti local 203.0.113.10 remote 18.230.1.1 key 42
ip addr add 169.254.10.2/30 dev tun0
ip link set tun0 up mtu 1400
ip tunnel add tun1 mode vti local 203.0.113.10 remote 18.230.2.1 key 43
ip addr add 169.254.10.6/30 dev tun1
ip link set tun1 up mtu 1400

Ako datoteka za vaš model uređaja ispisuje obrnuti par, upotrijebite njezine brojeve i držite se pravila: adresa na sučelju je vaša, adresa partnera pripada AWS-u. Obrnuti postupak daje tunel koji nikad ne dostigne Established, jer je susjed koji ste konfigurirali adresa koju vaše vlastito sučelje već drži.

Držite oznaku i VTI ključ usklađene s onim što IKE daemon koristi za vezanje podređene SA na sučelje, inače promet stiže na tunel bez sučelja na koje bi sletio. Provjerite MTU prema putu i prema vlastitim postavkama IKE daemona umjesto kopiranja broja s drugog lokaliteta.

Provjerite BGP prije nego što provjerite rute

Podizanje IPsec-a dokazuje da su se partneri složili o sigurnosnoj asocijaciji i ništa drugo. BGP sesija je zasebno pregovaranje preko unutarnje veze, pa pročitajte stanje susjeda i brojače prefiksa, zatim ih usporedite s onim što ste namjeravali oglašavati.

ip -s addr show dev tun0
vtysh -c 'show bgp summary'
vtysh -c 'show bgp neighbors 169.254.10.1'
vtysh -c 'show ip bgp neighbors 169.254.10.1 advertised-routes'

Stanje Established s nula primljenih prefiksa problem je politike ili oglašavanja, a ne tunela. Ponovite cijelu provjeru na drugom tunelu; jedan ispravan tunel govori da su adrese vjerojatne, a ne da je drugi tunel uopće konfiguriran.

Pratite usmjereni paket i zatim stanite

Kad sesija nosi prefikse, testirajte rutu u oba smjera s pristupnika: izvorišnu adresu, sljedeći skok i sigurnosnu politiku koja dopušta promet. BGP sesija može biti aktivna dok je određeni prefiks koji vaša aplikacija treba filtriran, sažet ili usmjeren na pogrešno sučelje.

Reachability Analyzer je alat na strani AWS-a koji uzima izvor, odredište i put te izvješćuje koja je komponenta u podržanoj konfiguraciji to blokirala. Upotrijebite ga za testiranje puta od VPC-a do adrese vašeg korisničkog pristupnika, a ne s hosta aplikacije. On analizira konfiguraciju i ne šalje paket kroz lokalni vatrozid, pa njegov nalaz držite odvojeno od vlastitih brojača sučelja i snimki paketa.

Zapišite vanjski par, unutarnji /30 i oglašene prefikse za svaki tunel u jednu tablicu. Ta tablica je ono što sljedeću promjenu čini preglednom.

Povezani članci