ベテラン SE であれジュニア SE であれ、IT エンジニアであれば誰しも、IT 的「遊び心」を持っていることでしょう。つまり、「やってみて楽しい」「動いた!」「こんなことできるの!?」といった感動とともに、手を動かして“遊 ぶ”ことに楽しみを見いだし、熱中した経験があるはずです。
ちょっとした動作検証のつもりが深夜まで熱中したり、うっかり休日を潰してしまったり…。そして、新たな発見を人に話したくなるし、より多くの人で面白みが共有されて盛り上がれば、うれしくなる…。そんな中から技術的な課題解決策やテクニック(小ネタ)が生まれ、実際に業務にも結びつけば、こんなに楽しいことはありません。
自宅サーバを構築・運用したり、業務用ルータを家庭用途に使ったり、家族の IP トラフィックをこっそり監視・分析したりと、エンジニアは自宅でも IT 的娯楽を楽しんでいるものです。最近では Cisco Start シリーズのおかげで、シスコの IOS ルータやスイッチを家庭でも導入しやすくなっています。ブツブツと独り言を言いながら設定を変えて結果を眺めながら日夜装置と格闘する…。それはそれで楽しいものです。
さて、今日はそんなエンジニアのみなさまがきっと熱中するツール「VIRL(Virtual Internet Routing Lab)」を紹介します。VIRL はシスコが個人向けに提供・販売を行う、ネットワーク シミュレーション ソフトウェアです。
“本物で” ネットワーク シミュレーション
シミュレーションとはいえ、シスコの物理ルータや LAN スイッチで使われているのと同等のネットワーク OS (IOSやIOS-XE, ASAvなど)が仮想的に動作するため、物理層に依存のある機能を除き、ほとんど実際にシスコ ルータをオペレーションしているかのように環境の構築・検証が可能です。
ライセンスにより、仮想ノードを最大 20台または 30台立ち上げて構成でき、さらに、LXC ホストや Docker マシンの仮想ネットワークへの組込や、仮想ネットワークを物理ネットワークと接続するなど、幅広く応用できます。VIRL は基本的に個人利用を前提としており、価格も安価(学割もあり!)でウェブからライセンスを購入できます。類似製品にCML(Cisco Modeling Labs)というのがあり、そちらはマルチ ユーザ&大規模での利用を想定しており、TAC サポートも付属しているといった違いがあります。
VIRL イメージは、ISO または OVA イメージで提供され、インストール環境は、ESXi5.1U2 以上、VMWare Fusion Pro v5.0.2 以上、VMWare Player v5.0.2 以上、VMWare Workstation v9.0.4 以上となっています。動作させるノード数にもよりますがノード毎にサーバ リソースを消費しますので、なるべく大きい環境が望ましいです。Intel VT-x や AMD-V/AMD-RVI といったハードウェアによる仮想化支援機構に対応している必要があることと、VirtualBox にはインストールできないという注意点があります。
ちなみに私は、ESXi 上(Cisco UCS サーバ)に作った RAM32GB の仮想マシンと、VMWare Fusion Pro 上(MacBook Pro)に作った RAM8GB の仮想マシンの 2つの環境で動作させています。
便利機能のご紹介
それでは、私が実際に VIRL を使っていて「便利だなぁ!」と思う機能をいくつか紹介したいと思います。リリース後に興味をもってアクセスしてみたものの、その後は使わなくなってしまった方もいらっしゃると思います。VIRL は着実にバージョンアップしており、様々な機能追加が行われていることをここでお伝えできればと思います。
便利機能1:リンクの遅延とパケットロスをシミュレート
最近の Cisco IOSでは、回線のパケットロスやディレイの測定を自動的に行い、その結果に応じてアプリケーションまたはDSCP(Differentiated Services Code Point )ごとにルーティングを切り替えるといった機能があります。通常、このような遅延やパケットロスに関する検証をする際には、物理ルータやスイッチでネットワークを構築し、間に遅延生成マシンを配置するといった作業が必要ですが、VIRL を使えば、手元ですぐに確認できて、ものすごく便利です。
便利機能2:仮想インターフェイスごとにパケットキャプチャ
OSPF、NetFlow、SNMP、Telnet などのネットワーク入門として教科書で勉強するようなことも、ある程度頭で理解したら、実際のパケットをキャプチャして眺めつつ、シーケンスを追うのが一番腹落ちすると思います。「気になるプロトコル」は、VIRL でさっさと構成してキャプチャし、ローカルに保存しておきましょう。
便利機能3:実ネットワークと接続し、NMS や API のテスト対象に
IOS のコンフィグに加えて、NMS や SDN コントローラーを接続した際の相互の動き、NetFlow を実際のサーバ(コレクター)に送信してみる、ツールやスクリプトを使った API のテスト(最近の IOS は Netconf や RESTConf も使えるようになりつつあります)、もちろん、特定の MIB の GET/SET など、実際のネットワークと繋げたくなるシチュエーションも多々出てくると思いますが、VIRL ではとても簡単に、シミュレーションと現実の世界をレイヤ2 で接続できます。
おまけ
VIRL に同梱される IOSv 起動して show version 確認すると、確かに IOS 15.6(2)T、フィーチャーセットは「アドバンスド ンタープライズ」のライセンスになっていることがわかります。勉強用に、某オークションサイトや秋葉原で程度の良い中古ルータを探してきても、なかなかここまで整ったソフトウェアを動かすのは難しいかもしれません。
Router#show version | incl IOSv|image
Cisco IOS Software, IOSv Software (VIOS-ADVENTERPRISEK9-M), Version 15.6(2)T, RELEASE SOFTWARE (fc2)
ROM: Bootstrap program is IOSv
System image file is "flash0:/vios-adventerprisek9-m"
Cisco IOSv (revision 1.0) with with 460033K/62464K bytes of memory.
※2016年8月現在、IOS は 15.6(2)T および 15.6(3)M が最新となっています。
http://www.cisco.com/c/en/us/td/docs/ios/15_6m_and_t/release/notes/15_6m_and_t.html
まとめ
VIRL をご存じなかった方であれば、すぐにでも使い始めたくなったのではないでしょうか?個人レベルでは、興味のある、前から気になっていた、教科書やドキュメントを読んでもいまひとつしっくりこない技術など、「本物」を使って自分の手で作って理解できる非常に役立つツールであることがお分かり頂けたかと思います。
また、一部の方は実際の業務でも役立つ可能性が多いにあるかと思います。例えば、研修プログラムのインストラクターや機能のデモンストレーション、ちょっとした動作確認など、ドキュメントだけでは物足りないけれど、実機を用意するとなると大変、といったケースでは、生産性と顧客満足度の両方に貢献する可能性が高いと考えます。
何より、一人のユーザとして、手を動かして楽しいのは言うまでもありません。理屈は抜きにして、少しでも興味がわいた方は、是非環境を手に入れてください!多少の出費は必要となりますが、それ以上の見返りは間違いなく得られると思います。夏の自由研究に、秋の夜長に、お正月の時間つぶしに、春のウォーミングアップに…。VIRL は年中大活躍するかもしれません。
個人的にもまだまだ多くの機能を使いこなせていませんので、少しずつ(業務の合間に!?)開拓して、面白い機能があれば、ブログで紹介したいと思います。
リファレンスURL:
Cisco VIRL(Virtual Internet Routing Lab)
http://virl.cisco.com/
VIRL関連ドキュメント:
http://virl-dev-innovate.cisco.com/
Cisco VIRL (Cisco DevNet):
https://developer.cisco.com/site/virl/
Cisco Learning Network – VIRL コミュニティ
https://learningnetwork.cisco.com/groups/virl
1 コメント
VIRLのEditionが記事の内容から変更になってますね。
http://virl.cisco.com/getvirl/