Arista cEOSの使い方について説明します。cEOSはAristaのコンテナ版ネットワーク機器です。このページではdocker composeを使ったcEOSの操作例を紹介します。
- Arista vEOSの基本的な使い方
- Arista cEOSの基本的な使い方
- Arista cEOS docker-composeを使った操作例 (いまここ)
- Arista cEOS docker-topoを使った操作例
- Arista EOSの基本操作 SSHログインが出来るようになるまで
- Arista EOS vxlanの設定紹介
- Arista EOS Layer2 EVPNの設定紹介
- Arista EOS Layer3 EVPNの設定紹介
- Arista EOS Layer3 EVPNとダイナミックルーティングの併用
- Arista EOS MLAGの設定方法
- Arista EOS 実践的なvxlan設定
- Arista EOS 実践的なLayer2 EVPN設定
- Arista EOS アップリンク二重障害の対応
- Arista EOS 実践的なLayer3 EVPN設定
- Arista EOS 実践的なEVPNとダイナミックルーティング併用例
- Arista EOS ゼロタッチプロビジョニングの設定
事前準備
Arista cEOSの基本的な使い方を見ながら、Arista cEOSのDockerイメージのインポートが完了している前提で操作方法を説明します。
cEOSの起動
docker-compose.ymlの作成
Arista cEOSの基本的な使い方で紹介した方法は、docker container, docker networkなどのコマンドを使いながらコンテナの構成を定義しましたが、docker-composeはこれら定義をyamlファイルで定義する方法です。もし、何度も使い回すような「よく使う」検証構成があるならば、Docker Composeを使った方が得策でしょう。
まずは構成となるyamlファイルを作成します。物理構成は以下の通りです。
e1 +-----+ e2
+----+ceos1+----+
| +-----+ |
| e1 e1 |
+--+--+ +--+--+
|ceos2+---------+ceos3|
+-----+ e2 e2 +-----+
この物理構成を再現するyamlファイルの例は以下の通りです。yamlファイルの名前は「docker-compose.yml」としてください。「docker-compose.yml」とした場合は、docker-composeコマンド実行時にyamlファイルのパス指定を省略する事ができます。
cat << EOF > docker-compose.yml
version: '3'
services:
ceos1:
hostname: ceos1
image: "ceos:4.24.2.2F"
command: /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
privileged: true
environment:
INTFTYPE: eth
ETBA: 1
SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT: 1
CEOS: 1
EOS_PLATFORM: ceoslab
container: docker
networks:
mgmt:
net12:
net13:
ceos2:
hostname: ceos2
image: "ceos:4.24.2.2F"
command: /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
privileged: true
environment:
INTFTYPE: eth
ETBA: 1
SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT: 1
CEOS: 1
EOS_PLATFORM: ceoslab
container: docker
networks:
mgmt:
net12:
net23:
ceos3:
hostname: ceos3
image: "ceos:4.24.2.2F"
command: /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
privileged: true
environment:
INTFTYPE: eth
ETBA: 1
SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT: 1
CEOS: 1
EOS_PLATFORM: ceoslab
container: docker
networks:
mgmt:
net13:
net23:
networks:
mgmt:
net12:
net13:
net23:
EOF
コンテナの起動
以下のコマンドでコンテナを起動します。
docker-compose up -d
正常にコンテナが起動した事を確認します。
[root@sandbox019 ~]# docker-compose up -d
Creating network "root_mgmt" with the default driver
Creating network "root_net12" with the default driver
Creating network "root_net13" with the default driver
Creating network "root_net23" with the default driver
Creating root_ceos3_1 ... done
Creating root_ceos2_1 ... done
Creating root_ceos1_1 ... done
[root@sandbox019 ~]#
[root@sandbox019 ~]# docker-compose ps
Name Command State Ports
-------------------------------------------------------------
root_ceos1_1 /sbin/init systemd.setenv= ... Up
root_ceos2_1 /sbin/init systemd.setenv= ... Up
root_ceos3_1 /sbin/init systemd.setenv= ... Up
[root@sandbox019 ~]#
コンテナ操作方法
以下のようなコマンドでcEOSにログインします。第3引数のceos1などの値は、yamlファイルで定義したサービス名を指定します。
docker-compose exec ceos1 Cli docker-compose exec ceos2 Cli docker-compose exec ceos3 Cli
操作画面は以下のようになります。

設定例の紹介
動作確認として3台の間でBGPを確立し、互いのLoopback同士が疎通可能になる事を確かめます。
e1 +-----+ e1
+-------------+ceos1+------------+
| .1 +-----+ .1 |
| 192.168.12.0/24 | 192.168.13.0/24
e1 | .2 .3 | e1
+--+--+ .2 192.168.23.0/24 .3 +--+--+
|ceos2+--------------------------+ceos3|
+-----+ e2 e2 +-----+
Loopback Loopback
10.1.1.1/32 10.2.2.2/32
BGPの設定例は以下の通りです。
疎通確認は以下の通りです。
ceos1#show ip bgp summary
BGP summary information for VRF default
Router identifier 10.1.1.1, local AS number 65000
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
192.168.12.2 4 65000 48 48 0 0 00:07:11 Estab 1 1
192.168.13.3 4 65000 6 6 0 0 00:00:10 Estab 1 1
ceos1#
ceos1#show ip route bgp
VRF: default
Codes: C - connected, S - static, K - kernel,
O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
N2 - OSPF NSSA external type2, B - BGP, B I - iBGP, B E - eBGP,
R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
NG - Nexthop Group Static Route, V - VXLAN Control Service,
DH - DHCP client installed default route, M - Martian,
DP - Dynamic Policy Route, L - VRF Leaked,
RC - Route Cache Route
B I 10.2.2.2/32 [200/0] via 192.168.12.2, Ethernet1
B I 10.3.3.3/32 [200/0] via 192.168.13.3, Ethernet2
ceos1#
ceos1#ping 10.2.2.2 source Loopback0
PING 10.2.2.2 (10.2.2.2) from 10.1.1.1 : 72(100) bytes of data.
80 bytes from 10.2.2.2: icmp_seq=1 ttl=64 time=0.145 ms
80 bytes from 10.2.2.2: icmp_seq=2 ttl=64 time=0.032 ms
80 bytes from 10.2.2.2: icmp_seq=3 ttl=64 time=0.038 ms
80 bytes from 10.2.2.2: icmp_seq=4 ttl=64 time=0.025 ms
80 bytes from 10.2.2.2: icmp_seq=5 ttl=64 time=0.027 ms
--- 10.2.2.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.025/0.053/0.145/0.046 ms, ipg/ewma 0.068/0.097 ms
ceos1#
cEOSの停止と削除
以下のコマンドでコンテナおよびネットワークを削除する事ができます。
docker-compose down
コマンドを実行すると以下のような出力が見られます。削除されてたコンテナおよびネットワークが想定通りであるかどうかを目視確認しておきましょう。
[root@sandbox019 ~]# docker-compose down Stopping root_ceos3_1 ... done Stopping root_ceos2_1 ... done Stopping root_ceos1_1 ... done Removing root_ceos3_1 ... done Removing root_ceos2_1 ... done Removing root_ceos1_1 ... done Removing network root_mgmt Removing network root_net12 Removing network root_net13 Removing network root_net23 [root@sandbox019 ~]#
