はじめに
ns-3 はネットワークシミュレータであり,研究などでよく用いられます.
環境構築が少し面倒ということもあり,下記の記事のようにDockerでの環境構築が紹介されています.
ns-3.30用にDockerコンテナを立てた話
しかし,Windows用いた環境構築方法の記事は少なく,せっかくDockerで利用できるようにしている方がいるならWindows上で利用したいものです.
今回はこのようにWindows上でVisualizerによる表示ができるようにするところまでをご紹介します.
なお,この記事によって起きた損害等の責任は一切負いませんので,自己判断にて参考にしてください.
前提条件
以下のものをインストール・セットアップしている必要があります.
- Docker Desktop
- WSL2上で動作するUbuntu
(つまり,WSL2上でdockerコマンドが使えるようになっている必要があります.)
インストール手順
今回利用するDockerFile等のソースコードは以下の記事にて紹介されているレポジトリをフォークし,記事作成時の最新バージョン(ns-3.34)用に書き換えたものになっています.そのため,DockerFile等の詳細については以下の記事を参照いただき,自己責任にてご利用ください.
なお,ns-3.30でよい方は下の記事の手順でDocker イメージを作成する手順まで行い,当記事の「WindowsにVcXsrvをインストール」の部分から作業してください.
ns-3.30用にDockerコンテナを立てた話
以下ns3.34を利用する方向けです.
ns-3.34のDocker イメージの作成
WSL2上のUbuntuの任意のディレクトリにて,以下を実行してレポジトリをクローンします.その後,v3.34ブランチを利用します.
$ git clone https://github.com/takonasu/ns3-docker.git
$ cd ns3-docker
$ git checkout v3.34
その後,Docker イメージをビルドをするため, makeコマンドを利用します.
PCのスペックによりますが,30-60分程度かかります.
$ cd ns3-docker-34
$ make
WindowsにVcXsrvをインストール
sourceforge.net より,VcXsrvをインストールします.
インストールの詳細は以下の記事が参考になります.この記事を参考にWindowsにVcXsrvをインストールしてください.
Windows10のWSLでX11アプリケーションを実行してみた
インストール後,Xlaunchを起動しておきます.
Docker イメージの実行
WSL2上で,makefileファイルがあるディレクトリ(ns3-docker-34)に移動後,
$ make run
を実行することで,Dockerコンテナを起動し中に入ることができます.
Dockerコンテナ内で以下のコマンドを実行し,環境変数にホスト(Windows)のIPアドレスを設定します.
以下のコマンドのIPアドレスは適宜書き換えてください.
# export DISPLAY=192.168.10.11:0.0
その後,ns-3のwafファイルがあるディレクトリに移動してサンプルコードを実行します.
# cd /usr/ns-allinone-3.34/ns-3.34
# ./waf --pyrun src/flow-monitor/examples/wifi-olsr-flowmon.py --vis
以下のようにVisualizerが起動すればひとまず成功です.お疲れさまでした.
モジュール等のエラーは各自修正してみてください.
参考文献
あとがき
Ubuntu 20.04のDocker イメージを使うとVisualizerの依存関係にあるライブラリがすんなり入ってくれないので18.04のサポート期間中はおとなしく18.04使ったほうが楽です.