Aller au contenu principal

6.1.8. Redirection des requêtes (Redirecting Requests)

6.1.8. Redirection des requêtes (Redirecting Requests)

Lorsqu'un agent de redirection reçoit une requête dont l'entrée de routage est REDIRECT, il DOIT répondre par un message de réponse avec le bit 'E' positionné, tout en conservant le Hop-by-Hop Identifier dans l'en-tête, et inclure l'AVP Result-Code à DIAMETER_REDIRECT_INDICATION. Chacun des serveurs associés à l'entrée de routage est ajouté dans un AVP Redirect-Host distinct.

+------------------+
| Diameter |
| Redirect Agent |
+------------------+
^ | 2. command + 'E' bit
1. Request | | Result-Code =
[email protected] | | DIAMETER_REDIRECT_INDICATION +
| | Redirect-Host AVP(s)
| v
+-------------+ 3. Request +-------------+
| example.com |------------->| example.net |
| Relay | | Diameter |
| Agent |<-------------| Server |
+-------------+ 4. Answer +-------------+

Figure 5 : Agent de redirection Diameter (Diameter Redirect Agent)

Le récepteur d'un message de réponse avec le bit 'E' positionné et l'AVP Result-Code à DIAMETER_REDIRECT_INDICATION utilise le Hop-by-Hop Identifier dans l'en-tête Diameter pour identifier la requête dans la file d'attente des messages en attente (voir la Section 5.5.4) qui doit être redirigée. S'il n'existe pas de connexion de transport avec le nouveau pair, une est créée et la requête lui est envoyée directement.

Plusieurs AVP Redirect-Host sont autorisés. Le récepteur du message de réponse avec le bit 'E' positionné en sélectionne exactement un comme destination du message redirigé.

Lorsque l'AVP Redirect-Host-Usage inclus dans le message de réponse a une valeur non nulle, le récepteur crée et met en cache une entrée de route pour les indications de redirection. L'usage de redirection pour cette entrée est défini par la valeur de Redirect-Host-Usage et la durée de vie de l'entrée mise en cache par la valeur de Redirect-Max-Cache-Time.

Plusieurs indications de redirection peuvent créer plusieurs entrées de route en cache ne différant que par leur usage de redirection et le pair vers lequel transférer les messages. Par exemple, deux entrées créées par deux indications de redirection donnent deux routes en cache pour le même realm et Application Id ; l'une avec un usage ALL_SESSION, l'autre ALL_REALM. Une requête entrante correspondant aux deux exige une résolution supplémentaire. Dans ce cas, une règle de précédence de routage DOIT être appliquée sur la valeur d'usage de redirection ; voir la Section 6.13.