DIAMETER

DIAMETERは、RADIUSの後継となる認証・認可・課金 (AAA: Authentication, Authorization, Accounting) プロトコルである。 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プロトコルの最小限の要求として、RFC 3588で規定されている。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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 各コマンドには、要求・応答共に利用されるコマンド・コードが割り当てられている。 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 ... +-+-+-+-+-+-+-+-+ The RFC 3588 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. Peer State Machine Part 1 Peer State Machine Part 2 Additionally, application specific state machines can be introduced either later or at a higher abstraction layer. The RFC 3588 defines an authorization and an accounting state machine. Diameter Authorization State Machines (Client) Diameter Authorization State Machines (Server) Diameter Accounting State Machines (Client) Diameter Accounting State Machines (Server) Diameter アプリケーションとはアプリケーションソフトウェアのことではなく、Diameter基本プロトコルに基づいたプロトコルのことである。各アプリケーションはアプリケーション識別子によって定義され、新しいコマンドコードや必須属性値ペアを追加することができる。新しいオプション属性値ペアを追加すること自体は新しいアプリケーションを必要とはしない。 Diameterアプリケーションの例: Diameter Mobile IPv4 Application (MobileIP, RFC 4004) Diameter Network Access Server Application (NASREQ, RFC 4005) Diameter Extensible Authentication Protocol Application (RFC 4072) Diameter Credit-Control Application (DCCA, RFC 4006) Diameter Session Initiation Protocol Application (RFC 4740) IP Multimedia Subsystemで使われる様々なアプリケーション freeDiameter Open Diameter Documentation Page Cisco IOS ソフトウェア (RADIUSとDIAMETERの違いの一覧がある) Open DiameterのDebianパッケージ jdiameter、Java用Diameter基本プロトコル 表示 編集