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 ~]#