El VPN del Mac es reconnecta tot sol just després de prémer Desconnecta
Un monitor que tracta qualsevol estat desconnectat com una fallada lluitarà contra el botó de desconnectar. Separeu la intenció de l’estat observat i, després, limiteu els reintents.
Prémer Desconnecta funciona, i deu segons després el túnel torna igualment. Aquest bucle poques vegades és un mal comportament del client VPN; és un script de recuperació que només va fer una pregunta, «està caigut?», i la va respondre connectant. Quan separeu la pregunta que ha respost l’usuari de la pregunta que informa el sistema, la solució passa a ser una mica d’estat en lloc d’una espera més llarga.
Dues preguntes, no una
Aquest perfil hauria d’estar connectat ara mateix, i què informa el sistema en aquest moment? Són preguntes diferents amb propietaris diferents, i una política de recuperació necessita totes dues abans d’actuar. La intenció és una cosa que decideix i recorda la vostra eina. L’estat observat és una cosa que us diu la plataforma.
| Intent | What you observe | What to do |
|---|---|---|
| Wanted | Dropped unexpectedly | Allow one supported recovery attempt |
| Paused by the user | Disconnected | Do nothing until intent changes |
| Wanted | Already connecting | Wait instead of starting a rival attempt |
| Wanted | Authentication needs a person | Prompt, then stop replaying credentials |
Llegiu les files com una política, no com una llista de casos. La segona fila és la que la majoria d’scripts ometen, i és l’única fila que distingeix un monitor d’una màquina que s’entesta a tenir raó.
L’estat observat no és una preferència
El model d’estat Network Extension d’Apple informa dels estats de connexió, connectat, desconnexió, desconnectat i recuperació. Tots cinc descriuen la connexió. Cap d’ells diu «l’usuari ha demanat que aquest perfil segueixi en pausa», perquè això no és en absolut un estat de connexió. Els clients que no es basen en aquest marc exposen els seus propis controls i crides d’estat compatibles, i tracen la mateixa línia amb el seu propi vocabulari.
La conseqüència és que un estat desconnectat no es pot interpretar mai tot sol. Significa una de com a mínim tres coses: el túnel ha caigut, l’usuari l’ha aturat o el sistema està entre intents. Només el vostre propi registre d’intenció pot distingir-les. Anoteu aquest registre, conserveu-lo entre reinicis si ha de sobreviure a un reinici, i actualitzeu-lo en el moment en què l’usuari actua en lloc d’inferir-lo més tard a partir d’una línia de registre.
scutil --nc list
scutil --nc status "Office VPN"
Qui més pot iniciar aquest perfil
Una pausa promesa pel vostre assistent és tan forta com ho siguin els altres propietaris del mateix perfil. Una regla On Demand, una configuració gestionada o un segon client poden demanar una connexió, i el vostre assistent semblarà espatllat mentre es comporta exactament com està escrit.
Trobeu tots els mecanismes que poden iniciar el perfil abans de prometre que respectareu una pausa, i anoteu quina guanya. Quan un servei gestionat reté deliberadament una opció de pausa personal, això és una decisió d’administrador sobre la política, no un buit que un script hagi d’omplir lluitant contra la gestió.
Feu avorrits els reintents
Limiteu el nombre d’intents i feu que cadascun respongui a alguna cosa que hagi canviat: la xarxa ha tornat, la passarel·la ha respost, el diàleg de credencials s’ha completat. Una passarel·la no disponible, una identitat caducada i un segon factor rebutjat necessiten tres respostes diferents, i un bucle ajustat dóna a tots tres la mateixa.
Mireu què produeix realment un reintent ràpid a la pantalla. Els diàlegs repetits que l’usuari descarta són pitjors que un sol missatge d’error clar, i ensenyen la gent a fer clic pels avisos sense llegir-los.
Pausa i política de trànsit són promeses separades
Un túnel en pausa per l’usuari sovint deixa el trànsit bloquejat a propòsit, i aquest és el sentit de tota una política d’estil kill switch. Això vol dir que Pausa ha de prometre exactament una cosa: la recuperació s’atura. No ha de canviar en silenci què permet la xarxa.
Decidiu el comportament del trànsit per separat, documenteu-lo al costat del control de Pausa i manteniu-lo coherent tant si el túnel està en pausa, fallit o absent. En cas contrari l’usuari aprèn que prémer Desconnecta fa una cosa impredictible, i el següent tiquet d’assistència serà sobre una xarxa que «de vegades deixa de funcionar» sense cap motiu visible.