Restartujte aplikaci, zeptejte se správce na stav připojení a on hlásí odpojeno, zatímco systémová nabídka jasně ukazuje běžící tunel. Nebo volání uložení vrátí chybu, která nic nevysvětluje, nebo je sdílený klíč prohlášen za chybějící pár sekund poté, co byl přiřazen. Tři příznaky, jeden mechanismus: správce je pohled na systémové úložiště a pohled se čte jako prázdný, dokud ho někdo nenačte.

Než začnete cokoli z toho ladit, rozhodněte, které API máte používat. Systémový tunel IPsec nebo IKEv2 odpovídá vestavěnému správci; protokol, který systém neimplementuje, potřebuje poskytovatele tunelu s vlastním zpracováním paketů a žádná kombinace polí to nezmění.

Správce je pohled na úložiště

Vytvořte nebo získejte správce, požádejte ho o načtení předvoleb a nechte dokončovací handler doběhnout, než začnete číst stav nebo měnit nastavení protokolu. Když je úkolem vypsat uložené konfigurace, použijte volání všech variant, místo abyste jednu instanci používali ke dvěma účelům. Než načtení dorazí, bývá stav neplatný, a právě převod neplatného na vypnuto je chyba, kvůli které aplikace vypadá špatně až po restartu.

Zápis jde ve stejném pořadí. Uložení na správci, který nikdy nic nenačetl, může selhat bez užitečné zprávy, protože neexistuje uložená identita, na kterou by se změna aplikovala. Načtěte, upravte, uložte a pak znovu přečtěte stav. Objekt, ke kterému se systém připojuje, je uložený profil, ne ten, který jste upravovali v paměti.

Změny stavu přicházejí jen tehdy, když se díváte

Po načtení předvoleb prochází stav odpojeno, připojování, připojeno, znovupotvrzení a odpojování. Inicializujte rozhraní jedním čtením a pak poslouchejte oznámení o změně, místo abyste dotazovali časovačem. Dotazování funguje na popředí a lže na pozadí, a tak aplikace skončí s indikátorem, který se nikdy nevyřeší.

Oznámení přicházejí jen tehdy, když je aplikace na popředí. Cokoli, co udržuje stav na pozadí, bude po restartu vypadat zastarale, proto obnovujte při spuštění a znovu, když se aplikace vrátí na popředí. Pokud tunel vlastní poskytovatel, řiďte ho přes odpovídající objekt relace; běžná vlastnost připojení životní cyklus poskytovatele nemodeluje.

Tajné údaje jsou odkazy, ne řetězce

Hlášení o chybějícím sdíleném klíči málokdy znamená, že ho nikdo nepřiřadil. Objekt protokolu chce odkaz: jeden pro heslo uživatele a jeden pro předem sdílený klíč IPsec. Předání nil nebo odkazu odvozeného ze špatné položky klíčenky vyvolá stejnou stížnost jako prázdná položka. Chyba pojmenuje příznak a skryje příčinu, a proto lidé zadávají stejný klíč několikrát.

Nejprve zapište klíč jako položku obecného hesla a pak přečtěte trvalý odkaz na ni. Trvalý odkaz přežije restart, na rozdíl od ukazatele v paměti, a právě on se v profilu serializuje. Zvolte třídu dostupnosti, která po odemknutí zařízení stále povoluje přístup, jinak tunel, který se musí na zamčené obrazovce znovu připojit, selže při ověřování s dokonale platným klíčem.

Rozšíření má vlastní pohled na klíčenku

Síťové rozšíření je samostatný proces, takže se k němu výchozí přístup aplikace ke klíčence nedostane. Dejte oběma cílům stejnou přístupovou skupinu klíčenky v jejich oprávněních, uložte položku jednou uvnitř této skupiny a nechte každý proces ji číst. Bez skupiny rozšíření nic nenajde a nahlásí selhání přihlašovacích údajů, které aplikace nedokáže reprodukovat.

Pokud se poskytovatel konfiguruje přes svůj konfigurační objekt, nevkládejte klíč také do aplikace. Dvě kopie se rozejdou a rozejití se projeví jako špatné přihlašovací údaje, nikoli jako duplikace. Widget nebo druhý proces hlásící jiný stav má stejné vysvětlení: každý potřebuje skupinu a každý musí před čtením načíst předvolby.

Slaďte API s protokolem

Vestavěný správce nese objekty protokolů IPsec a IKEv2. Dodatečnými poli se nezmění v obecného klienta SSL VPN a neshodný profil se může čistě uložit a přesto se nikdy nepřipojit. Rozhodněte, do které kategorie patříte, než začnete stav zkoumat, protože chyba stavu a nepodporovaný protokol vypadají zvenčí stejně.

Pro příští restart je kontrolní seznam krátký: načtěte předvolby, přečtěte stav, držte odběry změn na popředí, znovu sestavte odkazy ze sdílené skupiny a potvrďte, že objekt protokolu odpovídá API, které jste implementovali. Projít ten seznam trvá minutu; hádat ho trvá celé odpoledne.

Související články