Keegi küsib, kas VPN töötab, ja kolm erinevat inimest mõtlevad selle all kolme erinevat asja. Operaator mõtleb, et Office'i profiil lõpetas autentimise. Ajastaja mõtleb, et privaatne API vastab. Turbekontroll mõtleb, et see konkreetne päring väljus kaitstud teed pidi. Skript, mis grep'ib marsruuditabelist liidese nime, ei vasta ühelegi neist usaldusväärselt.

Seega algab kontroll-loend enne, kui ükski käsk jookseb: nimeta kontrolli subjekt. Kõik pärast seda on selle liidese valimine, mis suudab seda tegelikult raporteerida.

Nimeta subjekt enne käsku

Kirjuta küsimus predikaadina koos subjektiga. „Kas Office'i profiil on ühendatud“ on testitav ja sellel on omanik, kes oskab vastata. „Kas see töö jõuab sisemise API-ni“ on teine predikaat, millel on teistsugune ebaõnnestumise viis. „Kas see päring kasutab kaitstud teed“ on kolmas, ja see on ainus, mis räägib ühest voost, mitte kogu masinast.

Nende segamine tekitab automatiseerimise, mis valetab enesekindlalt. Töö, mis kontrollib profiili olekut ja eeldab seejärel, et API on valmis, kutsub kedagi valel kihil, ja töö, mis pingib API-t ja nimetab seda tunneli tõestuseks, ei suuda eristada töötavat VPN-i sülearvutist, mis juhtub olema kontorivõrgus.

Üks profiil: küsi sellelt, kellele see kuulub

Natiivse Mac-teenuse puhul raporteerivad võrguühenduse juhtikud jaotises scutil täpselt seda. Nad loevad nimega konfiguratsiooni olekut, selle asemel et midagi liidesest järeldada.

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

Profiili nimi selles käsus peab olema loendi väljundist pärit tegelik nimi, mitte oletus. See on natiivsete teenuste jaoks ainult lugemise tee ja ei taga, et kolmandat osapoolt klient seal üldse ilmub; pakkuja, kes haldab oma tunnelit, vajab oma toetatud olekuliidest. Kontrolli loendit enne olekukutse kirjutamist, et puuduv nimi ebaõnnestuks nähtavalt, mitte ei sobitaks vaikselt mitte millegagi.

Network Extensioni rakenduses loe olekut halduri ja ühenduse objektidest, mitte süsteemist. Ole ettevaatlik ulatuse suhtes: salvestatud konfiguratsioonide laadimine tagastab ainult need, mille lõi kutsuv rakendus, seega tühi tulemus tähendab „mitte ühtegi minu oma“, mitte „selles Macis pole VPN-i“. Erista ebaõnnestunud päringut kinnitatud ühendamata olekust ja käsitle üleminekuolekuid eraldi tulemustena, selle asemel et uuesti proovida ühendust, mis juba tuleb üles.

Üks töö: valmisolek on eraldi predikaat

Kui küsimus on, kas töö saab jätkata, testi töö tegelikku sõltuvust pärast seda, kui ühenduse omanik on teatanud kavandatud olekust. Piiratud valmisolekukontroll privaatse ressursi vastu on õige kuju: see tõestab, mida töö vajab, ja mitte rohkem.

See ei suuda ikka tõestada, et iga masina päring kasutab tunnelit, ja seda ei tohiks raporteerida nii, nagu suudaks. Samamoodi ei ole tavavõrgu kaudu vastav ressurss VPN-i tõestus, mistõttu jäävad kaks kontrolli eraldi ka siis, kui mõlemad õnnestuvad.

Kui töö tõesti vajab kaitstud teed, vajab see nõue juurutuse enda jõustamiskujundust: marsruutimine, jaotatud tunneli väljajätmised, tulemüürireegel või rakendustasandi nõue. Lõpp-punkti kättesaadavus on fakt serveri kohta. Jõustamine on fakt kliendi konfiguratsiooni kohta ja üks ei tõesta teist.

Üks voog: kontrolli valitud marsruuti

Üksiku voo puhul vaata sihtkohta, aadressiperekonda ja lähtekonteksti marsruutimise diagnostikaga, mis raporteerib valitud tee just selle konkreetse sihtkoha jaoks. See väljund nimetab tegelikult kasutatud liidese ja lähteaadressi, mis on palju tugevam väide kui vaikimisi marsruudi kirje.

Laiad brauserikontrollid vastavad hoopis teisele küsimusele. Avaliku IP tulemus kirjeldab, kuidas üks päring paistis ühe serveri vaatepunktist, ega ütle midagi privaatse DNS-i, välistatud rakenduste ega teise võrgukonteksti kohta, mida mõni teine protsess kasutab.

Tagasta tulemus, mida kutsuja saab kasutada

Vali tagastusvorm, mis sobib predikaadiga: nimega profiili olek, ressursi valmisoleku otsus või selgesõnaline teadmata koos tõenditega, mis selle tekitasid. Hoia konfiguratsiooni identiteet ja ebaõnnestumise põhjus otsuse kõrval.

Just viimane harjumus teeb vahe automatiseerimise vahel, mis aitab, ja automatiseerimise vahel, mis varjab probleeme. „Office VPN: ühendamata, viimane katse ebaõnnestus autentimisel“ ütleb operaatorile, kuhu vaadata. „VPN on maas“ kutsub uuesti paigaldama ja „liides leitud“ kutsub vale kõik-on-korras juurde.

Network Extensioni viide salvestatud tunnelikonfiguratsioonide laadimise kohta on koht, kus kinnitada kutsuja rakenduse ulatus enne, kui selle peale midagi ehitada.

Seotud artiklid