これは Network engineering Advent Calendar 2018 の17日目の記事です。
■ はじめに
Arista EOS には、コンテナ版の「cEOS」という製品があります。この cEOS の検証用として無償の「cEOS-lab」というものがあります。
2018年11月に開催された Red Hat Forum Tokyo 2018 内の「Arista Networksが実現するAnsibleによるネットワーク自動化とcEOS-labを使ったネットワークシミュレーション」というセッションでも紹介がありました。
この記事ではシンプルに、1台だけの cEOS-lab の環境を構築してみたときの手順をご紹介します。
なお、GNS3上で動かす方法はで以下のエントリで紹介されています。 qiita.com
■ 構築手順
イメージのダウンロード
arista.com のダウンロードページ(要ログイン)から cEOS-lab のイメージをダウンロードします。 今回は 4.21.2F を選択しました。
cEOS-lab(検証用・無償) と cEOS(製品版) は別物ですのでご注意下さい。
import と create
ダウンロードした cEOS-lab のイメージを import します。
$ sudo docker import cEOS-lab.tar.xz ceos:latest
続いて、create します。
$ sudo docker create --name=ceos --privileged -p 443:443 -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceoslab -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i -t ceos:latest /sbin/init
もし、cEOS-lab 4.20.5F のイメージを利用する場合は、EOS_PLATFORM
という変数の値は、ceossim
を指定します。(ceoslab
ではなく)
ネットワークの作成と接続
今回は、 docker0
以外に、もう一つ足を生やす先として net1
というネットワークを作成して、接続します。
$ sudo docker network create net1 $ sudo docker network connect net1 ceos
start
コンテナを start します。
sudo docker start ceos
少々時間をおきます。
CLI へのアクセス
CLI へアクセスします。
$ sudo docker exec -it ceos Cli localhost>
コンテナが起動しおわっていない状態で上記コマンドを実行すると、CLIにアクセスできなかったり、プロンプトが localhost>
にならなかったりします。
動作確認
簡単な動作確認として、show version
と show running-config
コマンドを実行してみます。
localhost#show version Arista cEOSLab Hardware version: Serial number: N/A System MAC address: Not available Software image version: 4.21.2F-10430819.4212F (engineering build) Architecture: i386 Internal build version: 4.21.2F-10430819.4212F Internal build ID: 7b26fbef-3d08-4910-bb95-df08faaa5b13 cEOS tools version: 1.1 Uptime: 0 weeks, 0 days, 0 hours and 21 minutes Total memory: 1882836 kB Free memory: 511160 kB localhost#show running-config ! Command: show running-config ! device: localhost (cEOSLab, EOS-4.21.2F-10430819.4212F (engineering build)) ! transceiver qsfp default-mode 4x10G ! spanning-tree mode mstp ! no aaa root ! interface Ethernet1 ! no ip routing ! end localhost#
コンフィグには、コンテナネットワーク net1
に接続している interface Ethernet1
があることを確認できます。
■ まとめ
Arista EOS 検証用コンテナ版「cEOS-lab」で1台の環境を構築する手順をご紹介しました。
同じく、検証用途の仮想EOSとして vEOS-labもあります。検証環境の特性に応じて使い分けるのが良いと思います。
なお、2台以上の環境を docker-compose や docker-topo(複雑なコンテナネットワークをyamlで定義できるツール) を利用して構築する手順は、Arista 公式Blog (要ログイン)「Network CI/CD Part 1 – Building network topologies with Docker and cEOS-lab」に紹介されています。記事中の docker create
コマンドですが、 docker create --name=ceos --privileged
となるべきところが、docker create –name=ceos –privileged
となっています(おそらく何らかの自動変換の結果)。そのままコピペで実行するとエラーになるのでご注意ください。