Statusfilen räknar sessioner, inte LANet bakom dem
En ögonblicksbild listar VPN-sessioner och routingstatus, inte varje maskin bakom en plats. Läs rubrikerna, posttyperna och filens ålder tillsammans.
Någon frågar hur många maskiner som finns på VPN:en, och statusfilen läggs fram som bevis. Den svarar på en snävare fråga: hur många sessioner som finns i den här ögonblicksbilden, och vilka virtuella adresser servern routar. Glappet mellan de två frågorna är där de flesta rapporteringsfel bor, och att täppa till det börjar med att läsa filens egna rubriker.
Vad ögonblicksbilden faktiskt innehåller
Filen skrivs med ett intervall när statusutdata är konfigurerad för den serverinstansen, så det är en periodisk bild och inte en direktström. Dess avsnitt listar sessioner och intern routingstatus separat, och formatversionen avgör kolumnlayouten.
status /run/openvpn/office.status 30
status-version 3Version 3 skriver tabbseparerade fält med en rubrikrad, medan äldre format skiljer sig och senare versioner kan lägga till fält. Läs rubriken i stället för att hårdkoda ett kolumnnummer, eftersom ett skript som antar positioner går sönder tyst vid nästa uppgradering.
| Record | What it describes | What it cannot tell you |
|---|---|---|
| Client list | A session in this snapshot | How many people or machines that session represents |
| Real address | The outer peer address and port | Which device is behind it |
| Routing rows | Virtual addresses and route ownership | Which downstream hosts are alive |
Räkna sessioner, inte personer eller maskiner
En enda platsanslutning kan bära trafik för flera auktoriserade maskiner bakom sig. En enda person kan också hålla mer än en session samtidigt, från en bärbar dator och en telefon. Inget av mönstren syns i antalet, och därför är anslutna användare bara meningsfulla när du definierar enheten. Fråga vilken enhet rapporten behöver innan någon börjar räkna.
Om antalet spelar roll för licensiering eller kapacitet, definiera enheten i samma dokument som rapporten. En rapport som inte anger om den räknar sessioner, identiteter eller enheter läses som den enhet läsaren förväntade sig.
Den yttre adressen är ingen identifierare
Fältet för den verkliga adressen är peeradressen och porten som servern ser dem. Flera klienter bakom en översatt offentlig adress delar den adressen, så gruppering efter den slår ihop orelaterade sessioner. Porten ändras också mellan anslutningar, vilket gör paret oanvändbart som stabil nyckel. En rapport grupperad så ser exakt ut och är fel.
Använd den effektiva klientidentiteten för gruppering, och behandla adressen som en transportdetalj. När två rader delar en identitet betyder det oftast samtidiga sessioner och inte en dubblettpost.
Routingrader är inte en värdinventering
En routingpost kan namnge ett subnät som en peer ansvarar för, och ett subnät är inte en lista över dess värdar. Servern vet att den ska skicka det intervallet till en viss session, och den har ingen aning om vilka av maskinerna som är påslagna, autentiserade i en applikation eller användbara för någon. Routingtabellen beskriver nåbarhet, inte beläggning. Den skillnaden är hela skälet till att en VPN inte kan svara på en inventeringsfråga.
Flera rader kan också peka på samma peer, eftersom en plats kan annonsera mer än ett intervall. Att räkna rader och kalla resultatet ett enhetsantal överskattar utrullningen med en godtycklig faktor.
Om kravet verkligen är en tillgångsinventering, använd inventeringsprocessen som äger det nätverket. VPN:en kan identifiera vilken peer som bär en rutt, och det är ett annat faktum än vilka värdar som finns bakom den.
Ålder, behörigheter och en direktvy
Bevara filens ändringstid med varje svar. En server som stannade för timmar sedan lämnar sin senaste ögonblicksbild kvar, och en inaktuell fil som presenteras som aktuell är värre än ingen rapport alls.
Katalogen måste finnas och vara skrivbar för det konto som tjänsten faktiskt körs under, vilket är lätt att glömma efter en härdningsomgång. Filen innehåller vanligtvis namn och adresser, så förvara den på en administrativ plats och inte var som helst där en webbserver kan leverera den. Kontrollera behörigheterna från tjänstekontot, inte från ditt skal. En ögonblicksbild som tyst slutar uppdateras ser exakt ut som ett lugnt nätverk.
För händelsedrivna behov, använd det stödda administrationsgränssnittet i stället för att polla snabbare. Behandla det gränssnittet som styrning, inte som mätvärden, och exponera det aldrig mot internet bara för att räkna sessioner.