見出し画像

ネットワークエンジニアの学習環境を無料かつ簡単に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のページ

に、基本的な使い方の流れが書いてあります。
要約すると

  1. インストール

  2. テストネットワーク環境のトポロジー定義ファイルの作成

  3. イメージの入手

  4. ネットワークテスト環境を作成して起動(deply)

  5. ノードに接続(docker exec/ssh)

  6. ネットワークテスト環境の破棄(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の運営にも貢献できるのでよろしくお願います。