はじめに

SMFv2とは

SMFv2は、インターネットに接続される「あらゆる」機器の管理の自動化を可能にするシステムです。 インターネットに接続される機器はSMFv2システム上で動作する「サービスアダプタ」として動作することで、 自動設定や集中管理といった様々な機能を実現することができます。

SMFv2によって実現される機能は以下のようになります。

ゼロ・コンフィグレーション
サービスアダプタは、インターネット上に設置された管理サーバから自動で設定を取得して動作することができます。 この場合、サービスアダプタ自身には設定は保持されません。 設定は管理サーバ上に保存されることになります。 このため、予め機器を設置場所に配布しておき、後で設定を作成するといった作業が可能になるほか、 機器交換の際も柔軟な対応が可能になります。 この仕組みはSMFv1で初めて実現されたものですが、SMFv2でも同様の機能が提供されています。
サービスアダプタの集中管理
管理下におかれたサービスアダプタを、管理サーバ上から一括して管理することができます。 ステータス取得やサービスアダプタの再起動やソフトウェアの更新といった作業を、 すべて管理サーバ上から実行することができます。 また、スケジュール登録を行うことで、指定した時間に指定したアクション(ソフトウェア更新等)を実行することもできます。 行った操作はすべてログに記録され、後ほど確認することができます。 この仕組みもSMFv1で実現された機能ですが、SMFv2においても同様の機能が提供されています。
死活監視と動作状況の把握
サービスアダプタが正常に動作しているかどうかを監視することができます。 この仕組みは、サービスアダプタ自身が定期的に送信する’‘Heartbeat’‘パケットを利用することで実現されています。 サービスアダプタのUP/DOWNを検出した時にはメールを送信するなどのアクションも定義することができます。 また、Heartbeatパケットには、サービスアダプタの動作状況(トラヒック、CPU利用率、メモリ利用率)などを含むことができ、 これらの情報をグラフ化して表示することができます。 また、管理サーバと監視サーバ間のインタフェースを再利用することで、既存の監視システムと結合して利用することも可能です。
セキュリティ
サービスアダプタと管理サーバ間の通信は、すべてSSLによって暗号化されています。 また、サービスアダプタに投入される設定は全てメモリ上にあるため、電源断により消えることになります。 このため、盗難や紛失の際に情報の流出を防ぐことができます。

用語の定義

サービスアダプタ(SA)
自動設定や管理の対象となるネットワーク機器です。 ルータやネットワーク家電など、エンドユーザが実際に使用する機器です。ARMSプロトコルが実装されています。
SEIL
IIJが開発する高機能・高性能ルータです。SMFv2対応のサービスアダプタとして動作します。 詳細は http://www.seil.jp/ をご覧ください。
Distribution ID
サービスアダプタを個別に識別するための128bitのユニークなIDです。 ベンダを識別するためのベンダコードと、個体を識別するための個体コードから成ります。
ARMSプロトコル
IIJが独自に開発したSMFv2専用の通信プロトコルです。 SMFv2システムで必要とされる操作がメッセージとして定義されており、効率的な管理が可能となる他、 セキュリティ面も充分に考慮されており安全な通信が実現されています。 プロトコル仕様書は一般に公開されるほか、フリーで提供されるライブラリ(libarms)を使って簡単に各種ネットワーク機器に組み込むことができます。
libarms
IIJが無料で提供する、ARMSプロトコルが実装されたライブラリです。 このライブラリをサービスアダプタに組み込むことで、簡単にSMFv2対応サービスアダプタとして動作させることができます。
Pull
ARMSプロトコルを用いてサービスアダプタがRSからコンフィグを取得してくる動作を指します。
Push
ARMSプロトコルを用いて、RSからサービスアダプタに対して何らかの操作を動的に行うことを指します。
Heartbeat
IIJが独自に定義した監視用の通信プロトコルです。 サービスアダプタを識別するための情報(Distribution ID)および各種ステータス情報を含むことができます。
SMF SDK
RS, ARMS Proxyサーバ, Heartbeatサーバ、Databaseを構築するためのソフトウェアモジュール及びライブラリを提供する開発キットです。
LS(Location Server)
サービスアダプタが起動する際、必ず最初にアクセスするサーバです。全てのサービスアダプタにはあらかじめLSのアドレスが記録されています。 LSはDistribution ID毎に登録されたRSのアドレスを保持しており、サービスアダプタは適切なRSにPullリクエストを発行することができます。
RS(Resource Server)
サービスアダプタの管理およびデータベースを用いた処理全般を行う管理サーバです。 WebUI向けのインターフェイスも提供しています。
ARMS Proxyサーバ
ARMSプロトコルを中継するサーバです。 サービスアダプタと直接ARMSプロトコルで通信を行うのはARMS Proxyサーバの役割です。 RSは直接SAと通信することはなく、ARMS Proxyサーバを介して通信を行います。
Heartbeatサーバ
Heartbeatパケットを受信するサーバです。 サービスアダプタから定期的に送信されるHeartbeatパケットを受信し、 あらかじめ設定されたパラメータに従ってUP/DOWNを検出し、RSに状態変化を通知します。 また、Heartbeatに含まれる各種ステータス情報をグラフ化して表示することができます。
RS-APIライブラリ
SMF SDKでは、RSを構築するためのライブラリのみが提供されており、このライブラリを利用して管理用のWebUI等を開発する必要があります。 そのためのライブラリをRS-APIライブラリと呼びます。
RSベンダ
RSを構築するサービス提供事業者です。 いくつかの種類のSAを組み合わせてエンドユーザに対して直接SMFv2システムをサービスとして提供する事業者です。
SAベンダ
ARMSプロトコルを実装したサービスアダプタを開発するメーカです。
SAオペレータ
SAに対する設定変更等のオペレーションを実行するエンジニア等を指します。 原則として、RSで提供されるWebUI等を用いて操作を行います。 SAを使用するエンドユーザがSAオペレータを兼ねることもあります。
エンドユーザ
SAの各種機能を実際に使用するユーザです。 エンドユーザ自体についてはSMFv2の詳細やSAの詳細な設定方法に関する知識は必要とされません。