Sunday, January 6, 2013

Mode promiscuous pada AODV di lingkungan NS2

Mode  promiscuous pada  AODV di lingkungan NS2

Pada mode  promiscuous setiap node dalam jaringan dapat mendengarkan [overhear] setiap packet yang dikirmkan oleh node tetangganya / node yang masih dalam satu coverage are.

Mode  promiscuous dapat digunakan untuk menangkap dan menghitung setiap paket yang diterimanya, berikut akan dijelaskan langkah-langkah bagaimana mengaktifkan/ memodifikasi protocol AODV yang ada pada NS2 .




I. ada tiga file yang akan dimodifikasi untuk mengaktifkan mode promiscuous, yaitu : 
  • ns-allinone-2.35/ns-2.35/aodv/aodv.cc
  • ns-allinone-2.35/ns-2.35/aodv/aodv.h
  • ns-allinone-2.35/ns-2.35/tcl/lib/ns-mobilenode.tcl
II. buka file aodv.h, dan lakukan modifikasi seperti berikut ini
#include mac.h
  class AODV: public Tap, public Agent {
  public:
  void tap(const Packet *p);
  ......
  protected:
  Mac *mac_;
  ......
 }


III. bukan file aodv.cc dan tambah kode seperti pada langkah dibawah ini.
int
AODV::command(int argc, const char* const * argv) {
......
else if(argc == 3) {
......
else if (strcmp(argv[1], "install-tap") == 0) {
mac_ = (Mac*)TclObject::lookup(argv[2]);
if (mac_ == 0) return TCL_ERROR;
mac_->installTap(this);
return TCL_OK;
}
} 
return Agent::command(argc, argv);

}
void
AODV::tap(const Packet *p) {
// pada bagian ini dapat dilakukan pemrosesan yg sesuai 
} 

IV. selanjutnya buka file ns-mobilenode.tcl dan tambahkan kode sesuai berikut ini.

Node/MobileNode instproc add-target { agent port } {
$self instvar dmux_ imep_ toraDebug_ mac_
......
# Special processing for AODV
set aodvonly [string first "AODV" [$agent info class]] 
if {$aodvonly != -1 } {
$agent if-queue [$self set ifq_(0)] ; # ifq between LL and MAC

$agent install-tap $mac_(0)
......

}



V. Implementasi dan penggunaan mode promiscuous bisa dilihat pada blog berikut ini :

http://elmurod.net/index.php/2009/10/24/adding-malicious-node-in-aodv/

#Thesis

No comments:

Post a Comment