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裏面的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章