ネットワーク機器の管理や監視の方法が変わろうとしている。これまでは、機器の種類や環境ごとに異なるプロトコルやツールを駆使する必要があった。ところが最近のネットワーク機器は、API▼を介して一元的に管理および監視ができるようになっている。代表例がREST▼によるAPIだ。そこで今回は、ネットワーク管理や運用を大きく変えるREST APIを紹介する。
HTTPでデータを操作
RESTとは、複数のソフトウエアを連携させるための設計原則▼の1つである。その原則に基づいたAPIがREST APIだ。REST APIではWebのプロトコルであるHTTP▼あるいはHTTPS▼を使う(図1)。REST自体はプロトコルを指定していないが、もともとWebシステムについて記述した論文に出てきた用語であり、Webを念頭に置いている。中でも主要な要素となるのがステートレスやURI▼によるリソースの表現である。
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」といったコマンドを送信すると、人に分かりやすいように整形された情報が返された。
REST APIならGETメソッドでVLANの情報を要求。ネットワーク機器はJSON▼やXML▼といった、コンピューターが扱いやすい形式でデータを返す。