eveで仮想NW環境を構築する-IOS/Nexus9K編

NX-OS初導入でコロナで納品が遅れた時に大いに役立った仮想環境の作成方法を忘備メモ的に記載。今後はNW検証業務の新メンバー習熟環境として活用するため少し追記修正。 ※IPアドレス情報は適宜環境に合わせること。本ページでは複数環境で作成しておりイメージ図とテキストのIPアドレスは異なるかもです。

f:id:pinn38:20200118171316p:plain
Nexus9kはうち2台

事前に必要なもの

お金や企業の権限がない人でも勉強できるよう、基本、無償のツールを使うポリシーです。

  1. Ciscoアカウント(無償)
  2. vNXOS(無償)今回は「 nxosv-final.7.0.3.I7.7.qcow2 」をDL
  3. VMwareWorkstation15player(無償)
  4. Free EVE Community(無償)
    ※EVEクライアントからeve仮想マシンvncwiresharktelnetするためにクライアントPCには「XXX Client Side pac」をDLする。
  5. vIOS(無償)

※1~3はコノページを参照。今回は4と5を紹介。

Free EVE Community のダウンロードとインストール 1

Free EVE CommunityとClient Side pacのダウンロードはココから
※同リンク先にあるClient Side pacはclientPCにDLしインストールする事。

f:id:pinn38:20200118113709p:plain
Community Editionを選択すること 。DLしたイメージ名は「EVE Community VM.ova



f:id:pinn38:20200118115047p:plain
ダウンロードした「EVE Community VM.ova」をクリックするだけでVMが自動的に起動する。ここでは特に変更せず、importを押下。



f:id:pinn38:20200118115227p:plain
起動してきたらVM上でCLIログインし環境設定する。(デフォルトはroot/eve)


f:id:pinn38:20200118145837p:plain
ここでは★NTPサーバを設定しただけで他はデフォルトのまま。図のアドレスは例です。


f:id:pinn38:20200118115445p:plain
設定変更が終わると自動的に再起動する。DHCPで当方のPCプライベート無線LANの★のアドレスが割り当てられた。
※ホストPCにNICが複数刺さっているとアドレスが割り振られなかったのでいったん無線LANだけにした



f:id:pinn38:20200118115727p:plain
DHCPで払いだされた★IPアドレスteratermなどでSSHでログインする。
※後で仮想環境で使う機器のOSファイルの登録をこのCLI上で実施する。
とりあえずここまでで、いったんeveの操作は中断して次。

vNXOSのダウンロード 2

※詳細はココを参照。今回は「 nxosv-final.7.0.3.I7.7.qcow2 」をDL。

f:id:pinn38:20200118121752p:plain
Nexus9K nx-os7.0(3)I7(7) をqcow2形式でダウンロードする。



vIOSのダウンロード 3

vIOSはGoogledriveからDL

f:id:pinn38:20200118122602p:plain
CiscoのL3、L2Switchは「Cisco-IOU-L2-L3-Collection-v2.7z」をPCダウンロードして解凍する。
※ググったら出てきたのでDLさせてもらった。

※解凍した中から、L3SWとして「i86bi-linux-l3-adventerprisek9-15.2.2.03T.bin」とL2SWとして「i86bi-linux-l2-adventerprisek9-15.1.bin」を利用する。

ライセンス生成用のPythonスクリプトGitHubからダウンロード 4

※これが無いとライセンスエラーでIOSが起動しないので注意

https://gist.github.com/paalfe/8edd82f780c650ae2b4a



eveにIOSファイルとライセンスファイルを配置する 5

ここでeveのCLIの作業(1の終わり)に戻ります。
eveにIOSファイルとPythonスクリプトをSCPなど使って転送する。
もしフォルダが無ければ作成すること。

転送ファイルは以下3つ。
i86bi-linux-l3-adventerprisek9-15.2.2.03T.bin
i86bi-linux-l2-adventerprisek9-15.1.bin
scrypt.py

(SCP転送コマンド:例)WIN-PCのDOSからコマンドでeve上にSCPでファイル転送したログ



eveでIOS用ライセンスを生成する 6

「scrypt.py」をPython2 で実行するとライセンスが生成される。


生成だけで配置は自分で実施が必要なようでで、
echo -e '[license]\neve-ng = 972f30267ef51616;' | tee $HOME/.iourc
出力結果に従ってコマンドを実行、$HOME/.iourcにライセンスを起いても、、、ライセンスエラーで起動せず。

root@eve-ng:/opt/unetlab/addons/iol/bin# cp ~/.iourc ./iourc

上記のようにライセンスNoが記載されたファイルをOSファイルと同じ階層にコピーしたら認識できるようになった。理由はよくわからないけどこれでOK。

eveにvNXOSファイルを配置する 7

IOSと同様にSCPでeveに転送する。OSがNexus9000vの場合は以下の制約があるので注意。
パス:”/opt/unetlab/addons/qemu/”のパスに以下のディレクトリを配置。
ディレクトリ名:”nxosv9k-“(ハイフン以降はバージョン名など任意)として作成する。
イメージファイル名:元のOSイメージ名を”sataa.qcow2”に変更し、作成したディレクトリに配置。
Cisco Nexus 9000v switch

設定を反映する 8

eveのコマンドラインで以下の1行を実行する。 ※実施しないとOSが認識しないので注意

/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

ブラウザでeveにログインする 9

f:id:pinn38:20200118114352p:plain
ブラウザに★IPアドレス指定してログインする。(デフォルトはadmin/eve)


仮想NWシナリオを作成する 10

f:id:pinn38:20200118141546p:plain
Add new labで新しいNW構成を追加する。


作成したNWシナリオにノードを追加する 11

ここでノード追加するときにOSファイルが選択可能であればOSの登録は正常に実施できている。選択できない場合は手順を再確認すること。

f:id:pinn38:20200118154946p:plain
右クリックでnodeを作成⇒ADD NEW NODEの選択プルダウンからOSを選ぶ


ノードを追加してトポロジー作成 12

nodeの追加や設定は右クリックで選択可能。
※起動するとnodeのアイコンが灰色→水色になる)。
nodeの起動は左1クリックで可能。
node同士の接続リンクはnodeの起動前に作成する。
※特にNX-OSは起動が遅く何度も起動しなおすのはストレスなので注意。
複数のシナリオを保存可能。新規シナリオを作成する場合は全仮想ノードをOFFにする事。
その他、構成作成に関しては視覚的にわかりやすく、試してみればできるためここでは省略。

f:id:pinn38:20200118171316p:plain
ノード追加を繰り返しトポロジーを作成した図


eveを使ってみて感想 13

CiscoL3SW9台、L2SW2台、JuniperRT台、NxOS-9k2台、PC2台の仮想NWを作成し、全装置起動した。NexusやvQFXを動かす場合はかなりリソースを消費する。私のノートPCのスペックではNexus9Kは2台までしか動かなかった。他は動作が軽いIOSのL3SWで代用。 Cisco以外のNW機器やLinuxなど多数の仮想OSを起動することが可能でGNS3よりいろいろな用途に応用できそう。

f:id:pinn38:20200118171946p:plain
(参考情報)eveを起動しているノートPCのスペック

次回のUP予定
  • eveにJunosのダウンロードとインストール
  • eveの操作、便利な使い方
  • Nexus9K納品後、Ansibleモジュールを使ってみる