Diameter
Diameter
Diameter
Rôle
Le protocole de base Diameter fournit des services d'authentification, d'autorisation et
de comptabilité (AAA) sur les réseaux 3G, IMS(IP Multimedia Subsystem) et 4G
pour des applications telles que l'accès au réseau et la mobilité des données. Les
protocoles AAA constituent la base de l'administration des services dans le secteur
des télécommunications. Ils permettent notamment de déterminer les services
auxquels un utilisateur peut accéder, à quelle qualité de service (QoS) et à quel coût.
Fonctionnement
Le protocole Diameter assure l’échange de message. Diameter est conçu comme une
architecture peer-to-peer, et chaque hôte qui implémente le protocole Diameter peut
agir en tant que client ou serveur ou agent en fonction du déploiement du réseau. Le
nœud Diameter qui reçoit la demande de connexion de l'utilisateur agira en tant que
client Diameter. Dans la plupart des cas, un client Diameter sera un serveur d'accès au
réseau. Après avoir collecté les informations d'identification de l'utilisateur, telles que
le nom d'utilisateur et le mot de passe, il enverra un message Diameter (unité de base
utilisée pour envoyer des commandes ou envoyer des notifications à d'autres nœuds )
de demande d'accès à un nœud Diameter(serveur Diameter) servant la demande. Le
serveur Diameter authentifie l'utilisateur en fonction des informations fournies. Si le
processus d'authentification réussit, les privilèges d'accès de l'utilisateur sont inclus
dans le message de réponse et renvoyés au client Diameter correspondant. Sinon, un
message de rejet d'accès est envoyé. La découverte dynamique des voisins permet à
un client Diameter de découvrir le premier saut avec lequel communiquer et à un
agent de découvrir le prochain agent auquel transférer un message donné. Elle peut se
faire via les protocoles SERVLOC ou DNS.
Chaque noeud Diameter maintient deux tables : une table des peers et une table de
routage. La première contient l'ensemble des voisins et fournit diverses informations
sur ceux-ci. En particulier, le statut de la communication. En effet, Diameter offre la
possibilité d'établir des sessions entre deux nœuds. Dans ce cadre, la table des peers
indique l'état de la connexion avec les voisins.
Bien que l’architecture qui vient d’être décrite ressemble à une architecture client-
serveur traditionnelle, un nœud faisant office de serveur Diameter pour certaines
demandes peut en réalité jouer le rôle de client Diameter dans certaines situations
Messages Diameter
Un message Diameter est l'unité de base pour envoyer une commande ou envoyer
une notification aux autres nœuds Diameter. À des fins différentes, le protocole
Diameter a défini plusieurs types de messages Diameter, qui sont identifiés par leur
code de commande. Par exemple, un message Accounting-Request reconnaît que le
message contient des informations relatives à la comptabilité, tandis qu'un message
Capability-Exchange-Request reconnaît que le message contient des informations sur
les capacités du nœud Diameter qui envoie le message.
Le code de commande est utilisé pour identifier l'intention d'un message, mais les
données réelles sont acheminées par un ensemble de paires AVP (Attribute-Value-
Pairs). Le protocole Diameter a prédéfini un ensemble d'attributs communs et impose
à chaque attribut une sémantique correspondante. Ces AVP contiennent les
informations relatives à AAA ainsi que des informations de routage, de sécurité et de
capacité entre deux nœuds Diameter. De plus, chaque AVP est associé à un format de
données AVP, défini dans le protocole Diameter (OctetString, Integer32, par
exemple). Par conséquent, la valeur de chaque attribut doit suivre le format de
données suivant:
Format du paquet de diamètre
Legende
Length :
Contient la taille du message (entete + payload)
Flags :
Permet d’identifier le type de message
Command Code :
Code pour identifier chaque type de requête de manière unique. La réponse à la
requête possède le même code. Cependant, son bit 'R' permet de la différencer de la
requête.
Application-ID :
Chaque Application Diameter possède un identifiant unique. Ce champ permet donc
d'identifier l'application concernée par le message. S'il s'agit d'un message défini dans
Diameter Base alors cet ID est '0'.
Hop-by-Hop identifier :
Une architecture Diameter peut être composée d'un client, d'un serveur et de plusieurs
noeuds Diameter intermédiaires (cf. Diameter Agents). Chaque message possède
donc un identifiant de saut-par-saut, autrement dit, modifié par chaque noeud traversé
par le message.
End-to-End identifier :
Identifiant de bout en bout d'un message. La réponse à une requête possède le même
identifiant que cette requête. Ainsi, un client peut détecter la réponse à une requête
qu'il a émis.
Parmi les avantages du protocole Diameter par rapport à son prédécesseur RADIUS,
citons:
L'agent relais
Le rôle de cet agent est de router les messages vers la bonne destination en fonction
des informations contenues dans celui-ci telles que l'id de l'application ou l'AVP
"Destination-Realm". Typiquement, le Proxy est placé entre le client Diameter et
plusieurs serveurs de différentes applications. Ainsi, en fonction de l'application cible
d'une requête émise par le client, le proxy pourra transmettre celle-ci vers le bon
serveur. On évite ainsi de configurer le client pour qu'il prenne en compte chaque
serveur. De plus, le proxy peut modifier les messages en ajoutant des AVPs. Dans ce
cadre, il peut par exemple modifier le contrôle d'accès à certaines ressources pour un
domaine donné.
L'agent Proxy
Un agent proxy peut également être utilisé pour transférer des messages, mais
contrairement à un agent de relais, un agent proxy peut modifier le contenu du
message et, par conséquent, fournir des services à valeur ajoutée, appliquer des règles
sur différents messages ou effectuer des tâches administratives pour un domaine
spécifique,
L'agent de redirection
L'agent de redirection centralise les informations de routages. Il peut être interrogé
par n'importe quel noeud ne sachant pas où transmettre un message. L'agent de
redirection répond alors avec les informations de redirection. L'utilisation de cet
agent permet d'alléger les configurations locales aux noeuds qui n'ont plus besoin de
conserver les informations de routage localement.
L'agent de translation
L'agent de translation permet l'interopérabilité de Diameter avec d'autres protocoles
AAA. Prenons l'exemple de RADIUS. L'agent de translation change les messages
RADIUS en leur equivalent Diameter (s'il existe). L'intérêt peut être d'assurer une
migration en douceur vers Diameter, en conservant des clients et serveurs RADIUS
pendant la phase de transition.
H248
Presentaion de H,248
Le protocole H.248 spécifié par l’IETF (Internet Engineering Task Force) dans le
RFC 3525 présente de nombreuses similarités avec son prédécesseur, le protocole
MGCP (Media Gateway Control Protocol) aussi défini par l'IETF dans le RFC 2705.
Il s’agit d’un protocole de contrôle entre les entités MGC (Media Gateway
Controller) et MGW (Media Gateway) de l'architecture NGN (Next Generation
Network). Le MGC contrôle les activités des MGWs. Le MGC prend en charge le
contrôle et la signalisation de l’appel alors que les MGWs reçoivent des instructions
des MGCs leur indiquant les actions qu’ils doivent entreprendre. Également appelé
MEGACO (Media Gateway Control Protocol) ,le protocole H.248 permet d’établir,
de maintenir et de terminer les appels entre plusieurs points d’extrémité.En d’autres
termes, c’est un standard permettant la communication entre les Media Gateway
Controller (MGC) et les Media Gateway (MG).Il permet en outre :
• Support de services multimédia et de vidéoconférence
• Possibilité d’utiliser UDP ou TCP
• Utilise le codage en mode texte ou binaire
Composition de MEGACO
Le modèle de connexion du protocole MEGACO est un modèle orienté objet. Il
décrit lesentités logiques ou objets au sein du MGW qui peuvent être contrôlés par le
MGC. Les principales abstractions utilisées dans ce modèle de connexion sont les
terminaisons et les contextes.
• Les terminaisons représentent des flux entrant ou sortant de la MG (par
exemple, des lignes téléphoniques analogiques, des flux RTP ou des flux MP3).
Les terminaisons ont des propriétés, telles que la taille maximale d'un tampon
de gigue pouvant être inspecté et modifié par le contrôleur MGC.Les
terminaisons peuvent être placées dans des contextes définis comme se
produisant lorsque deux ou plusieurs flux de terminaison sont mélangés et
connectés ensemble.
• Les contextes sont créés et libérés par la MG sous commandement du MGC.
Un contexte est créé en ajoutant la première terminaison, et est libéré en
supprimant (soustrayant) la dernière terminaison. Une terminaison peut avoir
plusieurs flux et un contexte peut donc être un contexte multi-flux.
Fonctionnement du protocole
Le protocole H,248 contient un ensemble de commandes permettant de manipuler les
entités logiques décrites dans le modèle de connexion (à savoir les terminaisons et les
contextes). Plus précisément, les commandes proposées par MEGACO sont les
suivantes:
Add - ajoute une terminaison à un contexte. Il est également utilisé pour créer
implicitement un contexte (un contexte est créé dès que la première terminaison y est
ajoutée).
Modify - modifie les propriétés d'état d'une terminaison et les propriétés spécifiques
aux flux de média.
Subtract - supprime une terminaison d'un contexte. Il est également utilisé pour
supprimer implicitement un contexte. Semblable à la création d'un, soustraire la
dernière terminaison d'un contexte supprime le contexte.
AuditValue - renvoie les propriétés de terminaison en cours ainsi que les événements,
signaux et statistiques d'une cessation d' emploi.
Transactions MEGACO
Le protocole MEGACO permet à ces deux entités MGC et MGW de s’échanger des
transactions. Chaque transaction s’exprime par l’envoi d’une transactionRequest par
l’une des entités et l’envoi d’une transactionReply par l’autre entité. Une transaction
consiste en une ou plusieurs actions. Une action est un ensemble de commandes
s’appliquant à un contexte donné. Chaque action spécifie donc un identificateur de
contexte (contextID) et des commandes à appliquer au contexte. Il existe des cas où
un contextID n’est pas spécifié.Par exemple, lorsque le MGC demande au MGW de
créer un contexte. C’est le MGW qui affectera alors un identificateur au contexte.
Une transaction est émise sous la forme d’une transactionRequest. La réponse est
encapsulée dans une transactionReply. Cette dernière peut être précédée par une ou
plusieurs transactionPending. Le récepteur indique à travers une transactionPending
que la transaction est en cours de traitement mais non complètement exécutée ; une
transactionReply suivra. Cela permet à l’émetteur de ne pas considérer que la
transactionRequest a été perdue.
Une transactionRequest consiste en une suite de commandes alors qu’une
transactionReply contient une suite de réponses correspondantes tandis qu’une
TransactionPending est une réponse intermédiaire permettant d’indiquer à l’émetteur
que sa transactionRequest a bien été reçue et qu’elle est en cours de traitement.
Role H,248
La signalisation H.248 entre les softswitches et les passerelles de média (SG, TG,
MG) a plusieurs fonctions :
• Monter et démonter des connexions de transport.
• Notifier des événements analogiques (décrocher le combiné, ...).
• Notifier des signaux Inband (Tonalités DTMF).
• Appliquer les signaux Inband (tonalités, annonces, ajouter, supprimer.)
Objectifs de SIGTRAN
Les couches d’adaptation définies par SIGTRAN ont toutes des objectifs communs :
- Le transport des protocoles de signalisation des couches supérieures, basé sur un
transport IP fiable.
- La garantie d’une offre de services équivalente à celle proposée par les interfaces
des réseaux RTC.
- La transparence du transport de la signalisation sur un réseau IP : l’utilisateur final
ne se rend pas compte de la nature du réseau de transport.
Architecture SIGTRAN
L’architecture de SIGTRAN se présente comme suit:
IUA
L'architecture définie pour le transport de signalisation SCN sur IP utilise plusieurs
composants, notamment un protocole de transport IP, un protocole de transport
commun de signalisation et un module d'adaptation permettant de prendre en charge
les services attendus par un protocole de signalisation SCN donné de la couche de
protocole sous-jacente. IUA définit un module d'adaptation adapté au transport des
messages RNIS Q.921-User Adaptation Layer (par exemple, Q.931).
La couche IUA implémente les fonctions suivantes
Mappage
La couche IUA maintient un mappage de l'identificateur d'interface sur une interface
physique de la passerelle de signalisation. Une interface physique peut être une ligne
T1, une ligne E1, etc., et peut inclure une plage de temps TDM. De plus, pour une
interface donnée, le SG est en mesure d'identifier le canal de signalisation associé.
Les couches IUA du SG et du MGC conservent le statut des TEI et des SAPI.
Gestion de flux
SCTP SCTP permet à un nombre de flux spécifié par l'utilisateur d'être ouvert lors de
l'initialisation. La couche IUA est responsable de la bonne gestion de ces flux. En
raison de la nature unidirectionnelle des flux, une couche IUA n'a pas connaissance
du numéro de flux mappé à l'identificateur d'interface de sa couche IUA homologue.
Au lieu de cela, l'identificateur d'interface se trouve dans l'en-tête du message IUA.
Le mécanisme de livraison décrit ici permet une gestion complète des messages
MTP3 et des capacités de gestion de réseau entre deux nœuds SS7 quelconques,
communiquant sur un réseau IP. Un nœud SS7 équipé d’une connexion réseau IP est
appelé point de signalisation IP (IPSP). Les IPSP fonctionnent comme des noeuds
SS7 traditionnels utilisant le réseau IP au lieu de liens SS7.
M2UA
M3UA
M3UA prend en charge le transport de toute signalisation utilisateur SS7 MTP3 (telle
que les messages ISUP et SCCP) sur IP, à l'aide des services du Protocole de
transmission de contrôle de flux (SCTP). Le protocole est utilisé pour la
communication entre une passerelle de signalisation (SG) et un contrôleur MGC
(Media Gateway Controller) ou une base de données résidente IP. Il est supposé que
le SG reçoit la signalisation SS7 sur une interface SS7 standard en utilisant le sous-
système de transfert de message (MTP) SS7 pour assurer le transport.
Le protocole consiste en un en-tête de message commun suivi de paramètres définis
par le type de message.
SCTP