{"id":176,"date":"2020-09-30T11:48:20","date_gmt":"2020-09-30T10:48:20","guid":{"rendered":"http:\/\/blog.uclm.es\/felixvillanueva\/?p=176"},"modified":"2020-09-30T11:48:20","modified_gmt":"2020-09-30T10:48:20","slug":"instalacion-del-simulador-ns3","status":"publish","type":"post","link":"https:\/\/blog.uclm.es\/felixvillanueva\/2020\/09\/30\/instalacion-del-simulador-ns3\/","title":{"rendered":"Instalaci\u00f3n del simulador NS3"},"content":{"rendered":"<p><b>Instrucciones actualizadas a la versi\u00f3n 3.36 (mayo 2022)<\/b><\/p>\n<p>La forma mas simple de instalaci\u00f3n del simulador NS3 pasa por bajarse el paquete completo de la web <a href=\"https:\/\/www.nsnam.org\/releases\/\">de versiones del simulador<\/a> y descomprimirla en el directorio de trabajo. El tutorial de instalaci\u00f3n completo puede consultarse en <a href=\"https:\/\/www.nsnam.org\/wiki\/Installation\">la wiki de instalaci\u00f3n<\/a>. En mi sistema Debian Buster, tras bajarme el archivo <a href=\"https:\/\/www.nsnam.org\/releases\/ns-allinone-3.36.tar.bz2\">ns-allinone-3.36.tar.bz2<\/a> se descomprime:<br \/>\n<code><br \/>\n$ tar -xf ns-allinone-3.36.tar.bz2<br \/>\n$ ls<br \/>\nns-allinone-3.36  ns-allinone-3.36.tar.bz2<br \/>\n$ cd ns-allinone-3.36\/<br \/>\nns-allinone-3.36$ ls<br \/>\nbake  build.py  constants.py  netanim-3.108  ns-3.36  pybindgen-0.22.1  README  util.py<br \/>\n<\/code><br \/>\nAtendiendo al sistema operativo donde est\u00e9s trabajando, necesitas instalar una serie de dependencias y librer\u00edas que ns3 utiliza para los diferentes m\u00f3dulos. Hay dependencias que no necesitas instalar si el m\u00f3dulo que depende de esas librer\u00edas no lo vas a emplear. Si est\u00e1s empezando, instala todas las dependencias que se indican en el <a href=\"https:\/\/www.nsnam.org\/wiki\/Installation#Ubuntu.2FDebian.2FMint\">wiki de instalaci\u00f3n<\/a> para tu sistema operativo. Tambi\u00e9n te indican para qu\u00e9 sirve cada dependencia, mi recomendaci\u00f3n es que, como ya he dicho, si est\u00e1s empezando, las instales todas. En mi caso, las dependencias para Debian Buster vienen especificadas en su <a href=\"https:\/\/www.nsnam.org\/wiki\/Installation#Ubuntu.2FDebian.2FMint\">secci\u00f3n correspondiente<\/a> usando la herramienta apt-get.<br \/>\nUna vez instaladas las dependencias existen varias alternativas para la instalaci\u00f3n. Nosotros vamos a utilizar el script ns3, dentro del directorio ns-3.36. Este script tiene una funcionalidad parecida al antiguo sistema de compilaci\u00f3n y configuraci\u00f3n waf. Ese sistema, a partir de la versi\u00f3n 3.36 ha sido cambiado por Cmake. En el directorio donde hemos descomprimido el archivo ns-allinone-3.36.tar.bz2, , dentro de la carpeta ns-3.36, encontramos el archivo ns3. Lo ejecutamos para compilar el simulador:<br \/>\n<code><br \/>\n.\/ns3 configure --enable-test --enable-examples<br \/>\n<\/code><br \/>\nSe configura el simulador y al final te informa de qu\u00e9 m\u00f3dulos se compilar\u00e1n. Las opciones habilitan los test y los ejemplos respectivamente, una opci\u00f3n que, si est\u00e1s empezando, te servir\u00e1n de gu\u00eda en tus simulaciones. En mi caso, la informaci\u00f3n final es:<br \/>\n<code><br \/>\nModules configured to be built:<br \/>\nantenna                   aodv                      applications<br \/>\nbridge                    buildings                 config-store<br \/>\ncore                      csma                      csma-layout<br \/>\ndsdv                      dsr                       energy<br \/>\nfd-net-device             flow-monitor              internet<br \/>\ninternet-apps             lr-wpan                   lte<br \/>\nmesh                      mobility                  netanim<br \/>\nnetwork                   nix-vector-routing        olsr<br \/>\npoint-to-point            point-to-point-layout     propagation<br \/>\nsixlowpan                 spectrum                  stats<br \/>\ntap-bridge                test                      topology-read<br \/>\ntraffic-control           uan                       virtual-net-device<br \/>\nwave                      wifi                      wimax                   <\/code><\/p>\n<p><code>Modules that cannot be built:<br \/>\nbrite                     click                     mpi<br \/>\nopenflow                  visualizer<\/code><\/p>\n<p><code>-- Configuring done<br \/>\n-- Generating done<\/code><\/p>\n<p><code><br \/>\n<\/code><code><\/code><code><\/code><code><\/code><br \/>\nSi alg\u00fan m\u00f3dulo te interesa y no est\u00e1 en la lista, analiza la salida del comando por que posiblemente, el script ns3 no haya encontrado algo que necesita para compilar ese m\u00f3dulo o no lo tiene habilitado por defecto. Mas adelante veremos las opciones para habilitar distintos m\u00f3dulos.<br \/>\nPara compilar el simulador:<br \/>\n<code><br \/>\n.\/ns3 build<br \/>\n<\/code><br \/>\nSi todo ha ido bien, de nuevo, deber\u00eda informarse de los m\u00f3dulos compilados:<br \/>\n<code><\/code><\/p>\n<p><code><br \/>\n<\/code><code><\/code><br \/>\nComo \u00faltimo paso, comprobamos que todos los test pasan satisfactoriamente:<br \/>\n<code><br \/>\nns-allinone-3.36$cd ns-3.36<br \/>\nns-allinone-3.36\/ns-3.36$.\/test.py<br \/>\n..<br \/>\n..<br \/>\n657 of 660 tests passed (657 passed, 3 skipped, 0 failed, 0 crashed, 0 valgrind errors)<br \/>\nList of SKIPped tests:<br \/>\nns3-tcp-cwnd (requires NSC)<br \/>\nns3-tcp-interoperability (requires NSC)<br \/>\nnsc-tcp-loss (requires NSC)<\/code><\/p>\n<p>y vemos que hemos pasado todos los test excepto tres relacionados con tcp que requieren de Network Simulation Cradle (NSC). Deberemos habilitar esa dependencia (y compilar todo) para pasar esos test.<\/p>\n<p>De esta forma, ya tendr\u00edamos el simulador listo para trabajar y poder empezar a simular nuestros escenarios.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Instrucciones actualizadas a la versi\u00f3n 3.36 (mayo 2022) La forma mas simple de instalaci\u00f3n del simulador NS3 pasa por bajarse el paquete completo de la web de versiones del simulador y descomprimirla en el directorio de trabajo. El tutorial de &hellip; <a href=\"https:\/\/blog.uclm.es\/felixvillanueva\/2020\/09\/30\/instalacion-del-simulador-ns3\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":182,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5,6],"tags":[24,32,34,43],"class_list":["post-176","post","type-post","status-publish","format-standard","hentry","category-ns3","category-simulacion","category-tutorial","tag-instalacion","tag-paso-a-paso","tag-primeros-pasos","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/blog.uclm.es\/felixvillanueva\/wp-json\/wp\/v2\/posts\/176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.uclm.es\/felixvillanueva\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.uclm.es\/felixvillanueva\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.uclm.es\/felixvillanueva\/wp-json\/wp\/v2\/users\/182"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.uclm.es\/felixvillanueva\/wp-json\/wp\/v2\/comments?post=176"}],"version-history":[{"count":0,"href":"https:\/\/blog.uclm.es\/felixvillanueva\/wp-json\/wp\/v2\/posts\/176\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.uclm.es\/felixvillanueva\/wp-json\/wp\/v2\/media?parent=176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.uclm.es\/felixvillanueva\/wp-json\/wp\/v2\/categories?post=176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.uclm.es\/felixvillanueva\/wp-json\/wp\/v2\/tags?post=176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}