お伝えしたいこと
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セットアップ後の検証を行う上で大変役に立ちます。