说明
类似ns3之类的开源软件,安装教程最好是看官网上的安装教程最快。这里只是做个记录。ns3的安装方式有几种不同的方式。这里只是其中一种,具体说明可以参考NS3教程(https://www.nsnam.org/docs/release/3.29/tutorial/html/index.html)。但是教程里只是最基础的安装,如果要将所有库都安装,还需要其他步骤。
重要说明:博主在VM虚拟机上的Ubuntu装了ns3,没成功!!!尽量不要用虚拟机!!!
环境说明
本次安装的系统为Ubuntu 16.04
ns3的版本为NS3.28
安装步骤
1. 安装依赖库
本部分具体说明在(https://www.nsnam.org/wiki/Installation)
打开终端,在终端输入以下命令安装依赖库
sudo apt-get install -y gcc g++ python
sudo apt-get install -y gcc g++ python python-dev
sudo apt-get install -y mercurial python-setuptools git
sudo apt-get install -y qt5-default
sudo apt-get install -y python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev ipython
sudo apt-get install -y gir1.2-goocanvas-2.0 python-gi python-gi-cairo python-pygraphviz python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython ipython3
sudo apt-get install -y openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
sudo apt-get install -y autoconf cvs bzr unrar
sudo apt-get install -y gdb valgrind
sudo apt-get install -y uncrustify
sudo apt-get install -y doxygen graphviz imagemagick
sudo apt-get install -y texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese dvipng latexmk
sudo apt-get install -y python-sphinx dia
sudo apt-get install -y gsl-bin libgsl2 libgsl-dev
sudo apt-get install -y flex bison libfl-dev
sudo apt-get install -y tcpdump
sudo apt-get install -y sqlite sqlite3 libsqlite3-dev
sudo apt-get install -y libxml2 libxml2-dev
sudo apt-get install -y cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake
sudo apt-get install -y python-pip
pip install cxxfilt
sudo apt-get install -y libgtk2.0-0 libgtk2.0-dev
sudo apt-get install -y vtun lxc
sudo apt-get install -y libboost-signals-dev libboost-filesystem-dev
可以将这些命令写成shell文件,执行后一路yes到底。
2.下载NS3源码
源码下载方式有很多,这里直接从官网(https://www.nsnam.org/releases/ns-3-29/index.html)上下载源码。具体说明在(https://www.nsnam.org/docs/release/3.29/tutorial/html/getting-started.html)。
3.编译NS3源码
将下载的源码解压,解压完的文件应为ns-allinone-3.29。
打开终端,进入ns-allinone-3.29/ns3.29目录下。
执行以下命令
./waf configure --build-profile=debug --enable-examples --enable-tests
执行成功后应显示:
注意
如果仅仅为了使用ns3的基本功能,这个时候就可以进行下一步,如果要安装完全,还需要安装一些依赖库。
**安装依赖库 **
sudo pip install pygccxml
sudo apt-get install castxml
sudo apt-get install libgcrypt11-dev libgcrypt20-doc
sudo apt-get install gtk+-3.0
执行以下命令
./waf
执行成功后应显示:
Waf: Leaving directory `/path/to/workspace/ns-allinone-3.28/ns-3.28/build'
'build' finished successfully (6m25.032s)
Modules built:
antenna aodv applications
bridge buildings config-store
core csma csma-layout
dsdv dsr energy
fd-net-device flow-monitor internet
internet-apps lr-wpan lte
mesh mobility mpi
netanim (no Python) network nix-vector-routing
olsr point-to-point point-to-point-layout
propagation sixlowpan spectrum
stats tap-bridge test (no Python)
topology-read traffic-control uan
virtual-net-device wave wifi
wimax
Modules not built (see ns-3 tutorial for explanation):
brite click openflow
完成安装
NS3测试
-
在终端中进入ns-allinone-3.29/ns-3.29目录下
执行以下命令
./test.py -c core
完成后应为:
253 of 256 tests passed (253 passed, 3 failed, 0 crashed, 0 valgrind errors)
注:不同版本数字可能有所不同,不过差异不大
-
运行程序
在终端中进入ns-allinone-3.29/ns-3.29目录下
./waf --run hello-simulator
结果应显示
Waf: Leaving directory `/home/yan/NS3/ns-allinone-3.25/ns-3.25/build'
Build commands will be stored in build/compile_commands.json
'build' finished successfully (2m32.830s)
Hello Simulator
如果没有看到输出“Hello Simulator”,说明你是在优化编译模式下进行的编译,在优化编译模式下,默认将关闭控制台输出。可以通过以下命令:
./waf clean
./waf configure --build-profile=debug --enable-examples --enable-tests
./waf
补充
NetAnim
官网wiki上NetAnim安装教程
!!!我安装的时候3.29版本这个有问题,所以返回到3.28版本
如果想看到仿真界面,可以进行如下步骤:
cd ns-allinone-3.28/netanim-3.108
make clean
qmake NetAnim.pro
make
之后就可以打开NetAnim
./NetAnim
可视化工具pyviz
官网wiki上pyviz安装教程(https://www.nsnam.org/wiki/PyViz)
1.在线安装一些该模块依赖的Python软件包
sudo apt-get install python-dev python-pygraphviz python-kiwipython-pygoocanvas python-gnome2 python-rsvg python-gnomedesktop
注:在我的源中python-gnomedesktop包含在python-rsvg中,所以出现找不到python-gnomedesktop的时候可以尝试去掉这个包。本次安装就是去掉了python-gnomedesktop这个包安装的。
2.安装‘交互式Python’,以便在后面的可视化界面(the visualizerGUI:)中使用控制按钮,命令如下:
sudo apt-get install ipython
3.此步骤可选。你可以测试一下,如果在你的Ubuntu的/NS3_install/ns-allinone-3.28/ns-3.28目录下使用如下命令进行测试:
./waf
如果出现下图所示:
即如果visualizer模块已被编译,那么该步骤可省略。
如果visualizer模块没有编译,需在(http://code.nsnam.org/gjc/ns-3.9-pyviz/)下载pyviz软件包,解压后放在/NS3_install/ns-allinone-3.28/ns-3.28/目录下,再需重新编译如下命令:
./waf clean
./waf configure --build-profile=debug --enable-examples --enable-tests
./waf
4、用如下命令可以测试是否安装成功:
./waf --pyrun src/flow-monitor/examples/wifi-olsr-flowmon.py --vis
brite安装
- 安装过程
cd ns-3.28
hg clone http://code.nsnam.org/jpelkey3/BRITE
cd BRITE
make
cd..
hg clone http://code.nsnam.org/jpelkey3/ns-3-brite-modular
cd ns-3-brite-modular
./waf configure --with-brite=BRITE的路径
./waf
- 测试
./waf –run "brite-generic-example –verbose=1"
click模块
下载地址不可用了
click是一个构建可配置路由器的软件架构,通过使用称之为元素element(即包处理单元)的不同组合,click路由器能够执行特定功能,这种灵活性提供了测试和实验不同协议的优良平台。
- 安装过程
下载click(http://read.cs.ucla.edu/click/download)cd click
./configure --enable-userlevel --disable-linuxmodule --enable-nsclick --enable-wifi
./make
./waf configure --enable-examples --enable-tests --with-nsclick=click源码路径
./waf
注意:如果click安装在ns-3-allinone文件夹中,即ns-3文件夹的上层文件夹中,"–with-nsclick=click源码路径"不需要,ns3构建器能够自动找到click源码 - 测试
./waf --run nsclick-simple-lan
将得到两个.pcap跟踪结果文件:nsclick-simple-lan-0-0.pcap和nsclick-simple-lan-0-1.pcap
openflow
openflow交换广泛用于科研中,通过openflow API可以对OpenFlow交换进行配置。openflow交换拥有针对服务质量的多协议标签交换(MPLS)扩展和支持service-level-agreement。通过使用openflow交换,ns3能够精确仿真多种不同的交换。
- 安装过程
hg clone http://code.nsnam.org/jpelkey3/openflow
cd openflow
./waf configure
./waf build
cd ns-3.28
./waf configure --enable-examples --enable-tests --with-openflow=下载的openflow源码路径(openflow)
./waf build
- 测试
./waf --run openflow-switch
./waf --run "openflow-switch -v"
./test.py --suite=openflow
- 注释说明
NS3本身自带的只是openflow的封装接口,这些接口要去调用openflow的库,就是后面下载的那一部分。在安装的过程中它会编译成相应的库连接到NS3中。在你没有安装openflow的时候在build/debug/src下是看不到的openflow模块的,只有完成以上操作是的时候,才能找到openflow的模块,进而可以执行openflow下相应的程序。./waf --run openflow-switch
openflow-switch是src下openflow模块下的代码编译的可执行文件。并不是下载的openlfow里面的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)