在Ubuntu20.04安装ns3 3.37,并使用SNS3

一. 所使用的软件

VMware Workstation Pro和Ubuntu 20.04的镜像 :

VMware Workstation Pro自己去官网下载,一搜就有。

Ubuntu的镜像:链接:link

Xshell和XFTP软件包官网可以下链接:link

Xshell和XFTP选择家庭/学校免费版,富哥的话当然可以去买咯。主要是为了方便linux和windows之间文件传输。

二. 安装步骤

1. VM安装和ubuntu安装。

20.04版本安装步骤基本和别的版本差不多。

2. xshell和xftp与linux连接并向linux传输文件

2.1 linux上的准备工作

(1)安装网络工具:

sudoapt install net-tools

(2)检查是否开启ssh server:

dpkg-l|grepssh


(3)安装server服务软件包:

sudoapt update

sudoapt install openssh-server

    (4)打开ssh服务:

sudosystemctl enablessh

    (5)  检查ssh服务运行状态(默认端口22)

sudosystemctl statusssh

    (6)确保防火墙允许服务端口:

sudoufw allowssh

      (7)查看IP地址:

ifconfig


2.2 windows上xshell和xftp

1,打开xshell,选择后来,选择新建会话。

在名称处输入查到的ip,点击确定,然后选中自己新建的,点击连接。

然后输入虚拟机的用户名-->确定--->输入虚拟机密码--->确定  (想以后方便可以把记住用户名、密码勾上)连接成功基本如图:

2,打开xftp,选择后来,然后新建会话,也是输入查到的ip

然后在windows那一侧找到自己所要传的文件,右键选择传输即可。

3. 安装ns3 3.37

3.1 安装所需的依赖

命令如下,亲测有效,照着输,安装ns3时基本没报错:

sudoapt installgit

sudoapt-get install g++python3 python3-dev pkg-config sqlite3 cmake

sudoapt-get install mercurial

sudoapt-get install qt5-default

sudoapt-get install autoconf cvs bzr unrar

sudoapt-get install gdb valgrind

sudoapt-get install gsl-bin libgsl-dev libgslcblas0

sudoapt-get install flex bison libfl-dev

sudoapt-get install g++-3.4 gcc-3.4

sudoapt-get install tcpdump

sudoapt-get install sqlite sqlite3 libsqlite3-dev

sudoapt-get install libgtk2.0-0 libgtk2.0-dev

sudoapt-get install libgtk-3-dev

sudoapt-get install libxml2 libxml2-dev

sudoapt-get install vtun lxc uml-utilities

sudoapt-get install uncrustify

sudoapt-get install doxygen graphviz imagemagick

sudoapt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk

sudoapt-get install python3-sphinx dia

sudoapt-get install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3

sudoapt-get install libxml2 libxml2-dev libboost-all-dev

sudoapt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev

3.2 ns 3.37

(1)关于安装包:

去官网下,下载链接如下:链接:link可在windows下(比较快),然后通过xshell和xftp传到linux。也可以直接在linux里下,可能会比较慢。

直接git。在ubuntu的终端里 git clone https://gitlab.com/nsnam/ns-3-dev.git ns-3.37

(2)安装:

mkdirtarballs

cdtarballs

cdns-allinone-3.37/ns-3.37

./ns3 configure--enable-examples--enable-tests

(注)从3.36版本开始要使用./ns3,3.35及以前的版本是使用./waf

[GalaxyerKw注:我使用ubuntu18.04版本,尝试配置安装3.35版本时问题百出,建议初次直接随教程尝试3.37版本。]

上面那条configure命令执行完正常应该是:

./ns3 build

./test.py

出现的所有都pass过了基本就安装成功了。可以运行一个脚本测试一下:

./ns3 run first

4. 加入sns3模块

(1)加入satellite module

$ cdns-3.37/contrib

$ gitclone https://github.com/sns3/sns3-satellite.git satellite

(2)traffic 和 magister-stats modules (也是在contrib目录下)

$ gitclone https://github.com/sns3/traffic.git traffic

$ gitclone https://github.com/sns3/stats.git magister-stats

(3)再次build:

$ cdns-3.37

$ ./ns3 clean

$ ./ns3 configure--build-profile=optimized--enable-examples--enable-tests

$ ./ns3 build

(4)下载定义模拟参考场景的数据:在ns-3.37/contrib/satellite下打开终端

$ gitsubmodule update--init--recursive

这个下载真的超级慢(最好科学一下)(5)

$ ./test.py--no-build

由ns3运行一些并行测试,基本都能pass

三. 可能会出现的问题及解决办法:

cmake: command not found

解决办法:先下载合适的cmake包,然后切换到相应目录下,比如cd cmake-版本然后进行编译安装:

./bootstrap--prefix=/usr--datadir=share/cmake--docdir=doc/cmake &&make

sudomakeinstall

检查是否正确:

cmake--version

C++: fatal error: Killed signal terminated program....

解决办法:创建swap分区最好切换到home目录下,我第一次时在ns3目录下直接弄还是会报错。①创建分区路径

sudomkdir-p/var/cache/swap/

②设置分区的大小bs=64M是块大小,count=64是块数量,所以swap空间大小是bs*count=4096MB=4GB

sudoddif=/dev/zeroof=/var/cache/swap/swap0bs=64Mcount=64

③设置该目录权限

sudochmod0600/var/cache/swap/swap0

④创建SWAP文件

sudomkswap /var/cache/swap/swap0

⑤激活SWAP文件

sudoswapon /var/cache/swap/swap0

⑥ 查看SWAP信息是否正确

sudoswapon-s

虚拟机提醒空间不足:

(1)定期清理drag_and_drop目录(文件如果可以从windows直接拖拽到linux)(2)查找大文件并删除

du-h--max-depth=目录级别

(3)扩展硬盘空间,并将多个合并。但是在扩展完硬盘空间后,增加硬盘空间后,系统会提示还需要进入系统进行相应的扩展设置,进入Ubuntu中的Disks,会显示未分配的空间,将其分配给相邻的磁盘即可.

其他

C++ 中浮点数类型与整数类型之间可以进行比较操作。如果你在比较过程中遇到问题,可能是因为一些警告或隐式类型转换引起的。新的 C++ 标准可能会引入更严格的类型检查,从而导致一些警告或错误。解决:显式的类型转换,将浮点数转换为整数,然后再进行比较,这样可以避免潜在的警告或错误。

有关3.35版本的ns3——加入sns3模块(satellite,traffic,magister-states)时,不要像3.37版本一样放入contrib目录下,而是直接零散放在ns-3.35目录下。

在3.36及以后的版本里,运行程序都是./ns3 run <ns3-program>,在3.35及之前的版本里是./waf --run <ns3-program>

总结

鄙人水平有限,接触到的资源和查到的资料也有限,是基于自己的安装经历和查到的别人分享的方法所写,不可能涉及所有可能出现的error,因此只接受批评指正,不接受因错误解决方法不全而带来的不良言论,谢谢阅读。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。