CreateYourVPN Academy
Cursus: hoe het werkt

Servermonitoring en het meshnetwerk

Hoe CreateYourVPN de gezondheid van servers bewaakt: zelfcontroles, een meshnetwerk van wederzijdse controles tussen servers, en het automatisch verbergen van onbereikbare servers voor gebruikers.

Een server kan u op het slechtst denkbare moment in de steek laten: een dienst crasht, de host herstart de machine — of, erger nog, de server wordt geblokkeerd in het land van een gebruiker en is niet meer bereikbaar, terwijl hij technisch gezien gewoon draait. Uw gebruikers zouden hier nooit iets van moeten merken. Deze les behandelt hoe CreateYourVPN over uw servers waakt en wat er gebeurt wanneer een van hen in de problemen zit.

Twee lagen van controle

Het systeem bekijkt elke server vanuit twee invalshoeken.

1. De server controleert zichzelf

Elke server meldt zich eens in de zoveel minuten: leeft de verkeersontvanger op poort 443, en draait de VPN-dienst? De statistieken uit les 3 komen met dezelfde melding mee. Meldt de server "ik voel me niet goed", dan krijgt hij de status "Server niet beschikbaar". Stoppen de meldingen helemaal, dan wordt de status "Geen gegevens van de server" — de machine kan uitgeschakeld zijn of zijn netwerk zijn kwijtgeraakt.

2. Servers "kloppen bij elkaar aan"

Zelfcontroles kunnen het sluwste geval niet vangen: een server denkt dat hij gezond is, maar is van buitenaf niet bereikbaar — bijvoorbeeld omdat zijn IP is geblokkeerd. Daarom zijn al uw servers verenigd in een meshnetwerk van wederzijdse controles: elke server probeert regelmatig elke buurserver te bereiken — op dezelfde manier als de app van een gebruiker dat zou doen.

Vanaf dat moment neemt een "stemming" het over:

  • Eén mislukte poging betekent niets — het netwerk kan gewoon even gehaperd hebben. Alleen aanhoudende reeksen van mislukkingen tellen mee.
  • Een server wordt alleen gemarkeerd als "Niet bereikbaar vanuit uw servers" wanneer meerdere onafhankelijke servers hem consequent niet kunnen bereiken — de mening van één server is geen oordeel.
  • Er is ook bescherming tegen de "onbetrouwbare getuige": beweert een server plotseling dat hij de helft van zijn buren niet ziet, dan ligt het probleem waarschijnlijk bij hemzelf — en zijn stemmen worden genegeerd.

Dit is precies het schema dat blokkades opvangt: wordt een server geblokkeerd in een land waar uw andere servers ook staan, dan zullen de buren uit dat land hem snel niet meer kunnen bereiken, ontstaat er een quorum, en markeert het systeem de server als onbereikbaar. Servers in landen zonder de blokkade blijven hem ondertussen gewoon zien — en het verschil van mening maakt het beeld overduidelijk.

Wanneer de verbindingscontrole tussen twee servers niet slaagt

De stemming vangt een blokkade als je meerdere servers hebt in het land dat de toegang heeft dichtgezet. Meestal staat daar er precies één: die ziet je buitenlandse server niet meer, terwijl de buitenlandse elkaar prima zien. Voor zo'n beeld komt er nooit een quorum.

We merken het toch op, maar zeggen eerlijk wat we niet weten. Uit "A ziet B niet" valt niet af te leiden wiens adres geblokkeerd is: het is een en dezelfde uitspraak over het pad tussen beide, en van buitenaf zien beide gevallen er identiek uit. Daarom:

  • Standaard beschuldigen we niemand. We markeren als "Niet bereikbaar" de toegangspunten van de kant die de controle niet bereikt, en van beide kanten als het in twee richtingen misgaat. De reden noemt beide servers (zichtbaar als je een toegangspunt opent in de serverkaart). Beslissen welke server je vervangt is aan jou: meestal is dat degene die je klanten niet bereiken.
  • Geen van beide wordt verborgen. Het paar verbergen zou een volkomen gezonde server samen met de andere uit het abonnement halen. Klanten blijven de toegangspunten van beide servers krijgen, en de balancering geeft simpelweg de voorkeur aan gezonde servers als de route die heeft.

De controleserver

Om een eenduidig antwoord te krijgen in plaats van "een van de twee", markeer de server op wiens oordeel je vertrouwt: serverkaart → "Deze server gebruiken om de andere op blokkades te controleren".

De regel is dan eenvoudig: ziet de controleserver een gewone server niet meer, dan beschouwen we het adres van die gewone server als geblokkeerd, mailen we je met het advies het IP te wijzigen en geven we de toegangspunten daarvan niet meer aan klanten zolang de route alternatieven heeft. Andersom, een gewone server die de controleserver niet ziet, betekent niets.

De beste controleserver staat in hetzelfde land als je klanten: zijn blik komt het dichtst bij wat de app van de gebruiker ziet. Je kunt er meerdere markeren. Markeer je echter alle servers, dan verdwijnt de richting weer: er zou niemand overblijven om te oordelen, en paren vallen terug op het standaardgedrag. Let op: de controleserver zelf wordt door dit signaal niet meer gemarkeerd - we oordelen vanaf zijn kant, dus blijft er niemand over om hem te beoordelen.

Wat er met een problematische server gebeurt

De statussen voeden rechtstreeks de taakverdeling: servers met de status "Server niet beschikbaar" en "Niet bereikbaar vanuit uw servers" worden uit de roulatie gehaald — er worden geen nieuwe verbindingen naartoe gestuurd, en in de abonnementen van gebruikers wordt hun plaats ingenomen door gezonde servers uit dezelfde routes. De enige uitzondering is een verbroken paar zonder controleserver: daar worden de toegangspunten gemarkeerd, maar er wordt er geen uit de rotatie gehaald.

Tegelijk is het systeem voorzichtig — het is gebouwd op het principe "eerst geen kwaad doen":

  • Een route wordt nooit leeg achtergelaten. Blijkt elke server op een route "slecht" te zijn, dan biedt het systeem gebruikers liever de best beschikbare optie dan een lege lijst — anders zouden apps concluderen dat de servers weg zijn en ze wissen.
  • Stilte is geen oordeel. De status "Geen gegevens van de server" haalt een server niet vanzelf uit de roulatie: zonder actuele gegevens onderneemt het systeem geen overhaaste stappen.

Alles herstelt zichzelf

Geen enkele status "blijft plakken" — de toestand wordt steeds opnieuw afgeleid uit actuele gegevens:

  • de server stuurt weer een gezonde melding → "Server niet beschikbaar" wordt opgeheven;
  • de buren kunnen hem weer bereiken → de reeks mislukkingen wordt gereset, en de markering "Niet bereikbaar vanuit uw servers" verdwijnt;
  • de meldingen hervatten → "Geen gegevens van de server" verdwijnt.

Herstel de server (of wacht tot hij niet meer geblokkeerd is) — en hij meldt zich zelf weer in dienst. Geen handmatig "weer aanzetten".

Waar u dit in de panel ziet

Open de kaart van een gebruiker → zijn serverlijst: naast elke server staat een statuspunt, en als er iets mis is — een bijschrift met de reden: "Server niet beschikbaar", "Niet bereikbaar vanuit uw servers" (inclusief hoeveel van uw servers hem niet zien), of "Geen gegevens van de server". Indirecte signalen verschijnen ook op serverkaarten: een badge "verouderd" op de statistieken en "Geen gegevens — agent reageert niet".

Meshcontroles zijn extreem zuinig: het zijn piepkleine testaanrakingen met een strikt dagelijks volumeplafond — ze hebben geen enkele invloed op het verkeer of de prestaties van uw servers.

Belangrijkste punten

  • Twee controlelagen: een server controleert zichzelf, en zijn meshburen controleren hem van buitenaf.
  • Blokkades worden opgevangen door een "stemming" van meerdere servers — geen paniek bij een eenmalige hapering.
  • Problematische servers vallen uit de roulatie; gebruikers verhuizen stilletjes naar gezonde servers.
  • Alles herstelt zichzelf: zodra een server weer tot leven komt, sluit hij zich automatisch weer aan.
  • Slaagt de verbindingscontrole tussen twee servers niet en is er geen controleserver ingesteld, dan markeren we de toegangspunten van de onbereikbare kant (of van beide, als het in twee richtingen misgaat) en verbergen we er geen: de beslissing is aan jou.

Volgende les

De infrastructuur weet zichzelf te repareren, maar er is iets dat apart bescherming verdient — uw gebruikersbestand.

On this page