Většina chyb u AWS Site-to-Site VPN jsou chyby v adresách a dělají se ještě předtím, než se pohne jediný paket. Vnější adresy tunelu dosáhnou na protějšky IPsec, vnitřní adresy tvoří směrovací spoj mezi nimi a chráněné prefixy jsou to, k čemu tento spoj slouží. Zkopírujte jednu roli do druhé a tunel naskočí, zatímco se nic nesměruje. Tady je sled přečti-ověř-nakonfiguruj, který používám na zákaznické bráně s BGP, s hodnotami ze stažené konfigurace zařízení, ne z paměti.

Tři role adres, jeden tunel

Vnější adresy jsou veřejné a patří protějškům IPsec: jedna na tunel na straně AWS a dosažitelná identita zákaznické brány na vaší straně, upravená podle toho, jaké uspořádání NAT skutečně máte. Vnitřní adresy jsou soukromé a patří logickému spoji, který AWS dokumentuje jako /30 vytaženou z 169.254.0.0/16. Chráněné prefixy jsou sítě VPC, lokální nebo tranzitní, které přes tento spoj směrujete a inzerujete.

Přiřazení prefixu LAN jako adresy rozhraní tunelu je klasická podoba této chyby. Rozhraní vypadá nakonfigurované, LAN se neinzeruje a protější strana pro ni nemá trasu. Tunel může dokonce projít vlastním vnitřním pingem, zatímco každé jméno aplikace vyprší. Reference možností tunelu uvádí omezení vnitřního CIDR, včetně rozsahu adres, ze kterého musí pocházet.

Čtěte hodnoty ze stažené konfigurace

Stáhněte konfiguraci pro svůj konkrétní model zařízení z připojení a její tabulku adres pak berte jako zdroj pravdy. Konzole ukazuje stejné hodnoty pro každý tunel: vnější IP, vnitřní CIDR a adresu protějšku BGP na straně AWS. Oba tunely jsou samostatné objekty se samostatnými vnějšími koncovými body a samostatnými vnitřními /30, i když oba nesou stejné chráněné sítě.

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

Pokud se stažený soubor a živá konzole rozcházejí, soubor je zastaralý. Stáhněte ho znovu, místo abyste adresy upravovali ručně, protože nesoulad mezi vnitřní dvojicí a nakonfigurovaným sousedem protějšku je tichá porucha BGP.

Postavte spoj se správnou adresou

Na bráně Linux je tunel rozhraní VTI nebo XFRM a vnitřní /30 jde na toto rozhraní. Dva tunely znamenají dvě rozhraní a dva sousedy BGP, jeden pro každý koncový bod AWS. Konvence, kterou AWS tiskne ve stažené konfiguraci zařízení, klade virtuální privátní bránu na první adresu každé vnitřní /30 a vaši zákaznickou bránu na druhou, takže berete vyšší adresu a sousedíte s nižší. Nic zde nepotřebuje 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

Pokud soubor pro váš model zařízení tiskne opačnou dvojici, použijte jeho čísla a držte se pravidla: adresa na rozhraní je vaše, adresa protějšku patří AWS. Opačný postup dává tunel, který nikdy nedosáhne stavu Established, protože soused, kterého jste nakonfigurovali, je adresa, kterou vaše vlastní rozhraní už drží.

Držte značku a klíč VTI sladěné s tím, co démon IKE používá k navázání podřízené SA na rozhraní, jinak provoz dorazí na tunel bez rozhraní, na které by dosedl. Kontrolujte MTU proti cestě a proti vlastnímu nastavení démona IKE, místo abyste kopírovali číslo z jiného webu.

Ověřte BGP dřív, než ověříte trasy

Naskočení IPsec dokazuje, že se protějšky shodly na bezpečnostní asociaci, a nic jiného. Relace BGP je samostatné vyjednávání přes vnitřní spoj, takže čtěte stav souseda a počítadla prefixů a pak je porovnejte s tím, co jste zamýšleli inzerovat.

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 přijatých prefixů je problém politiky nebo inzerce, ne tunelu. Zopakujte celou kontrolu na druhém tunelu; funkční první tunel vám říká, že adresy jsou věrohodné, ne že druhý tunel je vůbec nakonfigurovaný.

Sledujte směrovaný paket a pak se zastavte

Jakmile relace nese prefixy, otestujte trasu oběma směry z brány: zdrojovou adresu, další skok a bezpečnostní politiku, která provoz povoluje. Relace BGP může být nahoru, zatímco konkrétní prefix, který vaše aplikace potřebuje, je filtrovaný, shrnutý nebo míří na špatné rozhraní.

Reachability Analyzer je nástroj na straně AWS, který bere zdroj, cíl a cestu a hlásí, která komponenta v podporované konfiguraci ji zablokovala. Použijte ho k testování cesty z VPC na adresu vaší zákaznické brány, ne z hostitele aplikace. Analyzuje konfiguraci a neposílá paket přes místní firewall, takže jeho verdikt držte odděleně od vlastních počítadel rozhraní a zachytávání paketů.

Zapište vnější dvojici, vnitřní /30 a inzerované prefixy pro každý tunel do jedné tabulky. Právě tato tabulka dělá další změnu kontrolovatelnou.

Související články