Väčšina chýb pri AWS Site-to-Site VPN sú chyby adries a robia sa skôr, než sa pohne jediný paket. Vonkajšie adresy tunela dosiahnu protistrany IPsec, vnútorné adresy tvoria smerovacie spojenie medzi nimi a chránené prefixy sú to, na čo to spojenie slúži. Skopírujte jednu rolu do druhej a tunel naskočí, hoci sa nič nesmeruje. Tu je postup prečítaj-over-nakonfiguruj, ktorý používam na zákazníckej bráne s BGP, s hodnotami zo stiahnutej konfigurácie zariadenia, nie z pamäte.

Tri role adries, jeden tunel

Vonkajšie adresy sú verejné a patria protistranám IPsec: jedna na tunel na strane AWS a dosiahnuteľná identita zákazníckej brány na vašej strane, prispôsobená tomu usporiadaniu NAT, ktoré naozaj máte. Vnútorné adresy sú privátne a patria logickému spojeniu, ktoré AWS dokumentuje ako /30 vytaženú z 169.254.0.0/16. Chránené prefixy sú siete VPC, lokálne alebo tranzitné, ktoré cez to spojenie smerujete a inzerujete.

Priradenie prefixu LAN ako adresy rozhrania tunela je klasická podoba tejto chyby. Rozhranie vyzerá nakonfigurované, LAN sa neinzeruje a protistrana preň nemá trasu. Tunel môže dokonca prejsť vlastným vnútorným pingom, kým každé meno aplikácie vyprší. Referencia možností tunela uvádza obmedzenia vnútorného CIDR, vrátane rozsahu adries, z ktorého musí pochádzať.

Čítajte hodnoty zo stiahnutej konfigurácie

Stiahnite konfiguráciu pre svoj konkrétny model zariadenia z pripojenia a potom berte jej tabuľku adries ako zdroj pravdy. Konzola zobrazuje rovnaké hodnoty pre každý tunel: vonkajšiu IP, vnútorný CIDR a adresu protistrany BGP na strane AWS. Oba tunely sú samostatné objekty so samostatnými vonkajšími koncovými bodmi a samostatnými vnútornými /30, hoci oba nesú tie isté chránené siete.

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]'

Ak sa stiahnutý súbor a živá konzola nezhodujú, súbor je zastaraný. Stiahnite ho znova namiesto ručnej úpravy adries, pretože nesúlad medzi vnútornou dvojicou a nakonfigurovaným susedom protistrany je tichá porucha BGP.

Postavte spojenie so správnou adresou

Na bráne Linux je tunel rozhranie VTI alebo XFRM a vnútorná /30 ide na toto rozhranie. Dva tunely znamenajú dve rozhrania a dvoch susedov BGP, jedného pre každý koncový bod AWS. Konvencia, ktorú AWS tlačí v stiahnutej konfigurácii zariadenia, kladie virtuálnu privátnu bránu na prvú adresu každej vnútornej /30 a vašu zákaznícku bránu na druhú, takže beriete vyššiu adresu a susedíte s nižšou. Nič tu nepotrebuje adresu 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

Ak súbor pre váš model zariadenia tlačí opačnú dvojicu, použite jeho čísla a držte sa pravidla: adresa na rozhraní je vaša, adresa protistrany patrí AWS. Opačný postup dáva tunel, ktorý nikdy nedosiahne Established, pretože sused, ktorého ste nakonfigurovali, je adresa, ktorú vaše vlastné rozhranie už drží.

Držte značku a kľúč VTI zladené s tým, čo démon IKE používa na pripútanie podradenej SA k rozhraniu, inak prevádzka dorazí na tunel bez rozhrania, na ktoré by dosedla. Kontrolujte MTU voči ceste a voči vlastným nastaveniam démona IKE namiesto kopírovania čísla z inej lokality.

Overte BGP skôr, než overíte trasy

To, že IPsec naskočí, dokazuje, že sa protistrany zhodli na bezpečnostnej asociácii, a nič viac. Relácia BGP je samostatné vyjednávanie cez vnútorné spojenie, preto čítajte stav suseda a počítadlá prefixov a potom ich porovnajte s tým, čo ste zamýšľali inzerovať.

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'

Stav Established s nulou prijatých prefixov je problém politiky alebo inzerovania, nie tunela. Zopakujte celú kontrolu na druhom tuneli; funkčný prvý tunel vám hovorí, že adresy sú vierohodné, nie že druhý tunel je vôbec nakonfigurovaný.

Sledujte smerovaný paket a potom sa zastavte

Keď relácia nesie prefixy, otestujte trasu oboma smermi z brány: zdrojovú adresu, ďalší skok a bezpečnostnú politiku, ktorá prevádzku povoľuje. Relácia BGP môže byť hore, kým konkrétny prefix, ktorý vaša aplikácia potrebuje, je filtrovaný, zhrnutý alebo mieri na nesprávne rozhranie.

Reachability Analyzer je nástroj na strane AWS, ktorý berie zdroj, cieľ a cestu a hlási, ktorá komponenta v podporovanej konfigurácii ju zablokovala. Použite ho na testovanie cesty z VPC na adresu vašej zákazníckej brány, nie z hostiteľa aplikácie. Analyzuje konfiguráciu a neposiela paket cez miestny firewall, preto držte jeho verdikt oddelene od vlastných počítadiel rozhrania a zachytávaní paketov.

Zapíšte vonkajšiu dvojicu, vnútornú /30 a inzerované prefixy pre každý tunel do jednej tabuľky. Práve tá tabuľka robí ďalšiu zmenu kontrolovateľnou.

Súvisiace články