ネットワークエンジニアの学習環境を無料かつ簡単にContainerlab+TWSNMP FCで作る方法
学習のためのネットワーク環境を作ろうとすると機材を買ったり、いろいろ設定したり面倒なことが多いと思います。それを1台のPC上に無料かつ簡単に作る方法を紹介します。
必要な環境
WSL2が動作するWindows 11のパソコン、Mac、Linuxが動作するPCのいずれかがあればOKです。メモリー8GBあればOKだと思います。
WSL2 Ubuntuをインストールする方法は
などをみてください。
後々、UbuntuのIPアドレスが必要になるので、ここで確認しておくとよいです。
$ ip a
のコマンドです。
Macの場合は
です。LinuxのPCは、UbuntuからDebianを使ってください。
Containerlabのインストール
Containerlabは、
です。これは、Dokcerコンテナを使って実験用のネットワーク環境を作るものです。
WSL2 Ubuntuの環境にインストールする方法は
に説明がありますが、私は
$sudo apt install docker.io
$curl -L https://containerlab.dev/setup | sudo bash -s "install-containerlab"
でインストールしました。Linuxの環境などでは、
install-containerlabの部分をallにすれば、Dockerも含めて全部インストールしてくれます。
Quick Start
Quick Startのページ
に、基本的な使い方の流れが書いてあります。
要約すると
インストール
テストネットワーク環境のトポロジー定義ファイルの作成
イメージの入手
ネットワークテスト環境を作成して起動(deply)
ノードに接続(docker exec/ssh)
ネットワークテスト環境の破棄(destroy)
です。
TWSNMP FC+SR Linuxで作るテストネットワーク環境
Quick Startと同じ方法でテスト環境を作ると2.イメージの入手がやっかいです。ユーザー登録してダウンロードするなどが必要です。そこで公開されているリポジトリから自動でダウンロードして起動できるトポロジー定義ファイルを作りました。
name: twsnmp
topology:
nodes:
srl:
kind: nokia_srlinux
image: ghcr.io/nokia/srlinux
twsnmp:
kind: linux
image: twsnmp/twsnmpfc
binds:
- datastore:/datastore
ports:
- 8080:8080
links:
- endpoints: ["srl:e1-1", "twsnmp:eth1"]
このファイルを、好きな(twsnmpとか)のディレクトリに保存して
$ sudo clab deploy
のコマンドを実行すれば、
のように起動できるはずです。IPv4 Addressの部分がノードのIPアドレスになります。後で、この範囲を指定してTWSNMP FCの自動発見をすればよいです。
テストネットワークの構成をみる
起動できたら
$ sudo clab graph
のコマンドでネットワーク構成をWebで表示するサーバーを起動できます。
0.0.0.0のところを、先ほど調べたUbuntuのIPアドレスに変えてアクセスすば
のような構成がみられます。
TWSNMP FCからアクセス
先ほど調べたUbuntuのIPの8080番ポートにブラウザーからアクセスすれば、TWSNMP FCにアクセスできます。
や
を参考にして、マップを作れば
のような感じになると思います。
SR LinuxのSNMPにアクセスしてみる
テスト環境に設置したSR Linuxは、ノキアが開発しているオープンソースのLinux ベースのルーターです。
にアクセス方法が書いてあります。
SNMPがはじめから有効になっているのでTWSNMP FC MIBブラウザーからアクセスできます。
のような感じです。
テストネットワーク環境を破棄する
お試しが終わったら、
$sudo clab destroy
というコマンドで、テストネットワーク環境を破棄できます。
Windowsマシン以外からアクセスする小技
WSL2のUbuntuは、他のマシンから直接アクセスできません。TWSNMP FCもです。ポート転送する必要があります。ちょっと調べると
のような記事が見つかります。22番のポートを8080にすれば、TWSNMP FCへのアクセスできます。
私は、この方法を使っていましたが、今調べると
を見つけました。こんど試してみようと思います。
もっとテスト環境で遊んでみたい人へ
SR Linuxのマニュアルは
にあります。syslogやsFlowなどの設定ができるようです。
gNMIとかもあります。TWSNMPシリーズで対応したら、また記事を書きます。
ここから先は
ネットワークエンジニアになりたい人に役立つかもしれない情報を発信するためのマガジンです。 何かの資格試験に合格するための役には立たないとお…
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。