Anda di halaman 1dari 17

Protocole de Base DIAMETER

Architecture, Entits et Commandes


EFORT
http://www.efort.com
Le protocole DIAMETER a t conu comme une version amliore du protocole RADIUS.
Dailleurs ces deux protocoles sont des protocoles AAA (Authentication, Authorizattion,
Accounting) et sont utiliss par des procdures dauthentification, dautorisation et de
taxation (online et offline) dans le monde IP. Le protocole de base DIAMETER est spcifi
dans le RFC 3588 remplac par le RFC 6733. Contrairement RADIUS, acronyme de
Remote Authentication Dial-In User Service, son nom est un jeu de mot, DIAMETER,
signifiant diamtre en anglais, qui est le double du rayon (radius en anglais).
Un des objectifs tait de maximiser la compatibilit et faciliter la migration de RADIUS
DIAMETER. Par exemple, un message DIAMETER comme un message RADIUS transporte
des lments dinformation appels AVP (attribute value pair) et tous les AVPs de RADIUS
ont t repris dans le protocole DIAMETER.
DIAMETER est dfini travers un protocole de base et un ensemble dapplications. Cette
conception permet une extension du protocole de base pour de nouvelles applications. Le
protocole de base fournit un format de commande et dAVP, des mcanismes pour un
transport fiable, la livraison des commandes et le traitement des erreurs.
Le protocole de base doit tre utilis conjointement avec une application DIAMETER.
Chaque application sappuie sur les services du protocole de base. Plus de 80 applications
DIAMETER ont t dfinies ce jour pour le monde des tlcommunications, notamment
par 3GPP pour les architectures EPS (Evolved Packet System) qui reprsente le rseau 4G,
IMS (IP Multimedia Subsystem) qui reprsente une architecture de service sur IP notamment
pour la tlphonie sur IP, PCC (Policy and Charging Control) permettant le contrle et la
taxation des flux IP du client sur le rseau data mobile, M2M (Machine to Machine) pour
faciliter les communications machine to machine et adapter le rseau mobile ce type de
device, et GAA/GBA (Generic Authentication Architecture / Generic Bootstrapping
Architecture) pour une authentification de service. Le but de ce tutoriel est de dcrire le
protocole de base DIAMETER.

1 DIAMETER versus RADIUS


Radius avait tout dabord pour objet de rpondre aux problmes dauthentification pour des
accs distants, par liaison tlphonique, vers les rseaux des fournisseurs daccs ou des
entreprises. Cest de l quil tient son nom qui signifie Remote Authentication Dial In User
Service. Il est dfini dans les RFCs 2865 (RADIUS Authentication) et 2866 (RADIUS
Accounting). Au fil du temps, il a t enrichi et on peut envisager aujourdhui de lutiliser pour
authentifier les postes de travail sur les rseaux locaux, quils soient filaires ou sans fil.
Radius est un protocole AAA. Ces initiales rsument les trois fonctions du protocole :
A = Authentication : authentifier lidentit du client ;
A = Authorization : accorder des droits au client ;
A = Accounting : enregistrer les donnes de comptabilit de lusage du rseau par le client.
Plusieurs point faibles du protocole RADIUS ont t adresss dans la conception du
protocole DIAMETER :
Taille rduite de la valeur dAVP (1 octet pour RADIUS contre 3 pour DIAMETER). La
longueur de lAVP RADIUS a une taille dun octet, ce qui limite la valeur de lAVP a une
longueur maximum de 255 octets. La longueur de lAVP DIAMETER a une taille de 3
octets. Ce qui signifie que la valeur dun AVP DIAMETER a une longueur maximum de

Copyright EFORT 2014

16 millions doctets. Ceci est trs utile notamment lorsque lAVP transporte un profil
usager qui peut mesurer plusieurs kilooctets.
Nombre rduit de messages RADIUS parallles (Identification rduite 1 octet contre 4
pour DIAMETER). RADIUS permet d identifier la transaction par un numro encod sur
1 octet. Le nombre de transactions pouvant tre traites en parallle est 256. DIAMETER
permet d identifier la transaction par un identificateur encod sur 4 octet. Le nombre de
transactions pouvant tre traites en parallle est 4 milliards.
Incapacit de contrler les flux vers le serveur (RADIUS fonctionne sur UDP alors que
DIAMETER opre sur TCP ou SCTP). RADIUS fonctionne sur UDP ce qui ne constitue
pas un transport fiable. DIAMETER fonctionne sur TCP ou SCTP permettant de fiabiliser
le transport des requtes/rponses DIAMETER, notamment via des mcanismes de
contrle de flux et de retransmission.
Protocole client serveur ne permettant pas au serveur dinitier une requte : RADIUS est
un protocole client serveur ; seul le client peut initier une requte et le serveur retourne
une rponse une fois la requte traite. DIAMETER qui est plutt un protocole peer to
peer permet au client ou au serveur dinitier une requte. Chaque nud DIAMETER a un
role dual client et serveur.
Impossibilit de rajouter des commandes au protocole RADIUS : RADIUS ne permet pas
la dfinition de commandes spcifiques un vendor. Par contre il permet la dfinition
dAVP spcifiques. Le protocole DIAMETER permet la dfinition de commandes et dAVP
spcifiques un vendor. Ainsi DIAMETER doit tre considr comme un protocole de
base au dessus duquel, il est possible de dfinir des applications avec des commandes
spcifiques et/ou des AVPs spcifiques.
Scurit au niveau du protocole RADIUS : Avec RADIUS, le client et le serveur doivent
tre prconfigurs avec un secret partag mme si la scurit au niveau IP a t active.
DIAMETER au contraire peut scuriser la communication entre paires avec des
mcanismes standard de scurit IP tels que IPSec, TLS (Transport Layer Security), ou
DTLS (Datagram TLS).
Comportement du proxy entre client et serveur non spcifi pour RADIUS: RADIUS et
DIAMETER permettent lutilisant de nuds additionnels sur le chemin entre client et
serveur. Ces nuds sappellent des proxy dans lenvironnement RADIUS et Agent dans
lenvironnement DIAMETER. Lagent DIAMETER peut avoir plusieurs rles et un de ses
rles est Proxy. Les autres rles possibles sont Relay, Redirect et Translation. La
diffrence entre les deux types de nuds est que RADIUS na pas spcifi le
comportement du Proxy, ni toute la procdure de routage. Par contre DIAMETER a
totalement spcifi le comportement de lagent et toute sa procdure de routage.

2 Protocole de base DIAMETER et identificateur


d application
Toute commande DIAMETER doit appartenir une application et doit inclure lidentificateur
dapplication (application Id) laquelle la commande appartient. Les commandes du
protocole de base sont soit lies des aspects authentification/autorisation, soit des
aspects taxation.
Les commandes du protocole de base relatives aux aspects autorisation et authentification
ont un Application Id gal 0. Elles sont dfinies dans le RFC 6733.
Les commandes du protocole de base relatives aux aspects taxation offline ont un
Application Id gal 3.. Elles sont aussi dfinies dans le RFC 6733.
Les commandes du protocole de base relatives aux aspects taxation online ont un
Application Id gal 4. Elles sont spcifies dans le RFC 4006.

Copyright EFORT 2014

Une nouvelle application aura un nouvel identificateur dapplication si elle ajoute de


nouvelles commandes ou si elle ajoute/supprime des AVPs obligatoires aux commandes du
protocole de base.
A titre dexemple, 3GPP qui normalise le monde des tlcommunications mobiles a dfini
une nouvelle application de taxation offline pour la data mobile, appele Gz, mais sans
rajouter de nouvelles commandes ou ajouter/supprimer des AVPs obligations aux
commandes du protocole de base. Cette application se contente dutiliser les commande de
taxation offline du protocole de base et de rajouter des AVPs optionnels, au protocole de
base. Son identificateur dapplication est donc 3.
Il en va de mme pour lapplication Gy de taxation online pour la data mobile qui ne fait que
rajouter des AVPs optionnels au protocole de base. Son identificateur dapplication est 4. Par
contre, Par contre lapplication S6 de gestion de mobilit dans le rseau EPS (4G) rajoute de
nombreuses commandes et des AVPs obligatoires au protocole de base. Un nouvel
identificateur dapplication lui a t assign, savoir 16777251.

3 Entits DIAMETER

Un nud DIAMETER est un hte qui implante le protocole DIAMETER. Il joue un rle
dual client et serveur. Il est client lorsquil met une requte et serveur lorsquil reoit une
requte. Il faut donc plutt considrer le protocole DIAMETER comme un protocole entre
peers. Dans un rseau 4G appel EPS (Evolved Packet System), il existe de nombreux
nuds DIAMETER, tels que le MME (Mobility Management Entity) qui prend en charge
la gestion de la mobilit de lUE (User Equipment) et le HSS (Home Subscriber Server)
qui fournit au MME des vecteurs dauthentification pour authentifier lUE et le profil de
labonn afin de permettre au MME de connatre les autorisations assigne labonn
lors de sa souscription.

Le protocole DIAMETER peut tre utilis en mode associ ou peer to peer (sans agent) ou
en mode quasi associ (avec un agent). Le tutoriel EFORT sur le thme Rseau de
Signalisation DIAMETER (http://efort.com/r_tutoriels/DIAMETER_ROAMING_EFORT.pdf)
prsente les avantages introduire un agent.

Un agent DIAMETER est un nud DIAMETER qui fournit des services de relai, de proxy
ou de traduction.
Un agent relai est un agent DIAMETER qui accepte des requtes, et les relaie soit un
autre agent, soit au nud DIAMETER de destination partir des informations prsentes
dans les requtes (e.g., Destination-Realm). Cette dcision de routage est ralise grce
la table de routage base sur le Destination Realm (nom de domaine de la destination),
qui indique le nud suivant pour un realm de destination donn. Les agents Relai ne
ralisent aucun traitement de niveau application. Les agents Relai modifient les
messages DIAMETER en y insrant et en y supprimant des informations de routage,
mais ne modifient aucune autre partie des messages. Les agents Relai ne maintiennent
pas d tat de session mais doivent maintenir un tat de transaction. Le maintien de ltat
de transaction permet de garantir quune requte et une rponse appartenant une
mme transaction suivent le mme chemin.
Un agent proxy comme un agent relai route le message DIAMETER en utilisant les
tables de routage de realm. Cependant, il diffre puisqu il peut modifier les messages
DIAMETER afin d implanter des politiques d oprateur (e.g., topology hiding). Un
agents Proxy peut maintenir un tat de session et doit maintenir un tat de transaction.
Puisque la mise en uvre de politiques requiert la comprhension du service rendu, un
agent Proxy doit publier les applications qu il supporte et doit comprendre la smantique
des commandes DIAMETER quil route. Par analogie par rapport SS7, un agent relai

Copyright EFORT 2014

est un PTS qui route au niveau 3 en utilisant le DPC alors quun agent proxy est un PTS
qui route au niveau SCCP et ralise des oprations GTT.
Un agent de redirection fournit aussi une fonction de routage. Il sert de directory
permettant gnralement la traduction de Nom de domaine Adresse du serveur. A la
diffrence des autres types dagent (relai et proxy) qui acheminent les messages
DIAMETER, lagent de redirection retourne un type particulier de message de rponse
lmetteur de la requte. La rponse contient linformation de routage afin que lmetteur
puisse retransmettre son message directement au serveur destinataire. Un agent de
redirection ne modifie donc pas le message DIAMETER. Il ne maintient ni un tat de
transaction ni un tat de session.
Un agent de traduction traduit les protocoles tels que DIAMETER en RADIUS ou
DIAMETER en MAP (Mobile Application Part) pour des aspects
dautentification/autorisation data mobile ou DIAMETER en CAP (CAMEL Application
Part) pour des aspects de taxation online ou DIAMETER en SOAP, etc.
Les grands fournisseurs dagent DIAMETER sont ORACLE (DSR, DIAMETER Signaling
Router), F5 Networks (SDC, Signaling Delivery Controller) et Ericsson (DIAMETER
Signaling Controller). Lagent est appel DRF (DIAMETER Routing Function) dans les
recommandations 3GPP.

Les nuds DIAMETER (client/serveur) doivent supporter le protocole de base, qui inclut les
aspects authentification, autorisation et taxation. Par ailleurs, ils doivent supporter chaque
application Diameter ncessaire la mise en uvre du service du noeud.
Les agents relai et redirect DIAMETER sont par dfinition transparents aux applications. Ils
doivent supporter le protocole de base et de manire transparente toutes les applications
DIAMETER sans chercher comprendre leur smantique. En effet, les agents relai
acheminent les requtes et les rponses sur la base des AVPs relatifs au routage (Routing
AVP) appartenant au protocole de base et prsents dans toutes les commandes de toutes
les applications (e.g., Destination Realm) et sur la base des entres prsentes dans la table
de routage (realm-based routing table). Ils nont pas la ncessit de comprendre la
smantiques des commandes ou des AVPs non relatifs au routage. Les relais sont donc
capables de traiter tous les types dapplication DIAMETER et tous les types de commande
pour offrir un service de relai.
Les proxy DIAMETER doivent supporter le protocole de base. Par ailleurs, ils doivent
supporter chaque application DIAMETER ncessaire la mise la mise en uvre de
services proxys. En effet, les agents proxy peuvent prendre des dcisions relatives des
politiques. Par exemple, les proxy peuvent gnrer des messages de rejet dans le cas o
des politiques sont violes. Les proxy doivent donc comprendre la smantique des messages
qui sont routs par eux et peuvent ne pas supporter toutes les applications DIAMETER.
Ainsi un agent dun fournisseur sera proxy pour les applications que lagent supporte et relai
pour toutes les applications quil ne supporte pas.

4 Format des Commandes


Toute commande dfinie par le protocole ou par des applications doit avoir un format dfini
par le protocole de base et montr la figure 1. Une commande peut tre une requte ou
une rponse.

Copyright EFORT 2014

0
1
2
3
01234567890123456789012345678901

Version

Message length

RPETrrrr

Command-Code (IANA)
Application-ID
Hop-by-Hop Identifier
End-to-End Identifier
AVPs

R=Request bit,
P=Proxiable bit, E=Error bit, T=reTransmission bit
AVP = Attribute Value Pair
Figure 1 : Format de commande DIAMETER
Une commande DIAMETER consiste en un en-tte de taille fixe (20 octets) suivi par un
nombre variable dAVPs qui reprsentent des lments dinformation. Le format de la
commande est montr la figure ci-dessus.
Le champ Version indique le numro de version de DIAMETER. La valeur de ce
champ est positionne 1.
Le champ Message Length indique la longueur totale du message en octets. La
longueur doit avoir une valeur multiple de 4.
Le fanion de commande spcifie 4 bits R, P, E et T et 4 bits de rserve..

R : Le bit R signifie Request . Il indique si le message est une requte ou une


rponse. 1 Request; 0=Rponse.

P : Le bit P signifie Proxiable. Il indique si le message peut tre rout par un


agent proxy ou un agent relai ou un agent de redirection (P=1) ou s il doit tre trait
localement (P=0).

E : Le bit E signifie Error. Il indique si le message contient des erreurs


protocolaires ou smantiques. Lorsque la requte gnre une erreur protocolaire, le
message de rponse est retourn avec sont bit E positionn la valeur 1 indiquant
une erreur protocolaire (Catgorie de rponse 3XXX).

T : Le bit T signifie reTransmitted. Il indique si le message a t retransmis suite


un failover ou est utilis pour supprimer la rception des message dupliqus.
Rappelons que toute requte DIAMETER doit tre acquitte par une rponse
correspondante. Lmetteur de la requte la retransmet sil ne reoit pas une rponse
aprs un temporisateur.

r(eserved) : Les bits r sont rservs pour usager futur. Ils sont positionns 0 et
ignors par le rcepteur.
Command-Code (4 octets) : Est utilis pour communiquer la commande associe au
message. Chaque message DIAMETER doit contenir un code de commande afin que le
rcepteur sache identifier l action raliser pour chaque message.
Application-ID (4 octets) identifie l application spcifique laquelle appartient le
message, tel que Mobile IP, Accounting, etc.
Hop-by-hop identifier (4 octets) : transporte un identificateur utilis afin d associer la
requte et la rponse sur ce saut (hop). L metteur de la rponse doit s assurer que la

Copyright EFORT 2014

valeur de cet identificateur est la mme que celle prsente dans la requte
correspondante.
End-to-end identifier (4 octets) : Est utilis afin de dtecter des messages dupliqus.
L identificateur dans la rponse doit tre identique celui de la requte correspondante.
L identification doit tre unique pour au moins 4 minutes. Cet identificateur ainsi que
l AVP Origin-Host (dcrit plus tard) sont utiliss ensemble afin de dtecter des
duplications de message. Une requte duplique ne doit pas conduire l envoi de deux
rponses.

4.1

Application ID

Chaque application DIAMETER doit avoir un identificateur dapplication assign par lIANA
(Internet Assigned Numbering Authority). Pendant lchange de capacits, les nuds
DIAMETER informent leur peers des applications quils supportent. Par ailleurs toutes les
commandes DIAMETER contiennent un identificateur dapplication, qui est utilis par la
procdure de routage des messages. En effet, un agent doit identifier sil supporte
lapplication en mode relai ou proxy. Le tableau 1 liste un sous ensemble des applications
DIAMETER dfinies par 3GPP.

Application
Diameter Common Messages
NASREQ
Diameter Base Accounting, Rf
Diameter Credit Control, Ro
Relay
Cx/Dx Interface Application
Rx Interface Application
Sh/Dh Interface Application
Re Interface Application
S6a/S6d Interface Application
S13/S13 Interface Application
S9 Interface Application
Gx Interface Application
Sy Interface Application
SWx Interface Application

Application Id (Dec)

0
1
3
4
0xFFFFFFFF
16777216
16777236
16777217
16777218
16777251
16777252
16777267
16777238
16777302
16777265

Application Id (Hex)

0x00000000
0x00000001
0x00000003
0x00000004
0xFFFFFFFF
0x01000000
0x01000014
0x01000001
0x01000002
0x01000023
0x01000024
0x01000033
0x01000016
0x01000056
0x01000031

Tableau 1 : Exemples didentificateurs dapplication

4.2

Hop-by-Hop Identifier

Le Hop-by-Hop Identifier est un identificateur dans la commande DIAMETER qui change


chaque saut de la commande. Ce champ permet de numroter les messages chaque relai
ou proxy afin que la requte (commande dont le bit R =1) et la rponse associe (commande
dont le bit R = 0) suivent le mme chemin.
Un ID est choisi au hasard par l'entit qui initie une requte. Cet ID est sauvegard par un
agent qui est le saut suivant et remplac par un autre ID gnr par lagent. Ce processus se
rpte chaque saut tout au long du chemin. Le serveur qui rpond la requte, reprend le
mme ID que celui trouv dans la requte et linsre dans la rponse. Ainsi, les relais voient
transiter les rponses avec les ID attendus. Pour poursuivre la chane, ils remettent l'ID de
leur prdcesseur qu'ils avaient mmoris.
Considrons l exemple prsent la figure 2 :
Un message arrive avec un ID Hop-By-Hop gal 1.

Copyright EFORT 2014

Le premier agent Relai/Proxy sauvegarde l ID prsent dans la requte et le remplace par le


sien ( ici l ID 3). Lagent mmore aussi ladresse de transport du client metteur savoir
(Port1, IP1). .
Le second agent Relai/Proxy sauvegarde l ID prsent dans la requte (ID = 3) et le
remplace par le sien ( ici l ID 4) et lassocie ladresse de transport du premier agent,
savoir, P2, I2 .
Le serveur reprend le dernier ID Hop-By-Hop plac dans la requte et l insre dans la
rponse (ID = 4) et le retourne ladresse de transport do provient la requte, i.e., P3, I3.
Le second agent retrouve dans sa table des requtes, l'ID qui correspond la rponse
qui vient d'arriver. Il remet l'ID d'origine et fait transiter le message (remplacement de l ID
= 4 par l ID = 3) dans le sens arrire P2, I2.
Le premier agent retrouve dans sa table des requtes, l'ID qui correspond la rponse
qui vient d'arriver. Il remet l'ID d'origine et fait transiter le message (remplacement de l ID
= 3 par l ID = 1) dans le sens arrire P1, I1.
Le client peut corrler la requte et la rponse grce au champ End-To-End Identifier.

Mmoire : Si Id = 4,
remplacer par Id= 3
Envoyer I2, P2

Mmoire : Si Id = 3,
remplacer par Id= 1
Envoyer I1, P1
Id = 1

Client
Id = 1
Adresse IP = I1
Numro de Port = P1

Id = 4

Id = 3

Agent
Relay/Proxy

Agent
Relay/Proxy
Id = 4

Id = 3
Adresse IP = I2
Numro de Port = P2

Server

Adresse IP = I3
Numro de Port = P3

Figure 2 : Usage du Hop-by-Hop Identifier

4.3

End-To-End Identifier

Le End-To-End Identifier est un identificateur de "bout en bout" dune longueur de 4 octets.


Le client DIAMETER va choisir alatoirement un numro unique pour chacune des requtes
mises.
Le serveur doit reprendre le mme numro pour retourner la rponse. Ainsi, l metteur sait
quelle requte correspond la rponse.
En cas de mme ID dans des commandes de rponse, les doublons devront tre rejets.
Cela peut se produire lorsquune requte est retransmise (bit T est alors positionn 1) et
deux rponse sont retournes celle avec un bit 1 0 et celle avec un bit T 1) avec le mme
End-To-End Identifier.
La figure 3 dcrit un exemple den-tte de commande DIAMETER dont la taille est fixe et de
20 octets.. Il sagit de la commande DIAMETER Authentication-Information-Request (AIR) de
lapplication S6 utilise entre le MME et le HSS.
Le champ Version est positionn 1.
Le champ Message Length indique la longueur totale du message en octets, soit
dans notre exemple 376 octets. Cette valeur est toujours un multiple de 4 octets et inclut
la taille de len-tte de 20 octets ainsi que celle de tous les AVPs.
Le bit R est positionn 1 puisqu il s agit d une requte.
Le bit P est positionn 1 afin de permettre cette requte dtre route par un agent
proxy ou un agent relai ou dtre traite par un agent de redirection.
Le bit E est toujours positionn 0 pour une requte.
Le bit T est positionn 0 car il sagit de la premire transmission de cette commande
AIR.

Copyright EFORT 2014

Les quatre autres bits du fanion sont rservs pour usager futur. Ils sont toujours
positionns 0 et ignors par le rcepteur.
Le champ Command-Code a la valeur 318. Il sagit de la mme valeur pour la requte
AIR et la rponse AIA.
Le champ Application-ID identifie l application spcifique laquelle appartient la
commande, Ici, il s agit de l application S6 dont l application-ID est 16777251 (valeur
dcimale correspondant 0x01000023).
Le champ Hop-by-hop Identifier est positionn la valeur 0x30b00284. Il est utilis afin
d associer la requte et la rponse sur ce saut (hop).
Le champ End-to-end Identifier est positionn la valeur 0x0bbdcc60. Il est utilis afin de
dtecter des messages dupliqus. L identificateur dans la rponse doit tre identique
celui de la requte correspondante.

Figure 3 : Exemple den-tte de commande DIAMETER (requte)


La figure 4 dcrit len-tte de rponse correspondante. Les diffrences notables rsident
dans le bit R qui est positionn 0 pour une rponse et dans la taille propre la rponse, ici
388. Cette rponse nindique pas derreur protocolaire, do le bit E 0. Tous les autres
champs den-tte de la requte et de la rponse ont des valeurs identiques.

Figure 4 : Exemple den-tte de commande DIAMETER (rponse)

Copyright EFORT 2014

5 Commandes du protocole de base


Le protocole de base DIAMETER dfinit un ensemble de commandes dauthentification,
dautorisation et de taxation offline et online gnriques (Figure 5). Le groupe de
commandes connection management permet la mise en relation DIAMETER entre deux
peers et la supervision de cette relation. Ces commandes ne sont pas routables puisquelles
ne peuvent subir qun seul saut..
Le groupe Session Operations permet dtablir une session DIAMETER
dauthentification/dautorisation entre un client et un serveur. Ces commandes sont de bout
en bout routables via des agents.
Le groupe accounting (offline) permet lenvoi dinformations de taxation offline par un client
un server. Les commandes sont de bout en bout routables via des agents.
Le groupe accounting (online) permet la demande de crdit par un client un serveur. Les
commandes sont de bout en bout routables via des agents.

Command-Name

Abbrev. Code

Diameter Connection Management


Capabilities-Exchange-Request
Capabilities-Exchange-Answer
Device-Watchdog-Request
Device-Watchdog-Answer
Disconnect-Peer-Request
Disconnect-Peer-Answer
Generic Session Operations
Abort-Session-Request
Abort-Session-Answer
Session-Termination-Request
Session-Termination-Answer
Re-Auth-Request
Re-Auth-Answer
Accounting (offline)
Accounting-Request
Accounting-Answer
Accounting (online)
Credit-Control-Request
Credit-Control-Answer

CER
CEA
DWR
DWA
DPR
DPA

257
257
280
280
282
282
Application Id = 0

ASR
ASA
STR
STA
RAR
RAA

274
274
275
275
258
258

ACR
ACA

271
271

Application Id = 3

CCR
CCA

272
272

Application Id = 4

Figure 5 : Commandes du protocole de base DIAMETER

Capabilities-Exchange-Request/Answer (CER/CEA, command code 257). Ces deux


commandes doivent tre utilises ds que la connexion entre les entits DIAMETER a
t tablie la couche de transport (TCP ou SCTP). Elles permettent aux deux entits
paires DIAMETER dchanger leurs capacits notamment en terme dapplications
DIAMETER supportes). Si ces capacits changes montrent une incompatibilit entre
les deux entits (e.g., aucune application en commun), la mise en relation DIAMETER ne
peut pas avoir lieu et la connexion est libre la couche transport. Les messages CER
et CEA ne peuvent pas tre routs par un agent DIAMETER une entit distante
DIAMETER. Ils ne sont changs qu entre entits adjacentes directement relies par
une connexion TCP ou SCTP.

Copyright EFORT 2014

Device-Watchdog-Request/Answer (DWR/DWA, command code 280). Ces commandes


ont t dfinis afin damliorer la dtection dun problme au niveau dun processus
DIAMETER indpendamment des problmes pouvant survenir au niveau de la connexion
de transport. Ds que le problme est dtect, une procdure de failover est active. La
commande Device-Watchdog(Request agit comme un ping mis sur la connexion de
transport afin de dterminer si lentit distante est toujours accessible au niveau
DIAMETER. Lorsquaucun trafic nest chang pendant un certain temps, les
commandes DWR/DWA sont utilises afin de superviser la relation DIAMETER et donc
ne peuvent pas tre routes par des agents DIAMETER.
Disconnect-Peer-Request/Answer (DPR/DPA, command code 282). Afin damliorer le
comportement des nuds DIAMETER, si lun des nuds doit terminer sa relation
DIAMETER avec son peer, il doit tout dabord mettre une commande DPR afin
dinformer la fin du dialogue DIAMETER. La commande DPR est acquitt par DPA. Ces
commandes sont changes entre deux entits paires DIAMETER adjacentes et ne
peuvent pas tre routes par un agent DIAMETER.
Abort-Session-Request/Answer (ASR/ASA, command code 274). Lz commande AbortSession-Request est utilise par un serveur DIAMETER afin de demander labandon
dune session DIAMETER avec un quipement daccs (NAS, Network Access Service).
Ce type daction peut tre ralis si lautorisation auparavant accorde nest plus valide.
A la rception de cette requte le NAS rpond avec Abort-Session-Answer, incluant le
statut de lopration demande dans lAVP Result-Code, indiquant le succs ou lchec
de laction. Le NAS doit ensuite mettre une commande Session-Termination- Request
au serveur DIAMETER qui peut tre suivie par une commande Accounting-Request
mise au serveur de taxation DIAMETER..
Session-Termination-Request/Answer (STR/STA, command code 275). La commande
Session-Termination-Request est utilis par un NAS afin de notifier le serveur
DIAMETER que la session indique nest plus active. Le serveur DIAMETER lacquitte
avec Session-Termination-Answer.
Re-Auth-Request/Answer (RAR/RAA, command code 258). La commande Re-AuthRequest est utilise par le Serveur DIAMETER au NAS lorsquil est ncessaire de
demander la re-authentification ou la re-autorisation.
Accounting-Request/Answer (ACR/ACA, command code 271). Les commandes
ACR/ACA ont la mme smantique que ceux de RADIUS. La commande AccountingRequest est utilise par un quipement daccs afin de rapporter des informations de
taxation au serveur DIAMETER, informations acquittes avec Accounting-Answer.
Credit-Control-Request/Answer (CCR/CCA, command code 272). La commande CCR
permet d obtenir une autorisation de crdit pour un service donn auprs d un serveur
de taxation online. Le crdit est retourn dans la rponse CCA..

5.1

Commandes du groupe Connection Management

La communication entre deux entits paires DIAMETER commence avec ltablissement


dune connexion de transport TCP ou SCTP (Figure 6).
Linitiateur de la communication envoie alors une commande DIAMETER capabilitiesExchange-Request (CER) lautre entit, qui rpond avec Capabilities-Exchange-Answer
(CEA).
Des exempes de capacits sont le numro de version de protocole DIAMETER, les
applications DIAMETER supportes, les mcanismes de scurit supports.
Si aucun message na t chang pendant un certain temps, nimporte laquelle des parties
peut mettre une commande Device-Watchdog-Request (DWR) qui doit tre acquitte par
lautre partie laide de Device-Watchdog-Answer.
Nimporte laquelle des entits peut terminer la relation DIAMETER par lenvoi de Disconnect-PeerRequest (DPR) qui est acquitt par Disconnect-Peer-Answer. Puis la connexion de transport est
libre

Copyright EFORT 2014

10

DIAMETER
Peer

DIAMETER
Peer

Application Id = 0

Etablissement de la connexion de transport


CER
CEA
Messages
DWR
CER : Capabilities-Exchange-Request
CEA : Capabilities-Exchange-Answer
DWR : Device-Watchdog-Request
DWA : Device-Watchdog-Answer
DPR : Disconnect-Peer-Request
DPA : Disconnect-Peer-Answer

DWA
DPR
DPA
Libration de Connexion de Transport

Figure 6 : Commandes du groupe Cennection Management

5.2

Commandes du groupe Session Operations

Lutilisateur souhaite accder au rseau (e.g., accs Internet) comme montr la figure 7:
Le NAS nayant pas les capacits dauthentifier le client, il collecte et transmet au serveur
d authentification DIAMETER les donnes quil a collect de l utilisateur (e.g., login et
password). La requte mise par le NAS est AA-Request (AAR). Les commandes
DIAMETER AAR et AAA ont t dfinies par l application NASREQ (Network Access
Server Requirements) et ne font pas partie du protocole de base DIAMETER.
Le serveur traite la requte AAR et retourne une rponse AA-Answer (AAA) qui inclut les
informations d autorisation.
On suppose le succs de l authentification. L usager accde donc au rseau. Une
commande Accounting-Request (ACR) peut tre envoy pour enregistrer le dbut de la
session.
Le NAS a obtenu du serveur une autorisation d accs au rseau pour une dure limite.
Avant la fin de la dure, le NAS doit re-authentififier l usager. Pour ce faire, il change de
nouveau les messages AAR/AAA avec le server. Il peut aussi arriver que le serveur
veuille re-authentifier l usager de manire non sollicite. Dans ce cas, il met une
requte Re-Authorization Request (RAR) au NAS qui doit re-authentifier l usager. Le
NAS acquitte le message RAR par Re-Authorization Answer (RAA), puis, afin de rauthentifier l usager, change de nouveau les commandes AAR/AAA avec le server.
Si l authentification ou la r-authentification choue, le serveur demande l abandon de
lasession via la commande Abort-Session-Request (ASR) qui est acquitte par AbortSession-Answer (ASA) par le client.
Lorsqu un usager indique au NAS qu il souhaite terminer sa session (session Internet
par exemple), le NAS gnre une requte Session-Termination-Request (STR) quil met
au serveur. Le serveur retourne une rponse Session-Termination-Answer (STA),
incluant un AVP Result-Code.

Copyright EFORT 2014

11

Application Id = 0
Client
Auth Request

Serveur
DIAMETER

Client DIAMETER
(NAS)

Auth Answer

AA-Request
AA-Answer
Re-Auth-Request

Re-Auth Request
Re-Auth Answer

Re-Auth-Answer
AA-Request
AA-Answer

Termination Indication

Session-Termination-Request
Session-Termination-Answer

Termination Indication

Abort-Session-Request
Abort-Session-Answer

Il ne sagit pas du
protocole DIAMETER
(e.g., PAP, CHAP)

Fin de
session

Abandon
de session

DIAMETER

Figure 7 : Commandes du groupe Session Operations

5.3

Commande du groupe Accounting (Offline)

Le protocole de base DIAMETER fournit des services de comptabilit aux applications


DIAMETER.
Lorsque une session est tablie pour l usager, les mesures peuvent alors commencer et une
commande Accounting Request (ACR) start est gnr contenant les informations
ncessaires la taxation (Figure 8). Priodiquement pendant la session, des
enregistrements intermdiaires peuvent tre envoys via la commande Accounting Request
(Interim). Lorsque le client DIAMETER (Access Device) reoit une demande de fin de
session de lutilisateur, une commande Accounting Request stop est transmise au serveur
AAA du fournisseur daccs et la session se termine implicitement.
Chaquecommande ACR est acquitte par une commande ACA (Accounting Answer).
Il est possible dchanger des commandes ACR (Event) et ACA (Event). Dans ce cas, il ny a
pas de dbut de session et de fin de session. Cest le cas lors de lenvoi de SMS. Il ny a
donc quune commande de comptabilit mise correspondant un vnement (one-time
event).
Les enregistrements de taxation sont corrls avec lAVP Session-Id, qui est un identificateur
globalement unique et prsent dans tous les commandes ACR/ACA. Par ailleurs si un
service consiste en diffrentes sessions, chacune avec son AVP Session-Id, alors un AVP
Accounting-Multi-Session-Id est utilis pour la corrlation des enregistrements de taxation.

Copyright EFORT 2014

12

Application Id = 3
Agent
DIAMETER

Access Device
(Client DIAMETER)

Accounting Server
(Serveur DIAMETER)

ACR (start)

ACR (start)

ACA (start)

ACA (start)

ACR (interim)

ACR (interim)

ACA (interim)

ACA (interim)

ACR (stop)

ACR (stop)

ACA (stop)

ACA (stop)

ACR (event)

ACR (event)
ACA (event)

ACA (event)

ACR : Accounting Request


ACA : Accounting Answer

Figure 8 : Commande du groupe Accounting (Offline)

5.4

Commande du groupe Accounting (Online)

1. Le NAS (Network Access Server) reoit une demande de session (e.g., tablissement de
default bearer ou contexte PDP primaire pour un APN donn si lon considre le cas de la
data mobile, le NAS tant reprsent par un PCEF).
2. Afin de raliser lopration de rservation dunit, Le NAS met une requte CreditControl-Request (CCR) lOCS avec lAVP CC-Request-Type positionn la valeur
INITIAL_REQUEST.
3. LOCS dtermine le prix du service dsir partir des informations spcifiques de service
reues dans la requte CCR et en soumettant une demande de valorisation auprs de la
fonction de valorisation. Si le solde du client est suffisamment crditeur, lOCS rserve le
montant correspondant du compte du client;
4. Une fois la rservation effectue, lOCS retourne au NAS une rponse Credit-ControlAnswer (CCA) avec lAVP CC-Request-Type positionn la valeur INITIAL_REQUEST afin
dautoriser lexcution du service demand (Granted-Service-Unit).
5. La livraison du service commence et les units rserves sont au fur et mesure
dcrmentes par le NAS.
6. Pendant la livraison du service, afin dexcuter une nouvelle opration de rservation
dunits, le NAS met une requte CCR avec lAVP CC-Request-Type positionn la valeur
UPDATE_REQUEST, afin de rapporter les units utilises et demander de nouvelles units.
La requte CCR avec lAVP positionn la valeur UPDATE_REQUEST doit tre mis par le
NAS LAVP Used-Service-Unit (USU) est prsent dans la requte CCR afin de dduire les
units consommes sur le compte de lusager et y rserver de nouvelles units.
7. LOCS dduit les units consommes sur le compte. Si le solde est suffisamment
crditeur, lOCS rserve le montant correspondant sur le compte du client.
8. LOCS retourne au NAS une rponse Credit-Control-Answer (CCA) avec lAVP CCRequest-Type positionn la valeur UPDATE_REQUEST afin dautoriser la continuation du
service (nouveau Granted-Service-Unit).
9. La livraison du service continue et les units nouvellement rserves sont au fur et
mesure dcrmentes par le NAS.

Copyright EFORT 2014

13

10. La session de service est termine au niveau du NAS (e.g., Libration du default bearer
ou du contexte PDP primaire dun APN)
11. Le NAS met une requte CCR avec lAVP CC-Request-Type positionn la valeur
TERMINATION_REQUEST afin de terminer la session de contrle de crdit et rapporter les
units utilises.
12. LOCS dduit le montant utilis sur le compte du client. Les units non utilises ne sont
pas prises en compte.
13. LOCS acquitte la rception de la requte CCR en retournant la rponse CCA avec lAVP
CC-Request-Type indiquant TERMINATION_REQUEST (Eventuellement les AVPs CostInformation indiquant le cot cumul du service et Remaining-Balance sont inclus dans la
rponse CCA). Toutes les commandes CCR/CCA INITIAL_REQUEST, UPDATE_REQUEST
et TERMINATE_REQUEST partagent le mme Session-Id.

Application Id = 4
NAS

OCS

1. Requte de session

Opration de rservation dunits


2. CCR (INITIAL_REQUEST, Requested Service Unit)

3. Ralise le contrle de la taxation


4. CCA (INITIAL_REQUEST, Granted Service Unit)
5. Livraison de session

Opration de rservation et de dbit dunits


6. CCR (UPDATE_REQUEST, Used Service Unit)

7. Ralise le contrle de la taxation


8. CCA (UPDATE-REQUEST, Granted Service Unit)
9. Livraison de session

Opration de dbit dunits


10. Fin de session

11. CCR (TERMINATE_REQUEST, Used Service Unit)

12. Ralise le contrle de la taxation


13. CCA (TERMINATE-REQUEST [Cost Information] )

Figure 9 : Commandes du groupe Accounting (Online)

6 AVP DIAMETER
AVP (Attribute Value Pair) est l'objet le plus important du protocole DIAMETER. Il correspond
llment dinformation dans le protocole ISUP ou au header dans le protocole SIP. Il est
utilis pour fournir toutes les donnes. Certains AVPs sont ncessaires DIAMETER luimme pour fonctionner, alors que d'autres fournissent des donnes lies aux applications
exploitant DIAMETER. Les AVPs contenant l'information spcifique une application
peuvent tre arbitrairement ajouts aux commandes DIAMETER, aussi longtemps que les
Copyright EFORT 2014

14

AVPs ncessaires sont prsents et que ceux qui doivent tre ajouts ne sont pas
explicitement interdits par les rgles du protocole.
Les AVPs transportent les informations d authentification, d autorisation, de scurit, de
comptabilit ainsi que des informations de configuration.
Le format de l AVP est donn la figure 10. Il contient les champs suivants :
AVP-Code (4 octets): identifie l AVP de manire unique. Les 256 premiers numros sont
rservs pour la compatibilit avec RADIUS. Les suivants sont utiliss par le protocole
de base et ses extensions via des applications (numros devant tre allous par l IANA).
Fanions (8 bits):
Bit V, connu comme Vendor-Specific bit, indique si le champ optionnel Vendor-ID est
prsent dans l en-tte de l AVP. Quand positionn, le code AVP appartient
l espace d adressage des codes de ce constructeur.
Bit M : Le bit M signifie Mandatory bit. Il indique si le support de cet AVP est
obligatoire. Si un AVP obligatoire est reu dans une commande par un destinataire et
que ce dernier ne comprend pas lAVP, il est oblig de rejeter la commande. Par
contre, si un AVP a un bit M est gal 0 (AVP optionnel), le destinataire peut se
contenter de lignorer sil ne le comprend pas sans compromettre le traitement de la
commande.
Bit P : Le bit P signifie Protected . Il indique la ncessit d un chiffrement pour
une scurit de bout en bout. Le protocole de base DIAMETER spcifie quels AVPs
doivent tre protgs.En pratique ce bit est positionn la valeur 0.
Les bits rrrrr sont rservs et doivent tre positionns la valeur 0.
Length : Il s(agt de la longueur totale de lAVP incluant len-tte et les donnes, mesure
en octets.
Vendor-ID (4 octets) identifie le constructeur l origine de cet AVP propritaire. Ce
champ est prsent si le bit V est positionn 1.
Data : Longueur variable.

0
1
2
3
01234567890123456789012345678901
AVP-Code (IANA)
VMPrrrrr

AVP length
Vendor-ID (if vendor-specific AVP)
Data (Variable length)

V=Vendor bit, M=Mandatory bit, P=Protected bit.


Figure 10 : Format dAVP
La figure 11 montre le formation de deux AVPs, lun dfini par le protocole de base
DIAMETER et lautre spcifique une application DIAMETER.
L AVP Destination-Realm est dfini par le protocole de base. Il ne contient pas de paramtre
Vendor-Id. Son en-tte mesure 8 octets (champs AVP Code, Flags et Length) suivi par les
donnes. La valeur a une longueur de 33 octets. La longueur totale de lAVP est 41 octets.
Toutefois la taille de lAVP son mission doit tre multiple de 4. LAVP est donc

Copyright EFORT 2014

15

complment par 3 octets de bourrage pour atteindre 44 octets avant son mission. A la
rception, le champs length indiquant 41 octets, le destinataire ignore les 3 derniers octets.
L AVP Visited-PLMN-Id est dfini par 3GPP. Il contient un paramtre Vendor-Id dont la
valeur est 10415 (C est le Vendor-Id pour 3GPP). Il sagit dun AVP dfini par 3GPP pour
ses applications DIAMETER. Son en-tte mesure 12 octets (Champs AVP Code, Flags,
Vendor Id et Length) et la valeur a une longueur de 7 octets. La taille de lAVP est donc 19
laquelle vient se rajouter un octet de bourrage.

AVP Code: 283 Destination-Realm


AVP Flags : 0x40
0 . = (V) Vendor-specific : Not Set
.1.. . = (M) Mandatory: Set
..0. . = (P) Protected: Not set
0 . = Reserved: Not set
. 0 = Reserved: Not set
. .0.. = Reserved: Not set
. ..0. = Reserved: Not set
. 0 = Reserved: Not set
AVP Length: 41 -- (44 padded bytes)
Value: epc.mnc001.mcc208.3gppnetwork.org

AVP Code: 1407 Visited-PLMN-Id


AVP Flags: 0xc0
1 . = (V) Vendor-specific : Set
.1.. . = (M) Mandatory: Set
..0. . = (P) Protected: Not set
0 . = Reserved: Not set
. 0 = Reserved: Not set
. .0.. = Reserved: Not set
. ..0. = Reserved: Not set
. 0 = Reserved: Not set
AVP Vendor Id: 3GPP (10415)
AVP Length: 19 -- (20 padded bytes)
Value: 208.001

Figure 11 : Exemple dAVPs DIAMETER

6.1

AVP Groupe

Un AVP Groupe a une valeur qui consiste en les AVPs dont il est constitu. Dans l exemple
la figure 12, l AVP Terminal-Information consiste en 2 AVPs : IMEI et Software-Version.
Cet AVP a un en-tte de 12 octets car il est spcifique un vendeur, ici, 3GPP. Par ailleurs
sa longueur est de 12+44 octets = 56 octets.
Ces 44 octets reprsentent la taille des 2 AVPs qui forment l AVP Terminal-Information,
savoir IMEI (Taille = 28 octets dont 1 octet de bourrage) et Software-Version (Taille = 16
octets dot 2 octets de bourrage).
Toute requte DIAMETER doit contenir les AVPs suivants pour son routage : Orange-Host,
Origin-Realm et Destination-Realm.
AVP Origin-Host: Cet AVP est ajout par le client lorigine de la commande
DIAMETER. Il indique son hostname.
Origin-Realm AVP: Cet AVP contient le Realm (Nom de domaine) de lmetteur de la
commande DIAMETER.
Destination-Realm AVP: Cet AVP contient le Realm auquel doit tre route la commande
DIAMETER.
L AVP Destination-Host est optionnel. Le client peut ne pas connatre le serveur contacter
mais doit au moins connatre son nom de domaine (realm) ainsi que l application utiliser.
Le client envoie alors la requte l agent relai, proxy, ou redirect. L agent rsout alors
l identit du serveur. Si aucun agent n est prsent, alors le client doit connatre le serveur
(Destination-Host) pour dlivrer directement la requte sur la connexion de transport quil
partage avec le serveur.
Une rponse DIAMETER ne contient que les AVPs Destination-Realm et Destination-Host.
Ainsi le client connatra prcisment le serveur en recevant la rponse. Par contre, la
rponse est route sur le mme chemin que la requte grce l entte de la rponse et
l information hop-by-hop-identifier.

Copyright EFORT 2014

16

28 octets dont
12 den-tte
56 octets dont
12 den-tte

16 octets dont
12 den-tte

Figure 12 : Exemple dAVP Groupe


Toute requte et tout rponse DIAMETER doivent contenir un AVP session-Id. LAVP
Session-Id (AVP Code 263) est utilis afin didentifier une session donne. Toutes les
commandes associes une session doivent inclure une mme valeur dAVP Session-Id,
e.g., ACR/ACA start, ACR/ACA interim et ACR/ACA stop.
Lorsquil est prsent, cet AVP doit apparatre immdiatement derrire le header DIAMETER.
Le Session-Id doit commencer avec lidentit de lmetteur (son hostname), suivi par deux
entiers sur 32 bits chacun, suivi ventuellement dun timestamp . Le session-Id est
ternellement unique globalement. Le Session-Id est gnr par le client DIAMETER qui
initie la session. Exemple : hss1.orange.fr;1144207323;156
La formation EFORT Le protocole de base DIAMETER et ses Applications fournit toutes
les cls de comprhension de lcosystme DIAMETER dfini par lIETF et 3GPP.
http://efort.com/index.php?PageID=21&l=fr&f_id=132&imageField.x=3&imageField.y=4

Copyright EFORT 2014

17

Anda mungkin juga menyukai