LoginSignup
7
6

More than 5 years have passed since last update.

GNS3でArista cEOSを動かす

Posted at

ネットワークシミュレータ GNS3 はCCNAなどのCisco資格を取る人には必須だ!とよく言われますが、Cisco IOSに限らずいろんなネットワークOSを動作させることができます。例えば

  • Cisco IOS-XRv
  • Juniper vSRX
  • Arista vEOS
  • Arista cEOS
  • RouterOS

などがあります。また、Linuxベースで動作しているGNS3 VMを使うことで、Dockerイメージを取り込んで使うことができます。今回は、Arista NetworksさんからDockerイメージとして提供されているcEOSをGNS3で動かしてみたいと思います。

(あまりEOSに関する記事って見かけないので、使う人が増えるきっかけになればいいなぁ…って)

cEOSのダウンロード

まずはcEOSのイメージを https://www.arista.com/en/support/software-download からダウンロードしてきます。無償でダウンロードできますがアカウント登録が必要です。
本稿執筆時点ではGNS3で動作確認できているのは4.20.5Fなので、このバージョンの「cEOS-lab.tar.xz」をダウンロードしてきます。
download_ceos.png

GNS3 VMへの転送

GNS3 VMのコンソールを開きます。私はVMware Fusionを使っていますので、VirtualBoxを使っている方はウィンドウが違うかと思いますが、表示される内容は同じです。ここでは以下の「ssh」と「Password」の行をメモしておきます。
gns3vm_info.png

先ほどダウンロードしたcEOS-lab.tar.xzをGNS3 VMにSCPで転送します。このときの接続ユーザ名と接続先アドレスは上記の情報を使用します。私の環境では以下のようなコマンドを使用しました。

$ scp cEOS-lab.tar.xz gns3@192.168.44.128:/tmp
Password:(上図の通り、パスワードにgns3を指定)
cEOS-lab.tar.xz                     100%  287MB  27.0MB/s   00:10

GNS3 VMへのcEOS-lab Dockerイメージの組み込み

VMコンソール上でEnterキーを押すか、またはSSHで接続すると以下のようにメニュー画面が表示されます。ここでカーソルキーを使って「Shell」を選択してEnterキーを押下すると以下のようなプロンプトが表示されます。

gns3@gns3vm:~$

先程SCPで転送したcEOS-lab.tar.xzをdockerイメージとして取り込みます。

gns3@gns3vm:~$ docker import /tmp/cEOS-lab.tar.xz ceosimage:4.20.5F
sha256:abaf4912fa0bd4cd7b2de59993c5b77a3257f39595455ddef1f765770552f05d

dockerイメージを以下のコマンドでrunさせます。

gns3@gns3vm:~$ echo "rm /etc/systemd/system/getty.target.wants/getty@tty1.service" | \
docker run --name=ceos-container -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceossim -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i ceosimage:4.20.5F sh

正常にrunできたコンテナをGNS3から呼び出せるように登録します。

gns3@gns3vm:~$ docker commit --change='CMD ["/sbin/init"]' --change='VOLUME /mnt/flash' ceos-container ceosimage:GNS3
sha256:3713d365745645cf8cbd1cfd5841dc17baf5efd3726d2954f063a7d6aeb0b329

最後に、登録に使ったインスタンスを削除します。

gns3@gns3vm:~$ docker rm ceos-container
ceos-container

GNS3への登録

ではGNS3で動かしてみましょう。まずはノードが使えるように登録します。Switchesのドロップダウンから「Available appliances」をクリックします。
スクリーンショット 2018-12-08 10.33.54.png

cEOSのノードをトポロジエリアにドラッグします。
スクリーンショット 2018-12-08 10.35.16.png

「Add Appliance」画面が表示されます。そのまま「Next」をクリックします。
スクリーンショット 2018-12-08 10.36.05.png
次も「Next」
スクリーンショット 2018-12-08 10.36.14.png
次も「Next」
スクリーンショット 2018-12-08 10.36.19.png
最後に「Finish」をクリックします。
※実は先程までの実行すべきコマンドはすべてここに記載があります :sweat_smile:
スクリーンショット 2018-12-08 10.36.26.png
「cEOS installed!」が表示されたらインストール完了です。
スクリーンショット 2018-12-08 10.36.33.png

動作確認

Switchesのドロップダウンリストを「Available appliances」から「Installed appliances」に変更します。
スクリーンショット 2018-12-08 10.36.59.png
cEOSがノード一覧に追加されていることを確認します。
スクリーンショット 2018-12-08 10.38.32.png
あとは他のノードと同じようにトポロジエリアに登録して、Startさせてみてください。問題なければサマリ表示で緑ランプが点灯(動作中)になります。
スクリーンショット 2018-12-08 10.41.18.png

コンソールを開いて、ユーザ名admin(パスワードなし)でログインすると、cEOS 4.20.5Fが動作していることがわかります。

localhost login: admin
localhost>show version
Arista cEOSSim
Hardware version:
Serial number:       N/A
System MAC address:  02f6.21ac.c73b

Software image version: 4.20.5F
Architecture:           i386
Internal build version: 4.20.5F-8127914.4205F
Internal build ID:      4d6b4859-39b5-4581-993b-f84ac0736664

cEOS tools version: 1.0

Uptime:                 45 minutes
Total memory:           4029500 kB
Free memory:            3115376 kB

あとは自由に 遊んで 試してみましょう!IOSやIOS-XRv、vSRXやvyOSなどマルチベンダ環境での動作確認や、cEOSばかりで大きめのトポロジを作るなど。vEOSのようなVMではなく軽量なdockerコンテナですので、より多くのノードを動かすことができます。
私のMacbookAir(Mid2013 Core-i7 RAM8GB)でGNS3 VMにRAM4GB割り当てた環境でも、vEOSだと2ノード起動(まともに動作は難しい)が限界でしたが、cEOSなら7ノードまで問題なく動作させることができました。

使用上の注意

GNS3で登録したcEOSは、内部ではEthernet1からEthernet7までの7つの物理インターフェースが使用できるようになっています。

localhost>show interface status
Port       Name        Status       Vlan     Duplex Speed  Type            Flags
Et1                    connected    1        full   unconf EbraTestPhyPort
Et2                    connected    1        full   unconf EbraTestPhyPort
Et3                    connected    1        full   unconf EbraTestPhyPort
Et4                    connected    1        full   unconf EbraTestPhyPort
Et5                    connected    1        full   unconf EbraTestPhyPort
Et6                    connected    1        full   unconf EbraTestPhyPort
Et7                    connected    1        full   unconf EbraTestPhyPort

ですが、GNS3でリンクを接続できるポートには「eth0」が存在します。
スクリーンショット 2018-12-08 10.45.32.png

これは実機で言うところのマネジメントポートに相当するようです。ですので、他のノードとつないで使う場合はeth0は使わないようにする必要があります。
なお、ManagementインターフェースはcEOSでは使えないらしく、設定すらできないようです。

localhost>en
localhost#conf t
localhost(config)#int management0
% Unavailable command (not supported on this hardware platform)
7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6