Iemand vraagt hoeveel machines er op de VPN staan, en het statusbestand wordt als bewijs overlegd. Het beantwoordt een smallere vraag: hoeveel sessies er in deze momentopname zijn en welke virtuele adressen de server routeert. De kloof tussen die twee vragen is waar de meeste rapportagefouten leven, en die dichten begint met het lezen van de eigen kopregels van het bestand.

Wat de momentopname werkelijk bevat

Het bestand wordt met een interval geschreven wanneer statusuitvoer voor die serverinstantie is geconfigureerd, dus het is een periodiek beeld en geen live feed. De secties vermelden sessies en interne routeringsstatus apart, en de formaatversie bepaalt de kolomindeling.

status /run/openvpn/office.status 30
status-version 3

Versie 3 schrijft tabgescheiden velden met een kopregel, terwijl oudere formaten verschillen en latere versies velden kunnen toevoegen. Lees de kopregel in plaats van een kolomnummer hard te coderen, want een script dat posities aanneemt, breekt stil bij de volgende upgrade.

RecordWhat it describesWhat it cannot tell you
Client listA session in this snapshotHow many people or machines that session represents
Real addressThe outer peer address and portWhich device is behind it
Routing rowsVirtual addresses and route ownershipWhich downstream hosts are alive

Tel sessies, niet mensen of machines

Eén locatieverbinding kan verkeer voor meerdere gemachtigde machines erachter dragen. Eén persoon kan ook meer dan één sessie tegelijk hebben, vanaf een laptop en een telefoon. Geen van die patronen is in de telling zichtbaar, daarom zijn verbonden gebruikers pas zinvol als je de eenheid definieert. Vraag welke eenheid het rapport nodig heeft voordat iemand begint te tellen.

Als het getal voor licenties of capaciteit uitmaakt, definieer de eenheid dan in hetzelfde document als het rapport. Een rapport dat niet vermeldt of het sessies, identiteiten of apparaten telt, wordt gelezen als de eenheid die de lezer verwachtte.

Het buitenadres is geen identificatie

Het veld voor het echte adres is het peeradres en de poort zoals de server ze ziet. Meerdere clients achter één vertaald openbaar adres delen dat adres, dus groeperen daarop voegt ongerelateerde sessies samen. De poort verandert ook tussen verbindingen, wat het paar onbruikbaar maakt als stabiele sleutel. Een rapport dat zo is gegroepeerd, ziet er precies uit en is onjuist.

Gebruik de effectieve clientidentiteit voor groepering, en behandel het adres als transportdetail. Wanneer twee rijen een identiteit delen, betekent dat meestal gelijktijdige sessies en geen dubbel record.

Routeringsrijen zijn geen hostinventaris

Een routeringsvermelding kan een subnet noemen waarvoor één peer verantwoordelijk is, en een subnet is geen lijst van zijn hosts. De server weet dat hij dat bereik naar een bepaalde sessie moet sturen, en heeft geen idee welke van die machines aan staan, bij een applicatie zijn geauthenticeerd of voor iemand nuttig zijn. De routeringstabel beschrijft bereikbaarheid, niet bezetting. Dat verschil is de hele reden waarom een VPN geen inventarisvraag kan beantwoorden.

Meerdere rijen kunnen ook naar dezelfde peer wijzen, omdat een locatie meer dan één bereik kan aankondigen. Rijen tellen en het resultaat een apparaataantal noemen, overschat de uitrol met een willekeurige factor.

Als de eis echt een activainventaris is, gebruik dan het inventarisproces dat dat netwerk bezit. De VPN kan vaststellen welke peer een route draagt, en dat is een ander feit dan welke hosts erachter bestaan.

Leeftijd, rechten en een live beeld

Bewaar de wijzigingstijd van het bestand bij elk antwoord. Een server die uren geleden stopte, laat zijn laatste momentopname staan, en een verouderd bestand dat als actueel wordt gepresenteerd is erger dan geen rapport.

De map moet bestaan en schrijfbaar zijn voor het account waaronder de dienst werkelijk draait, wat na een hardeningronde makkelijk wordt vergeten. Het bestand bevat meestal namen en adressen, dus bewaar het op een administratieve plek en niet waar een webserver het kan aanbieden. Controleer de rechten vanuit het dienstaccount, niet vanuit je shell. Een momentopname die stil ophoudt met bijwerken ziet er precies uit als een rustig netwerk.

Gebruik voor gebeurtenisgestuurde behoeften de ondersteunde beheerinterface in plaats van sneller te pollen. Behandel die interface als besturing, niet als metrieken, en stel hem nooit op het internet bloot alleen om sessies te tellen.

Gerelateerde artikelen