Arista cEOSの使い方について説明します。cEOSはAristaのコンテナ版ネットワーク機器です。実機は非常に高額ですので、簡単には購入できません。予算制約で動作確認用途や自動化開発用途の機器が購入できないのはよくある話かと思いますので、動作確認用途や自動化開発用途などで使用するのが最もよくあるユースケースかと思います。
- 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公式サイトをブラウザで開きます。
アカウント未作成の方は「Need a User Account?」からアカウントを作成します。
アカウント作成済の方は「Email」を入力し「Continue」を押下してログインします。
ログイン後、画面を下へスクロールさせ、「Software Downloads」を押下します。
画面を下へスクロールさせ、「cEOS-lab」のタブを開き、「cEOS64-lab-4.24.2.2F.tar.xz」と「cEOS-lab-README-generic.txt」をダウンロードします。「cEOS-lab-README-generic.txt」は操作に必須ではありませんが、cEOSを動かすためのメモ書きが記載されています。
32bit OSを使用の方は「cEOS-lab-4.24.2.2F.tar.xz」をダウンロードします
cEOSの起動
Dockerイメージのインポート
以下のようなコマンドでDockerイメージをインポートします。Aristaはライフサイクルが早く、複数バージョンの動作確認が必要になることもあるでしょう。
イメージ対して付与するタグの名前は「latest」ではなく「4.24.2.2F」などのバージョン番号を付与しておいた方が、後々の運用がやりやすくなると思います。
docker import cEOS64-lab-4.24.2.2F.tar.xz ceos:4.24.2.2F
Dockerイメージが正常にインポートされた事を確認します。
[root@sandbox019 ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE ceos 4.24.2.2F 74bd2ae92ca7 2 minutes ago 1.77GB [root@sandbox019 ~]#
コンテナの作成
動作確認例としてコンテナを2つ作成するコマンドを紹介します。以下のようなコマンドでコンテナを2つ作成します。
コンテナ作成時に与える引数は「cEOS-lab-README-generic.txt」の説明を転記したものになります。
docker create \ --name=ceos1 \ --privileged \ -e INTFTYPE=eth \ -e ETBA=1 \ -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 \ -e CEOS=1 -e EOS_PLATFORM=ceoslab \ -e container=docker \ -i -t ceos:4.24.2.2F /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 docker create \ --name=ceos2 \ --privileged \ -e INTFTYPE=eth \ -e ETBA=1 \ -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 \ -e CEOS=1 -e EOS_PLATFORM=ceoslab \ -e container=docker \ -i -t ceos:4.24.2.2F /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
コンテナが作成された事を確認します。
[root@sandbox019 ~]# docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6f747a9da592 ceos:4.24.2.2F "/sbin/init systemd.…" 10 seconds ago Created ceos2 fedc77890b15 ceos:4.24.2.2F "/sbin/init systemd.…" About a minute ago Created ceos1 [root@sandbox019 ~]#
ネットワークの作成
以下のようなネットワークを作成します。
+-----+ e1 e1 +-----+ | +---------+ | |ceos1| |ceos2| | +---------+ | +-----+ e2 e2 +-----+
Docker内部のネットワークを作成します
docker network create net1 docker network create net2 docker network connect net1 ceos1 docker network connect net1 ceos2 docker network connect net2 ceos1 docker network connect net2 ceos2
想定通りのネットワークが作成された事を確認します。
[root@sandbox019 ~]# docker network ls NETWORK ID NAME DRIVER SCOPE b3dcd208e62f bridge bridge local da0f2bd62a46 host host local 8a9e5d4b51ba net1 bridge local 502309b582f8 net2 bridge local aec628798419 none null local [root@sandbox019 ~]# [root@sandbox019 ~]# [root@sandbox019 ~]# docker container inspect ceos1 <omitted> "net1": { "IPAMConfig": {}, <omitted> "net2": { "IPAMConfig": {}, <omitted> [root@sandbox019 ~]# [root@sandbox019 ~]# [root@sandbox019 ~]# docker container inspect ceos2 <omitted> "net1": { "IPAMConfig": {}, <omitted> "net2": { "IPAMConfig": {},
コンテナ起動
以下のコマンドでコンテナを起動します。
docker start ceos1 docker start ceos2
コンテナが起動した事を確認します。
[root@sandbox019 ~]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6f747a9da592 ceos:4.24.2.2F "/sbin/init systemd.…" 16 minutes ago Up 4 seconds ceos2 fedc77890b15 ceos:4.24.2.2F "/sbin/init systemd.…" 16 minutes ago Up About a minute ceos1 [root@sandbox019 ~]# <h2>cEOSの操作</h2> <h3>コンテナ操作方法</h3> コンテナを操作するには以下のようにdocker execコマンドでコンテナ内でCliコマンドを実行すると、よく見るCLIモードの操作が可能になります。 docker exec -i -t ceos1 Cli docker exec -i -t ceos2 Cli
操作画面は以下のようになります。
設定例の紹介
動作確認として2台の間でOSPFを確立し、互いのLoopback同士が疎通可能になる事を確かめます。
+-----+ .1 192.168.12.0/24 .2 +-----+ | +-------------------------+ | |ceos1| |ceos2| | +-------------------------+ | +-----+ .1 192.168.21.0/24 .2 +-----+ Loopback Loopback 10.1.1.1/32 10.2.2.2/32
OSPFの設定例は以下の通りです。
vEOS, cEOSは物理機器の全ての機能が使えるわけではありません。また、サポート対象外ですので不具合に対しては自己責任で解決する必要があります。例えば、この手順で紹介したcEOSのバージョンならばルーテッドポート(no switch port)に対してIPアドレスを付与すると、そのインターフェースでOSPFを有効に出来ない不具合が発生します。このような不具合が発生した時に、他の設定方法を探すか、自力でバグフィックスするかの対応が必要です。
疎通確認は以下の通りです。
ceos1#show ip ospf neighbor Neighbor ID Instance VRF Pri State Dead Time Address Interface 10.2.2.2 1 default 1 FULL/DR 00:00:37 192.168.12.2 Vlan12 ceos1#show ip route 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 Gateway of last resort is not set C 10.1.1.1/32 is directly connected, Loopback0 O 10.2.2.2/32 [110/20] via 192.168.12.2, Vlan12 C 192.168.12.0/24 is directly connected, Vlan12 C 192.168.21.0/24 is directly connected, Vlan21 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=4.08 ms 80 bytes from 10.2.2.2: icmp_seq=2 ttl=64 time=3.53 ms 80 bytes from 10.2.2.2: icmp_seq=3 ttl=64 time=3.48 ms 80 bytes from 10.2.2.2: icmp_seq=4 ttl=64 time=3.58 ms 80 bytes from 10.2.2.2: icmp_seq=5 ttl=64 time=3.47 ms --- 10.2.2.2 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 16ms rtt min/avg/max/mdev = 3.474/3.634/4.087/0.229 ms, ipg/ewma 4.053/3.852 ms ceos1#
cEOSの停止と削除
コンテナの停止および削除
コンテナの停止と削除を同時に行う操作例は以下の通りです。
docker container rm -f ceos1 docker container rm -f ceos2
ネットワーク削除
ネットワークを削除する操作例は以下の通りです。
docker network rm net1 docker network rm net2