てくなべ (tekunabe)

ansible / network / automation / StackStorm

Arista EOS の検証用コンテナ版「cEOS-lab」の環境構築手順(1台編)


これは 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 の環境を構築してみたときの手順をご紹介します。

  • 環境
    • CentOS Linux release 7.5.1804
    • Docker version 1.13.1
    • cEOS-lab 4.21.2F

なお、GNS3上で動かす方法はで以下のエントリで紹介されています。 qiita.com


■ 構築手順

イメージのダウンロード

arista.com のダウンロードページ(要ログイン)から cEOS-lab のイメージをダウンロードします。 今回は 4.21.2F を選択しました。

f:id:akira6592:20181217150703p:plain
4.21.2F の cEOS-lab を選択

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 versionshow 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 となっています(おそらく何らかの自動変換の結果)。そのままコピペで実行するとエラーになるのでご注意ください。