直径(プロトコル)

Diameterは、コンピュータネットワーク向けの認証、認可、アカウンティング(AAA)プロトコルです。以前のRADIUSプロトコルから進化したものであり、インターネットプロトコルスイートのアプリケーション層プロトコルに属します

Diameter アプリケーションは、拡張認証プロトコル(EAP)で使用するためのコマンドや属性など、新しいコマンドや属性を追加することで基本プロトコルを拡張します。

RADIUSとの比較

Diameterという名称は、前身であるRADIUSプロトコルに由来する言葉遊びです(直径は半径の2倍です)。DiameterはRADIUSと直接的な下位互換性はありませんが、RADIUSへのアップグレードパスを提供します。DiameterにはあるがRADIUSにはない主な機能は以下のとおりです。

また、RADIUSと同様に、ローカルAAAとローミングAAAの両方で動作するように設計されています。RADIUSがUDPを使用するのとは異なり、DiameterはTCPまたはSCTPを使用します。RADIUSとは異なり、暗号化は含まれませんが、トランスポートレベルのセキュリティ(IPSECまたはTLS)によって保護できます。AV識別子の基本サイズは32ビットであるのに対し、RADIUSは8ビットを基本AV識別子のサイズとして使用します。RADIUSと同様に、ステートレスモードとステートフルモードの両方をサポートします。RADIUSと同様に、アプリケーション層確認応答をサポートし、フェイルオーバーを定義します。Diameterは、3GPP標準で定義されている多くの異なるインターフェースで使用され、各インターフェースでは通常、新しいコマンドと属性が定義されます。

アプリケーション

Diameterアプリケーションはソフトウェアアプリケーションではなく、 RFC 6733(RFC 3588は廃止)およびRFC 7075で定義されているDiameterベースプロトコルに基づくプロトコルです。各アプリケーションはアプリケーション識別子によって定義され、新しいコマンドコードや新しい必須AVP(属性値ペア)を追加できます。新しいオプションAVPを追加するために、新しいアプリケーションは必要ありません。

Diameter アプリケーションの例:

  • Diameter モバイル IPv4 アプリケーション (MobileIP、RFC 4004)
  • Diameter ネットワーク アクセス サーバ アプリケーション (NASREQ、RFC 7155)(廃止: RFC 4005)
  • Diameter 拡張認証プロトコル アプリケーション (RFC 4072)
  • Diameter クレジット管理アプリケーション (DCCA、RFC 8506])(廃止: RFC 4006)
  • Diameterセッション開始プロトコルアプリケーション(RFC 4740)
  • 3GPP IPマルチメディアサブシステムのさまざまなアプリケーション
HSSSLF はどちらもDiameter プロトコルを使用して通信します。

(汎用ブートストラップアーキテクチャ):ブートストラップサーバ機能

歴史

Diameterプロトコルは、1998年にPat R. Calhoun、Glen Zorn、Ping Panによって開発され、RADIUSの限界を克服する認証、認可、アカウンティング(AAA)のフレームワークを提供することを目指していました。Diameterが設計された当時、RADIUSは信頼性、拡張性、セキュリティ、柔軟性に問題があると考えられていました。また、RADIUSは電話アプリケーションに必要な大規模なポリシーをサポートしていませんでした。Diameterプロトコルは、クライアントがポリシー、AAA、およびリソース制御を実行するために使用するポリシープロトコルを定義します。これにより、単一のサーバーで複数のサービスのポリシーを処理できるようになります。[1]

RADIUSと同様に、DiameterはAAA機能を提供しますが、UDPではなくTCPSCTPを使用するため、通信問題の検出と処理はこれらのプロトコルに委任されます。Diameterプロトコルは、3rd Generation Partnership Project(3GPP) IPマルチメディアサブシステム(IMS)の開発によってさらに強化されています。S6a、S6b、Gx、Gy、Sy、Rx、Cx、Dh、Dx、Rf、Ro、Sh、Zhインターフェースは、Diameterアプリケーションでサポートされています。[2] 拡張機能の使用により、このプロトコルはプロキシ、ブローカー、強力なセキュリティ、モバイルIP、ネットワークアクセスサーバー(NASREQ)、アカウンティング、リソース管理をサポートできるように拡張可能になるように設計されています。

プロトコルの説明

Diameter基本プロトコルはRFC 6733(廃止:RFC 3588およびRFC 5719)で定義されており、AAAプロトコルの最小要件を定義しています。Diameterアプリケーションは、新しいコマンド、属性、またはその両方を追加することで、基本プロトコルを拡張できます。DiameterのセキュリティはIPsecまたはTLSによって提供されます。RFC 6733のセクション11.4に記載されているように、IANAはDiameterにTCPおよびSCTPポート番号3868を割り当てています。

パケットフォーマット

パケットは、Diameter ヘッダーと、Diameter メッセージに関連する情報をカプセル化するための可変数の属性値ペア (AVP) で構成されます。

直径ヘッダー
ビットオフセット 0 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031
0バージョンメッセージの長さ
32RPET    コマンドコード
64アプリケーションID
96ホップバイホップID
128エンドツーエンドID
160
...
AVP
...

バージョン

このフィールドはDiameterベースプロトコルのバージョンを示します。2014年現在、サポートされている値は1のみです。[3]

メッセージの長さ

メッセージ長フィールドは、ヘッダー フィールドとパディングされた AVP を含む Diameter メッセージの長さをバイト単位で示します。

コマンドフラグ

R」(リクエスト)ビット – セットされている場合、メッセージはリクエストです。クリアされている場合、メッセージはアンサーです。

P」(プロキシ可能)ビット – 設定されている場合、メッセージはプロキシ、リレー、またはリダイレクトされる可能性があります。クリアされている場合、メッセージはローカルで処理されなければなりません。

E」(エラー)ビット – このビットが設定されている場合、メッセージにはプロトコルエラーが含まれており、このコマンドで規定されているCCFに準拠しません。「E」ビットが設定されたメッセージは、一般的にエラーメッセージと呼ばれます。このビットは、リクエストメッセージでは設定しないでください。

T」(再送メッセージの可能性)ビット – このフラグは、リンクフェイルオーバー手順の後にセットされ、重複したリクエストの削除に役立ちます。このフラグは、リンク障害による重複の可能性を示すため、まだ確認応答されていないリクエストを再送信する際にセットされます。

コマンド

各コマンドのリクエスト/アンサーペアにはコマンドコードが割り当てられます。リクエストかアンサーかは、ヘッダーのコマンドフラグフィールドの「R」ビットによって識別されます。

0~255の値はRADIUSの下位互換性のために予約されています。256~16777213の値はIANAによって割り当てられた永続的な標準コマンド用です。16777214と16777215(16進数で0xFFFFFEと0xFFFFFF)の値は実験およびテスト目的で予約されています。

コマンドコードは、特定のメッセージに対して実行するアクションを決定するために使用されます。プロトコル(ベースおよびアプリケーション)で定義されている一般的なDiameterコマンドには、次のようなものがあります。

コマンド名略語コード応用
AAリクエストAAR265Diameter NAS アプリケーション - RFC 7155
AA-回答AAA265Diameter NAS アプリケーション - RFC 7155
直径EAPリクエストDER268Diameter EAP アプリケーション - RFC 4072
Diameter-EAP-回答DEA268Diameter EAP アプリケーション - RFC 4072
セッション中止要求自動応答274直径ベース
セッションの中止と応答ASA274直径ベース
会計リクエストACR271直径ベース
会計-回答ACA271直径ベース
クレジット管理リクエストCCR272Diameter クレジット制御アプリケーション - RFC 8506 (RFC 4006 は廃止)
クレジット管理回答CCA272Diameter クレジット制御アプリケーション - RFC 8506 (RFC 4006 は廃止)
機能交換リクエストセル257直径ベース
能力交換回答CEA257直径ベース
デバイスウォッチドッグリクエストDWR280直径ベース
デバイスウォッチドッグの回答DWA280直径ベース
ピア切断要求北朝鮮282直径ベース
切断-ピア-応答DPA282直径ベース
再認証リクエストrar258直径ベース
再認証応答RAA258直径ベース
セッション終了要求STR275直径ベース
セッション終了応答STA275直径ベース
ユーザー認証リクエストウアル283Diameter SIP アプリケーション - RFC 4740
ユーザー認証回答UAA283Diameter SIP アプリケーション - RFC 4740
サーバー割り当て要求サー284Diameter SIP アプリケーション - RFC 4740
サーバー割り当て回答SAA284Diameter SIP アプリケーション - RFC 4740
位置情報リクエストLIR285Diameter SIP アプリケーション - RFC 4740
位置情報回答LIA285Diameter SIP アプリケーション - RFC 4740
マルチメディア認証リクエスト3月286Diameter SIP アプリケーション - RFC 4740
マルチメディア認証回答マー286Diameter SIP アプリケーション - RFC 4740
登録解除リクエストRTR287Diameter SIP アプリケーション - RFC 4740
登録・終了・回答RTA287Diameter SIP アプリケーション - RFC 4740
プッシュプロフィールリクエストPPR288Diameter SIP アプリケーション - RFC 4740
プロフィール回答をプッシュPPA288Diameter SIP アプリケーション - RFC 4740
ユーザー認証リクエストウアル300直径ベース(3GPP)RFC 3589
ユーザー認証回答UAA300直径ベース(3GPP)RFC 3589
サーバー割り当て要求サー301直径ベース(3GPP)RFC 3589
サーバー割り当て回答SAA301直径ベース(3GPP)RFC 3589
位置情報リクエストLIR302直径ベース(3GPP)RFC 3589
位置情報回答LIA302直径ベース(3GPP)RFC 3589
マルチメディア認証リクエスト3月303直径ベース(3GPP)RFC 3589
マルチメディア認証回答マー303直径ベース(3GPP)RFC 3589
登録解除リクエストRTR304直径ベース(3GPP)RFC 3589
登録・終了・回答RTA304直径ベース(3GPP)RFC 3589
プッシュプロフィールリクエストPPR305直径ベース(3GPP)RFC 3589
プロフィール回答をプッシュPPA305直径ベース(3GPP)RFC 3589
ユーザーデータ要求UDR306直径ベース(3GPP)RFC 3589
ユーザーデータ回答UDA306直径ベース(3GPP)RFC 3589
プロフィール更新リクエストピュア307直径ベース(3GPP)RFC 3589
プロフィール更新回答PUA307直径ベース(3GPP)RFC 3589
購読通知リクエストSN比308直径ベース(3GPP)RFC 3589
購読-通知-回答SNA308直径ベース(3GPP)RFC 3589
プッシュ通知リクエストPNR309直径ベース(3GPP)RFC 3589
プッシュ通知の回答PNA309直径ベース(3GPP)RFC 3589
ブートストラップ情報リクエストBIR310直径ベース(3GPP)RFC 3589
ブートストラップ情報回答BIA310直径ベース(3GPP)RFC 3589
メッセージ処理要求MPR311直径ベース(3GPP)RFC 3589
メッセージ-プロセス-回答MPA311直径ベース(3GPP)RFC 3589
位置情報更新要求ULR3163GPP TS 29.272 [RFC 5516]
更新-場所-回答ULA3163GPP TS 29.272 [RFC 5516]
位置情報リクエストのキャンセルCLRR3173GPP TS 29.272 [RFC 5516]
キャンセル-位置情報-回答CLA3173GPP TS 29.272 [RFC 5516]
認証情報要求空気3183GPP TS 29.272 [RFC 5516]
認証情報回答AIA3183GPP TS 29.272 [RFC 5516]
加入者データ挿入要求IDR3193GPP TS 29.272 [RFC 5516]
加入者データ回答の挿入IDA3193GPP TS 29.272 [RFC 5516]
加入者データ削除要求DSR3203GPP TS 29.272 [RFC 5516]
加入者データ削除回答DSA3203GPP TS 29.272 [RFC 5516]
パージUEリクエストあたり3213GPP TS 29.272 [RFC 5516]
パージ-UE-回答エンドウ3213GPP TS 29.272 [RFC 5516]
通知要求NR3233GPP TS 29.272 [RFC 5516]
通知応答該当なし3233GPP TS 29.272 [RFC 5516]
位置情報リクエストの提供PLR83886203GPP-LCS-SLg(アプリケーションID 16777255)
場所と回答の提供人民解放軍83886203GPP-LCS-SLg(アプリケーションID 16777255)
ルーティング情報要求RIR83886223GPP-LCS-SLh(アプリケーションID 16777291)
ルーティング情報回答RIA83886223GPP-LCS-SLh(アプリケーションID 16777291)
AA-モバイルノード要求AMR260ダイアメーターモバイルIPv4 - RFC 4004
AA-モバイルノード応答何でも聞いて260ダイアメーターモバイルIPv4 - RFC 4004
ホームエージェントMIP要求ハー262ダイアメーターモバイルIPv4 - RFC 4004
ホームエージェントMIP応答ハア262ダイアメーターモバイルIPv4 - RFC 4004
構成情報要求CIR83887183GPP TS 29.336 準拠の S6t
構成情報回答CIA83887183GPP TS 29.336 準拠の S6t
報告情報要求RIR83887193GPP TS 29.336 準拠の S6t
報告情報回答RIA83887193GPP TS 29.336 準拠の S6t
NIDD情報要求近赤外線83887263GPP TS 29.336 準拠の S6t
NIDD情報回答ニア83887263GPP TS 29.336 準拠の S6t

アプリケーションID

アプリケーションIDは、メッセージがどのDiameterアプリケーションに適用可能であるかを識別するために使用されます。アプリケーションは、認証アプリケーション、アカウンティングアプリケーション、またはベンダー固有のアプリケーションのいずれかです。

特定の Diameter 拡張に準拠する Diameter エージェントは、Capabilities-Exchange-Request (CER) コマンドと Capabilities-Exchange-Answer (CEA) コマンドの Auth-Application-ID 属性に特定の値を含めることで、そのサポートを公表します。

ヘッダー内のApplication-IDフィールドの値は、メッセージに含まれる関連するApplication-ID AVPの値と同じです。例えば、Diameter Credit-Control ApplicationのCredit-Control-Request (CCR)コマンドとCredit-Control-Answer (CCA)コマンドのApplication-IDとAuth-Application-ID属性の値は4です。[4]

アプリケーションID略語フルネーム使用法
0ベースDiameterの共通メッセージDiameterプロトコルアソシエーションの確立/解除/メンテナンス
16777216診断/治療3GPP Cx/DxIMS I/S-CSCFからHSSへのインターフェース
16777217シュ3GPP ShVoIP/IMS SIP アプリケーション サーバーから HSS インターフェース
16777236処方箋3GPP 受信ポリシーと課金制御
16777238Gx3GPP Gxポリシーと課金制御
16777251S6a/S6d3GPP S6a/S6dLTEローミングシグナリング
16777252S133GPP 13EIRとMME間のインターフェース
16777255SLg3GPP LCS SLg位置情報サービス
16777345S6t3GPP S6tSCEFとHSS間のインターフェース

ホップバイホップ識別子

ホップバイホップ識別子は、要求と同じ値が応答で使用されるため、要求と応答を一致させるために使用される符号なし 32 ビット整数フィールド (ネットワーク バイト順) です。

Diameterプロトコルでは、リレーエージェントとプロキシエージェントがトランザクション状態を維持することが求められます。この状態はフェイルオーバーに使用されます。トランザクション状態とは、リクエストを転送する際にホップバイホップ識別子が保存されることを意味します。このフィールドはローカルで一意の識別子に置き換えられ、対応する応答を受信すると元の値に復元されます。リクエストの状態は、応答を受信すると解放されます。受信した応答が既知のホップバイホップ識別子と一致しない場合、Diameterエージェントは無視します。

エージェントをリダイレクトする場合、Diameter エージェントが応答メッセージで応答すると、ホップバイホップ識別子がヘッダーに保持されます。

エンドツーエンド識別子

エンドツーエンド識別子は、オリジンホスト AVP の組み合わせとともに重複メッセージを検出するために使用される、符号なし 32 ビット整数フィールド (ネットワーク バイト順) です。

リクエストを作成する際、エンドツーエンド識別子はローカルで一意の値に設定されます。エンドツーエンド識別子はいかなる種類のDiameterエージェントによっても変更されず、対応するリクエストと同じ値が応答にも使用されます。

属性値ペア(AVP)

AVPヘッダー
ビットオフセット 0 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031
0AVPコード
32VMP     AVPの長さ
64ベンダーID(オプション)
96
...
データ
...

簡単に言うと、AVP フラグの「V」ビットはベンダー固有、「M」ビットは必須、「P」ビットは保護を意味します。

ベンダー固有ビットとして知られるV 」ビットは、AVPヘッダーにオプションのベンダーIDフィールドが存在するかどうかを示します。このビットが設定されている場合、AVPコードは特定のベンダーコードアドレス空間に属します。

M」ビット(必須ビットとも呼ばれる)は、AVPのサポートが必須かどうかを示します。「M」ビットが設定されたAVPがDiameterクライアント、サーバー、プロキシ、または変換エージェントによって受信され、AVPまたはその値が認識されない場合、メッセージは拒否されなければなりません。Diameterリレーエージェントおよびリダイレクトエージェントは、認識されないAVPを含むメッセージを拒否してはなりません。

P」ビットは、エンドツーエンドのセキュリティのために暗号化が必要であることを示します。

属性名コードデータ型
会計中間間隔85符号なし32
会計-リアルタイム-必須483列挙された
アカウントマルチセッションID50UTF8文字列
会計記録番号485符号なし32
会計記録タイプ480列挙された
アカウンティングセッションID44オクテット文字列
会計サブセッションID287符号なし64
アカウントアプリケーションID259符号なし32
認証アプリケーションID258符号なし32
認証リクエストタイプ274列挙された
承認の有効期間291符号なし32
認証猶予期間276符号なし32
認証セッション状態277列挙された
再認証リクエストタイプ285列挙された
クラス25オクテット文字列
宛先ホスト293ディアムアイデント
宛先レルム283ディアムアイデント
切断原因273列挙された
E2Eシーケンス300グループ化
エラーメッセージ281UTF8文字列
エラー報告ホスト294ディアムアイデント
イベントタイムスタンプ55時間
実験結果297グループ化
実験結果コード298符号なし32
失敗したAVP279グループ化
ファームウェアリビジョン267符号なし32
ホストIPアドレス257住所
インバンドセキュリティID299符号なし32
マルチラウンドタイムアウト272符号なし32
オリジンホスト264ディアムアイデント
起源領域296ディアムアイデント
原産国州ID278符号なし32
製品名269UTF8文字列
プロキシホスト280ディアムアイデント
プロキシ情報284グループ化
プロキシ状態33オクテット文字列
リダイレクトホスト292ディアムリ
リダイレクトホストの使用261列挙された
リダイレクト最大キャッシュ時間262符号なし32
結果コード268符号なし32
ルート記録282ディアムアイデント
セッションID263UTF8文字列
セッションタイムアウト27符号なし32
セッションバインディング270符号なし32
セッションサーバーフェイルオーバー271列挙された
サポートされているベンダーID265符号なし32
解雇理由295列挙された
ユーザー名1UTF8文字列
ベンダーID266符号なし32
ベンダー固有のアプリケーションID260グループ化

ステートマシン

RFC 3588は、ピア間の接続を維持し、メッセージを処理するためのコアステートマシンを定義しています。これは基本的なプロトコル機能の一部であり、すべてのスタックがこれをサポートし、接続関連の操作を抽象化する必要があります。

さらに、アプリケーション固有のステートマシンは、後から、あるいはより高次の抽象化レイヤーで導入できます。RFC 3588では、認可ステートマシンとアカウンティングステートマシンが定義されています。

メッセージフロー

2つのDiameterピア間の通信は、トランスポート接続( TCPまたはSCTP )の確立から始まります。イニシエータは、相手側ピアにCapabilities-Exchange-Request(CER)を送信し、相手側ピアはCap​​abilities-Exchange-Answer(CEA)で応答します。RFC3588準拠のピアでは、オプションでTLS(トランスポート層セキュリティ)のネゴシエーションが行われる場合があります。RFC6733準拠のピアでは、オプションでTLSネゴシエーションがCER/CEAの前に行われる場合があります。

これで、接続はアプリケーション メッセージの交換の準備が整います。

しばらくメッセージが交換されていない場合、どちらかの側が Device-Watchdog-Request (DWR) を送信し、もう一方のピアは Device-Watchdog-Answer で応答する必要があります。

どちらの側もDisconnect-Peer-Request(DPR)を送信することで通信を終了できます。相手側はDisconnect-Peer-Answerで応答しなければなりません。その後、トランスポート接続を切断できます。

RFC

Diameter プロトコルは現在、次のIETF RFC で定義されています。廃止された RFC は取り消し線で示されます

#タイトル公開日廃止された
RFC 3588Diameter ベース プロトコル。2003年9月RFC 6733
RFC 3589第三世代パートナーシップ プロジェクト (3GPP) リリース 5 の Diameter コマンド コード。2003年9月
RFC 4004Diameter モバイル IPv4 アプリケーション。2005年8月
RFC 4005Diameter ネットワーク アクセス サーバー アプリケーション。2005年8月RFC 7155
RFC 4006Diameter クレジット制御アプリケーション。2005年8月RFC 8506
RFC 4072Diameter 拡張認証プロトコル (EAP) アプリケーション。2005年8月
RFC 4740Diameter セッション開始プロトコル (SIP) アプリケーション。M.2006年11月
RFC 5224Diameter ポリシー処理アプリケーション。2008年3月
RFC 5431Diameter ITU-T Rw ポリシー適用インターフェース アプリケーション。2009年3月
RFC 5447Diameter Mobile IPv6: ネットワーク アクセス サーバーと Diameter サーバー間の相互作用をサポートします。2009年2月
RFC 5516第三世代パートナーシップ プロジェクト (3GPP) 進化型パケット システム (EPS) の Diameter コマンド コード登録。2009年4月
RFC 5624Diameter で使用するためのサービス品質パラメータ。2009年8月
RFC 5719Diameter コマンド コードの割り当てに関する IANA の考慮事項を更新しました。2010年1月RFC 6733
RFC 6733Diameter ベース プロトコル。2012年10月
RFC 6737Diameter 機能更新アプリケーション。2012年10月
RFC 7155Diameter ネットワーク アクセス サーバー アプリケーション。2014年4月
RFC 8506Diameter クレジット管理アプリケーション2019年3月

参照

参考文献

  1. ^ Pat R. Calhoun、Glen Zorn、Ping Pan (2001年2月). 「DIAMETERフレームワークドキュメント」. IETF Datatracker . IETF . 2009年4月30日閲覧{{cite news}}: CS1 maint: multiple names: authors list (link)
  2. ^ Naman Mehta (2009年3月20日). 「Diameterプロトコル入門 - Diameterプロトコルとは?」Sun Microsystems . 2011年7月4日時点のオリジナルよりアーカイブ。 2009年4月30日閲覧
  3. ^ Arkko, J.; Loughney, J. (2012). Fajardo, V; Zorn, G (編). 「RFC 6733 - Diameter Base Protocol」 .標準提案. 標準化過程. doi : 10.17487/RFC6733 . ISSN  2070-1721 . 2014年10月12日閲覧.
  4. ^ Hakala, H.; Mattila, L.; Stura, M.; Loughney, J. (2005). 「RFC 4006 - Diameter Credit-Control Application」.標準提案. 標準化過程. doi : 10.17487/RFC4006 .
  • Diameter入門 - 次世代AAAプロトコルを手に入れよう
  • RADIUSとDIAMETERの違いを説明したCiscoのページ
  • Diameter: 次世代 AAA プロトコル Håkan Ventura による Diameter に関する論文
  • Diameterゲートウェイ、Diameterシグナリングコントローラ、およびDiameterスタックのベンダーをリストしたリファレンスページ
Retrieved from "https://en.wikipedia.org/w/index.php?title=Diameter_(protocol)&oldid=1302287677"