DIAMETER

DIAMETERは、RADIUSの後継となる認証・認可・課金 (AAA: Authentication, Authorization, Accounting) プロトコルである。

 RADIUSからの改善点 
DIAMETERという名前は、RADIUSプロトコルにかけた駄洒落である (直径:diameterは半径:radiusの2倍になる)。DIAMETERはRADIUSとの後方互換性はないが、RADIUSからのアップグレード・パスを提供している。
RADIUSとの主な違いは、
 RADIUSで使われているUDPではなく、信頼性のあるトランスポート・プロトコルであるTCPやSCTPを用いる
 トランスポート層のセキュリティ (IPsecまたはTLS) を利用可能
 RADIUSからの移行をサポート
 RADIUSよりも大きな属性値ペアと識別子のアドレス空間を持つ (8ビットから32ビットに拡張)
 サーバ発のメッセージもサポートする点を除き、クライアント・サーバ型のプロトコルである
 ステートフルおよびステートレスのモデルを利用できる
 DNSのSRV・NAPTRレコードを用いたピアの動的発見
 機能ネゴシエーション
 アプリケーション層での肯定応答をサポートし、フェイルオーバーの方法とステートマシーンを定義
 エラー通知
 改善されたローミングサポート
 新しいコマンドと属性の定義を利用した簡単な拡張
 32ビットの区切り
 ユーザーセッションと課金管理の基本サポート

 プロトコルの詳細 
Diameter基本プロトコルは、AAAプロトコルの最小限の要求として、で規定されている。Diameterアプリケーションは、新しいコマンドや属性を追加することにより基本プロトコルを拡張することができる。ただし、ここで言うアプリケーションとはプログラムのことではなく、Diameterに基づいたプロトコルのことを指す。DIAMETERのセキュリティは、すでに十分に確立されたプロトコルであるIPsecやTLSによって提供される。

 パケット・フォーマット 
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Version    |                 Message Length                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | command flags |                  Command-Code                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Application-ID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Hop-by-Hop Identifier                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      End-to-End Identifier                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  AVPs                                                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 コマンド 
各コマンドには、要求・応答共に利用されるコマンド・コードが割り当てられている。

コマンド名略称コード AA-RequestAAR265 AA-AnswerAAA265 Abort-Session-RequestASR274 Abort-Session-AnswerASA274 Accounting-RequestACR271 Accounting-AnswerACA271 Capabilities-Exchange-RequestCER257 Capabilities-Exchange-AnswerCEA257 Device-Watchdog-RequestDWR280 Device-Watchdog-AnswerDWA280 Disconnect-Peer-RequestDPR282 Disconnect-Peer-AnswerDPA282 Re-Auth-RequestRAR258 Re-Auth-AnswerRAA258 Session-Termination-RequestSTR275 Session-Termination-AnswerSTA275User-Authorization-RequestUAR300User-Authorization-AnswerUAA300Server-Assignment-RequestSAR301Server-Assignment-AnswerSAA301Location-Info-RequestLIR302Location-Info-AnswerLIA302Multimedia-Auth-RequestMAR303Multimedia-Auth-AnswerMAA303Registration-Termination-RequestRTR304Registration-Termination-AnswerRTA304Push-Profile-RequestPPR305Push-Profile-AnswerPPA305

 属性値ペア 
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           AVP Code                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V M P r r r r r|                  AVP Length                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Vendor-ID (opt)                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Data ...
   +-+-+-+-+-+-+-+-+

属性名コードデータ型 Acct-Interim-Interval85Unsigned32 Accounting-Realtime-Required483Enumerated Acct-Multi-Session-Id50UTF8String Accounting-Record-Number485Unsigned32 Accounting-Record-Type480Enumerated Accounting-Session-Id44OctetString Accounting-Sub-Session-Id287Unsigned64 Acct-Application-Id259Unsigned32 Auth-Application-Id258Unsigned32 Auth-Request-Type274Enumerated Authorization-Lifetime291Unsigned32 Auth-Grace-Period276Unsigned32 Auth-Session-State277Enumerated Re-Auth-Request-Type285Enumerated Class25OctetString Destination-Host293DiamIdent Destination-Realm283DiamIdent Disconnect-Cause273Enumerated E2E-Sequence300Grouped Error-Message281UTF8String Error-Reporting-Host294DiamIdent Event-Timestamp55Time Experimental-Result297Grouped Experimental-Result-Code298Unsigned32 Failed-AVP279Grouped Firmware-Revision267Unsigned32 Host-IP-Address257Address Inband-Security-Id299Unsigned32 Multi-Round-Time-Out272Unsigned32 Origin-Host264DiamIdent Origin-Realm296DiamIdent Origin-State-Id278Unsigned32 Product-Name269UTF8String Proxy-Host280DiamIdent Proxy-Info284Grouped Proxy-State33OctetString Redirect-Host292DiamURI Redirect-Host-Usage261Enumerated Redirect-Max-Cache-Time262Unsigned32 Result-Code268Unsigned32 Route-Record282DiamIdent Session-Id263UTF8String Session-Timeout27Unsigned32 Session-Binding270Unsigned32 Session-Server-Failover271Enumerated Supported-Vendor-Id265Unsigned32 Termination-Cause295Enumerated  User-Name1UTF8String Vendor-Id266Unsigned32 Vendor-Specific-Application-Id260Grouped

 状態機械 

The  defines a core state machine for maintaining connections between peers and processing messages. This is part of the basic protocol functionality and all stacks should support it and as such abstract from the connectivity related operations.

Additionally, application specific state machines can be introduced either later or at a higher abstraction layer. The  defines an authorization and an accounting state machine.

 メッセージ・フロー 

 アプリケーション 
Diameter アプリケーションとはアプリケーションソフトウェアのことではなく、Diameter基本プロトコルに基づいたプロトコルのことである。各アプリケーションはアプリケーション識別子によって定義され、新しいコマンドコードや必須属性値ペアを追加することができる。新しいオプション属性値ペアを追加すること自体は新しいアプリケーションを必要とはしない。

Diameterアプリケーションの例:
 Diameter Mobile IPv4 Application (MobileIP, )
 Diameter Network Access Server Application (NASREQ, )
 Diameter Extensible Authentication Protocol Application ()
 Diameter Credit-Control Application (DCCA, )
 Diameter Session Initiation Protocol Application ()
 IP Multimedia Subsystemで使われる様々なアプリケーション

 外部リンク 
freeDiameter
Open Diameter Documentation Page
Cisco IOS ソフトウェア (RADIUSとDIAMETERの違いの一覧がある)
Open DiameterのDebianパッケージ
jdiameter、Java用Diameter基本プロトコル

Category:インターネットのプロトコル
Category:インターネット標準
Category:コンピュータ・ネットワーク・セキュリティ
Category:認証プロトコル
3588