Pritisak na Prekini vezu djeluje, a deset sekundi kasnije tunel se ipak vraća. Ta petlja rijetko je loše ponašanje VPN klijenta; to je skripta za oporavak koja je ikad postavila samo jedno pitanje, „je li pao?“, i odgovorila na njega povezivanjem. Kad odvojite pitanje na koje je korisnik odgovorio od pitanja koje sistem prijavljuje, popravka postaje malo stanja umjesto dužeg spavanja.

Dva pitanja, ne jedno

Treba li ovaj profil upravo sada biti povezan, i šta sistem trenutno prijavljuje? To su različita pitanja s različitim vlasnicima, a politika oporavka treba oba prije nego što djeluje. Namjera je nešto što vaš alat odlučuje i pamti. Opaženo stanje je nešto što vam platforma kaže.

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

Čitajte redove kao politiku, a ne kao spisak slučajeva. Drugi red je onaj koji većina skripti izostavlja, i to je jedini red koji razlikuje monitor od mašine koja insistira na tome da bude u pravu.

Opaženi status nije preferencija

Appleov model statusa Network Extension prijavljuje stanja povezivanja, povezano, prekidanja, prekinuto i oporavka. Svih pet opisuje vezu. Nijedno od njih ne kaže „korisnik je tražio da ovaj profil ostane pauziran“, jer to uopće nije stanje veze. Klijenti koji nisu izgrađeni na tom okviru izlažu vlastite podržane kontrole i pozive statusa i povlače istu granicu svojim rječnikom.

Posljedica je da se prekinuti status nikada ne može tumačiti sam. On znači jedno od najmanje tri stvari: tunel je pao, korisnik ga je zaustavio ili je sistem između pokušaja. Samo vaš vlastiti zapis o namjeri može ih razlikovati. Zapišite taj zapis, čuvajte ga kroz restarte ako mora preživjeti ponovno podizanje, i ažurirajte ga u trenutku kad korisnik djeluje umjesto da ga kasnije izvodite iz retka u dnevniku.

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

Ko još smije pokrenuti ovaj profil

Pauza koju obećava vaš pomoćnik jaka je koliko i drugi vlasnici istog profila. On Demand pravilo, upravljana konfiguracija ili drugi klijent mogu svi zatražiti vezu, a vaš pomoćnik izgledat će pokvaren dok se ponaša točno kako je napisan.

Nađite svaki mehanizam koji može pokrenuti profil prije nego što obećate da ćete poštovati pauzu, i zapišite ko pobjeđuje. Kad upravljana usluga namjerno uskraćuje ličnu opciju pauze, to je administratorova odluka o politici, a ne praznina koju skripta treba popuniti boreći se s upravljanjem.

Učinite ponovne pokušaje dosadnim

Ograničite broj pokušaja i učinite svaki od njih osjetljivim na nešto što se promijenilo: mreža se vratila, pristupnik je odgovorio, upit za akreditive je završen. Nedostupan pristupnik, istekli identitet i odbijeni drugi faktor traže tri različita odgovora, a tijesna petlja daje svima trima isti.

Pogledajte šta brzi ponovni pokušaj zapravo proizvodi na ekranu. Dijalozi koji se ponavljaju i koje korisnik zatvara gori su od jedne jasne poruke o grešci, i uče ljude da klikću kroz upite bez čitanja.

Pauza i politika prometa su odvojena obećanja

Tunel koji je korisnik pauzirao često namjerno ostavlja promet blokiran, i to je cijela poanta politike tipa kill switch. To znači da Pauza treba obećati točno jedno: oporavak prestaje. Ne smije tiho mijenjati šta mreža dopušta.

Odlučite o ponašanju prometa odvojeno, dokumentirajte ga uz kontrolu pauze i držite ga dosljednim bilo da je tunel pauziran, neuspješan ili odsutan. Inače korisnik nauči da pritisak na Prekini vezu čini nešto nepredvidivo, a sljedeći zahtjev za podršku bit će o mreži koja „ponekad prestane raditi“ bez vidljivog razloga.

Povezani članci