Mac VPN сам се поврзува повторно веднаш по притискање на Исклучи
Монитор што секоја исклучена состојба ја третира како дефект ќе се бори против копчето Исклучи. Одделете ја намерата од набљудуваната состојба, потоа ограничете ги обидите.
Притискањето на Исклучи функционира, а десет секунди подоцна тунелот сепак се враќа. Таа јамка ретко е погрешно однесување на VPN клиентот; тоа е скрипта за обновување што секогаш прашувала само едно прашање, „дали е паднат?“, и одговарала на него со поврзување. Откако ќе го одделите прашањето на кое одговорил корисникот од прашањето што го известува системот, поправката станува мала количина состојба наместо подолго спиење.
Две прашања, не едно
Треба ли овој профил да биде поврзан токму сега, и што известува системот во моментов? Тоа се различни прашања со различни сопственици, а политиката за обновување ги бара двете пред да дејствува. Намерата е нешто што вашата алатка го одлучува и го памети. Набљудуваната состојба е нешто што платформата ви го кажува.
| 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 |
Читајте ги редовите како политика, а не како список на случаи. Вториот ред е оној што повеќето скрипти го испуштаат, и тој е единствениот ред што го разликува мониторот од машина што инсистира да биде во право.
Набљудуваниот статус не е преференца
Моделот на состојби Network Extension на Apple известува за состојбите connecting, connected, disconnecting, disconnected и recovery. Сите пет ја опишуваат врската. Ниту една не вели „корисникот побара овој профил да остане паузиран“, зашто тоа воопшто не е состојба на врска. Клиентите што не се изградени на таа рамка ги изложуваат своите поддржани контроли и повици за состојба, и ја цртаат истата граница со својот речник.
Последицата е што исклучениот статус никогаш не може да се толкува сам. Тој значи едно од најмалку три нешта: тунелот падна, корисникот го запре, или системот е помеѓу обиди. Само вашиот сопствен запис за намерата може да ги разликува. Запишете го тој запис, чувајте го низ рестартирања ако треба да преживее рестарт, и ажурирајте го во моментот кога корисникот дејствува, наместо подоцна да го заклучувате од линија во дневникот.
scutil --nc list
scutil --nc status "Office VPN"
Кој друг смее да го стартува овој профил
Паузата што ја ветува вашиот помошник е само толку силна колку што се другите сопственици на истиот профил. Правилото On Demand, управуваната конфигурација или вториот клиент можат да побараат врска, и вашиот помошник ќе изгледа расипан додека се однесува точно како што е напишано.
Најдете го секој механизам што може да го стартува профилот пред да ветите дека ќе ја почитувате паузата, и запишете кој победува. Кога управувана услуга намерно задржува лична опција за пауза, тоа е одлука на администраторот за политиката, а не празнина што скриптата треба да ја пополни борејќи се со управувањето.
Направете ги повторните обиди досадни
Ограничете го бројот на обиди и направете секој да реагира на нешто што се сменило: мрежата се врати, портата одговори, барањето за акредитиви заврши. Недостапна порта, истечена идентификација и одбиен втор фактор бараат три различни одговори, а тесната јамка им го дава истиот на сите три.
Гледајте што навистина создава брз повторен обид на екранот. Повторените дијалози што корисникот ги затвора се полоши од една јасна порака за грешка, и ги учат луѓето да кликаат низ барањата без да ги читаат.
Паузата и политиката за сообраќај се одделни ветувања
Тунелот што корисникот го паузирал често го остава сообраќајот намерно блокиран, и тоа е целата поента на политика во стил на kill switch. Тоа значи дека Пауза треба да ветува точно едно нешто: обновувањето запира. Не треба тивко да менува што мрежата дозволува.
Одлучете за однесувањето на сообраќајот одделно, документирајте го покрај контролата Пауза, и држете го конзистентно без разлика дали тунелот е паузиран, неуспешен или отсутен. Инаку корисникот учи дека притискањето Исклучи прави нешто непредвидливо, и следниот билет за поддршка е за мрежа што „понекогаш престанува да работи“ без видлива причина.