Op ’n hoofdlose boks is daar geen blaaier om oop te maak en geen slot om na te kyk nie, so die toets moet ’n versoek wees waarvan jy die antwoord kan lees. Dit klink eenvoudig tot jy sien dat ’n enkele uitsetadres-resultaat gebruik word om ’n toestel te sertifiseer wat ’n dosyn dienste, twee adresfamilies en ’n proxie bedryf. Die uiteensetting hieronder bou op een slag een begrensde stuk bewyse, in dieselfde konteks waarin die werklaag werklik loop.

Besluit wat die toets moet bewys

Voordat jy enigiets hardloop, skryf die verwagting in een reël: watter vloei, deur watter koppelvlak, na watter bestemming, en wat aan die ander kant gesien moet word. ’n Toets sonder ’n gestelde verwagting lewer ’n getal wat niemand kan interpreteer nie.

Die nuttigste weergawe noem ’n goedgekeurde eindpunt wat die bronadres rapporteer wat dit gesien het.

Daardie eindpunt is die enigste deel wat jy moet reël. Al die res is ’n waarneming aan die kliëntkant, en waarnemings aan die kliëntkant gaan op interessante maniere verkeerd.

Hardloop die waarneming in die regte konteks

’n Administrateur se skulp is nie die werklaag se omgewing nie. Dit kan ’n ander proxie-veranderlike, ’n ander roetetabel in ’n ander naamruimte, of ’n ander gebruiker se omgewingslêer dra. Hardloop die toets in dieselfde gasheer, houer, naamruimte of dienskonteks as die ding wat jy ondersoek. Anders meet jy jou skulp.

Op ’n normale gasheer beteken dit dieselfde gebruiker en dieselfde eenheid. In ’n houer-landskap beteken dit om die houer se netwerk-naamruimte binne te gaan eerder as om vanaf die gasheer te toets. Op ’n systemd-diens kan dit ’n verbygaande eenheid met dieselfde instellings beteken.

Die versoek wat volg, is net betekenisvol sodra jy in die regte konteks is.

Toets adresfamilies afsonderlik

Vra elke familie eksplisiet, want ’n suksesvolle IPv4-versoek oefen glad nie ’n IPv6-pad uit nie. Die --ipv4- en --ipv6-kiesers dwing die keuse af, en die verskil tussen die twee resultate is self inligting.

curl --ipv4 https://probe.example/observed-source
curl --ipv6 https://probe.example/observed-source

’n Mislukte IPv6-versoek is nie bewys van ’n doeltreffende blok nie. Dit kan beteken die eindpunt het geen IPv6-adres nie, dat DNS niks bruikbaars teruggegee het nie, of dat die toestel glad geen IPv6-roete het nie. Lees die mislukking voordat jy ’n gevolgtrekking daaruit maak. ’n Suksesvolle IPv6-versoek deur die tonnel is die enigste resultaat wat bewys die IPv6-pad is gedek.

Teken albei antwoorde langs mekaar aan. Een daarvan alleen is die helfte van ’n feit.

Voeg die vier dinge by wat ’n uitsettoets mis

’n Uitsetadres beantwoord een vraag. Nog vier bepaal of die tonnel werk soos ontwerp.

CheckWhat it provesWhat it does not
Included and excluded destinationsThe split behaves as designed for those flowsCoverage of any other destination
Resolver pathWhere a fresh lookup actually travelledWhere a cached answer came from
Tunnel-down behaviourThe failure policy for a new requestWhat an already open connection does
Reconnect and restartThe requirement survives the lifecycle eventBehaviour under load or partial failure

Bestemmingsbeleid kom eerste: toets ’n vloei wat ingesluit moet word en een wat uitgesluit moet word, wanneer die ontwerp ’n splitsing het. Dan DNS, waar jy die werklike resolver-pad ondersoek eerder as die gekonfigureerde waarde, want ’n gekaste antwoord of ’n gedrukte instelling sê niks oor waar ’n nuwe opsoeking gegaan het nie.

Mislukkingsgedrag het ’n plan en ’n bewaarde herstelpad nodig. Neem ’n nuwe versoek waar terwyl die tonnel onbeskikbaar is, en onthou dat ’n ou oop verbinding nie bewyse oor die mislukkingsbeleid is nie. Lewensiklus kom laaste: herhaal die waarneming ná ’n herverbinding of ’n diensherstarting as daardie gebeure die vereiste raak.

Teken bewyse aan, nie ’n uitspraak nie

Hou vir elke resultaat die proseskonteks, die bestemming, die adresfamilie, die tyd en die waargenome bron. Daardie stel is begrensde bewyse oor die vloeie wat jy geoefen het, en dit is verdedigbaar juis omdat dit sê wat dit gedek het.

Dit is nie ’n oudit van die VPN-operateur se rekords nie, en nie ’n sertifikaat vir elke toekomstige toepassing op die toestel nie.

Skryf die grense langs die resultaat. ’n Toets wat sê wat dit nie gedek het nie, oorleef hersiening, terwyl een wat beweer die toestel is geverifieer, dit nie doen nie. Hou die curl-handleiding langs die familie-kiesers wat jy gebruik het, en hou die vierry-tabel by die resultate.

Verwante artikels