0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ContainerlabとEdgeShark使うための情報まとめ

Posted at

前回までの記事
EVPN/VXLAN動かしてみた(Part1)
EVPN/VXLAN動かしてみた(Part2)
EVPN/VXLAN動かしてみた(Part3)
EVPN/VXLAN動かしてみた(Part4)

これまでの検証はContainerlabでcEOSを動かしておこなっています、
Install手順などは他の方のブログなどでまとまっていますが、PCAPの取得方法なども含めて一応この記事でも一通り情報をまとめておきます
#詳細なインストール手順などは他の方のブログでわかりやすくまとめていただいているのでそちらのリンクを張らせていただきます

動作環境

以下のWindowsPCを使用しています
こちらでVMware Workstationを使い、Ubuntuの仮想サーバを動かしています
使用PC:MinisForum NAB9(Intel Core i9 / 32GB RAM)

CPU Core i9-12900HK  (14C
Memory DDR4 16GB×2 (SODIMM Slots×2
Storage M.2 2280 1TB PCIe4.0 SSD(up to 2TB) + 2.5 インチ SATA HDD スロット (SATA 3.0 6.0Gb/s)

ハイパーバイザ、OSのインストール

Hypervisor
・以下の記事を参考にさせていただき、VMwareWorkstationをInstallしています
 基本的に記事通りに進めれば特に躓くところなくInstallができました

参考:

OS
・ubuntu-24-04-2を使用しています
 こちらも以下の記事を参考にさせていただいております

参考:

起動後
image.png

ContainerLabのインストール

最初vJunosを使って構築したかったのでJuniperのサイトを見てインストールしました

結局実行したコマンドは以下くらいで、すぐに環境は整いました

Dockerのインストール
sudo apt update  
sudo apt install docker.io
ContainerLabのインストール
bash -c "$(curl -sL https://get.containerlab.dev)"  
git clone https://github.com/hellt/vrnetlab/

ネットワーク機器のOS準備

私の環境だけかもしれないですがvjunosがなぜか起動にめちゃくちゃ時間がかかり、、
取り急ぎ勉強を進めたかったのでいまはvJunosはやめてAristaのcEOSを使用してますが、
vJunosのダウンロード手順も含めて以下に書いておきます

vJunos
以下juniperのDownloadサイトからダウンロード可能です

qcow2をクリックします
image.png
規約に同意します
image.png
CLICK HEREをクリックするとダウンロードがはじまります
image.png

ダウンロードできたら、winscpなどで仮想マシン上にOSファイルをアップロードしていきます
/vrnetlabというディレクトリ配下に各ベンダ毎のディレクトリが用意されているので、今回はvjunosswitchのディレクトリに配置します

root@clab:/home/clab/vrnetlab/vjunosswitch# pwd
/home/clab/vrnetlab/vjunosswitch
root@clab:/home/clab/vrnetlab/vjunosswitch# ll
total 3819672
drwxrwxrwx  3 root root       4096 Jul  8 10:25 ./
drwxr-xr-x 41 root root       4096 Jul  8 10:19 ../
drwxr-xr-x  2 root root       4096 Jul  8 10:51 docker/
-rw-r--r--  1 root root        346 Jul  8 10:19 Makefile
-rw-r--r--  1 root root        513 Jul  8 10:19 README.md
-rw-rw-r--  1 clab clab 3911319552 Jul  8 04:58 vJunos-switch-23.4R2-S2.1.qcow2
root@clab:/home/clab/vrnetlab/vjunosswitch#

makeコマンドを実行すると、dockerイメージが作成されます

root@clab:/home/clab/vrnetlab/vjunosswitch# docker images
REPOSITORY                       TAG           IMAGE ID       CREATED         SIZE
vrnetlab/juniper_vjunos-router   23.4R2-S2.1   5d6eeac1efe1   6 weeks ago     4.13GB ★routerの方も同じ手順で入れました
vrnetlab/juniper_vjunos-switch   23.4R2-S2.1   c06e97cc52a3   6 weeks ago     4.4G ★

Arista cEOS
同じようにAristaもコンテナ版OSイメージをダウンロードしてきます
AristaのOSのダウンロードにはアカウント登録が必要です、手順は以下の個人ブログを参考にさせていただくとスムーズです

で、同じように仮想マシンにOSファイルを配置したら以下のコマンドでコンテナイメージを作成します
コンテナ版OSなのでvJunosみたいにmakeは不要

docker import cEOS64-lab-4.32.0F.tar.xz ceos:4.32.0F ##--OSファイルに合わせて変更
root@clab:/home/clab/vrnetlab/vjunosswitch# docker images
REPOSITORY                       TAG           IMAGE ID       CREATED         SIZE
ceos                             4.32.0.1F     b5df8aeb2023   4 weeks ago     2.4GB ★実行後

YAMLファイルの準備

組みたい構成をYAMLで記述していきます
書き方はContainerlabの公式サイトにも記載があるので参考に

Spine2台、Leaf3台のファブリックを組みたいだけなら以下をコピペでOK
#ポートフォワードでSSHしたかったのでPortsの指定をしてますが無視で大丈夫です

YAML
name: ceos_lab##--任意
topology:
  nodes:
    Spine001:
            kind: arista_ceos
            image: ceos:4.32.0.1F
            ports:
              - 2221:22
    Spine002:
            kind: arista_ceos
            image: ceos:4.32.0.1F
            ports:
              - 2222:22
    Leaf001:
            kind: arista_ceos
            image: ceos:4.32.0.1F
            ports:
              - 2231:22
    Leaf002:
            kind: arista_ceos
            image: ceos:4.32.0.1F
            ports:
              - 2232:22
    Leaf003:
            kind: arista_ceos
            image: ceos:4.32.0.1F
            ports:
              - 2233:22
    Host1:
            kind: linux
            image: quay.io/frrouting/frr:10.4.0
            ports:
              - 2241:22
    Host2:
            kind: linux
            image: quay.io/frrouting/frr:10.4.0
            ports:
              - 2242:22
    Host3:
           kind: linux
           image: quay.io/frrouting/frr:10.4.0
           ports:
             - 2243:22
  links:
          - endpoints: ["Spine001:eth1", "Leaf001:eth1"]
          - endpoints: ["Spine001:eth2", "Leaf002:eth1"]
          - endpoints: ["Spine001:eth3", "Leaf003:eth1"]
          - endpoints: ["Spine002:eth1", "Leaf001:eth2"]
          - endpoints: ["Spine002:eth2", "Leaf002:eth2"]
          - endpoints: ["Spine002:eth3", "Leaf003:eth2"]
          - endpoints: ["Leaf001:eth3", "Host1:eth1"]
          - endpoints: ["Leaf002:eth3", "Host2:eth1"]
          - endpoints: ["Leaf003:eth3", "Host3:eth1"]

Containerlabの起動-停止-確認コマンド

起動

clab deploy -t {YAMLファイル名}

停止

clab destroy -t {YAMLファイル名}

起動確認

docker ps

image.png

clab inspect --topo {YAMLファイル名}

image.png

一応構成図も描写してくれますがこれはちょっとまぁ参考情報くらいでいいかもですね💦

clab graph -t {YAMLファイル名}

image.png

Edgesharkの準備

せっかく検証環境を作ったならパケットキャプチャまで追いかけたいのがエンジニアの性だと思うので、
そんな時はEdgesharkを使うとポチポチPCAP取れて便利です
Edgeshark
• EdgeSharkは、コンテナ間のLinuxネットワーク名前空間接続における通信を、リアルタイムかつGUIで可視化できるオープンソースのパケットキャプチャツール
• ContainerlabもNW名前空間でリンク接続しているため相性がよい
• CLIや複雑な設定不要で、“⾒たいところをクリック”するだけで使い慣れたWiresharkでリアルタイムにキャプチャー可能
※以下より引用させていただきました
引用元:

インストール
公式サイトに書いてある通りなのですが、このコマンドを入れるだけです

curl -sL \
https://github.com/siemens/edgeshark/raw/main/deployments/wget/docker-compose.yaml \
| DOCKER_DEFAULT_PLATFORM= docker compose -f - up -d
root@clab:/home/clab/clab-yaml# docker ps
CONTAINER ID   IMAGE                        COMMAND                  CREATED      STATUS      PORTS                                                 NAMES
7d240a4138fa   ghcr.io/siemens/packetflix   "/packetflix --port=…"   8 days ago   Up 6 days   5000/tcp, 0.0.0.0:5001->5001/tcp, :::5001->5001/tcp   edgeshark-edgeshark-1
8e1f9792ca63   ghcr.io/siemens/ghostwire    "/gostwire --http=[:…"   8 days ago   Up 6 days                                                         edgeshark-gostwire-1
root@clab:/home/clab/clab-yaml#

上記コマンド後、仮想マシンのIP+Port5001にhttpアクセスでこんな画面が開きます
image.png
ノード毎に枠が作られていて、その中でキャプチャしたいInterfaceの横のサメのひれみたいなマークを押すと、PCAPを開くかどうかのポップアップがでます
⇒アイコンクリックだけでPCAPがすぐ取れるので非常に便利です
image.png
枠の右上の方の サメ2匹みたいなアイコンをクリックすると、複数Interfaceをまとめて1つのPCAPファイルで取得できます
image.png
image.png

おわり

自分の備忘もかねて一通り必要な情報はまとめました
Containerlab使ってみたいけど準備がめんどくさそう。。よくわからない。。という人がもしいらっしゃったらご参考いただけたらとおもいます
私もContainerlabをうまく活用しながら 知識を深めていけるように勉強がんばりますm(__)m

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?