Výchozí trasa XFRM pohltila IKE a ESP: zachovejte vnější cestu
Zásada, která chrání vše, může zachytit i pakety, které udržují tunel. Označte IKE a ESP, nebo ponechte trasu k peeru.
Provoz je chráněn, tunel běží, a pak při příští obnově klíčů padne. Výchozí trasa přes rozhraní XFRM popisovala provoz, který jste chtěli chránit. Také pohltila pakety potřebné k tomu, aby se v ochraně pokračovalo.
Obě zúčastněné destinace nejsou zaměnitelné. Směrování to musí říct výslovně.
Kam se hledání peeru skutečně dostane
Zaznamenejte aktivní pravidla, tabulku s trasou XFRM a veřejnou adresu peeru. Pak se podívejte na cestu, kterou by vnější spojení podniklo se svým skutečným zdrojem a značkou. Obecná destinace o této řídicí cestě neříká nic. Užitečnou odpověď dává jen skutečný zdroj a značka.
Úspěšné počáteční spojení také mnoho nedokazuje. Selhání se často objeví poté, co instalace trasy změní odpověď. Start uspěje, první obnova už ne.
ip rule show
ip route show table 220
ip -4 route get 198.51.100.44 from 10.40.0.2
ip xfrm policy list
Pokud hledání peeru vyústí v rozhraní XFRM, vnější pakety se směrují do tunelu, který samy stavějí. To je smyčka, viditelná jedním příkazem.
Možnosti vyloučení na moderní bráně
Dokumentace strongSwan pro VPN založenou na směrování uvádí dvě praktické odpovědi. Jedna označí IKE a ESP, aby se na ně pravidlo odkazující na tabulku XFRM nevztahovalo. Druhá ponechá trasu k peeru nebo vyloučení, na které se hledání ještě dostane.
Vezměte tu, kterou vaše sada pravidel umí vyjádřit bez vedlejších účinků. Značka je čistá, když zbytek zásobníku už značky používá. Je rizikem, když stejná maska znamená v jiném pravidle něco jiného. Oba typy paketů každopádně potřebují ošetření.
Označení pouze IKE nechá datové pakety na zachycené cestě. Vznikne tunel, který provede handshake a pak nic nenese.
Značka je jeden bit v fwmark paketu, který si na bráně nic jiného nenárokuje: 0x1 s maskou 0x1 je obvyklá volba a musí být nastavena na dvou místech, aby vyloučení fungovalo. Charon ji potřebuje na socketu IKE a nastavení příchozí a odchozí značky podřízeného spojení potřebuje stejnou hodnotu, aby i zapouzdřené pakety odcházely označené. Maska 0x1 místo 0xffffffff nechává zbývající bity volné, což je důležité, když jiný podsystém už pakety na stejném hostiteli označuje. Když je nastaveno obojí, pravidlo se zapíše jako vyloučení, takže označené pakety přeskočí tabulku s trasou XFRM a propadnou do hlavní tabulky:
ip rule add not fwmark 0x1/0x1 lookup 220 pref 1000
ip -4 route get 198.51.100.44 from 10.40.0.2 mark 0x1
Pak odpověď přečtěte s aplikovanou značkou. Bez ní zkoumáte cestu, kterou jde chráněný provoz, což je opak otázky této části.
Co automatická instalace předpokládá o sestavení
Automatická instalace trasy pro rozhraní XFRM závisí na verzi strongSwan a její konfiguraci. ID rozhraní, nainstalovaná zásada i asociace musí odkazovat na zamýšlené objekty. Nesoulad se projeví jako trasa, která tiše ukazuje někam skutečně.
Kopírování čísla tabulky nebo masky značky z jiné brány je způsob, jak začínají kolize. Nejprve zkontrolujte, co ji už používá. Kolize ovlivní provoz daleko za tunelem, který jste chtěli změnit, a symptom málokdy ukazuje na kopii.
Změny adresy peeru patří do návrhu. Trasa k hostiteli pro včerejší adresu není plán obnovy koncového bodu, zatímco značka tuto změnu přežije.
Sledujte první obnovu
Zkontrolujte vnější cestu poté, co jsou chráněné trasy nainstalované, ne předtím. Pak sledujte další obnovu a jednu výměnu aplikace. Selhání se obvykle objeví při tomto přechodu, ne při startu.
ip -4 route get 198.51.100.44
sudo swanctl --list-sas
sudo tcpdump -ni any 'udp port 500 or esp'
Dočasné odebrání chráněné výchozí trasy obvykle obnoví konektivitu. Výsledek je diagnostický, ne konečný.
Cílem je stabilní rozdělení mezi vnitřním provozem a vnějšími pakety, které ho nesou. Zapište zvolený mechanismus a jeho tabulku nebo značku do poznámek brány. Jinak další člověk, který se pravidel dotkne, smyčku vrátí.