AWS Site-to-Site VPN: zunanji, notranji naslovi in prefiks LAN
Tri vloge naslovov se na enem AWS VPN pomešajo: zunanji partnerji, notranja povezava /30 in zaščiteni prefiksi LAN. Preberite jih v preneseni konfiguraciji.
Večina napak pri AWS Site-to-Site VPN so napake z naslovi, in nastanejo še preden se premakne kateri koli paket. Zunanji naslovi tunela dosežejo partnerje IPsec, notranji naslovi tvorijo usmerjevalno povezavo med njimi, zaščiteni prefiksi pa so tisto, čemur je ta povezava namenjena. Kopirajte eno vlogo v drugo in tunel se dvigne, medtem ko se nič ne usmerja. Tu je zaporedje beri-preveri-nastavi, ki ga uporabljam na odjemalski prehodni postaji BGP, z vrednostmi iz prenesene konfiguracije naprave in ne iz spomina.
Tri vloge naslovov, en tunel
Zunanji naslovi so javni in pripadajo partnerjem IPsec: eden na tunel na strani AWS, in dosegljiva identiteta odjemalske prehodne postaje na vaši strani, prilagojena tisti razporeditvi NAT, ki jo res imate. Notranji naslovi so zasebni in pripadajo logični povezavi, ki jo AWS dokumentira kot /30, vzet iz 169.254.0.0/16. Zaščiteni prefiksi so omrežja VPC, lokalna ali tranzitna, ki jih usmerjate in oglašujete po tej povezavi.
Dodelitev prefiksa LAN kot naslova vmesnika tunela je klasična oblika te napake. Vmesnik je videti nastavljen, LAN se ne oglašuje, druga stran pa zanj nima poti. Tunel lahko celo opravi svoj notranji ping, medtem ko vsako ime aplikacije poteče. Referenca možnosti tunela navaja omejitve notranjega CIDR, vključno z obsegom naslovov, iz katerega mora priti.
Preberite vrednosti iz prenesene konfiguracije
Prenesite konfiguracijo za svoj model naprave s povezave in nato obravnavajte njeno tabelo naslovov kot vir resnice. Konzola prikazuje enake vrednosti na tunel: zunanji IP, notranji CIDR in naslov partnerja BGP na strani AWS. Tunela sta ločena objekta z ločenimi zunanjimi končnimi točkami in ločenimi notranjimi /30, čeprav oba prenašata ista zaščitena omrežja.
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]'Če se prenesena datoteka in živa konzola ne ujemata, je datoteka zastarela. Prenesite jo znova, namesto da bi naslove urejali ročno, ker je neskladje med notranjim parom in nastavljenim sosedom partnerja tiha okvara BGP.
Zgradite povezavo s pravim naslovom
Na prehodni postaji Linux je tunel vmesnik VTI ali XFRM, notranji /30 pa se položi na ta vmesnik. Dva tunela pomenita dva vmesnika in dva soseda BGP, enega na končno točko AWS. Konvencija, ki jo AWS natisne v preneseni konfiguraciji naprave, postavi virtualno zasebno prehodno postajo na prvi naslov vsakega notranjega /30, vašo odjemalsko prehodno postajo pa na drugega, zato vzamete višji naslov in se povežete z nižjim. Nič tu ne potrebuje naslova LAN.
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Če datoteka za vaš model naprave natisne obrnjeni par, uporabite njene številke in držite pravilo: naslov na vmesniku je vaš, naslov partnerja pripada AWS. Obrnjeno ravnanje da tunel, ki nikoli ne doseže Established, ker je nastavljeni sosed naslov, ki ga vaš lastni vmesnik že ima.
Držite oznako in ključ VTI usklajena s tistim, kar daemon IKE uporablja za vezavo podrejene SA na vmesnik, sicer promet prispe na tunel brez vmesnika, na katerega bi pristal. Preverite MTU glede na pot in glede na lastne nastavitve daemona IKE, namesto da bi kopirali številko z drugega mesta.
Preverite BGP, preden preverite poti
To, da se IPsec dvigne, dokazuje, da so se partnerji dogovorili o varnostni povezavi, in nič drugega. Seja BGP je ločeno pogajanje po notranji povezavi, zato preberite stanje soseda in števce prefiksov, nato pa jih primerjajte s tem, kar ste nameravali oglaševati.
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 z nič prejetimi prefiksi je težava politike ali oglaševanja, ne tunela. Ponovite celotno preverjanje na drugem tunelu; delujoč prvi tunel vam pove, da so naslovi verjetni, ne pa da je drugi tunel sploh nastavljen.
Sledite usmerjenemu paketu in se nato ustavite
Ko seja nosi prefikse, preizkusite pot v obe smeri s prehodne postaje: izvorni naslov, naslednji skok in varnostno politiko, ki promet dovoli. Seja BGP je lahko dvignjena, medtem ko je določen prefiks, ki ga vaša aplikacija potrebuje, filtriran, povzet ali kaže na napačen vmesnik.
Reachability Analyzer je orodje na strani AWS, ki vzame izvor, cilj in pot ter poroča, katera komponenta v podprti konfiguraciji jo je blokirala. Uporabite ga za preizkus poti od VPC do naslova vaše odjemalske prehodne postaje, ne z gostitelja aplikacije. Analizira konfiguracijo in ne pošilja paketa skozi lokalni požarni zid, zato imejte njegovo sodbo ločeno od lastnih števcev vmesnika in zajemov paketov.
Zapišite zunanji par, notranji /30 in oglaševane prefikse za vsak tunel v eno tabelo. Prav ta tabela naredi naslednjo spremembo pregledno.