Stisknutí Odpojit funguje a o deset sekund později je tunel zpět. Tahle smyčka málokdy znamená, že se klient VPN chová špatně; je to skript obnovy, který se kdy ptal jen na jednu otázku, „je to dole?“, a odpovídal na ni připojením. Jakmile oddělíte otázku, na kterou odpověděl uživatel, od otázky, kterou hlásí systém, stane se opravou malé množství stavu místo delšího čekání.

Dvě otázky, ne jedna

Má být tento profil právě teď připojený, a co systém aktuálně hlásí? To jsou různé otázky s různými vlastníky a politika obnovy potřebuje obě, než začne jednat. Záměr je něco, co váš nástroj rozhodne a pamatuje si. Pozorovaný stav je něco, co vám řekne platforma.

IntentWhat you observeWhat to do
WantedDropped unexpectedlyAllow one supported recovery attempt
Paused by the userDisconnectedDo nothing until intent changes
WantedAlready connectingWait instead of starting a rival attempt
WantedAuthentication needs a personPrompt, then stop replaying credentials

Čtěte řádky jako politiku, ne jako seznam případů. Druhý řádek je ten, který většina skriptů vynechává, a je to jediný řádek, který odlišuje monitor od stroje, který trvá na tom, že má pravdu.

Pozorovaný stav není preference

Model stavu Network Extension od Applu hlásí stavy připojování, připojeno, odpojování, odpojeno a obnova. Všech pět popisuje spojení. Ani jeden z nich neříká „uživatel požádal, aby tento profil zůstal pozastaven“, protože to vůbec není stav spojení. Klienti, kteří nejsou postaveni na tomto rámci, vystavují vlastní podporované ovládací prvky a volání stavu a kreslí stejnou hranici vlastním slovníkem.

Důsledkem je, že odpojený stav nelze nikdy vykládat samostatně. Znamená jednu z nejméně tří věcí: tunel spadl, uživatel ho zastavil, nebo je systém mezi pokusy. Rozlišit je dokáže jen váš vlastní záznam záměru. Ten záznam si zapište, uchovávejte ho mezi restarty, pokud má přežít restart, a aktualizujte ho v okamžiku, kdy uživatel jedná, místo abyste ho později odvozovali z řádku v logu.

scutil --nc list
scutil --nc status "Office VPN"

Kdo další smí tento profil spustit

Pauza, kterou slíbí váš pomocník, je jen tak silná, jak silní jsou ostatní vlastníci stejného profilu. Pravidlo On Demand, spravovaná konfigurace nebo druhý klient mohou požádat o připojení a váš pomocník bude vypadat rozbitý, zatímco se chová přesně tak, jak je napsán.

Najděte každý mechanismus, který může profil spustit než slíbíte, že budete pauzu respektovat, a zapište, kdo vyhraje. Když spravovaná služba záměrně neposkytuje osobní volbu pauzy, je to rozhodnutí správce o politice, ne mezera, kterou má skript vyplnit bojem s managementem.

Udělejte opakované pokusy nudnými

Omezte počet pokusů a každý z nich nechte reagovat na něco, co se změnilo: síť se vrátila, brána odpověděla, výzva k zadání přihlašovacích údajů skončila. Nedostupná brána, propadlá identita a odmítnutý druhý faktor potřebují tři různé reakce a těsná smyčka dává všem třem stejnou.

Sledujte, co rychlý opakovaný pokus na obrazovce skutečně vyprodukuje. Opakované dialogy, které uživatel zavírá, jsou horší než jedna jasná zpráva o chybě, a učí lidi proklikat výzvy, aniž by je četli.

Pauza a politika provozu jsou oddělené sliby

Uživatelem pozastavený tunel často nechává provoz záměrně blokovaný a v tom je celý smysl politiky typu kill switch. To znamená, že Pauza má slíbit přesně jednu věc: obnova se zastaví. Nemá tiše měnit, co síť dovoluje.

Chování provozu rozhodněte zvlášť, zdokumentujte ho vedle ovládání pauzy a udržujte ho konzistentní, ať je tunel pozastavený, selhal nebo chybí. Jinak se uživatel naučí, že stisknutí Odpojit dělá něco nepředvídatelného, a další tiket podpory bude o síti, která „někdy přestane fungovat“ bez viditelného důvodu.

Související články