Passa al contenuto principale

3. Packet Format (Formato del pacchetto)

Esattamente un pacchetto RADIUS Accounting è incapsulato nel campo UDP Data [4], dove il campo UDP Destination Port (porta di destinazione UDP) indica 1813 (decimale).

Quando viene generata una risposta, le porte sorgente e destinazione sono invertite.

Questo memo documenta il protocollo RADIUS Accounting. Le prime distribuzioni di RADIUS Accounting utilizzavano il numero di porta UDP 1646, in conflitto con il servizio «sa-msg-port». Il numero di porta ufficialmente assegnato per RADIUS Accounting è 1813.

Un riepilogo del formato dati RADIUS è mostrato sotto. I campi sono trasmessi da sinistra a destra.

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Authenticator |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Attributes ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+

Code

Il campo Code è un octet (ottetto) e identifica il tipo di pacchetto RADIUS. Quando viene ricevuto un pacchetto con un campo Code non valido, viene scartato silenziosamente.

I codici RADIUS Accounting (decimali) sono assegnati come segue:

     4       Accounting-Request
5 Accounting-Response

Identifier

Il campo Identifier è un octet e aiuta ad abbinare richieste e risposte. Il server RADIUS può rilevare una richiesta duplicata se ha lo stesso indirizzo IP sorgente del client e la stessa porta UDP sorgente e lo stesso Identifier in un breve intervallo di tempo.

Length

Il campo Length è due octet. Indica la lunghezza del pacchetto inclusi i campi Code, Identifier, Length, Authenticator e Attribute. Gli octet al di fuori dell'intervallo del campo Length DEVONO essere trattati come padding e ignorati in ricezione. Se il pacchetto è più corto di quanto indica il campo Length, DEVE essere scartato silenziosamente. La lunghezza minima è 20 e la massima è 4095.

Authenticator

Il campo Authenticator è sedici (16) octet. L'octet più significativo è trasmesso per primo. Questo valore è usato per autenticare i messaggi tra il client e il server RADIUS accounting.

Request Authenticator

Nei pacchetti Accounting-Request, il valore Authenticator è un checksum MD5 [5] di 16 octet, chiamato Request Authenticator.

Il NAS e il server RADIUS accounting condividono un secret. Il campo Request Authenticator nei pacchetti Accounting-Request contiene un hash MD5 unidirezionale calcolato su un flusso di octet costituito da Code + Identifier + Length + 16 octet zero + attributi della richiesta + shared secret (dove + indica concatenazione). Il valore hash MD5 di 16 octet è memorizzato nel campo Authenticator del pacchetto Accounting-Request.

Si noti che il Request Authenticator di un Accounting-Request non può essere calcolato allo stesso modo del Request Authenticator di un Access-Request RADIUS, perché non esiste l'attributo User-Password in un Accounting-Request.

Response Authenticator

Il campo Authenticator in un pacchetto Accounting-Response è chiamato Response Authenticator e contiene un hash MD5 unidirezionale calcolato su un flusso di octet costituito dal codice Accounting-Response, Identifier, Length, il campo Request Authenticator del pacchetto Accounting-Request a cui si risponde, e gli attributi di risposta se presenti, seguiti dallo shared secret. Il risultante valore hash MD5 di 16 octet è memorizzato nel campo Authenticator del pacchetto Accounting-Response.

Attributes

Gli attributi possono avere più istanze; in tal caso l'ordine degli attributi dello stesso tipo DOVREBBE essere preservato. L'ordine degli attributi di tipi diversi non è richiesto essere preservato.