Lohaa gais, Gue Rayhan, Salam kenal. Kali ini kita akan melakukan instalasi Ns3 pada ubuntu versi 20.04 dengan code name Focal Fossa menggunakan bake sebagai media penginstalannya. Berikut beberapa hal yang perlu disiapkan:

  • Niat
  • Pc/laptop pribadi
  • OS Ubuntu 20.04 Focal Fossa. Untuk download klik disini.

Oke jika ketiga hal diatas sudah siap mari kita lanjut ke perkenalan dan proses instalasi ns3 nya.

APA ITU NS3?

Menurut nsnam.org NS3 merupakan discrete-event network simulator untuk sistem internet yang ditargetkan untuk digunakan dalam penelitian dan edukasi. Dalam implementasinya Ns3 menggunakan c++ dan python sebagai bahasa pemograman yang digunakan.

Library pada NS3 dibungkus oleh python berkat pustaka pybindgen yang mendelegasikan penguraian header ns C++ ke castxml dan pygccxml untuk secara otomatis menghasilkan binding C++ yang sesuai.  File C++ akan dikompilasikan secara otomatis kedalam modul python sehingga kita bisa berinteraksi dengan model inti dari C++ menggunakan skrip python. NS3 memiliki fitur sistem berbasis atribut terintegrasi untuk mengelola nilai default dan per instance untuk parameter simulasi.

INSTALASI NS3

Setelah mengetahui sekilas tentang Network Simulator 3 (NS3) mari kita coba menginstalnya pada ubuntu os 20.04 menggunakan bake yang merupakan tools untuk mempermudah konfigurasi penginstalan NS3.

Berikut panduannya syntax nya:

  • Sebelum kita mulai melakukan penginstalan pastikan repository dan aplikasi yang kita miliki sudah diperbaharui
sudo apt update && sudo apt-get upgrade
  • Agar mempermudah proses penginstalan masuklah kedalam super user mode
sudo su

Note : Sebelum kita melakukan penginstalan bake diperlukan beberapa dependensi yang perlu diunduh, Dibawah ini adalah urutan pengunduhannya.

  • Setelah itu kita perlu menginstall persyaratan minal untuk menjalankan NS3 dari paket tarball yang dirilis
sudo apt-get install g++ python3
  • Mengunduh persyaratan minimal untuk python API
sudo apt-get install g++ python3 python3-dev pkg-config sqlite3
  • Mengunduh persyaratan minimal python development
sudon apt-get install python3-setuptools git
  • Mengunduh qt5 development tools untuk netanim animator
sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
  • Untuk versi NS3 3.29 dan seterusnya telah support GTK+ version 3 dan memerlukan packages berikut:
sudo apt-get install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 
  • Dukungan untuk MPI-based distributed emulation
sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
  • Dukungan untuk bake build tool
sudo apt-get install autoconf cvs bzr unrar
  • Debugging
sudo apt-get install gdb valgrind
  • Dukungan untuk utils/check-style.py code style check program
sudo apt-get install uncrustify
  • Unduh doxygen dan relasi inline documentation:
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
  • Manual dan tutorial ns-3 ditulis dalam reStructuredText untuk Sphinx (doc/tutorial, doc/manual, doc/models), dan gambar biasanya dalam dia (juga membutuhkan paket texlive di atas):
sudo apt-get install python3-sphinx dia 
  • GNU Scientific Library (GSL) untuk error model WiFi 802.11b yang lebih akurat
sudo apt-get install gsl-bin libgsl-dev libgslcblas0
  • Untuk membaca pcap packet traces
sudo apt-get install tcpdump
  • Dukungan database untuk statistic framework
sudo apt-get install sqlite sqlite3 libsqlite3-dev
  • Versi config store berbasis Xml
sudo apt-get install libxml2 libxml2-dev
  • Dukungan untuk menghasilkan binding python yang dimodifikasi
sudo apt-get install cmake libc6-dev libc6-dev-i386 libclang-6.0-dev llvm-6.0-dev automake python3-pip
 
python3 -m pip install --user cxxfilt
  • Sistem konfigurasi berbasis GTK
sudo apt-get install libgtk-3-dev
  • Untuk bereksperimen dengan mesin virtual dan NS-3
sudo apt-get install vtun lxc uml-utilities
  • Dukungan untuk openflow module terbuka (memerlukan libxml2-dev jika tidak diunduh di atas) dan Meningkatkan perpustakaan pengembangan
sudo apt-get install libxml2 libxml2-dev libboost-all-dev

Nah, sekarang kita telah berhasil mengunduh beberapa dependensi yang diperlukan. Langkah selanjutnya merupakan langkah pengunduhan bake. Jadi mohon bersabar karena perjalanan kita masih panjang kawan 🙂

Untuk dapat mengunduh bake pastikan dalam pc atau laptopmu sudah tersedia minimal python 2.7 atau versi setelahnya juga kita memerlukan git untuk meng cloning repository bake dari gitlab.

Pada ubuntu 20.04 secara bawaan terlah terunduh python 3. Kita bisa mengeceknya dengan menggunakan syntax (python3 –version).

  • Setelah semua siap mari buat direktori untuk menyimpan bake yang hendak kita cloning dari gitlab
mkdir <nama direktori>
ls
  • Setelah masuk kedalam direktori yang sudah kita buat langkah selanjutnya adalah meng cloning bake dari gitlab
 git clone https://gitlab.com/nsnam/bake
  • Sangat dianjurkan untuk menambahkan bake kedalam path agar berjalan normal
 export BAKE_HOME=`pwd`/bake 
 export PATH=$PATH:$BAKE_HOME
 export PYTHONPATH=$PYTHONPATH:$BAKE_HOME
  • Untuk mengecek dependensi yang sudah kita unduh sebelumnya bisa menggunakan bake check
bake.py check
  • Jika terdapat missing pada mercurial maka perlu diunduh dengan syntax berikut
sudo apt-get install mercurial
  • Setelah semua dependensi lengkap kita harus mengkonfigurasi bake agar bisa mengunduh versi NS3 yang diinginkan
bake.py configure -e ns-3.34
  • Untuk melihat secara spesifik persyaratan yang dibutuhkan saat konfigurasi
 bake.py show   
  • Untuk alternatif lain jika kita tidak ingin mengecek dan mengunduh persyaratan konfigurasi yang dibutuhkan secara manual bisa menggunakan
 bake.py download
  • Langkah selanjutnya adalah kita akan build ns3 yang telah dikonfigurasikan beserta netanim dan pybindgen
bake.py build

Proses build memerlukan waktu yang agak lama, kamu bisa nonton hamtaro berlari sambil makan kuaci, hoho

  • Setelah build selesai maka akan muncul direktori source pada bake
  • Untuk memastikan Ns3 sudah berhasil terunduh
cd source
ls
  • Untuk melihat isi konfigurasi pada NS3 yang sudah terunduh kita bisa melakukan hal berikut
cd ns-3.34
./waf configure --enable-tests --enable-examples 

Oke, ini cukup melelahkan bukan? tenang, tinggal 4 langkah lagi sampai neraka ini berakhir, sekarang kita akan mencoba menjalankan simple topologi di NS3.

  • Lakukanlah hal berikut didalam direktori ns-3.34 untuk membuild semua modul di NS3
./waf build

Proses build ini memerlukan compiling dengan file ribuan jadi kamu bisa menunggunya sambil marathon drakor, hwaiting 😀

  • Setelah build selesai kita bisa menjalankan contoh topologi sederhana yang terdapat pada direktori examples/tutorial
ls
cd examples/tutorial
ls
cp first.cc /home/ns3/lora/bake/source/ns-3.34/scratch
  • Salin first.cc ke direktori scratch lalu ubah namanya
cd scratch
mv first.cc coba.cc
ls

Note: Kita hanya boleh menyimpan file topologi pada direktori scratch atau akan terjadi error.

  • Ini dia langkah terakhir saatnya mencoba simpel topologi, yeah
cd ..
./waf --run scratch/coba --vis

Note : — vis bersifat opsional hanya jika kita ingin menampilkan visualisasi dari topologi tersebut.

Oke itudia beberapa langkah sederhana untuk mengunduh NS3 pada ubuntu 20.04 Focal Fossa menggunakan bake. Gampang kannn, selamat mencoba 🙂

Sumber:

ns-3 | a discrete-event network simulator for internet systems (nsnam.org)
Bake – Tutorial — Bake (nsnam.org)
Installation – Nsnam
Installing Mercurial on Ubuntu (fabacademy.org)

Last modified: October 3, 2021

Author

Comments

Write a Reply or Comment

Your email address will not be published.