DockerでGNS3を実行する
素早くGNS3を設定してネットワーク実験を行う
AI生成コンテンツは不正確または誤解を招く可能性があります。
はじめに
このチュートリアルでは、MacBookでOrbstackのLinux VM環境内でDockerを使用してGNS3を起動し、簡単なトポロジを実行します。
このような設定の利点は以下の通りです。
- インストールが簡単
- システムから分離されているため、問題が発生するリスクが低減
GNS3デスクトップの設定とパケットキャプチャはこの記事の範囲外であり、ルーターとスイッチを通じてAlpine Dockerコンテナのルーティングをテストすることを目標としています。
また、以下のプロジェクトに依存しています。
https://github.com/jsimonetti/docker-gns3-server
MacBookでx86 Docker実行環境を構築
何度かテストした結果、arm64環境のDocker上でGNS3サーバーの特定のネットワーキング機能が正常に動作しないことが分かりました。
そのため、正常な実験のために仮想マシンを使用し、Rosettaを利用してx86環境をシミュレートします。
もしWindowsユーザーやx86ベースの環境でDockerがインストールされている場合は、このパートをスキップしても構いません。
https://orbstack.dev/downloadからファイルをダウンロードするか、brew install orbstackを実行してインストールします。
インストール後、起動してMachinesタブに移動します。

以下と同じ設定(Ubuntu、CPU type: intel)で作成します。

ダブルクリックしてターミナルを開きます。

以下のコマンドを順番に入力してDockerを設定します。
cd ~
curl -L get.docker.com | sh以下のコマンドを実行してDockerのインストールを確認します。
sudo docker version
sudo docker psDocker上にGNS3サーバーを構築
上記の続きで、Dockerがインストールされたx86環境のターミナルであると仮定します。
以下のコマンドを実行してGNS3データ保存用のフォルダを作成します。
mkdir gns3-dataその後、以下のコマンドでGNS3サーバーを実行します。
sudo docker run \
--rm -d \
--name gns3 \
--net=host --privileged \
-e BRIDGE_ADDRESS=172.21.1.1/24 \
-v ./gns3-data:/data \
jsimonetti/gns3-server:latestMacBookでhttp://ubuntu-gns3.orb.local:3080/にアクセスします。Orbstackを使用していない場合は、http://localhost:3080または仮想マシンのIPと3080ポートでアクセスします。
*仮想マシンの名前が異なる場合もアドレスが異なる可能性があります。https://orb.local/で実行中のアドレスを確認できます。

Web UIにアクセスできるようになります。
非常に簡単なGNS3実習
GNS3内部で2つのDockerコンテナを作成し、IPを割り当て、スイッチを通じて通信が可能かどうかを実習します。
Add blank projectをクリックし、任意の名前を入力します。

上部中央の+ボタンをクリックしてNew Template...を選択します。

Nextをクリックした後、フィルターにalpineを検索します。その後、リストの中でEmulatorタイプがDockerのアイテムのActionsからダウンロードアイコンをクリックします。

Create docker templateをクリックして作業を完了します。

この画面からAlpine Linux 2つとEthernet switch 1つを取り出します。

+の隣のボタンで線を接続します。

各Alpine Linuxマシンを右クリックしてConfigureメニューを開き、Edit network configurationをクリックします。
以下の内容を貼り付けます。(お互いのaddressが異なることに注意してください。)
#alpine linux 1
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0#alpine linux 2
auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0上部で実行ボタンを見つけてクリックします。

ノードを右クリックしてWeb consoleをクリックします。(Alpine 1、Alpine 2両方)

上記のようにAlpine 1から192.168.0.2へ、Alpine 2から192.168.0.1へPingが成功するかテストします。
成功です :)

GNS3デスクトップも使いやすく、EVE-ngも素晴らしいですが、Linuxルーティングテーブルの実験程度なら、この設定が軽量で良いと思います。