IoE(Internet Of Everything)の世界では、モノをつなげるネットワークシステムの重要性も言うまでもなく益々高まっているといえます。それに伴い、柔軟な設定変更や動的なポリシー制御など、高度な技術も検討・開発・実装され、少しずつ広まっています。IoE の土台を支えるのは、ネットワーク システムでありネットワーク エンジニアですから、最新の機能を使いこなし、ネットワークの設計・展開・運用するというネットワークエンジニアへの期待も、きっと高まっているはず、ですね (^^)
「えっ、そんな時間、どこにあるの?日々の展開作業や運用作業、障害対応で時間がないよ!」という声が聞こえてきそうです。
そこで今日は、ネットワークエンジニアにとってきっと役に立つであろう、ルータやスイッチのプラグ&プレイインストールについて書きたいと思います。
プラグアンドプレイ機能
プラグ&プレイインストールは、ゼロタッチインストールといわれることもあります。これを利用すれば、コマンドラインや Web GUI を操作することなく、機器の設定を完了、機器のファームウェア(IOS)を指定のものに変更する、といった作業が完了します。素晴らしい!でも、なぜそれほど広まっていないんでしょうか。
欠点をあげると、この種の機能は、機能的にも歴史的にも対応装置によっても様々存在しているため、全体像を理解して取捨選択するのに苦労します。たとえば、歴史は古く、後ほど紹介する CNS Configuration Agent は IOS 12.2 (XX) といったバージョンから、LinuxのPXE Boot のような AutoInstall 機能は、もっと古いバージョンからサポートされています。他に、USB ポートを利用したブート コンフィグの指定や、EEM (Embedded Event Manager)を使ったスクリプトによる自動インストール、Catalyst を中心にサポートされている Smart Install 機能等もあります。ちょっとややこしいですね。さらに装置の展開作業はお客様ごとに異なる手順をお持ちであったり、複数社役割分担されていたりと、なかなか技術的な整理だけでも進まない分野でもあります。結果、お客様内でも優先度が上がらずお蔵入りになってしまったケースも見られました。しかし、昨今の環境や要件の変化から、改めて、積極的な問い合わせがどんどん増えていると感じます。
CNSエージェント(Cisco Networking Services)
Cisco 装置を利用頂く上で一番一般的なのは、IOS に実装されている CNS(Cisco Networking Service )Agent の利用です。CNS Agent の主な特徴は以下のとおりです。
- 主にコンフィグレーションや IOS イメージの自動展開、運用を行う
- シリアル番号や Mac アドレス等を使って装置を識別
- IOS 内蔵、細かいプロトコルの仕様は開示されてない
- HTTP/HTTPS を使って XML ベースでメッセージをやり取り
- 対応したサーバが必要
- 設定オプションや細かなエラー制御など、すぐに利用できる
- スクリプトや Telnet/SSH など汎用プロトコルより拡張性がある
- 10年以上の歴史がある
CNS Agent を利用すると、たとえば CNS サーバ側で事前にシリアル番号と設定内容(コンフィグレーション)、IOS ソフトウェアを紐づけておけば、起動直後のルータが自動的に CNS サーバに向かってシリアル番号を送信し、自分のコンフィグレーションと IOS ソフトウェアを取得して新たに起動、といった展開が可能になります。–(1)
CNS Agentを使うためには、ルータやスイッチに、あらかじめ CNS サーバのアドレスといくつかのオプション(装置識別にシリアル番号を使う、など)を数行程度、設定しておく必要があります。
「えっ!それゼロタッチじゃない…(T-T)」
そこで、AutoInstall の出番です。
DHCP/TFTP を使った IOS AutoInstall
CNS Agent の設定は機器共通になるため、それをCNSの前段階で AutoInstall 機能を用いて 流し込むわけです。AutoInstall 機能は、特殊なプロトコルは使わず、DHCP と TFTP を用いて初期設定(一般的にブートストラップ コンフィグと呼びます)を装置に設定します。 –(2)
- DHCPでアドレス配布時に、TFTPサーバアドレスも通知(DHCP Option150)
- 設定が何もないIOS装置は、Option 150 で通知されたアドレスに、TFTP で(共通の)設定ファイルを取得しにいく
- DNSと組み合わせて、ホスト名ごとの設定ファイル適用も可能
(1)と(2)を組み合わせたプラグアンドプレイインストールのシーケンスは以下のようになります。結果的に、DHCP環境でのゼロタッチが実現できます。
必要なコンポーネントまとめ
- 設定が空の IOS ルータまたはスイッチ(CNS 対応)
- DHCP サーバ(Option 150 を設定)
- TFTP サーバ(ブートストラップ コンフィグ ファイルを提供)
- CNS サーバ(シリアル番号と機器ごとの設定ファイルを提供)
ここまでで、シスコ ルータおよびスイッチが提供している最も一般的なプラグアンドプレイの仕組みについてご紹介しました。一通りいただいた後、様々な疑問が沸き上がってくると思います。
その他の展開
「CNS サーバってどんな製品があるの?」
「DHCP を使わない設定だけれど、初期設定は配布できるの?」
「DHCP の前に PPPoE の認証が必要だけど、やっぱり現地でパソコンが必要ですよね?」
「ルータやスイッチ起動後の疎通テストは結局手動でやらないといけないですよね?」
これらについては、次回以降にブログの記事にさせていただきますので、ご期待ください!ネットワーク オペレーション コストをうまく削減しつつ、新しいネタや価値の提供に時間やコストを割り当てられるよう、少しずつリソースシフトしていきましょう!
参考サイト
- Cisco Networking Services設定ガイド(英語)
http://www.cisco.com/en/US/docs/ios-xml/ios/cns/configuration/15-mt/cns-15-mt-book.html - Cisco Prime Infrastructureデータシート(日本語)
http://www.cisco.com/web/JP/product/hs/netmgt/prime_infra/prodlit/data_sheet_c78-729088.html