6.1.8. リクエストのリダイレクト (Redirecting Requests)
6.1.8. リクエストのリダイレクト (Redirecting Requests)
リダイレクトエージェントがルーティングエントリが REDIRECT のリクエストを受け取ったとき, ヘッダの Hop-by-Hop Identifier を維持したまま 'E' ビットをセットしたアンサーを返さなければならず (MUST), Result-Code AVP は DIAMETER_REDIRECT_INDICATION とする. ルーティングエントリに関連付けられた各サーバを別々の Redirect-Host AVP に追加する.
+------------------+
| 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 +-------------+
図 5: Diameter リダイレクトエージェント (Diameter Redirect Agent)
'E' ビットがセットされ Result-Code AVP が DIAMETER_REDIRECT_INDICATION のアンサーを受け取った側は, Diameter ヘッダの Hop-by-Hop Identifier で保留メッセージキュー (第 5.5.4 節) 内のリダイレクト対象リクエストを特定する. 新ピアとのトランスポート接続がなければ確立し, リクエストを直接送る.
複数の Redirect-Host AVP が許される. 受信側は 'E' セットのアンサーについて, これらのホストのちょうど 1 つをリダイレクト先として選ぶ.
アンサーに含まれる Redirect-Host-Usage AVP が非ゼロのとき, 受信側はリダイレクト指示用のルートエントリを作成してキャッシュする. 用途は Redirect-Host-Usage AVP の値, 生存期は Redirect-Max-Cache-Time AVP で設定する.
複数のリダイレクト指示が, 用途と転送先ピアのみ異なる複数のキャッシュルートを作りうる. 例として 2 つのルートエントリはいずれも同じ realm と Application Id だが, 一方は ALL_SESSION で一致リクエストをあるピアへ, 他方は ALL_REALM で別ピアへ送る. 両方に realm と Application Id が一致する着信リクエストは追加の解決が必要となり, この場合は Redirect-Host-Usage の値に対するルーティング優先規則を適用しなければならない (MUST). 優先規則は第 6.13 節を参照.