Zum Hauptinhalt springen

3. Packet Format (Paketformat)

Genau ein RADIUS-Accounting-Paket wird im UDP-Datenfeld (UDP Data field) gekapselt [4], wobei das UDP-Zielfeld (UDP Destination Port field) den Wert 1813 (dezimal) angibt.

Wird eine Antwort erzeugt, werden Quell- und Zielport vertauscht.

Dieses Memo dokumentiert das RADIUS-Accounting-Protokoll. Die frühe Einsatzphase von RADIUS Accounting erfolgte mit der UDP-Portnummer 1646, was mit dem Dienst „sa-msg-port" kollidiert. Die offiziell zugewiesene Portnummer für RADIUS Accounting ist 1813.

Eine Zusammenfassung des RADIUS-Datenformats ist unten dargestellt. Die Felder werden von links nach rechts übertragen.

 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

Das Code-Feld ist ein Oktett und identifiziert den Typ des RADIUS-Pakets. Wird ein Paket mit einem ungültigen Code-Feld empfangen, wird es still verworfen (silently discarded).

RADIUS-Accounting-Codes (dezimal) sind wie folgt zugewiesen:

     4       Accounting-Request
5 Accounting-Response

Identifier

Das Identifier-Feld ist ein Oktett und hilft bei der Zuordnung von Anfragen und Antworten. Der RADIUS-Server kann eine doppelte Anfrage erkennen, wenn sie dieselbe Client-Quell-IP-Adresse und denselben Quell-UDP-Port und Identifier innerhalb eines kurzen Zeitraums hat.

Length

Das Length-Feld ist zwei Oktette lang. Es gibt die Länge des Pakets an, einschließlich der Felder Code, Identifier, Length, Authenticator und Attribute. Oktette außerhalb des durch das Length-Feld angegebenen Bereichs MÜSSEN als Padding behandelt und beim Empfang ignoriert werden. Ist das Paket kürzer, als das Length-Feld anzeigt, MUSS es still verworfen werden. Die Mindestlänge ist 20 und die Maximallänge 4095.

Authenticator

Das Authenticator-Feld ist sechzehn (16) Oktette lang. Das bedeutungsvollste Oktett wird zuerst übertragen. Dieser Wert dient zur Authentifizierung der Nachrichten zwischen dem Client und dem RADIUS-Accounting-Server.

Request Authenticator

In Accounting-Request-Paketen ist der Authenticator-Wert eine 16-Oktett-MD5-[5]-Prüfsumme, genannt Request Authenticator.

Der NAS und der RADIUS-Accounting-Server teilen ein Geheimnis (secret). Das Request-Authenticator-Feld in Accounting-Request-Paketen enthält einen einseitigen MD5-Hash (one-way MD5 hash), berechnet über eine Oktettsequenz, die aus Code + Identifier + Length + 16 Null-Oktetten + Request-Attribute + Shared Secret besteht (wobei + Verkettung bedeutet). Der 16-Oktett-MD5-Hashwert wird im Authenticator-Feld des Accounting-Request-Pakets gespeichert.

Beachten Sie, dass der Request Authenticator eines Accounting-Request nicht auf dieselbe Weise gebildet werden kann wie der Request Authenticator eines RADIUS Access-Request, weil es im Accounting-Request kein User-Password-Attribut gibt.

Response Authenticator

Das Authenticator-Feld in einem Accounting-Response-Paket heißt Response Authenticator und enthält einen einseitigen MD5-Hash, berechnet über eine Oktettsequenz, die aus dem Accounting-Response-Code, Identifier, Length, dem Request-Authenticator-Feld aus dem Accounting-Request-Paket, auf das geantwortet wird, und den Antwortattributen (falls vorhanden) besteht, gefolgt vom Shared Secret. Der resultierende 16-Oktett-MD5-Hashwert wird im Authenticator-Feld des Accounting-Response-Pakets gespeichert.

Attributes

Attribute können mehrfach vorkommen; in einem solchen Fall SOLL die Reihenfolge von Attributen desselben Typs beibehalten werden. Die Reihenfolge von Attributen unterschiedlicher Typen muss nicht beibehalten werden.