Стање VPN-а на Mac-у: проверите профил, ресурс или ток
Једна логичка вредност не може да одговори на три различита питања. Прво изаберите субјекат, затим користите интерфејс који га заиста пријављује и задржите разлоге неуспеха.
Неко пита да ли је VPN активан, а три различите особе под тим подразумевају три различите ствари. Оператер под тим подразумева да је Office профил завршио аутентификацију. Планер под тим подразумева да ће приватни API одговорити. Безбедносна провера под тим подразумева да је тај конкретан захтев изашао заштићеном путањом. Скрипта која grep-ом претражује табелу рута тражећи назив интерфејса није поуздано одговорила ни на једно од тога.
Зато контролна листа почиње пре него што се покрене било која наредба: именујте субјекат провере. Све после тога је избор интерфејса који то заиста може да пријави.
Именујте субјекат пре наредбе
Напишите питање као предикат са субјектом. „Да ли је Office профил повезан“ може да се провери и има власника који може да одговори. „Да ли овај посао може да достигне интерни API“ је други предикат са другачијим начином неуспеха. „Да ли овај захтев користи заштићену путању“ је трећи и једини говори о једном току, а не о целом рачунару.
Њихово мешање ствара аутоматизацију која самоуверено лаже. Посао који провери стање профила и затим претпостави да је API спреман позваће некога на погрешном слоју, а посао који пингује API и назива то доказом тунела не може да разликује исправан VPN од преносног рачунара који се случајно налази на канцеларијској мрежи.
Један профил: питајте оно што њиме управља
За изворну Mac услугу, контроле мрежне везе у scutil пријављују управо то. Оне читају стање именоване конфигурације уместо да било шта закључе из интерфејса.
scutil --nc list
scutil --nc status "Office VPN"
Назив профила у тој наредби мора бити стварни из излаза листе, а не претпоставка. То је путања само за читање за изворне услуге и није гаранција да ће се клијент треће стране уопште појавити тамо; добављач који сам управља својим тунелом потребан му је сопствени подржани интерфејс за статус. Проверите листу пре него што напишете позив за статус, како би назив који недостаје видљиво пао, а не тихо промашио све.
Унутар Network Extension апликације читајте статус из објеката менаџера и везе, а не из система. Пазите на обим: учитавање сачуваних конфигурација враћа само оне које је створила апликација која позива, па празан резултат значи „ниједна моја“, а не „нема VPN-а на овом Mac-у“. Разликујте неуспешан упит од потврђеног неповезаног стања и третирајте прелазна стања као засебне исходе уместо да понављате везу која се већ успоставља.
Један посао: спремност је засебан предикат
Ако је питање да ли посао може да настави, тестирајте стварну зависност посла након што власник везе пријави жељено стање. Ограничена провера спремности према приватном ресурсу прави је облик: доказује шта послу треба и ништа више.
Она и даље не може да докаже да сваки захтев на рачунару користи тунел и не би требало да се пријављује као да може. Исто тако, ресурс који одговара преко обичне мреже није доказ VPN-а, због чега две провере остају одвојене чак и када обе успеју.
Када посао заиста захтева заштићену путању, тај захтев треба сопствени дизајн спровођења у распоређивању: рутирање, изузеци подељеног тунела, правило заштитног зида или захтев на нивоу апликације. Доступност крајње тачке је чињеница о серверу. Спровођење је чињеница о конфигурацији клијента и једно не доказује друго.
Један ток: прегледајте изабрану руту
За један ток гледајте одредиште, фамилију адреса и контекст извора помоћу дијагностике рутирања која пријављује изабрану путању за то конкретно одредиште. Тај излаз именује интерфејс и изворну адресу који су стварно коришћени, што је много јача тврдња од уноса подразумеване руте.
Широке провере у прегледачу одговарају на сасвим друго питање. Резултат јавне IP адресе описује како је један захтев изгледао из угла једног сервера и не говори ништа о приватном DNS-у, искљученим апликацијама или другом мрежном контексту који користи неки други процес.
Вратите резултат који позивалац може да користи
Изаберите облик враћања који одговара предикату: именовано стање профила, пресуду о спремности ресурса или изричито непознато са доказима који су га створили. Уз пресуду задржите идентитет конфигурације и разлог неуспеха.
Управо та последња навика прави разлику између аутоматизације која помаже и аутоматизације која скрива проблеме. „Office VPN: неповезан, последњи покушај није успео при аутентификацији“ каже оператеру где да гледа. „VPN је пао“ позива на поновну инсталацију, а „интерфејс пронађен“ позива на лажно све је у реду.
Референца за Network Extension о учитавању сачуваних конфигурација тунела је место где потврђујете обим апликације која позива пре него што на томе нешто изградите.