2. Funzionamento
Quando si utilizza la contabilità RADIUS, il NAS opera solitamente come client e il server di contabilità RADIUS come server.
2.1. Flusso di contabilità
Quando un utente dial-in inizia a ricevere un servizio, il NAS invia al server di contabilità RADIUS un pacchetto di richiesta di contabilità con Acct-Status-Type impostato a Start. Il pacchetto deve contenere informazioni che descrivono la sessione in modo sufficiente a identificarla univocamente, ad esempio User-Name, NAS-IP-Address, NAS-Port e Acct-Session-Id.
Se il server di contabilità RADIUS non risponde entro T secondi, il NAS deve ritrasmettere il pacchetto. Se la ritrasmissione non ottiene risposta, il NAS deve provare il successivo server di contabilità. Il NAS deve continuare a inviare richieste di contabilità finché non riceve una risposta o non ha tentato tutti i server di contabilità disponibili per un numero configurabile di volte. Se nessun server di contabilità risponde, il NAS può ignorare l'errore, poiché le informazioni di contabilità non sono critiche. Tuttavia, se il NAS riceve dal server di contabilità una risposta di contabilità entro il periodo di timeout (che deve contenere l'Acct-Session-Id della richiesta di contabilità originale), lo scambio è completato.
Quando la sessione utente termina e il servizio viene interrotto, il NAS invia al server di contabilità RADIUS un pacchetto di richiesta di contabilità con Acct-Status-Type impostato a Stop. Il pacchetto deve contenere informazioni che descrivono la sessione in modo sufficiente a identificarla univocamente, e che descrivono ciò che è stato erogato nella sessione, la sua durata e la quantità erogata (ad esempio ottetti/pacchetti in ingresso/uscita).
Se il NAS non riceve una risposta alla richiesta di contabilità, la ritrasmette come descritto in precedenza. Deve continuare a inviare richieste di contabilità finché non riceve una risposta o non ha tentato tutti i server di contabilità disponibili per un numero configurabile di volte. Se nessun server di contabilità risponde, il NAS può ignorare l'errore, poiché le informazioni di contabilità non sono critiche.
2.2. Algoritmo di ritrasmissione della contabilità
Il server di contabilità RADIUS può aver bisogno di ricevere tutti i record di contabilità di una data sessione. Poiché una richiesta di contabilità ritrasmessa può essere identica byte per byte a quella originale (l'identificatore e il Request Authenticator non vengono modificati alla ritrasmissione), il server può rilevare e scartare le richieste duplicate. Pertanto, il NAS può ritrasmettere richieste di contabilità non confermate senza timore che il server di contabilità le registri in duplice copia.
L'algoritmo di ritrasmissione del client è simile a quello descritto nella Sezione 4.1 dell'RFC 2131. Il tempo che il client attende prima del primo timeout è determinato selezionando un valore casuale R compreso tra 1 secondo (valore minimo consigliato) e 3 secondi, dove R deve essere un intero. A ogni timeout successivo, il client raddoppia l'intervallo di attesa, che dipende dal numero di ritrasmissioni. Quando l'intervallo raggiunge 120 secondi (valore massimo consigliato), il client dell'algoritmo di ritrasmissione deve reimpostare l'intervallo a 120 secondi e mantenerlo per le ritrasmissioni rimanenti. Il tempo atteso dal client dopo ciascuna ritrasmissione è il seguente:
R
2R
4R
8R
16R
32R
...
Il client deve continuare a ritrasmettere finché non riceve una risposta alla richiesta di contabilità, o finché non ha ritrasmesso N volte (configurabile, si raccomanda N almeno pari a 5 e al massimo a 10).
2.3. Proxy
Implementando un server di contabilità proxy (ovvero che inoltra le richieste), devono essere seguite le seguenti regole:
a) Il campo Identifier della richiesta di contabilità ricevuta dal NAS deve essere conservato fino all'arrivo della risposta. Esso sarà utilizzato per inoltrare la risposta dal server di contabilità.
b) Il proxy, inoltrando una richiesta a un altro server, deve conservare i valori ricevuti (Acct-Status-Type, Acct-Delay-Time, Acct-Session-Id, Acct-Authentic, User-Name, NAS-IP-Address, NAS-Identifier, NAS-Port, ecc.), salvo diversa indicazione nel presente memo. In particolare, il proxy deve conservare il valore di Acct-Delay-Time durante l'inoltro.
c) Il proxy deve inoltrare la richiesta di contabilità al server di contabilità appropriato, in base alla destinazione specificata nella configurazione locale.
d) Quando il proxy riceve dal server di contabilità inoltrato una risposta di contabilità (Code = 5), deve inviare tale risposta così com'è al NAS che ha inviato la richiesta di contabilità.
e) Il proxy, inoltrando la risposta, deve conservare il campo Identifier. Esso deve essere impostato al campo Identifier della richiesta di contabilità ricevuta dal NAS.
f) Se il proxy non riceve una risposta alla richiesta di contabilità dopo aver ritrasmesso N volte (configurabile), deve inviare una risposta di contabilità (Code = 5) con Acct-Session-Id impostato a quello della richiesta ricevuta dal NAS e gli altri attributi impostati localmente.
g) Il proxy deve conservare i valori originali del NAS per Acct-Status-Type, Acct-Session-Id, Acct-Authentic, User-Name, NAS-IP-Address, NAS-Identifier, NAS-Port, anche se la richiesta di contabilità è proxata.
h) Il proxy, inoltrando una richiesta di contabilità a un altro server, deve conservare il valore di Acct-Delay-Time. Se il timeout della risposta scade e il proxy invia una risposta di contabilità generata localmente, deve aggiungere al Acct-Delay-Time i secondi impiegati in attesa della risposta prima di inviarla al NAS.
i) Il proxy deve conservare il valore di Acct-Session-Id nella richiesta di contabilità anche se la richiesta è inoltrata.
j) Quando il proxy riceve una richiesta di contabilità e la inoltra a un altro server, Acct-Delay-Time rappresenta i secondi che le informazioni di contabilità hanno atteso prima di raggiungere tale proxy (ovvero il numero di ritrasmissioni del NAS moltiplicato per l'intervallo di ritrasmissione del NAS). Acct-Delay-Time deve essere incrementato come specificato nella Sezione 4.1 del presente memo, e il tempo aggiuntivo impiegato dal proxy in attesa della risposta deve essere aggiunto al Acct-Delay-Time quando il proxy invia la risposta.
k) Il proxy deve conservare il valore di Acct-Authentic nella richiesta di contabilità anche se la richiesta è inoltrata.