この記事では、GNS3の導入からスイッチング(L2)とルーティング(L3)領域の学習/検証環境を作成する手順を整理する。
ここでは Arista EOS の環境を作り L2, L3 の検証環境とする。
1. GNS3 インストール
GNS3 公式からインストーラをダウンロード。
ダウンロードにあたりアカウント作成が必須。
基本はインストーラに従えば良い。迷いそうなところは下記にならう。
GNS3 VM を選択
忘れても公式からVMだけダウンロード可能。
GNS3 VM 上で仮想のルーターやスイッチ等を作成しネットワークを構成する。
有償アプリは不要なので"No"で良い
2. VMware Workstation 準備
GNS3 VM をインポート
ダウンロードしたGNS3 VM.ovaを VMware Workstation で開く。
※ 基本はデフォルト値のまま。メモリはホストPCの半分を目安に割り当てたい。
3. GNS3 設定
GNS3 と GNS3 VM の紐づけ
仮想化ソフトウェア、VM名 を一致させる。他はよしなに。
・ Edit > Preferences > GNS3 VM

GNS3 と TeraTerm の紐づけ
GNS3上で動作させるネットワーク機器のコンソールを開くソフトの指定例
※ 以下はTeraTermと紐づける例

4. GNS3 に Arista cEOS を導入
cEOS をダウンロードする
Arista 公式 から cEOS ファイルをダウンロードする。
ダウンロードにはアカウントが必須。

cEOS のコンテナを作成する
SCP等で GNS3 VM に取得した cEOSファイルを入れておく。
GNS3 VM 上で以下のコマンドを、バージョンとファイル名を調整し実行する。
3回クリックで1行ずつ選択するなどして、改行位置に気を付けること。
docker import cEOS64-lab-4.36.0.1F.tar ceosimage:4.36.0.1F
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=ceoslab -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i ceosimage:4.36.0.1F sh
docker commit --change='CMD ["/sbin/init"]' --change='VOLUME /mnt/flash' ceos-container ceosimage:GNS3
docker rm ceos-container

アプライアンスを取得
GNS3 Marketplace から cEOS のアプライアンスをダウンロード。
ダウンロードしたアプライアンスをインポート

cEOS のテンプレート編集
アプライアンスをインポートしたことで作成されたテンプレートを編集する。
"start commands" に以下の1行を設定する。
/sbin/init systemd.setenv=INTFTYPE=eth systemd.setenv=ETBA=1 systemd.setenv=SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 systemd.setenv=CEOS=1 systemd.setenv=EOS_PLATFORM=ceoslab systemd.setenv=container=docker

5. Arista cEOS の起動
テンプレートからドラッグ&ドロップ したのち起動。
右クリックし "Auxiliary console" からターミナルに入る。
