全3535文字
PR

 ネットワーク機器の管理や監視の方法が変わろうとしている。これまでは、機器の種類や環境ごとに異なるプロトコルやツールを駆使する必要があった。ところが最近のネットワーク機器は、APIを介して一元的に管理および監視ができるようになっている。代表例がRESTによるAPIだ。そこで今回は、ネットワーク管理や運用を大きく変えるREST APIを紹介する。

HTTPでデータを操作

 RESTとは、複数のソフトウエアを連携させるための設計原則の1つである。その原則に基づいたAPIがREST APIだ。REST APIではWebのプロトコルであるHTTPあるいはHTTPSを使う(図1)。REST自体はプロトコルを指定していないが、もともとWebシステムについて記述した論文に出てきた用語であり、Webを念頭に置いている。中でも主要な要素となるのがステートレスやURIによるリソースの表現である。

図1●REST APIの動作
図1●REST APIの動作
WebのプロトコルであるHTTPを使って、管理ソフトがネットワーク機器を操作する。その際に使われるのがREST型のAPIだ。管理ソフトはHTTPのメソッドで管理対象の機器に処理を要求する。メソッドに対応する処理の実行結果(ステータスコードとデータ)がレスポンスメッセージとして返される。
[画像のクリックで拡大表示]

 HTTPには「GET」「POST」「PUT」「DELETE」という4つのメソッドが定義されている。REST APIでは、これらのメソッドを利用してサーバーのリソースをクライアントから操作する。この4つのメソッドが、CRUDと呼ぶデータの基本操作に対応する。

 クライアントから送られてきたメソッドの処理に成功すれば、サーバーは「200」のステータスコードを返す。失敗した場合はその理由をステータスコードで応答する。例えばリソースが見つからなければ「404」、認証していないアクセスであれば「403」を返す。

 REST APIでは、やりとりするのはメソッドとステータスコードだけではない。クライアントからサーバーへは、メソッドと処理要求を合わせたリクエストメッセージを送る。一方サーバーからクライアントへは、ステータスコードと関連するデータを合わせたレスポンスメッセージを送信する。管理ソフトをクライアント、ネットワーク機器をサーバーとすれば、REST APIで機器の状態を通知したり設定を変更したりできる。

 例えば管理ソフトは、ネットワーク機器のURIにGETメソッドのリクエストメッセージを送信。ネットワーク機器は200のステータスコードとともに、機器の状態をレスポンスメッセージとして返すといった具合だ。

 REST APIで取得できる機器の情報はメーカーによって異なる。ただし最近では各メーカーとも取得可能な情報を増やしている。

 その一例がVLANの情報だ(図2)。従来は管理者が「show vlan」といったコマンドを送信すると、人に分かりやすいように整形された情報が返された。

図2●VLANの情報をネットワーク機器から取得
図2●VLANの情報をネットワーク機器から取得
ネットワーク機器に設定されているVLAN情報を取得するために、あらかじめ定義されているURIに対して、リソース管理システムがGETメソッドを送信。ネットワーク機器は「200」のステータスコードと一緒に、JSONやXMLの形式でVLAN情報を返す。
[画像のクリックで拡大表示]

 REST APIならGETメソッドでVLANの情報を要求。ネットワーク機器はJSONやXMLといった、コンピューターが扱いやすい形式でデータを返す。