Stlačenie Odpojiť funguje a o desať sekúnd sa tunel aj tak vráti. Táto slučka je len zriedka nesprávne správanie VPN klienta; je to skript obnovy, ktorý vždy kládol len jednu otázku, „je to dole?“, a odpovedal na ňu pripojením. Keď oddelíte otázku, na ktorú odpovedal používateľ, od otázky, ktorú hlási systém, oprava sa stane malým množstvom stavu namiesto dlhšieho čakania.

Dve otázky, nie jedna

Má byť tento profil práve teraz pripojený a čo systém v tejto chvíli hlási? To sú rôzne otázky s rôznymi vlastníkmi a politika obnovy potrebuje obe, kým začne konať. Zámer je niečo, čo rozhoduje a pamätá si váš nástroj. Pozorovaný stav je niečo, čo vám hovorí 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

Čítajte riadky ako politiku, nie ako zoznam prípadov. Druhý riadok je ten, ktorý väčšina skriptov vynecháva, a je to jediný riadok, ktorý odlišuje monitor od stroja, ktorý trvá na tom, že má pravdu.

Pozorovaný stav nie je preferencia

Model stavov Network Extension od Apple hlási stavy connecting, connected, disconnecting, disconnected a recovery. Všetkých päť opisuje pripojenie. Žiadny z nich nehovorí „používateľ požiadal, aby tento profil zostal pozastavený“, pretože to vôbec nie je stav pripojenia. Klienti, ktoré nie sú postavené na tomto rámci, sprístupňujú svoje vlastné podporované ovládacie prvky a volania stavu a kreslia rovnakú hranicu vo svojom vlastnom slovníku.

Dôsledkom je, že odpojený stav nikdy nemožno interpretovať samostatne. Znamená jednu z najmenej troch vecí: tunel spadol, používateľ ho zastavil alebo je systém medzi pokusmi. Rozlíšiť ich dokáže len váš vlastný záznam zámeru. Zapíšte ten záznam, uchovajte ho medzi reštartmi, ak musí prežiť reštart, a aktualizujte ho v momente, keď používateľ koná, namiesto toho, aby ste ho neskôr odvodzovali z riadku záznamu.

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

Kto ešte smie spustiť tento profil

Pauza, ktorú sľubuje váš pomocník, je len taká silná, ako sú ostatní vlastníci toho istého profilu. Pravidlo On Demand, spravovaná konfigurácia alebo druhý klient môžu požiadať o pripojenie a váš pomocník bude vyzerať pokazený, zatiaľ čo sa správa presne tak, ako je napísané.

Nájdite každý mechanizmus, ktorý môže spustiť profil skôr, než sľúbite rešpektovať pauzu, a zapíšte, ktorý vyhráva. Keď spravovaná služba zámerne zadržiava osobnú možnosť pauzy, je to rozhodnutie správcu o politike, nie medzera, ktorú má skript vyplniť bojom s manažmentom.

Urobte opakovania nudnými

Obmedzte počet pokusov a urobte každý citlivý na niečo, čo sa zmenilo: sieť sa vrátila, brána odpovedala, výzva na prihlásenie sa dokončila. Nedostupná brána, vypršaná identita a odmietnutý druhý faktor potrebujú tri rôzne reakcie a tesná slučka dáva všetkým trom tú istú.

Pozrite sa, čo rýchle opakovanie skutočne vytvára na obrazovke. Opakované dialógy, ktoré používateľ zatvára, sú horšie ako jediná jasná chybová správa, a učia ľudí klikať cez výzvy bez toho, aby ich čítali.

Pauza a politika prenosu sú oddelené sľuby

Tunel pozastavený používateľom často zámerne necháva prenos zablokovaný, a to je celý zmysel politiky v štýle kill switch. To znamená, že Pauza by mala sľúbiť presne jednu vec: obnova sa zastaví. Nemala by potichu meniť to, čo sieť povoľuje.

Rozhodnite o správaní prenosu oddelene, zdokumentujte ho vedľa ovládacieho prvku Pauza a udržujte ho konzistentné bez ohľadu na to, či je tunel pozastavený, zlyhal alebo chýba. Inak sa používateľ naučí, že stlačenie Odpojiť robí niečo nepredvídateľné, a ďalší tiket podpory sa bude týkať siete, ktorá „niekedy prestane fungovať“ bez viditeľného dôvodu.

Súvisiace články