Tunel jste zvedli, časovač obnovy klíčů odpočítává a v obou směrech se stále čte nula paketů. Tahle dvojice čísel neříká, že partner váš tunel odmítl: nainstalovaná CHILD SA s nečinnými počítadly je normální stav asociace, se kterou se zatím nic nesetkalo. Úkolem je dokázat, že paket se setkat měl, a pak najít místo, kde opustil cestu, kterou selektory popisují. Udělejte to jednou, popořadě, a držte požadavek mezi běhy totožný.

Co nulové počítadlo skutečně dokazuje

CHILD SA je dvojice selektorů plus klíče a SPI, které šifrují provoz spadající do těchto rozsahů. Nainstalovat ji znamená jen to, že se oba partneři shodli na těchto rozsazích a odvozených klíčích; jádro ji bude držet hodiny, aniž dorazí jediný paket. Otázka tedy nikdy není, zda tunel existuje, ale zda nějaký paket z vašeho testu spadl do rozsahů, na kterých se obě strany dohodly. Pokud ne, počítadla zůstanou na nule a asociace na konci své životnosti vyprší nevyužitá.

Tento rozdíl mění to, co zkontrolujete první. Odmítnutý návrh, selhání autentizace nebo umírající IKE SA se projeví v logu nebo v seznamu SA, ne jako tiché nulové číslo. Tunel, který se čistě dohodne a pak zůstane nečinný, ukazuje spíš na párování, směrování nebo původ testovacího provozu.

Pošlete tok, který umíte popsat, ještě než ho pošlete

Vyberte cíl uvnitř chráněné podsítě a otevřete k němu nové spojení; stránka, kterou jste načetli před hodinou, může být obsloužena z mezipaměti a odpověď z mezipaměti se tunelu nikdy nedotkne. Potom si zapište čtyři hodnoty, dokud je požadavek ještě hypotetický: zdrojovou adresu, kterou aplikace naváže, cíl, rodinu adres a jméno nebo dvojici selektorů sledovaného potomka. Právě tento záznam mění ploché počítadlo v ověřitelné tvrzení.

Zdrojová adresa je hodnota, kterou lidé přeskakují, a právě ona nejčastěji kazí test. Notebook s drátovou adresou, adresou Wi-Fi a adresou tunelu může navázat kteroukoli z nich podle vyhledání trasy a jen jedna může ležet v dohodnutém rozsahu. Použijte nástroj, který umožní zdroj připnout, například ping -I 10.1.0.5 10.2.0.9 nebo curl --interface 10.1.0.5, aby paket nemohl tiše zvolit jinou adresu. Když připnutý běh pohne počítadly a nepřipnutý ne, našli jste problém směrování, ne problém IPsec.

Která čísla číst a kde bydlí

Na Linuxu ip -s xfrm state vypisuje každou asociaci s řádkem lifetime current:, jehož součet bajtů a paketů patří jen této SA, následovaným řádkem stats: pro počítadla opakování a chyb. Na protějšku se strongSwan swanctl --list-sas vypisuje jeden řádek in a jeden řádek out na každé nainstalované podřízené spojení, každý končí počtem bajtů a počtem paketů; starší nástroje stroke nazývají stejnou dvojici bytes_i a bytes_o. Čtěte oba směry odděleně, protože směr, který zůstal plochý, je nálezem. Sečtením obou skryjete přesně tu asymetrii, kterou hledáte.

Oba pohledy jsou pro jednu asociaci, takže obnova klíčů nainstaluje čerstvou dvojici SPI a vaše základní linie se vrátí na nulu, aniž by bylo něco rozbité. Zapište SPI, které sledujete, než časovač obnovy vyprší, jinak budete srovnávat novou SA se starým číslem. Pokud odchozí roste, zatímco příchozí zůstává ploché, selektor se shodoval a odpověď se nikdy nevrátila, což přesouvá vyšetřování k přeposílání na straně partnera a jeho vlastní politice. Dokumentace ke konfiguraci IKEv2 od strongSwan pokrývá životní cyklus dceřiné SA a časování obnovy za těmito čísly.

Místo pozorování je samostatná proměnná od původu paketu. Hardwarové odkládání může zvyšovat počítadla asociace, zatímco softwarový odchyt na rozhraní neukazuje nic, protože odložené pakety přeskakují háček, na kterém odchyt sedí, a příchozí směr se může rozejít stejně. Když se oba neshodnou, použijte počítadla k odpovědi, zda se něco shodovalo, a odchyt k odpovědi, jak paket vypadal.

Trasa, selektory a kde se paket narodil

Porovnejte tři věci vedle sebe: trasu, kterou jádro zvolí pro váš cíl, politiku, která žene provoz do tunelu, a dvojici selektorů, na které se podřízené spojení dohodlo. ip route get 10.2.0.9 from 10.1.0.5 pojmenuje rozhraní a zdroj, které by jádro použilo, a to často není dvojice, kterou jste předpokládali. ip xfrm policy ukazuje lokálně nainstalované šablony a selektory, zatímco swanctl --list-sas ukazuje, na čem se shodl protějšek. Vyhledání, které pošle paket přes fyzické rozhraní, se k politice vůbec nedostane, takže počítadla se nemohou pohnout.

Neshody mají několik podob, které z pohledu počítadla vypadají stejně. Cíl IPv6 mimo selektor IPv4, zdrojová adresa ze špatné podsítě a politika užší než podřízené spojení dávají stejnou nulu. Opravte nejprve nejužší příčinu, protože rozšíření selektoru jen proto, abyste pohnuli číslem, mění to, co tunel chrání.

Pak je tu původ paketu, past, kterou brána staví vlastnímu operátorovi. Provoz, který brána generuje sama, se porovnává s výstupní politikou, zatímco paket, který přeposílá za klienta, se porovnává s politikou přeposílání, takže ping z vlastního stroje může uspět na cestě, kterou žádný klient nejde.

Jedna vratná změna a zpráva, která přežije kontrolu

Změňte jediný prvek, zopakujte totožný požadavek a přečtěte stejná počítadla. Smazání všech pravidel firewallu nebo nahrazení všech selektorů najednou pohne číslem a zničí důkaz, který vám řekl proč. Pokud druhý běh stále ukazuje nulu, vyloučili jste jednu hypotézu, místo abyste promarnili odpoledne.

Zapište nález ve formě, kterou někdo jiný zopakuje: jméno podřízeného spojení, přijaté rozsahy, zdroj, který jste připnuli, cíl, který jste testovali, směr, který zůstal na nule, a SPI, které jste četli. Tahle věta odděluje asociaci, kterou nikdo nepoužil, od vzdálené aplikace, která provoz dostala a odmítla ho. Vraťte změnu, pokud počítadly nepohnula, a záznam si ponechte; příští člověk začne tam, kde jste skončili. Nic na tunelu nebylo třeba kvůli tomu přestavovat, a to je smysl kontroly párování dřív, než se sáhne na konfiguraci.

Související články