Nokon spør om VPN-en er oppe, og tre ulike menneske meiner tre ulike ting med det. Ein operatør meiner at Office-profilen har fullført autentiseringa. Ein planleggjar meiner at det private API-et vil svare. Ein tryggleiksgjennomgang meiner at nettopp denne førespurnaden gjekk ut gjennom den verna vegen. Eit skript som grep-ar rutetabellen etter eit grensesnittnamn, svarar ikkje påliteleg på nokon av dei.

Så sjekklista byrjar før nokon kommando blir køyrd: namngi subjektet for sjekken. Alt etterpå er å velje grensesnittet som faktisk kan rapportere det.

Namngi subjektet før kommandoen

Skriv spørsmålet som eit predikat med eit subjekt. «Er Office-profilen tilkopla» er testbart og har ein eigar som kan svare. «Kan denne jobben nå det interne API-et» er eit andre predikat med ein annan feilmodus. «Brukar denne førespurnaden den verna vegen» er eit tredje, og det er det einaste som handlar om én einaste flyt og ikkje om heile maskina.

Å blande dei gir automatisering som lyg sjølvsikkert. Ein jobb som sjekkar profiltilstanden og deretter går ut frå at API-et er klart, varslar nokon på feil lag, og ein jobb som pingar API-et og kallar det bevis på ein tunnel, kan ikkje skilje ein fungerande VPN frå ein berbar PC som tilfeldigvis er på kontornettet.

Éin profil: spør det som eig han

For ei innebygd Mac-teneste rapporterer nettverkstilkopling-kontrollane i scutil nettopp dette. Dei les tilstanden til ein namngitt konfigurasjon i staden for å utleie noko frå eit grensesnitt.

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

Profilnamnet i den kommandoen må vere det ekte frå listeutskrifta, ikkje ei gissing. Dette er ein skriveverna veg for innebygde tenester, og det er inga garanti for at ein tredjepartsklient i det heile dukkar opp der; ein leverandør som styrer sin eigen tunnel, treng sitt eige støtta statusgrensesnitt. Sjekk lista før du skriv statuskallet, slik at eit manglande namn feilar synleg i staden for stille å matche ingenting.

Inne i ein Network Extension-app les du statusen frå leiar- og tilkoplingsobjekta i staden for frå systemet. Ver varsam med omfanget her: innlasting av lagra konfigurasjonar returnerer berre dei den kallande appen har oppretta, så eit tomt resultat tyder «ingen av mine», ikkje «ingen VPN på denne Macen». Skil ei mislukka spørjing frå ein stadfesta fråkopla tilstand, og handsame overgangstilstandane som eigne utfall i staden for å prøve på nytt ei tilkopling som allereie er på veg opp.

Éin jobb: beredskap er eit eige predikat

Viss spørsmålet er om ein jobb kan halde fram, testar du den faktiske avhengnaden til jobben etter at tilkoplings-eigaren har rapportert den tiltenkte tilstanden. Ein avgrensa beredskapssjekk mot den private ressursen er den rette forma: han beviser kva jobben treng, og ikkje noko meir.

Han kan framleis ikkje bevisa at kvar førespurnad på maskina brukar tunnelen, og han bør ikkje rapporterast som om han kunne. På same måte er ein ressurs som svarar over det vanlege nettverket, ikkje bevis på ein VPN, og difor held dei to sjekkane seg åtskilde sjølv når begge lykkast.

Når jobben verkeleg krev ein verna veg, treng det kravet utrullinga sitt eige handhevingsdesign: ruting, split-tunnel-unntak, ein brannmurregel eller eit krav på applikasjonsnivå. Tilgjengelegheita til eit endepunkt er eit faktum om ein server. Handheving er eit faktum om konfigurasjonen til klienten, og det eine beviser ikkje det andre.

Éin flyt: gransk den valde ruta

For ein enkelt flyt ser du på destinasjonen, adressefamilien og kjeldekonteksten med rutediagnostikken som rapporterer den valde vegen for nettopp den destinasjonen. Den utskrifta namngir grensesnittet og kjeldeadressa som faktisk blir brukte, noko som er ein langt sterkare påstand enn ein standardruteoppføring.

Breie nettlesarsjekkar svarar på eit heilt anna spørsmål. Eit offentleg IP-resultat skildrar korleis éin førespurnad såg ut frå synsvinkelen til éin server, og det seier ingenting om privat DNS, utelukka applikasjonar eller ein annan nettverkskontekst som ein annan prosess brukar.

Returner eit resultat som den kallande kan bruke

Vel ei returform som passar til predikatet: ein namngitt profiltilstand, ein beredskapsdom for ressursen eller ein uttrykkeleg ukjend med bevisa som skapte han. Hald på konfigurasjonsidentiteten og feilårsaka ved sida av dommen.

Nettopp den siste vanen gjer skilnaden mellom automatisering som hjelper, og automatisering som skjuler problem. «Office VPN: fråkopla, siste forsøk mislukkast i autentiseringa» fortel ein operatør kvar dei skal sjå. «VPN-en er nede» inviterer til ein reinstallasjon, og «grensesnitt funne» inviterer til ein falsk alt-er-fint.

Network Extension-referansen om innlasting av lagra tunnelkonfigurasjonar er staden der du stadfester omfanget til den kallande appen før du byggjer noko på det.

Relaterte artiklar