お伝えしたいこと
Arista vEOSをGNS3上で起動するためのセットアップ手順を紹介します。
Arista vEOSとは、Arista社が提供するL3SWの仮想アプライアンス (VM版) です。
今回は仮想化ドライバにQEMUを使います。
QEMUは、GNS3をLinux上で動かしている方に向いています。
- お伝えしたいこと
- Arista vEOSのダウンロード
- vEOSをGNS3に登録する
- vEOSの起動
- (参考) Arista vEOSへのログイン
- (参考) ZTPとは
- (参考) ZTPを無効化する方法
- (任意) ZTPを予め無効化しておく
- まとめ
- 参考サイト
Arista vEOSのダウンロード
Arista Software Downloadのページからダウンロードします。
(※) URLの通り、トップページからSupport > Software DownloadのリンクでSoftware Downloadページにアクセスできます
このページにアクセスするには、Arista社にユーザー登録する必要があります。
vEOSを利用するだけであれば、Arista社から製品を購入していなくてもアカウント登録できます。
アカウント登録完了から実際にログインできるまで、数十分ほどラグがあったと思います。
ログインできたら下の方へスクロールし、vEOS-lab配下の以下2ファイルをダウンロードしてください。
- Aboot-veos-serial-x.x.x.iso (最新版を選択)
- vEOS64-lab-x.xx.xM.vmdk (
Mがつく中で最新版を選択)

(参考) AbootとAboot-serial
AbootはvEOSのBootloaderです。
Aboot-veosはシリアルコンソール非対応版、Aboot-veos-serialはシリアルコンソール対応版です。
vEOSをGNS3上で動かす場合はシリアルコンソールに対応していたほうが便利なので、Aboot-veos-serialを使いましょう。
(参考) vEOSの推奨バージョンの選び方
Arista Software DownloadのRecommended Releasesタブに記載がありますが、Arista vEOSの推奨バージョンはMがつく中での最新版です。
MはMaintenance Releaseという意味であり、いわゆる安定版です。
基本的にはM付きの最新版を選ぶのが無難です。
Fというフラグがついたバイナリもありますが、これはFeatureの略です。
最新版の機能を追加したリリースであることを意味しています。
どうしても試したい機能が最新版でリリースされたときのみ、最新版のF付きリリースを試しても良いかもしれません。
vEOSをGNS3に登録する
手順の大半はGNS3・QEMU上でLinuxを起動すると同様です。
したがって、今回はややシンプルに手順を説明します。
詳細が気になった方は、上記記事をご確認ください。
(参考) vEOSの動作要件
CloudEOS and vEOS Router - Using the vEOS Router on KVM and ESXiによると、vEOSの動作要件は以下のとおりです。
| 項目 | 推奨値 |
|---|---|
| vCPUコア数 | 最低2コア、最大16コア |
| RAMサイズ | 最低4GiB |
| ディスクサイズ | 最低8GiB |
| 仮想NIC数 | 最大8まで |
仮想ディスクファイルの格納
#Arista vEOSのダウンロードでダウンロードした2ファイルを~/GNS3/images/QEMU/配下に格納してください。
これらのファイルは、現在のユーザーが読み書きできる必要があります。
(正確には、gns3serverプロセスが読み書きできる必要があります)
ls -l ~/GNS3/images/QEMU/Aboot-veos-serial*.iso ~/GNS3/images/QEMU/vEOS64-lab*.vmdk # -rw-r--r--. 1 endy endy 6291456 Apr 29 12:06 /home/endy/GNS3/images/QEMU/Aboot-veos-serial-8.0.1.iso # -rw-r--r--. 1 endy endy 473235456 Apr 29 12:07 /home/endy/GNS3/images/QEMU/vEOS64-lab-4.26.5M.vmdk
GNS3にQEMU仮想マシンとして登録する
本セクションでは、準備した仮想ディスクファイルをGNS3に登録します。
まずはGNS3を起動し、Edit > Preferences (Ctrl+Shift+P) から設定画面を開きます。
左のメニューからQEMU VMsを選択し、NewボタンからQEMUで再生する仮想マシンを新規登録します。

わかりやすい仮想マシン名を入力します。
今回はvEOSとします。

QEMUコマンドのパスを指定します。
今回は/usr/bin/qemu-kvmとします。
RAMサイズはvEOSの動作要件に合わせて4096 MiBとします。

コンソールタイプを選択します。
シリアルコンソールが便利なので、telnetを選択します。

セットするディスクファイルを選択します。
ここではAboot-veos-serial-x.x.x.isoを選択します。
vEOS64-lab-x.xx.xM.vmdkは、後ほどVMの編集画面でセットします。

QEMU仮想マシンをカスタマイズする
前セクションで登録した仮想マシンを更にカスタマイズします。
作成した仮想マシンを選択し、Editから更に設定変更します。

以降のセクションでは、変更した箇所をピンクの枠で囲みます。
General settings
アイコンはL3SWに近い印象のswitch_multilayerを選択しました。
CPUコア数は、ホストマシンのスペックに応じてご検討ください。

HDD
Disk interfaceはvirtioを選択します。
また、ディスクファイルは以下のようにセットしてください (※)。
ディスクファイルは~/GNS3/images/QEMU/配下に格納されています。
(※) CloudEOS and vEOS Router - Launching vEOS in LinuxBridge ModeによるとISOファイルをHDCに、ディスクファイル (qcow2)をHDAにセットしていますが、これでは動きません。Abootを先に起動し、Abootからディスクファイル内のEOSを起動するのが本来の起動順序なので、Abootの方が起動の優先順位を高くする必要があります。LinuxQuestions.org - IDE master/slaveの情報も踏まえ、起動デバイスであるAbootをPrimary Masterに配置するのが良いでしょう
| 接続先 | ディスクファイル |
|---|---|
| HDA (Primary Master) |
Aboot-veos-serial-x.x.x.iso |
| HDB (Primary Slave) |
vEOS64-lab-x.xx.xM.vmdk |

CD/DVD
CD/DVDは特にいじりません。

Network
Arista vEOSを含め、多くのNW機器の仮想アプライアンスは先頭ポートがManagement、2ポート目以降がサービスポートという扱いになります。
Arista vEOSの場合、ポートアサインは下表のようになります。
(※) ポートアサインは実機にログインして確認しました
| VMのNIC番号 | vEOS上のinterface# |
|---|---|
| 0 | Management1 |
| 1 | Ethernet1 |
| 2 | Ethernet2 |
| 3 | Ethernet3 |
| 4 | Ethernet4 |
| 5 | Ethernet5 |
| 6 | Ethernet6 |
| 7 | Ethernet7 |
GNS3上も上記のような表示名で見せるために、下図のような設定としました。
Ma1のような省略表記にした理由は、トポロジ上のNIC番号は短い表記の方が扱いやすいためです。
NIC数は動作要件に合わせて8に、性能向上のためにドライバはvirtioにしました。

Advanced
Advancedは特にいじりません。

Usage
最低限のコメントのみ書いておきました。

vEOSの起動
登録したvEOSをGNS3上で起動します。
SwitchのカテゴリからvEOSをドラッグ&ドロップで追加します。

vEOSのアイコンを右クリックし、Startを選択して起動します。

vEOSのアイコンをダブルクリックしてシリアルコンソール接続します。
ターミナルが起動しない場合は、GNS3・QEMU上でLinuxを起動する - #Console applicationsを参考にしつつ、GNS3が既定で呼び出すコンソールアプリケーションを設定してください。
(参考) Arista vEOSへのログイン
起動には数分かかります。
大量のsyslogメッセージが見えてきた頃にEnterキーを押すとログインプロンプトが出てきます。
adminユーザーでログインします。
パスワードは不要です。
ログイン後、以下のコマンドを実行してZTP (※) を停止します。
ZTPを停止しないとstartup-configを生成できないためです。
zerotouch cancel
zerotouch cancelを実行すると、vEOSが再起動します。
起動してきたら再びログインし、以下のコマンドを実行します。
enable copy running-config startup-config
これでZTPが恒久的に停止します。
(参考) ZTPとは
ZTPとは、Zero Touch Provisioningの略語です。
LinuxでいうPXE Bootと似たような概念です。
ZTPを利用すれば、Aristaの管理ポートを接続して電源投入するだけでコンフィグ投入が自動的に完了します。
ZTPの原理は、専用のZTP用サーバからDHCPでIPアドレスを受け取り、startup-configかスクリプトをダウンロードしてセットアップを行うというものです。
(参考) ZTPを無効化する方法
参考: YouTube - Networking Institute - Implementing Zero Touch Provisioning(ZTP) on Arista Switches
(※) 無料ユーザーではArista公式情報から詳細な情報を得られませんでした。Networking Instituteは、非公式ながらAristaの情報について正確かつ詳細に解説しているので、今回こちらを情報源とさせていただきました
Arista EOSの起動時、以下の2つの条件を満たせばZTPが開始されます。
(※) zerotouch cancelという例外パターンもありますが、この後説明します
/mnt/flash/startup-configが存在しないこと/mnt/flash/zerotouch-configにDISABLE=Trueと書かれていないこと
初期状態のArista EOSは、上記のどちらのファイルも存在しないためZTPを開始する条件が揃っています。
ZTPを停止する方法は大きく分けて2つあります。
zerotouch cancelを実行し、再起動後にcopy running-config startup-configを実行するzerotouch disableを実行する
zerotouch cancelを実行すると、直後にEOSが再起動します。
そしてZTPが無効化された状態でEOSが起動します。
zerotouch cancelによるZTPの無効化は一時的なものです。
copy running-config startup-configによって/mnt/flash/startup-configを生成すれば、ZTPの無効化が永続的なものとなります。
startup-config生成前に再び再起動すると、ZTPが有効化されて起動してきます。
zerotouch disableによるZTPの有効化は永続的なものです。
このコマンドの実行により/mnt/flash/zerotouch-configにDISABLE=Trueが書き込まれます。
これにより、startup-configの有無に関わらずZTPが永続的に無効化されます。
(任意) ZTPを予め無効化しておく
ZTPを使わない場合、毎回zerotouch cancelを実行するのは面倒だと思います。
そこで、本セクションでは予めZTPを無効化した上でテンプレート化するための手順を紹介します。
まず、~/GNS3/images/QEMU/配下にあるvEOSのvmdkファイルをコピーしておきます。
cd ~/GNS3/images/QEMU/ cp -pi vEOS64-lab-4.26.5M.vmdk vEOS64-lab-4.26.5M_zerotouch_disable.vmdk
続いて、GNS3を起動して設定画面を開きます (Ctrl+Shift+P)。
QEMU VMsセクションにて、作成済みのvEOSの設定をコピーします。
新しいVMの名前を求められるので、vEOS (ZTP Disabled)としておきます。

続いてEditからvEOS (ZTP Disabled)の設定をカスタマイズします。

General settingsタブで、Default name formatを{name}-{0}からvEOS-{0}に変更します。

HDDタブで、HDBに先ほどコピー作成したvmdkファイルをセットします。
(※) vEOS64-lab-x.xx.xM_zerotouch_disable.vmdk

Advancedタブで、Use as a linked base VMのチェックを外します。
これにより、GNS3上にVMを追加した際のVMクローン処理が無効化され、VMテンプレートを直接書き換えることができます。

作成したvEOS (ZTP Disabled)をGNS3上で起動します。

起動したvEOSにシリアルコンソールで接続し、adminユーザーでログインします。
そして以下のコマンドを実行することでZTPを恒久的に無効化します。
zerotouch disable
vEOSの再起動後、再びadminユーザーでログインします。
そして、以下のコマンドによってOSをシャットダウンします。
enable bash sudo shutdown -h now
vEOSをGNS3上で右クリックして削除します。
これによってvEOS (ZTP Disabled)はGNS3のトポロジ上からは消えますが、実際にはZTPが無効化された設定込のデータが~/GNS3/images/QEMU/vEOS64-lab-x.xx.xM_zerotouch_disable.vmdkに残っています。

最後に、vEOS (ZTP Disabled)の設定を開き、AdvancedタブからUse as a linked base VMを再び有効化します。

以上の操作により、ZTPが無効化されたvEOSテンプレートを作成できました。
まとめ
Arista vEOSをGNS3上にQEMU VMとして追加する手順を紹介しました。
前回記事のLinuxやVPCSと組み合わせれば、vEOSを使った一通りのハンズオンができると思います。
参考サイト
ネットワークチェンジニアとして - Arista vEOSの基本的な使い方
Arista vEOSのダウンロード方法について、本ブログよりも更に丁寧に解説されています。
またGNS3ではありませんが、ESXiへのvEOS登録手順が解説されています。
vEOSのダウンロードとセットアップ手順を調べる際、大いに参考にさせていただきました。
記事内のリンクにvEOSでよく使いそうなMLAGやVXLAN、EVPNの解説もあります。
こちらは、GNS3セットアップ後の検証を行う上で大変役に立ちます。