NS3学习记录(一)---Ubuntu下安装NS3

亲测,也是纠结了一天才将NS3安装上。首先需要安装VMware将Ubuntu安装上,这个很容易找到方法,一搜索全部都是,此处忽略。我从Ubuntu安装NS3开始记录。
NS3的网站上有很详细的安装讲解,如果英语阅读没有障碍的话可以直接上看英文原版的turtorial。

1.在ubuntu12.04中安装ns3.17,首先要安装一下各种,打开终端开始安装吧。
sudo apt-get install gcc g++ python    很重要        
sudo apt-get install gcc g++ pythonpython-dev
sudo apt-get installmercurial
sudo apt-get install bzr
sudo apt-get install gdbvalgrind
sudo apt-get install gsl-bin libgsl0-devlibgsl0ldbl
sudo apt-get install flex bisonlibfl-dev
sudo apt-get install g++gcc              此处可以不执行
sudoapt-get install tcpdump
sudoapt-get install sqlite sqlite3 libsqlite3-dev
sudoapt-get install libxml2 libxml2-dev
sudoapt-get install libgtk2.0-0 libgtk2.0-dev
sudoapt-get install vtun lxc
sudoapt-get install uncrustify
sudoapt-get install doxygen graphvizimagemagick 
sudoapt-get install texlive texlive-extra-utilstexlive-latex-extra
sudoapt-get install python-sphinx dia
sudoapt-get install python-pygraphviz python-kiwi python-pygoocanvaslibgoocanvas-dev
sudoapt-get install libboost-signals-devlibboost-filesystem-dev
sudoapt-get install openmpi-bin openmpi-doc libopenmpi-dev

上述更新最好全部成功,如果不成功可以将其拆开更新,因为有时候写错的可能性很高。如果全部更新成功了,则安装问题就不大了

2.然后开始下载ns3.17
mkdirtarballs
cdtarballs
wgethttp://www.nsnam.org/release/ns-allinone-3.17.tar.bz2
tar xjfns-allinone-3.17.tar.bz2

PS:此处可以去NS3中下最新版本的,用浏览器下载更快一些。

2.2命令终端进入解压缩文件夹 执行命令

./build.py

2.3 进入ns-3.13目录使用waf构建(waf是ns-3采用的基于Python的BuildSystem)

./waf -d optimized configure

./waf -d debug configure

./waf

./waf -d debug --enable-sudoconfigure

./waf configure--enable-tests        //使测试可用

./waf configure--enable-examples  //使例子可用

PS:这两个很重要,执行完后可以看到examples和tests状态均为enable

---------------------------------------------------------------------------------

3. 脚本运行

退到上级目录(如ns3)

./build.py --enable-examples--enable-tests//执行后才以下语句才有用

./waf --runhello-simulator//不加.cc,且run前面是两个“-”。

会输出如下信息: hello simulator

此时就表示NS3安装成功了!!


PS:下面的步骤是转过来的,并没有尝试过,若尝试,以后会记录过程。

4.出现的问题

brite click openflowvisualizer没有完成安装

(1)brite安装

#: 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’

(2)click模块

click是一个构建可配置路由器的软件架构,通过使用称之为元素element(即包处理单元)的不同组合,click路由器能够执行特定功能,这种灵活性提供了测试和实验不同协议的优良平台。

*下载click(http://read.cs.ucla.edu/click/download)

*进入click目录配置编译click

cd click

./configure --enable-userlevel--disable-linuxmodule --enable-nsclick--enable-wifi

./make (没有必要使用makeinstall,或者用make)

*重新配置和构建ns3(进入ns3.17目录)

./waf configure --enable-examples --enable-tests--with-nsclick=click源码路径

如果click安装在ns-3-allinone文件夹中,即ns-3文件夹的上层文件夹中,"--with-nsclick=click源码路径"不需要,ns3构建器能够自动找到click源码

./waf

*测试click

./waf --run nsclick-simple-lan

将得到两个.pcap跟踪结果文件:nsclick-simple-lan-0-0.pcap和nsclick-simple-lan-0-1.pcap

(2)openflow

openflow 交换广泛用于科研中,通过openflowAPI可以对OpenFlow交换进行配置。openflow交换拥有针对服务质量的多协议标签交换(MPLS)扩展和支持service-level-agreement。通过使用openflow交换,ns3能够精确仿真多种不同的交换。

*下载openflow

hg clone http://code.nsnam.org/jpelkey3/openflow

*配置和构建openflow(在openflow文件夹下运行)

./waf configure

./waf build

此时生成libopenflow.a库文件

*链接OpenFlow模块到ns3(在ns3的源码文件夹下运行,如ns-3.12.1)

./waf configure --enable-examples --enable-tests--with-openflow=下载的openflow源码路径(openflow)

此时并没有用OpenFlow的自带模块

./waf build(构建ns3并激活ns3的openflow模块)

*测试openflow

./waf --run openflow-switch

./waf --run "openflow-switch-v"(查看日志细节)

*验证openflow模块

./test.py --suite=openflow

注释说明:

NS3本身自带的只是openflow的封装接口,这些接口要去调用openflow的库,就是后面下载的那一部分。在安装的过程中它会编译成相应的库连接到NS3中。在你没有安装openflow的时候在build/debug/src下是看不到的openflow模块的,只有完成以上操作是的时候,才能找到openflow的模块,进而可以执行openflow下相应的程序。

./waf --run openflow-switchopenflow-switch是src下openflow模块下的代码编译的可执行文件。并不是下载的openlfow里面的。

你可能感兴趣的:(ns3)