- ナレッジセンター
- 匠コラム
第1回RESTでルータを操作する日①
- 匠コラム
- ネットワーク
ビジネス推進本部 第1応用技術部
コアネットワークチーム
平河内 竜樹
クラウドやSDNの潮流に伴い、従来から存在する分野の商用ネットワーク製品においてもAPI対応がアピールされる様になりました。本稿では昨今実装されたルータ製品のREST APIに注目し、実際に動かしてみることで、その実態と利活用のポイントを探っていきます。
検証環境およびネットワーク側の準備
ネットワークのAPIやプロトコルに纏わる細かい話は割愛しまして、『HTTPを介してJSONやXMLで表現された情報を交換し、ルータ上の情報を読み書きする』という観点の元、早速動かしていきたいと思います。試験対象にはCisco Systems社の仮想ルータである「CSR1000V」、そちらと機能セットを共有している同社のルータ製品「ASR1001-X」、Juniper Network社のルータ製品となる「MX240」を用意しました。
参考情報といたしまして、今回投入した設定の抜粋を以下の表にまとめています。運用を想定すると他に必要な設定もあるのですが、こちらの内容でひとまず動作を確認することが可能となりました。なお対象バージョンのASR1000 REST API機能では別途REST用のソフトウェアをインストールする必要がある点、管理用イーサネットの利用をサポートしていない点などに注意が必要です。

RESTクライアントによる操作
POSTMANを利用し各試験対象に対して「ホスト名の取得」を行いました。




結果、いずれの製品もホスト名が含まれる情報をJSON形式で返答してくれました。
次に、情報を書き込む一例として、CSR1000Vに対して「ホスト名の変更」を行いました。


メソッドにはPUTが利用され、変更情報はHTTPリクエストのボディ部にJSON形式で指定されることが確認できました。
REST API間の違い
ASR1001-XとMX240の結果を見比べると、想定の操作に対し指定するpathや返答されるname/valueなどは異なっていることがよく解ります。またCisco Systems社の製品ではセキュリティアプライアンスであるASAシリーズもRESTをサポートしていますが、リファレンスを見るとAPIの仕様が異なり、このような状態は同じメーカーの製品間でも起こり得ることが伺えます。
なお追加機能としてREST APIを実装している製品では、段階的に対応を進めているケースが目立ちます。このため、『REST対応』の文言だけでは想定する用途に利用できるかを判断することは困難です。サポート対象の形式(JSON / XML)やプロトコル(HTTP / HTTPS)、提供されているAPIで操作可能な範囲に関してはリファレンスを参照するなどして確認する必要があります。
REST APIの汎用性
異なる製品の間でもメーカーが汎用性を提供する範囲では共通のAPIで操作することができます。今回確認した結果の中では、CSR1000VとASR1001-Xの操作に利用しているAPIは同一であることが解ります。一例として、CSR1000V向けに作成したRESTアプリケーションはそのままASR1000に利用することが可能、ということが挙げられます。
まとめ
- 昨今はルータ製品においてもREST APIの対応が進められ、利用できる様になっています。
- 『REST対応』によって何がAPIとして提供されているかは別途確認する必要があります。
- RESTというだけでは汎用性は保証されません。他方、共通のAPIが提供されている範囲では再利用が可能です。
今回の操作例はいずれもルータのCLIやSNMPでも同様に行うことができ、RESTを使う必要性は薄い様に感じるかと思います。次回は利活用のポイントについて掘り下げていきたいと思います。
関連記事
Cisco IOS XE REST API Management Reference Guide
執筆者プロフィール
平河内 竜樹
ネットワンシステムズ株式会社 ビジネス推進本部 第1応用技術部 コアネットワークチーム
所属
エンタープライズ・パブリック・サービスプロバイダのネットワーク提案・導入を支援する業務に、10年以上にわたり従事
- CCIE RS
- CCIE SP
Webからのお問い合わせはこちらから
ナレッジセンターを検索する
カテゴリーで検索
タグで検索