Qualcuno chiede quante macchine ci sono sulla VPN, e il file di stato viene prodotto come prova. Risponde a una domanda più stretta: quante sessioni esistono in questa istantanea e quali indirizzi virtuali instrada il server. Il divario tra queste due domande è dove vivono la maggior parte degli errori di reportistica, e colmarlo inizia leggendo le intestazioni del file stesso.

Cosa contiene davvero l’istantanea

Il file viene scritto a intervalli quando l’output di stato è configurato per quell’istanza del server, quindi è un’immagine periodica e non un flusso in tempo reale. Le sue sezioni elencano separatamente le sessioni e lo stato di routing interno, e la versione del formato decide la disposizione delle colonne.

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

La versione 3 scrive campi separati da tabulazioni con una riga di intestazione, mentre i formati più vecchi differiscono e le versioni successive possono aggiungere campi. Leggete l’intestazione invece di codificare un numero di colonna, perché uno script che presume posizioni si rompe in silenzio al prossimo aggiornamento.

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

Contate le sessioni, non le persone o le macchine

Una sola connessione di sito può trasportare il traffico di più macchine autorizzate dietro di essa. Una sola persona può anche tenere più di una sessione contemporaneamente, da un portatile e da un telefono. Nessuno di questi schemi è visibile nel conteggio, perciò gli utenti connessi hanno senso solo quando si definisce l’unità. Chiedete quale unità serve al rapporto prima che qualcuno inizi a contare.

Se il numero conta per licenze o capacità, definite l’unità nello stesso documento del rapporto. Un rapporto che non indica se conta sessioni, identità o dispositivi verrà letto come l’unità che il lettore si aspettava.

L’indirizzo esterno non è un identificatore

Il campo dell’indirizzo reale è l’indirizzo e la porta del peer come li vede il server. Più client dietro un indirizzo pubblico tradotto condividono quell’indirizzo, quindi raggruppare per esso unisce sessioni non correlate. Anche la porta cambia tra le connessioni, il che rende la coppia inutile come chiave stabile. Un rapporto raggruppato così sembra preciso ed è sbagliato.

Usate l’identità effettiva del client per raggruppare, e trattate l’indirizzo come dettaglio di trasporto. Quando due righe condividono un’identità, di solito significa sessioni simultanee e non un record duplicato.

Le righe di routing non sono un inventario degli host

Una voce di routing può nominare una sottorete di cui un peer è responsabile, e una sottorete non è un elenco dei suoi host. Il server sa che deve inviare quell’intervallo a una sessione particolare, e non ha idea di quali di quelle macchine siano accese, autenticate in un’applicazione o utili a qualcuno. La tabella di routing descrive la raggiungibilità, non l’occupazione. Questa differenza è l’intera ragione per cui una VPN non può rispondere a una domanda di inventario.

Più righe possono anche puntare allo stesso peer, perché un sito può annunciare più di un intervallo. Contare le righe e chiamare il risultato numero di dispositivi sovrastima la distribuzione di un fattore arbitrario.

Se il requisito è davvero un inventario degli asset, usate il processo di inventario che possiede quella rete. La VPN può identificare quale peer trasporta una rotta, e questo è un fatto diverso da quali host esistono dietro.

Età, permessi e vista in tempo reale

Conservate l’ora di modifica del file con ogni risposta. Un server fermo da ore lascia la sua ultima istantanea al suo posto, e un file obsoleto presentato come attuale è peggio di nessun rapporto.

La directory deve esistere ed essere scrivibile dall’account con cui il servizio gira davvero, cosa facile da dimenticare dopo un passaggio di irrobustimento. Il file di solito contiene nomi e indirizzi, quindi tenetelo in una posizione amministrativa e non ovunque un server web possa servirlo. Controllate i permessi dall’account del servizio, non dalla vostra shell. Un’istantanea che smette silenziosamente di aggiornarsi somiglia esattamente a una rete tranquilla.

Per esigenze guidate da eventi, usate l’interfaccia di gestione supportata invece di interrogare più velocemente. Trattate quell’interfaccia come controllo e non come metriche, e non esponetela mai su internet solo per contare le sessioni.

Articoli correlati