検証環境構築 Containerlab

環境構築

本ページではNWLABで必要になるContainerlabの環境構築について解説します。

前提条件

下記の記事でまとめたLinux環境が作成済みであること。

構築手順

Containerlabのインストール

bash -c "$(curl -sL https://get.containerlab.dev)" -- -v 0.59.0

下記のようになればOKです。

izumin@nwlab-mini:~$ containerlab version
  ____ ___  _   _ _____  _    ___ _   _ _____ ____  _       _
 / ___/ _ \| \ | |_   _|/ \  |_ _| \ | | ____|  _ \| | __ _| |__
| |  | | | |  \| | | | / _ \  | ||  \| |  _| | |_) | |/ _` | '_ \
| |__| |_| | |\  | | |/ ___ \ | || |\  | |___|  _ <| | (_| | |_) |
 \____\___/|_| \_| |_/_/   \_\___|_| \_|_____|_| \_\_|\__,_|_.__/

    version: 0.59.0
     commit: 9e964727
       date: 2024-10-23T02:44:27Z
     source: https://github.com/srl-labs/containerlab
 rel. notes: https://containerlab.dev/rn/0.59/

NWOSのイメージの取得

ここではAristaのcEOSを取得します。
その他のOSは別の記事でご紹介します。

Arista cEOS

Aristaのホームページよりアカウント登録
※個人のGmailなどでは登録できません。ネットワーク業界は限られた人しかOSを取得できないケースが多いのが難点です…

https://www.arista.com/jp

アカウント登録が完了したらソフトウェアダウンロードページより、cEOS Labのダウンロードを行う。

cEOS64-lab-4.33.0F.tar.xz

今回は上記のイメージをダウンロードした。
ダウンロードしたイメージはContainerlabがインストールされたホストにSCP等でコピーしておく。

ContainerlabがインストールされたホストでcEOSをインポートする。

sudo docker import cEOS64-lab-4.33.0F.tar ceos:4.33.0F

下記のようになればOK

izumin@nwlab:~$ sudo docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
ceos         4.33.0F   c69acda3d30b   2 minutes ago   2.46GB

Nokia SRLinux

こちらは公開されているのでPullが可能。
一旦ここではなにもしなくてよい。

ghcr.io/nokia/srlinux:24.3.3

Containerlabの実行

上記で用意した2つのOSでトポロジを動かしてみる。

mkdir test-topology
cd test-topology
vim test.clab.yml

test.clab.ymlは下記を貼り付ける。

name: test

topology:
  nodes:
    srl:
      kind: nokia_srlinux
      image: ghcr.io/nokia/srlinux:24.3.3
    ceos:
      kind: arista_ceos
      image: ceos:4.33.0F

  links:
    - endpoints: ["srl:e1-1", "ceos:eth1"]

トポロジの起動

sudo containerlab deploy
izumin@nwlab:~/test-topology$ sudo containerlab deploy
INFO[0000] Containerlab v0.59.0 started
INFO[0000] Parsing & checking topology file: test.clab.yml
INFO[0000] Creating docker network: Name="clab", IPv4Subnet="172.20.20.0/24", IPv6Subnet="3fff:172:20:20::/64", MTU=1500
INFO[0000] Could not read docker config: open /home/izumin/.docker/config.json: no such file or directory
INFO[0000] Pulling ghcr.io/nokia/srlinux:24.3.3 Docker image
INFO[0079] Done pulling ghcr.io/nokia/srlinux:24.3.3
INFO[0079] Creating lab directory: /home/izumin/test-topology/clab-test
INFO[0079] Creating container: "srl"
INFO[0079] Creating container: "ceos"
INFO[0085] Running postdeploy actions for Arista cEOS 'ceos' node
INFO[0085] Created link: srl:e1-1 <--> ceos:eth1
INFO[0085] Running postdeploy actions for Nokia SR Linux 'srl' node
INFO[0116] Adding containerlab host entries to /etc/hosts file
INFO[0116] Adding ssh config for containerlab nodes
+---+----------------+--------------+------------------------------+---------------+---------+----------------+----------------------+
| # |      Name      | Container ID |            Image             |     Kind      |  State  |  IPv4 Address  |     IPv6 Address     |
+---+----------------+--------------+------------------------------+---------------+---------+----------------+----------------------+
| 1 | clab-test-ceos | c4aa582a401e | ceos:4.33.0F                 | arista_ceos   | running | 172.20.20.2/24 | 3fff:172:20:20::2/64 |
| 2 | clab-test-srl  | a8f275290b26 | ghcr.io/nokia/srlinux:24.3.3 | nokia_srlinux | running | 172.20.20.3/24 | 3fff:172:20:20::3/64 |
+---+----------------+--------------+------------------------------+---------------+---------+----------------+----------------------+

izumin@nwlab:~/test-topology$ sudo docker container ls
CONTAINER ID   IMAGE                          COMMAND                  CREATED         STATUS              PORTS     NAMES
a8f275290b26   ghcr.io/nokia/srlinux:24.3.3   "/tini -- fixuid -q …"   2 minutes ago   Up About a minute             clab-test-srl
c4aa582a401e   ceos:4.33.0F                   "bash -c '/mnt/flash…"   2 minutes ago   Up About a minute             clab-test-ceos

上記のようになれば起動成功。
実際に機器にSSHをしてみる。 admin/adminでログイン可能。

izumin@nwlab:~/test-topology$ ssh clab-test-ceos -l admin
Warning: Permanently added 'clab-test-ceos' (ED25519) to the list of known hosts.
(admin@clab-test-ceos) Password:
ceos>
ceos>en
ceos#
ceos#show version
Arista cEOSLab
Hardware version:
Serial number: 40B75A5C43693BB65411113C6FC8E6C5
Hardware MAC address: 001c.7368.08a8
System MAC address: 001c.7368.08a8

Software image version: 4.33.0F-39050855.4330F (engineering build)
Architecture: x86_64
Internal build version: 4.33.0F-39050855.4330F
Internal build ID: 42a6523d-7efb-4034-9bc4-e80d2e19c8d5
Image format version: 1.0
Image optimization: None

Kernel version: 5.15.0-125-generic

Uptime: 4 minutes
Total memory: 248366212 kB
Free memory: 242115704 kB

ceos#show lldp neighbors
Last table change time   : 0:04:26 ago
Number of table inserts  : 1
Number of table deletes  : 0
Number of table drops    : 0
Number of table age-outs : 0

Port          Neighbor Device ID       Neighbor Port ID    TTL
---------- ------------------------ ---------------------- ---
Et1           srl                      ethernet-1/1        120

トポロジの停止

トポロジの機器の停止を行う時は下記のコマンドで停止する。
コンフィグは保存されないので注意。立ち上げるたびに初期状態で起動します。

sudo containerlab destroy
izumin@nwlab:~/test-topology$ sudo containerlab destroy
INFO[0000] Parsing & checking topology file: test.clab.yml
INFO[0000] Parsing & checking topology file: test.clab.yml
INFO[0000] Destroying lab: test
INFO[0000] Removed container: clab-test-srl
INFO[0000] Removed container: clab-test-ceos
INFO[0000] Removing containerlab host entries from /etc/hosts file
INFO[0000] Removing ssh config for containerlab nodes

その他機能

その他のさまざまな機能やコマンドについては公式ドキュメントを確認ください。

https://containerlab.dev/manual/topo-def-file

次は各ネットワークOSのDockerイメージの作成方法について紹介します。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール