Načtený profil strongSwan není aktivní tunel
strongSwan načítá definice a poté vyjednává SA IKE a CHILD. To, že je profil načtený, nic neříká o tom, zda tunel existuje nebo kdo ho spouští.
Uvedení připojení v konfiguraci strongSwan dokazuje jen to, že se načetla definice. Neznamená to, že bylo kontaktováno protějšek, že existuje SA IKE nebo že je nějaký provoz chráněn. Démon zachází s definicemi a živými asociacemi jako s oddělenými objekty a vzdálenost mezi nimi je záměrné rozhodnutí při návrhu. Znalost toho, který objekt zkoumáte, mění neurčitou závadu na konkrétní další příkaz.
Načtení není připojení
Načtené připojení je tvrzení o tom, co bude možné později vyjednat: adresy protějšku, přihlašovací údaje, návrhy a selektory provozu. Nic v tomto tvrzení nevyžaduje, aby démon někomu volal. Brána může čekat na druhou stranu, iniciovat při startu nebo čekat, až ji probudí odpovídající provoz. Všechny tři jsou platné a všechny tři vypadají v konfiguračním souboru stejně, dokud si nepřečtete politiku startu.
Provozovatelé se dostávají do potíží tím, že čtou seznam definic jako seznam stavů. Profil tam je, takže se má za to, že tunel běží, a další hodina jde na ladění tras pro asociaci, která nikdy nevznikla.
Opačná chyba je stejně častá. Chybějící profil posílá lidi hledat síťovou závadu, když se konfigurace nikdy nenačetla. Pojmenujte objekt a poté spusťte příkaz, který ho pozoruje.
Tři objekty, tři pozorování
strongSwan drží načtenou definici, SA IKE a SA CHILD. První je konfigurace, druhá je ověřený řídicí vztah a třetí je vyjednaná ochrana vybraného provozu. Mají dokonce oddělená jména, takže profil s názvem hq může vlastnit child s názvem hq-lan.
Tabulka přiřazuje každé vrstvě příkaz, který ji zobrazuje. Přečtěte si řádek, než si přečtete log.
| Layer | What it contains | Command |
|---|---|---|
| Definition | Peer addresses, credentials, proposals, and traffic selectors | swanctl --list-conns |
| IKE SA | One authenticated control channel to the peer | swanctl --list-sas |
| CHILD SA | Keys and selectors for the traffic being protected | Child rows under the IKE SA |
Vyžádání child nejprve postaví jeho nadřazenou SA IKE, pokud žádná neexistuje. Vyžádání samotné SA IKE je jiné volání. Řídicí kanál, který se správně ověřuje, nezaručuje child, o který jste požádali.
Tento rozdíl má význam při částečné závadě. SA IKE může být zdravá, zatímco child selhává na neshodě selektoru nebo na návrhu, který protějšek nepřijme. Oba objekty selhávají z různých důvodů, a proto si zaslouží oddělená pozorování.
Zvolte akci startu záměrně
V swanctl.conf rozhoduje start_action childu o chování po načtení. Výchozí none ponechává definici ručnímu spuštění nebo použití jako responder. start ji vytáčí, zatímco trap zanechává politiku, která vyjednává, jakmile se objeví odpovídající provoz.
Takže jak „načtení nikdy nespustí tunel“, tak „načtení vždy nějaký spustí“ jsou špatně. Akce je součástí profilu a měla by odpovídat roli protějšku. Dvě brány, které obě čekají na druhou stranu, produkují ticho, ne tunel.
U trap musí provoz odpovídat selektorům, takže nesouvisející ping nic neprobudí. U start musí být adresa protějšku použitelná a obě strany se musí shodnout na ověřování a návrzích. Ani jedna z akcí nenahrazuje kontrolu těchto podmínek.
Obnova je samostatná politika
Start není keepalive. Detekce mrtvého protějšku, explicitní uzavření protějškem, obnova klíčů a restart procesu jsou různá události životního cyklu s vlastním nastavením. Nakonfigurujte každou z nich záměrně místo očekávání, že počáteční start pokryje všechny.
Tunel, který naskočí při startu a o hodinu později zemře, je otázkou obnovy. Politika startu udělala svou práci a pak přestala mít význam. Podívejte se na nastavení DPD a obnovy klíčů, než obviníte počáteční vyjednávání.
Nahrazení načtených definic je samostatná operace. Nestandardní politiky startu mají zdokumentované inverzní akce a opětovné načtení je provozní změna, nikoli předpoklad, že každá asociace byla aktualizována na místě. Provádějte opětovná načtení po etapách, kde je opětovné připojení přijatelné. Ponechte starou konfiguraci, dokud se nová neprokáže.
Než začnete ladit směrování, zkontrolujte, co existuje
Proveďte tři pozorování v pořadí: načtené definice, aktivní SA IKE a položky child. Každá odpověď zužuje další otázku. Přeskočte krok a skončíte laděním vrstvy, která nikdy nevznikla.
Začněte tím, co je načtené, a tím, co je skutečně navázané:
swanctl --list-conns
swanctl --list-sas
Pokud child chybí, zatímco profil je správný, iniciujte ho podle názvu a sledujte, co se stane. Výstup obvykle říká, zda nejprve naskočil nadřazený prvek.
swanctl --initiate --child hq-lan
Aktivní SA CHILD není cílem. Předávací pravidla, trasy a vlastní autorizace aplikace se stále musí sejít. Životní cyklus odpovídá na to, co bylo vyjednáno; nemůže rozhodnout, kdo smí službu používat.