AWS Site-to-Site VPN: ārējās, iekšējās adreses un LAN prefikss
Vienā AWS VPN sajaucas trīs adrešu lomas: ārējie partneri, iekšējā /30 saite un aizsargātie LAN prefiksi. Lasiet tos lejupielādētajā konfigurācijā.
Lielākā daļa AWS Site-to-Site VPN kļūdu ir adrešu kļūdas, un tās tiek pieļautas pirms kustas neviens pakete. Tuneļa ārējās adreses sasniedz IPsec partnerus, iekšējās adreses veido maršrutēšanas saiti starp tiem, un aizsargātie prefiksi ir tas, kam šī saite ir domāta. Nokopējiet vienu lomu otrā un tunelis paceļas, kamēr nekas netiek maršrutēts. Šeit ir lasīšanas-pārbaudes-konfigurēšanas secība, ko izmantoju BGP klienta vārtejā, un vērtības ņemtas no lejupielādētās ierīces konfigurācijas, nevis no atmiņas.
Trīs adrešu lomas, viens tunelis
Ārējās adreses ir publiskas un pieder IPsec partneriem: viena katram tunelim AWS pusē, un klienta vārtejas sasniedzamā identitāte jūsu pusē, pielāgota tai NAT shēmai, kāda jums patiešām ir. Iekšējās adreses ir privātas un pieder loģiskajai saitei, ko AWS dokumentē kā /30, ņemtu no 169.254.0.0/16. Aizsargātie prefiksi ir VPC, vietējie vai tranzīta tīkli, kurus jūs maršrutējat un reklamējat pa šo saiti.
LAN prefiksa piešķiršana tuneļa saskarnes adresei ir klasiskā šīs kļūdas forma. Saskarne izskatās konfigurēta, LAN netiek reklamēts, un pretējā pusē tam nav maršruta. Tunelis var pat izturēt savu iekšējo ping, kamēr katra lietotnes nosaukums beidzas ar taimautu. Tuneļa opciju uzziņa uzskaita iekšējā CIDR ierobežojumus, tostarp adrešu diapazonu, no kura tam jābūt.
Lasiet vērtības no lejupielādētās konfigurācijas
Lejupielādējiet konfigurāciju savam konkrētajam ierīces modelim no savienojuma un pēc tam uzskatiet tās adrešu tabulu par patiesības avotu. Konsole rāda tās pašas vērtības katram tunelim: ārējo IP, iekšējo CIDR un BGP partnera adresi AWS pusē. Abi tuneļi ir atsevišķi objekti ar atsevišķiem ārējiem galapunktiem un atsevišķiem iekšējiem /30, lai gan abi pārvadā tos pašus aizsargātos tīklus.
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]'Ja lejupielādētā datne un dzīvā konsole nesakrīt, datne ir novecojusi. Lejupielādējiet vēlreiz, nevis labojiet adreses ar roku, jo neatbilstība starp iekšējo pāri un partnera konfigurēto kaimiņu ir klusa BGP kļūme.
Veidojiet saiti ar pareizo adresi
Linux vārtejā tunelis ir VTI vai XFRM saskarne, un iekšējais /30 tiek likts uz šīs saskarnes. Divi tuneļi nozīmē divas saskarnes un divus BGP kaimiņus, pa vienam katram AWS galapunktam. Konvencija, ko AWS iespiež lejupielādētajā ierīces konfigurācijā, liek virtuālo privāto vārteju uz katras iekšējās /30 pirmo adresi, bet jūsu klienta vārteju uz otro, tāpēc jūs ņemat augstāko adresi un veidojat partnerattiecības ar zemāko. Šeit nekam nav vajadzīga LAN adrese.
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 1400Ja jūsu ierīces modeļa datne iespiež pretējo pāri, izmantojiet tās skaitļus un ievērojiet noteikumu: saskarnes adrese ir jūsu, partnera adrese pieder AWS. Apgriežot to, tiek iegūts tunelis, kas nekad nesasniedz Established, jo konfigurētais kaimiņš ir adrese, kas jau ir jūsu paša saskarnei.
Turiet atzīmi un VTI atslēgu saskaņā ar to, ko IKE dēmons izmanto bērna SA piesaistīšanai saskarnei, citādi trafiks ierodas tunelī bez saskarnes, kur nosēsties. Pārbaudiet MTU pret ceļu un pret paša IKE dēmona iestatījumiem, nevis kopējiet skaitli no citas vietnes.
Pārbaudiet BGP pirms maršrutu pārbaudes
Tas, ka IPsec paceļas, pierāda, ka partneri vienojušies par drošības asociāciju, un neko vairāk. BGP sesija ir atsevišķas pārrunas pa iekšējo saiti, tāpēc lasiet kaimiņa stāvokli un prefiksu skaitītājus, pēc tam salīdziniet tos ar to, ko grasījāties reklamēt.
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'Stāvoklis Established ar nulli saņemtu prefiksu ir politikas vai reklamēšanas problēma, nevis tuneļa problēma. Atkārtojiet visu pārbaudi otrajā tunelī; strādājošs pirmais tunelis parāda, ka adreses ir ticamas, nevis to, ka otrais tunelis vispār ir konfigurēts.
Sekojiet maršrutētam paketei un tad apstājieties
Kad sesija pārvadā prefiksus, pārbaudiet maršrutu abos virzienos no vārtejas: avota adresi, nākamo lēcienu un drošības politiku, kas atļauj trafiku. BGP sesija var būt augšā, kamēr konkrētais prefikss, kas vajadzīgs jūsu lietotnei, ir filtrēts, apkopots vai vērsts uz nepareizo saskarni.
Reachability Analyzer ir AWS puses rīks, kas ņem avotu, galamērķi un ceļu un ziņo, kura komponente atbalstītā konfigurācijā to bloķēja. Izmantojiet to ceļa pārbaudei no VPC līdz jūsu klienta vārtejas adresei, nevis no lietotnes resursdatora. Tas analizē konfigurāciju un nesūta paketi caur vietējo ugunsmūri, tāpēc turiet tā spriedumu atsevišķi no saviem saskarnes skaitītājiem un pakešu ierakstiem.
Pierakstiet ārējo pāri, iekšējo /30 un reklamētos prefiksus katram tunelim vienā tabulā. Tieši šī tabula padara nākamo izmaiņu pārskatāmu.