Simulasi Mobile IPv6, Pakai Apa?

Salah satu yang bikin bingung ketika mau melakukan simulasi adalah: mau pakai simulator apa?

Di area jaringan komputer saja, jenis simulatornya ada banyaak banget, misalnya yang:

  1. gratis, tapi ga bisa modifikasi protokol: Packet Tracer dan GNS3
  2. gratis dan bisa modifikasi protokol: NS2, NS3, OMNeT++
  3. berbayar: OPNET, NetSim

Ceritanya, saya mau melakukan simulasi protokol NEMO yang telah dimodifikasi. NEMO ini versi perkembangan dari Mobile IPv6.
Nah, ada beberapa simulator jaringan yang modul simulasi Mobile IPv6-nya telah tersedia, antara lain NS2, NS3, dan OMNeT++.

Lalu, saya cobain ketiga simulator tersebut.

Ada beberapa perbedaan yang cukup kentara. Berikut ini akan saya bahas kelebihan dan kekurangan dari tiap-tiap simulator tersebut, khususnya dalam mensimulasikan Mobile IPv6.

NS2

Berdasarkan pengalaman saya dalam membaca paperpaper yang bertemakan Mobile IPv6, NS2 adalah simulator yang paling sering digunakan oleh para peneliti. Tentu hal ini menjadi suatu kelebihan tersendiri. Jika kita menemui kesulitan, akan ada banyaak sekali orang yang bisa kita hubungi untuk bertanya dan berkonsultasi.

Sebenarnya, NS2 tidak menyediakan modul khusus untuk simulasi Mobile IPv6. Namun, ada pihak lain yang membuat patch khusus untuk Mobile IPv6, yang dinamakan MobiWan.

Contoh simulasi dengan NS2 dan MobiWan:

Masalahnya, MobiWan ini sudah lamaa sekali tidak di-update. MobiWan hanya cocok untuk NS-2.33, padahal versi terbaru adalah NS-2.35.
NS2 sendiri juga sudah lama tidak dikembangkan. Terakhir rilis tahun 2011. NS-2.33 direkomendasikan untuk di-compile dengan gcc-4.1. Padahal gcc terbaru sekarang sudah versi gcc-5.2. Downgrade versi gcc bisa berakibat ke penurunan performa program lainnya di komputer. Amannya mungkin, pakai saja Ubuntu 10.04.

Masalah lain adalah adanya ketidakcocokan antara sifat pengalamatan pada NS2 dengan sifat IPv6. Cara ns-2 dalam merepresentasikan alamat, yaitu dengan angka 32 bit yang dibagi menjadi 3 bagian, misalnya: 0.0.1, 0.1.2, dsb. Mestinya, IPv6 direpresentasikan dengan 128-bit alamat.
Ns-2 menghitung perutean secara statis global sehingga hanya node yang terhubung dengan kabel yang akan dikalkulasi dalam proses perutean. Kondisi ini tidak cocok pada jaringan bergerak.

Memang, ada peneliti yang telah merumuskan cara mensimulasikan NEMO pada NS2. Namun, menurut pandangan saya, yang beliau lakukan hanyalah menghindari masalah, bukan menyelesaikan masalah. Pengguna harus mendesain koordinat node nirkabel dan pola pergerakan node dengan berhati-hati. Naskah simulasi harus ditulis dengan cara khusus. Padahal di dunia nyata, pergerakan node itu kan semau penggunanya…

Kesimpulan

Kelebihan: digunakan oleh banyak peneliti Mobile IPv6

Kekurangan: jadul, behaviour ns2 kurang sesuai dengan sifat IPv6 (terutama sifat NEMO)

NS3

Dari namanya, mungkin banyak yang mengira bahwa NS3 adalah pengembangan dari NS2. Padahal kenyataannya tidak.
Jika NS2 menggunakan dua macam file pemrograman, yaitu .cc dan .tcl, NS3 hanya menggunakan .cc saja.

Sama seperti NS2, NS3 sebenarnya tidak menyediakan modul khusus untuk Mobile IPv6. Untuk melakukan simulasi Mobile IPv6 dengan NS3, kita perlu menginstal DCE-UMIP.

Kode UMIP ini sebenarnya adalah kode untuk implementasi Mobile IPv6 dan NEMO pada Linux. Ya, dengan UMIP, kita bisa mencoba Mobile IPv6 dan NEMO pada dunia nyata, menggunakan perangkat yang sebenarnya.

UMIP ini lalu diintegrasikan dengan NS3 agar bisa digunakan untuk simulasi di komputer.

Berdasarkan pengamatan saya terhadap kode UMIP, kode tersebut dibuat oleh orang-orang yang memang jago pemrograman. Kodenya sangat rapi dan efisien. Ada licenses Nokia & Cisco. Pengalokasian memori (dengan malloc(), free(), dan semacamnya) diperhatikan betul. Banyak saya baca kode perintah pemrograman C yang baru saya temui di UMIP, misalnya tentang manipulasi thread (contoh: pthread_rwlock_wrlock, dan semacamnya)  (ini mah karena saya yg jarang coding, haha :p). Karena aslinya adalah untuk sistem Linux, terdapat beberapa bagian untuk pemrograman kernel.

Sayangnya, simulasi Mobile IPv6 di NS3 belum berhasil dijalankan pada Ubuntu versi terbaru. Ngga cuma saya, ada orang lain juga yang sepertinya punya permasalahan yang sama dengan saya. Simulasi dapat dijalankan, tetapi hasilnya tidak sesuai dengan skenario. Harusnya, ada pertukaran pesan binding dan ping dalam simulasi. Tetapi, yang terekam dalam file pcap (yang bisa di-cek pakai aplikasi Wireshark), hanyalah pertukaran pesan Neighbour Solicitation dan Router Solicitation. Dalam visualisasinya juga memang hanya pesan tersebut yang dipertukarkan.
Saya berhasil mencoba simulasi Mobile IPv6 dengan menggunakan Ubuntu 10.04.

NS3 adalah simulator yang menurut saya kurang user-friendly. Dokumentasi-nya kurang, jadi harus sering-sering googling kesana-kemari. Pengoperasiannya pakai command line di terminal.
Sebenarnya NS3 bisa digunakan pakai IDE Eclipse. Tapi saya belum menemukan cara untuk memainkan DCE-UMIP dalam Eclipse dengan nyaman. Visualisasi simulasi di NS3 juga kurang cakep, cuma bulet-bulet sama garis-garis gitu…

Kesimpulan

Kelebihan: kodenya rapi dan efisien, teruji, berlisensi, mantap keren banget lah

Kekurangan: cocoknya sama Ubuntu versi jadul, kurang user-friendly, saking canggihnya membuat modifikasi kode untuk pengembangan algoritma adalah hal yang cukup berat (bagi saya :p)

OMNeT++

Untuk dapat menyimulasikan Mobile IPv6 pada OMNeT++, model simulasi INET perlu dipasang terlebih dahulu.

Yang menyenangkan dari OMNeT++ adalah antarmuka yang cukup user-friendly. Jika hanya ingin melakukan simulasi jaringan komputer biasa tanpa mengubah algoritma/protokol, jaringan bisa dirancang dengan cara drag n drop.

Visualisasi simulasi cukup nyaman untuk dilihat. Setiap pertukaran data antar perangkat terlihat dengan jelas, termasuk log (catatan) proses tiap perangkat.

Terdapat 3 macam file pada suatu simulasi:

  • File .cc untuk konfigurasi behaviour sistem
  • File .ned untuk konfigurasi fisik perangkat
  • File .ini untuk konfigurasi parameter yang digunakan pada simulasi

Sayangnya, dokumentasi manual INET masih belum lengkap. Bab IPv6 dan Mobile IPv6 tidak mencapai satu halaman. Untuk mempelajari kode Mobile IPv6, dapat memanfaatkan INET doxygenBagi pengguna yang tidak terbiasa membaca baris-baris program, mempelajari doxygen perlu usaha ekstra karena di sana kalimat penjelasan kode biasanya hanya sedikit. Dan lagi, membaca puluhan ribu baris kode menghabiskan banyak waktu…

Bagi saya, logika kode Mobile IPv6 pada INET lebih mudah dipahami daripada kode UMIP untuk DCE-NS3. Kode modul xMIPv6 (nama modul Mobile IPv6 pada INET) berorientasi pada objek, sedangkan kode UMIP banyak memanfaatkan model penyimpanan struct dan list (dengan pointer dan head-node-nya) karena berhubungan langsung dengan pemrograman kernel dan memori.

Kode Mobile IPv6 pada INET masih belum sempurna. Masih banyak catatan //TODO di dalam kode-nya. Konfigurasi pengalamatan IPv6 dilakukan secara flat, belum ada modul DHCPv6. Pengembang INET merencanakan untuk menguji dan merevisi kode IPv6 dan Mobile IPv6 di masa depan, untuk INET versi 3.x.

Kekurangan lain pada INET adalah belum adanya modul keamanan jaringan. Padahal, Mobile IPv6 dianjurkan menggunakan IPSec untuk mengamankan tunnel (baca RFC 3775 bab 5). Dengan demikian, OMNeT++ dengan framework INET belum mampu digunakan untuk penelitian jaringan yang berhubungan dengan keamanan.

Kesimpulan

Kelebihan: user-friendly, visualisasi bagus

Kekurangan: dokumentasi belum lengkap, kode belum teruji, belum ada modul keamanan jaringan

Kesimpulan Umum

Jadi, simulasi Mobile IPv6 mau pakai apa?
Itu kembali ke kebutuhan Anda 😀

Saya kurang merekomendasikan ns2 karena menurut saya ns2 saat ini sudah out-of-date dan mode pengalamatan ns2 kurang cocok dengan IPv6.

Saya pribadi sebenarnya lebih senang pakai OMNeT++ karena visualisasinya lebih cakep dan output hasilnya lebih detail. Tetapi saya sedang perlu melakukan simulasi keamanan Mobile IPv6, jadi mau ngga mau saya kudu latihan uprek-uprek UMIP…

=============================================================

Karena keterbatasan ilmu dan pengalaman saya, mungkin saja ada yang salah dalam penjelasan di atas…
Lagipula, banyak unsur subjektifnya :p *peace*
Jadi, please correct me if I’m wrong ya 🙂

Iklan

Penulis: fayruzrahma

always trying to be a simple person :)

Ada komentar?

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s