Diameterとは
Diameterとは、RADIUSの後継となるAAA(Authentication, Authorization, Accounting)サービスを実装する認証プロトコルのひとつである。RADIUSには半径という意味がり、DiameterはRADIUSの後継となるため、半径の2倍という意味で、Diameter(直径)という名前がつけられた。Diameterは、RFC3588で定義されている。
RADIUSとの主な違いは以下である。
- トランスポートのプロトコル
- トランスポートのセキュリティ
- 同時接続数
- AVPに収納できるデータ量
- 通信の向き
- エージェントのサポート
- フェイルオーバー
- ネゴシエーション
RADIUSでは、UDPを使用しているのに対し、DiameterではTCPやSCTPを使用しているため、より信頼性のある通信が可能となる。
RADIUSでは、トランスポートのセキュリティに関して定義されていなかったが、Diameterでは、IPsecが必須となり、TLSがオプションで使用できる。そのため、Diameterの方がRADIUSと比べ、より信頼のある通信が可能である。
Diameterでは、RADIUSで1オクテットであった「識別子」の領域が、4オクテットに拡張されている。そのため、同時接続数がRADIUSでは256だったが、Diameterでは40億以上と多くのユーザが同時に利用することができる。
RADIUSで利用していたAVP(Attribute Value Pair)の情報の形式をDiameterでも利用している。RADIUSでは、1オクテットであった領域が、Diameterでは3オクテットまで拡張されているため、扱えるデータ量も大きくなっている。
Diameterは、サーバとクライアントの双方向の通信が可能となっている。そのため、サーバ側からクライアント側へ要求を送ることができ、回線を切断するよう要求したり、ユーザの再承認を要求することが可能である。
RADIUSでは、エージェントに関する定義がされていなかったが、Diameterでは、機能ごとに「リレー」、「プロキシ」、「リダイレクト」、「トランスレーション」の4種類のエージェントを明確に定義している。
RADIUSクライアントがRADIUSサーバに接続する時、接続確認ができなかった時には次のサーバに接続確認を行う方法でRADIUS接続のフェイルオーバーを行っている。そのため、複数のサーバに接続ができない状態になっている場合、接続確認の回数が増えフェイルオーバーに時間がかかる可能性があった。Diameterでは、フェイルオーバーの仕組みがRFCで定義されている。接続先との通信障害が発生した場合、通信が正常終了するまで保留中としていたメッセージを他のエージェントに送信する機能があり、これにより効果的なフェイルオーバーが可能となっている。
RADIUSでは、ネゴシエーションに関する定義がされていなかったが、Diameterでは、クライアントとサーバ間で機能ネゴシエーションが可能となった。ネゴシエーションでは、プロトコルのバージョン、実装しているセキュリティ機能などをすり合わせることが可能である。
LTEやスマートフォンの規格を策定している標準化団体3GPPでは、認証や通信制御の領域で、Diameterが標準仕様として規定されている。
将来、Diameterの認証プロトコルの利用が増えていくと予想される。
【カテゴリ】:認証  オープンソースソフトウェア  
【Webセミナー】Rocket.Chatだけじゃない!OSSビジネスチャットの最新情報
日程: | 12月19日(木)Webセミナー「BigBlueButton」を使用します。 |
内容: | Rocket.Chatの機能制限でお困りの方も必見!ライセンスフリーで利用できるOSSのビジネスチャットを紹介します。 |
ご興味のあるかたはぜひご参加ください。 |