Je opent de map, sorteert op snelheid, kiest een node die als online is gemarkeerd, en de client geeft het op voordat hij klaar is met verbinden. De lijst loog niet, precies gezegd. Hij rapporteerde het resultaat van de sonde van iemand anders, vanaf een ander netwerk, op een eerder moment, tegen een dienst die een vrijwilliger op elk moment kan uitschakelen. Dat gat begrijpen maakt van een frustrerende jacht een korte reeks controles die je op elke kandidaat kunt uitvoeren.

Wat de lijst werkelijk mat

Een openbare map houdt velden bij zoals een tijdstip van de laatste controle, een waargenomen retourwaarde, een sessietal en soms een protocollijst. Elk daarvan beschrijft de laatste geslaagde waarneming vanuit het standpunt van het project zelf, niet de toestand van de node wanneer je pakket aankomt.

De frisheid weegt zwaarder dan het getal. Een node die vier minuten geleden is gecontroleerd en een node die vier uur geleden is gecontroleerd kunnen dezelfde groene markering tonen, en slechts één ervan lijkt nog op de vastgelegde toestand. Zoek de tijdstempel, niet de kleur.

Vrijwillige bediening voegt een tweede bron van verandering toe die geen enkele monitor kan verhelpen. De beheerder herstart misschien een laptop, raakt door zijn bandbreedte heen, wisselt van provider of klapt gewoon het deksel dicht. Een lijstitem is een kandidaat, en het behandelen als een service-level agreement is een categoriefout.

Let op de fasen van de client, niet op de draaier

Elke VPN-client doorloopt dezelfde brede reeks: de naam oplossen, een transportverbinding openen, de beveiliging onderhandelen, authenticeren, en dan de tunnel configureren en gegevens doorgeven. Een fout in elke fase laat ander bewijs achter, en de draaier toont daar niets van.

Begin met naamresolutie. Als de hostnaam niet wordt opgelost, is er niets over de beschikbaarheid van de node getest, omdat de verbinding je machine nooit heeft verlaten. Daarna het transport: een geweigerde of verlopen TCP- of UDP-uitwisseling vertelt je dat het eindpunt op die poort niet antwoordt, wat een echte bevinding over de node is. Dan onderhandeling en authenticatie, waar een verkeerd certificaat, een verlopen profiel of een niet-passende chiffer mislukken terwijl de node volkomen gezond is. Pas nadat de tunnel is geconfigureerd, kan een routerings- of DNS-fout de laatste stap verklaren.

Lees het clientlog op de hoogste detailgraad die nog op het scherm past, en noteer de laatste regel die slaagde. Die regel is waar de diagnose begint, en hij is meestal informatiever dan wat de map ook toont.

Eén variabele per poging

Vergelijk kandidaten met dezelfde client, hetzelfde toegangsnetwerk en hetzelfde profielformaat, en wijzig alleen het eindpunt. Anders kan een fout de jouwe zijn en schrijf je die aan de node toe.

Twee pogingen zijn genoeg om een patroon vast te stellen, en een derde bevestigt het. Als node A faalt in de transportfase en node B bij de authenticatie, heb je twee losstaande problemen in plaats van één verouderde lijst.

Wanneer elke node op dezelfde manier faalt

Een algemene fout in de eerste fase wijst naar jouw kant: een resolver die niet kan antwoorden, een lokale firewall die het protocol blokkeert, of een netwerk dat alleen webverkeer toestaat. De map kan dat niet melden, omdat zijn sondes niet vanaf jouw plek draaien.

Test het geval van het gevormde netwerk bewust. Sommige toegangsnetwerken staan HTTPS naar het web toe en laten andere protocollen vallen, waardoor elke kandidaat dood lijkt terwijl de lijst accuraat is. Het laden van een pagina in de browser vergelijken met een ruwe verbindingspoging scheidt die twee situaties in minder dan een minuut.

Lees de fout in de fase waarin die optrad

Reproduceer de poging vanuit een terminal zodat de fasen zichtbaar zijn. De drie opdrachten hieronder lossen de naam op, testen of de poort antwoordt, en drukken de onderhandelingsregels uit een OpenVPN-profiel af:

dig +short node.example.net
curl -s --max-time 5 telnet://node.example.net:443
openvpn --config node.ovpn --verb 4 2>&1 | grep -iE "TLS|AUTH|PUSH"

Als de poort antwoordt en de onderhandelingsregel een certificaatprobleem meldt, is de node in bedrijf en is je profiel verouderd. Als de poort helemaal niet antwoordt, is het item een kandidaat die faalde, en naar de volgende gaan is de juiste reactie in plaats van je client te debuggen. Noteer de fase in een korte regel, en de volgende poging begint met kennis in plaats van hoop.

Gerelateerde artikelen