VirtualBox+Vagrantでns-3.27環境を構築する
Network engineering Advent Calendar 2018の1日目の記事.一年以上前にQiitaでns-3.26の環境構築に関する記事を書いた.この一年で私も少しだけ成長して,Vagrantを使えるようになった1ので,コマンド一発でns-3.27の環境を構築できるよう,Vagrantfileを作成した.これからns3で遊びたいという方のお役に立てれば幸い.
なお,diogomg/vagrant-ns-3-setup - GitHubを大いに参考にさせて頂いた.
前提
ns-3
ns-3は,オープンソースの離散事象ネットワークシミュレータ.前職ではこれを使って独自のプロトコルを実装し,実験結果を論文化する仕事をしていた.基本的にLinux上でしか動かず,また環境構築がやや煩雑なので,一般ユーザにとっては敷居が高い2.ns-3で何ができるかについては,ns-3でTCPの輻輳制御を観察する - Memotaroを参照されたい.
今回は,VirtualBoxとVagrantを使うことで仮想マシン上にns-3.27環境を自動構築できるようにし,敷居を下げたいと考えている.こんな風に書くとns-3の達人のように捉えられてしまうかもしれないが,私はコントリビューターでも何でもなく,ペーペーの素人であることは強調しておきたい.
Virtualbox
Oracle VM VirtualBoxは,言わずと知れたx86仮想化ソフトウェア・パッケージ.ホストOSとして,Windows,Linux,Mac OS X,そしてSolarisに対応している.ホストOS上で実行できるゲストOSとして,Windows,Linux,OpenSolaris,OS/2,そしてOpenBSDに対応している.Webエンジニアがサーバ/クライアントの検証環境として使っていたり,ネットワークエンジニアが検証用ネットワークの構築に使っていたりする.
今回は,ゲストOSとしてUbuntu 16.04を立ち上げ,そこにns-3.27環境を構築する.
Vagrant
Vagrantは仮想環境の設定自動化ツール.Rubyで実装されており,Debian,Windows,Centos,Linux,macOS,Arch Linux上で動作する.Vagrantを使うと,超簡単に仮想マシンを構築できるようになるし,検証環境を統一化できる.詳細はVagrant + VirtualBoxでWindows上に開発環境をサクッと構築する - Qiitaが参考になる.
ns-3のインストールは事前準備が多くとにかく面倒3.Vagrantのシェルスクリプトによるプロビジョニング機能を使い,依存ライブラリのインストール,ns-3のインストール,テストまで一気に自動化する.
事前準備
VirtualBoxとVagrantのインストールが必要.逆に言えば,これさえ入っていれば,WindowsでもMacOSでもLinuxでも,ns-3の環境が構築できる.それぞれ,公式ページの指示に従ってインストーラーをダウンロードすれば簡単にインストールできる.
実験
環境構築
私のGitHubレポジトリからVagrantfileを任意のディレクトリにダウンロードして,以下のコマンドを打てば,依存パッケージのインストールからns-3のテストまで全部やってくれる.便利すぎる.私の環境だと,ns-3のテストが完了するまでに1時間ほどかかった.
$ vagrant up
ssh
Vagrantなら,仮想マシンへのSSH接続も簡単.
$ vagrant ssh
ちなみに,デフォルトでvagrant
ユーザ(パスワードはユーザ名と同じ)でログインする形になる.root化(su
)する際にパスワードは不要.
感想
今までセットアップに苦労していたのがバカみたいだ.さっさと使えばよかった.
Subscribe via RSS