システム構成¶
SMFv2では、サービスアダプタのリモート管理やゼロ・コンフィグレーションを実現するためにいくつかのサーバが動作しています。 本章では、サービスアダプタとサーバを含めた全体の構成と、それらを提供するサービスやプロダクトについて解説を行います。
全体の構成¶
SMFv2システム全体の構成を以下に示します。
サービスアダプタ¶
SMFv2に対応したサービスアダプタです。 起動時、自動的にLSシステムおよびRSからの設定情報を取得して動作します。 また、管理サーバ(RS)からのリモートオペレーション(ステータス取得や管理コマンド実行など)も可能です。 動作に必要なすべての情報はサーバ側で保持されているため、本体側での初期設定や日常の管理オペレーションは一切必要ありません。
サービスアダプタには、SMFv2システム上で一意に特定される「Distribution ID」が付加されています。 管理サーバ側では、このDistribution IDを元にサービスアダプタの個体識別が行われています。
LSシステム¶
SMFv2対応サービスアダプタからの接続要求に対し、RS(Resource Server)へ接続を行うための設定情報を提供するためのシステムです。
LSシステムには、SMFv2システムで管理されるすべてのサービスアダプタが登録されています。 SMFv2対応サービスアダプタは、必ず起動時にLSシステムに接続し、RS(Resource Server)への接続情報を取得します。
LSシステムは、IIJが運用するシステムとなっており、RS事業者はWebUIを通してサービスアダプタ(Distribution ID)の割り当てや、location-config(RS設定情報)の編集を行うことができます。
RS¶
SMFv2対応サービスアダプタに対し、設定情報の提供やリモートオペレーションを実行するためのシステムです。 RSでは、以下のような機能を提供することができます。
サービスアダプタの登録・削除
サービスアダプタのコンフィグの編集
サービスアダプタ起動時のコンフィグ提供
各種リモート管理コマンドの実行
(Heartbeat対応サービスアダプタの場合)死活判定および監視通知
管理・運用を行うためのWebUI
RSは、SMFv2システムをサービス展開する事業者(RS事業者)毎に独自に構築を行うことができます。 この場合、SMF SDKを用いて開発を行う必要があります。 SMF SDKでは、展開されるサービスの規模・構成・サービス内容に応じて独自にカスタマイズされたRSを構築することができます。
提供されるサービス・プロダクト¶
SMFv2システムの構築・運用を行うために、以下のサービスおよびプロダクトが提供されています。
LSサービス¶
- 対象ユーザ
RS事業者に対して提供されます。
- サービス内容
LSシステム上でRSの登録およびDistribution IDの割り当てを行うためのサービスです。 サービスの申し込みを行うと、LSシステムへログインするためのアカウントが発行されます。 LSシステムのWebUIからは、以下の操作が可能です。
- RS登録・削除
RS事業者が構築したRSを登録・削除することができます。
- Distribution ID割り当て編集
登録されたRSに対し、Distribution IDを割り当てることができます。 Distribution IDは任意の1台のRSにのみ割り当てることが可能となっており、サービスアダプタの起動時、この割り当てに従って接続の対象となるRSが決定されます。
- Location-Config編集
Location-Configは、サービスアダプタがRSへ接続するために必要な設定情報です。 1つのRSに対して最大5組のURLとLocation-Configを登録できます。 LSシステムは、接続されたサービスアダプタのDistribution IDを元に、その割り当て先RSへのLocation-Configをサービスアダプタに提供します。 サービスアダプタは提供されたLocation-ConfigでRSへの接続を試みます。 Location-Configには、通常RSへの接続を行うために必要な最低限の設定情報(PPPアカウント/パスワード、接続に用いるインターフェイス情報など)が含まれます。
- RSラベル名編集
登録したRSに対して、任意のRSラベル名や、RS事業者の連絡先情報を登録することができます。 既にほかのRSへ割り当てられているDistribution IDを割り当てようとすると、 現在割り当てられているRSへの連絡先情報がユーザインタフェースに表示されます。 Distribution IDが重複した場合は、この連絡先情報を用いて、RS事業者間で割り当ての調整を行います。
- LSアクセスログ閲覧、検索
指定したDistribution IDを元に、LSシステムへの接続記録を検索できます。 また、RS毎に前月分のLSアクセスログをCSV形式にて一括で取得できます。
SMF SDK¶
- 対象ユーザ
独自のRSを構築するRS事業者に対して提供されます。 なお、SMF SDKはLSサービスに付随するソフトウェアキットとして提供されます。
- 製品内容
RS構築を行うための開発用ライブラリやドキュメントが含まれたパッケージで提供されます。具体的な構成物は以下の通りです。
- RS APIライブラリ
RSで提供される各種機能を実行するためのAPIライブラリです。Javaで実装されています。 サービスアダプタの登録やコンフィグの編集、リモートオペレーションの実行といった各種機能がAPIとして用意されており、 RS事業者が独自に構築したWebUIからこれらのAPIを呼び出して利用できます。
- ARMS-Proxy Serverプログラム
サービスアダプタからのコンフィグ取得要求を直接受信する、Proxy Serverのプログラム一式です。 このプログラムは、サービスアダプタからの通信をRSに中継する役割を果たします。 Linux上で動作するプログラムとして開発されており、パッケージをインストールすることで任意のホスト上で動作させることができます。
- Heartbeat Serverプログラム
サービスアダプタからのHeartbeatパケットを直接受信する、Heartbeat Serverのプログラム一式です。 このプログラムは、サービスアダプタからのHeartbeatパケットを受信し、 その受信状況に応じて死活判定を行います。 死活判定の結果は、RSに通知することができ、RS側で特定のメールアドレスに対してメールで通知する、といった拡張が可能です。
libarms¶
- 対象ユーザ
SMFv2対応サービスアダプタを開発するためのハードウェアベンダに対して提供されます。
- 製品内容
SMFv2システムにおいて、サービスアダプタとサーバ間の通信プロトコルとして「ARMSプロトコル」というプロトコルが定義されています。 libarmsは、このARMSプロトコルを実装したライブラリで、サービスアダプタはlibarmsをリンクするだけで簡単に SMFv2対応サービスアダプタとして動作することができるようになります。
libarmsはC言語(gcc)用のライブラリとして提供されます。
用意されているAPIの詳細な仕様に関しては、libarmsリファレンスマニュアルをご覧ください。
アカウントオプション¶
- 対象ユーザ
同時接続可能なPPPoEアカウントを所有していないRS事業者に対して提供されます。
- サービス内容
ARMSプロトコルを用いてサービスアダプタが起動処理を行う際、フレッツ網およびIIJモバイル網などのPPPoE接続が必要なアクセス回線を用いることがあります。 この時、RSに対して同時接続可能なPPPoEアカウントが無いと、RS事業者が各サービスアダプタ毎に異なるPPPoEアカウントを発行する必要が生じます。
これを解決するため、IIJから特殊な同時接続用アカウントを払いだすことができます。このアカウントを用いる場合、以下のように動作します。
サービスアダプタは、すべて共通のPPPoEアカウントを用いて接続を行います。 ただし、IIJから払いだされるアカウントは、IIJ内のサーバセグメントにのみ接続可能という制限がかけられており、それ以外の場所に設置されたサーバに対しては直接接続を行えません。
このため、IIJサーバセグメント内に、TCP中継を行うための専用のリレーエージェントが設置されています。 このリレーエージェントに予めポート番号と転送先のサーバのアドレスを登録しておくことで、実際のRSへ接続することができます。
上図の例では、10010番ポートに対して接続を行った場合にはy.y.y.yへ、10020番ポートに対して接続を行った場合にはz.z.z.zへ中継されます。 なお、リレーエージェントはTCPの中継にのみ対応しており、通常はARMSプロトコルにおける起動処理にのみ用いられることを想定しています。