Introduction à ns-3. Sébastien Bindel. 10 décembre 2013. Introduction à la simulation Présentation de ns-3 Les scripts sous ns-3 Conclusion

Documents pareils
Introduction. Adresses

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Plan. Programmation Internet Cours 3. Organismes de standardisation

Travail d évaluation personnelle UV valeur C : IRE. Planification de réseaux : Simulateur IT-GURU Academic Edition

Plan. Rappels sur Netflow v1 v8. Netflow v9. Collecteur UTC «IPFlow» Cisco IOS : Implémentation de Netflow IPv6

Figure 1a. Réseau intranet avec pare feu et NAT.

Réseaux. 1 Généralités. E. Jeandel

QoS Réseaux haut débit et Qualité de service

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

La supervision des services dans le réseau RENATER

CONVERTISSEUR RS 232/485 NOTICE

Les clés d un réseau privé virtuel (VPN) fonctionnel

Réseaux IUP2 / 2005 IPv6

Année Universitaire session 1 d automne Parcours : CSB5 Licence 3 STS Informatique

Programme formation pfsense Mars 2011 Cript Bretagne

Les firewalls libres : netfilter, IP Filter et Packet Filter

BC9000-BK9000. Paramétrage et configuration de l adresse IP

! 1 /! 5 TD - MIP + RO - NEMO. 1. Mobile IP (MIPv6) avec optimisation de routage

Les Réseaux Privés Virtuels (VPN) Définition d'un VPN

Travaux pratiques : collecte et analyse de données NetFlow

Le Tunneling DNS. P.Bienaimé X.Delot P.Mazon K.Tagourti A.Yahi A.Zerrouki. Université de Rouen - M2SSI. 24 février 2011

Déploiement d une architecture Hadoop pour analyse de flux. françois-xavier.andreu@renater.fr

TP : STATION BLANI 2000 SIMULATION DU RESEAU INFORMATIQUE

Security and privacy in network - TP

But de cette présentation. Serveur DHCP (Application à CentOS) Cas des machines virtuelles. Schéma de principe. Hainaut P

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Groupe Eyrolles, 2000, 2004, ISBN :

Agrégation de liens xdsl sur un réseau radio

Configuration automatique

SECURIDAY 2012 Pro Edition

Réseau - VirtualBox. Sommaire

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Virtual Private Network WAFA GHARBI (RT4) CYRINE MAATOUG (RT4) BOCHRA DARGHOUTH (RT4) SALAH KHEMIRI (RT4) MARWA CHAIEB (RT3) WIEM BADREDDINE (RT3)

Le Multicast. A Guyancourt le

U.E. ARES - TD+TME n 1

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H.

Configurer sa carte Wi-Fi sous BSD

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Présentation et portée du cours : CCNA Exploration v4.0

TER Réseau : Routeur Linux 2 Responsable : Anthony Busson

Administration Réseau sous Ubuntu SERVER Serveur DHCP

7.3 : Ce qu IPv6 peut faire pour moi

Cisco Certified Network Associate

DIFF AVANCÉE. Samy.

Fonctionnement du protocole DHCP. Protocole DHCP (S4/C7)

Note d Application. Bascule d ALOHA via injection de route en BGP

RESEAUX MISE EN ŒUVRE

1. Warm up Activity: Single Node

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

LOSLIER Mathieu. Filière Informatique et Réseau 1 ère année. TP DNS. Responsable : LOHIER Stephane. Chargé de TD : QUIDELLEUR Aurélie

Configurer l adressage des serveurs et des clients

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Packet Tracer : configuration des listes de contrôle d'accès étendues, scénario 1

Formation Iptables : Correction TP

SensOrLabs. a protocol validation platform for the IoT. Dominique Barthel, Quentin Lampin IMT/OLPS/BIZZ/MIS Apr 7th 2014, ST, CEA, LIG

TP Wireshark. Première approche de Wireshark. 1 ) Lancer Wireshark (double clic sur l icône sur le bureau). La fenêtre

Configuration d'un trunk SIP OpenIP sur un IPBX ShoreTel

ADSL. Étude d une LiveBox. 1. Environnement de la LiveBox TMRIM 2 EME TRIMESTRE LP CHATEAU BLANC CHALETTE/LOING NIVEAU :

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

FILTRAGE de PAQUETS NetFilter

Atelier Pivoting KHOULOUD GATTOUSSI (RT3) ASMA LAHBIB (RT3) KHAOULA BLEL (RT3) KARIMA MAALAOUI (RT3)

RX3041. Guide d'installation rapide

Présentation du modèle OSI(Open Systems Interconnection)

IPFIX (Internet Protocol Information export)

Introduction à l'analyse réseau Philippe Latu philippe.latu(at)linux-france.org

TP 1 : LES COMMANDES RESEAUX Matière: RESEAUX LOCAUX

TP Analyse de flux et outils Netflow : Nfdump et Nfsen

Master d'informatique. Réseaux. Supervision réseaux

Introduction aux Technologies de l Internet

Chapitre 1: Introduction générale

IP & Co. 1. Service DHCP. L'objectif de ce TP est de voir l'ensemble des services élémentaires mis en oeuvre dans les réseaux IP.

Réseaux M2 CCI SIRR. Introduction / Généralités

Internet Protocol. «La couche IP du réseau Internet»

Administration du WG302 en SSH par Magicsam

Haka : un langage orienté réseaux et sécurité

Administration Système & Réseau. Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS

Project 1 Experimenting with Simple Network Management Tools. ping, traceout, and Wireshark (formerly Ethereal)

Administration Réseaux

Internet - Outils. Nicolas Delestre. À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Sécurité des réseaux Les attaques

Teste et mesure vos réseaux et vos applicatifs en toute indépendance

Routeurs de Services Unifiés DSR-1000N DSR-500N DSR-250N

TP 2 : ANALYSE DE TRAMES VOIP

Algorithmique et langages du Web

TCP/IP, NAT/PAT et Firewall

Exercice : configuration de base de DHCP et NAT

Services Réseaux - Couche Application. TODARO Cédric

Environnements informatiques

Sécurité d IPv6. Sécurité d IPv6. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Téléinformatique. Chapitre V : La couche liaison de données dans Internet. ESEN Université De La Manouba

Pour configurer le Hitachi Tecom AH4021 afin d'ouvrir les ports pour "chatserv.exe", vous devez suivre la proc

Dimensionnement Introduction

Télécommunications. IPv4. IPv4 classes. IPv4 réseau locaux. IV - IPv4&6, ARP, DHCP, DNS

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Fiche d identité produit

Transcription:

Introduction à ns-3 Sébastien Bindel 10 décembre 2013 Sébastien Bindel Introduction à ns-3 1 / 33

Plan Introduction à la simulation 1 Introduction à la simulation 2 3 4 Sébastien Bindel Introduction à ns-3 2 / 33

Contexte Les outils Les apports de la simulation Sébastien Bindel Introduction à ns-3 3 / 33

Contexte Les outils Les apports de la simulation Contexte Les réseaux Réseau -> communication (du niveau physique au niveau applicatif) Evolution des communications Mise en place de nouvelles communications Besoins Tester (e.g. comportement) Analyser (e.g. performance) Problématique Coût Temps de mise en oeuvre Sébastien Bindel Introduction à ns-3 4 / 33

Contexte Les outils Les apports de la simulation Les outils Les outils mathématiques Les graphes Loi d Erlang Les outils de simulation ns omnet++ Implémentation réelle Sébastien Bindel Introduction à ns-3 5 / 33

Les apports de la simulation Contexte Les outils Les apports de la simulation Simuler le réseau Simuler l activité du réseau Outils de visualisation et d analyse Possibilité d être proche de la réalité Ne nécessite pas d investissements particulier Sébastien Bindel Introduction à ns-3 6 / 33

Présentation générale Outils Quelques possibilités de simulation dans ns-3 Modules présents dans ns-3 Compiler ns-3 Sébastien Bindel Introduction à ns-3 7 / 33

Présentation générale Présentation générale Outils Quelques possibilités de simulation dans ns-3 Modules présents dans ns-3 Compiler ns-3 NS acronyme pour Network Simulator Simulation à évènements discrets 3 eme génération (annoncé le 2/7/2006) Existe en version stable (3.18) et développement Composé de modules Ecrit en C++ Scripts d utilisation en C++ ou Python Sébastien Bindel Introduction à ns-3 8 / 33

A propos de ns-2 et ns-3 Présentation générale Outils Quelques possibilités de simulation dans ns-3 Modules présents dans ns-3 Compiler ns-3 Dates importantes début du projet ns-2 (6/11/1996) : fin du projet (4/11/2011) ns-3 annoncé le 2/07/2006 : première version 3.1 (06/2008) Programmation des scripts OTcl pour ns-2 C++ et Python pour ns-3 Apports plus nombreux dans ns-2 ns-3 n est pas rétro compatible avec ns-2 ns-3 est amélioré continuellement Amélioration du développement dans ns-3 Sébastien Bindel Introduction à ns-3 9 / 33

Outils Introduction à la simulation Présentation générale Outils Quelques possibilités de simulation dans ns-3 Modules présents dans ns-3 Compiler ns-3 Outils de visualisation du scénario de simulation PyViz (visualisation en temps réel) NetAnim (visualisation basée sur un fichier traçant le scénario) Outils de traçages d information Fichier ASCII Fichier pcap (wireshark) Outils de traçage de traffic Fichier simple Fichier pour Gnuplot Sébastien Bindel Introduction à ns-3 10 / 33

Présentation générale Outils Quelques possibilités de simulation dans ns-3 Modules présents dans ns-3 Compiler ns-3 Quelques possibilités de simulation dans ns-3 Simulation de protocoles TCP, UDP, IPv4, IPv6, OLSR, AODV... Simulation de médias Ethernet, WIFI, WiMAX... Définition de la topologie du réseau Statique ou dynamique (modèles de mobilité) Possibilité d émulation Execution d une implémentation d un protocole dans ns-3 Sébastien Bindel Introduction à ns-3 11 / 33

Modules présents dans ns-3 Présentation générale Outils Quelques possibilités de simulation dans ns-3 Modules présents dans ns-3 Compiler ns-3 Sébastien Bindel Introduction à ns-3 12 / 33

Compiler ns-3 Introduction à la simulation Présentation générale Outils Quelques possibilités de simulation dans ns-3 Modules présents dans ns-3 Compiler ns-3 Configuration du builder./ waf configure -- enable - examples -- enable - tests Compilation de ns-3./ waf build Nettoyage de la compilation./ waf clean Sébastien Bindel Introduction à ns-3 13 / 33

Sébastien Bindel Introduction à ns-3 14 / 33

Introduction à la simulation Scripts en C++ ou Python (Plus de OTcl) Les noeuds représentent les entités (e.g. PC) L application génère sa propore activité réseau (e.g. echo UDP) Le channel représente le cannal (e.g. WIFI, PPP, Ethernet) Le Net Device représente la carte physique et son driver Exemples disponible dans le dossier examples Sébastien Bindel Introduction à ns-3 15 / 33

La création de noeuds C++ NodeContainer nodes ; // creation d une fabrique de noeuds nodes. Create (2) ; // creation de deux noeuds nodes. Get (0) ; // acces au premier noeud nodes. Get (1) ; // acces au deuxieme noeud Python nodes = ns. network. NodeContainer () # creation d une fabrique de noeuds nodes. Create (2) # creation de deux noeuds nodes. Get (0) # acces au premier noeud nodes. Get (1) # acces au deuxieme noeud Sébastien Bindel Introduction à ns-3 16 / 33

Définition et installation du média de communication C++ PointToPointHelper pointtopoint ; // definition du media PPP // definition de la bande passante et du delai pointtopoint. SetDeviceAttribute (" DataRate ", StringValue ("5 Mbps ")); pointtopoint. SetChannelAttribute (" Delay ", StringValue ("2ms")); NetDeviceContainer devices ; // creation d un conteneur d interfaces reseau // creation et installation des interfaces reseau aux noeuds devices = pointtopoint. Install ( nodes ); Python # definition du media PPP pointtopoint = ns. point_to_point. PointToPointHelper () # definition de la bande passante et du delai pointtopoint. SetDeviceAttribute (" DataRate ", ns.core. StringValue ("5 Mbps ")) pointtopoint. SetChannelAttribute (" Delay ", ns.core. StringValue ("2ms")) # creation et installation des interfaces reseau aux noeuds devices = pointtopoint. Install ( nodes ) Sébastien Bindel Introduction à ns-3 17 / 33

Installation du protocole IP C++ InternetStackHelper stack ; // declaration de la pile protocolaire IP stack. Install ( nodes ); // installation de la pile Ipv4AddressHelper address ; // construction d un espace d adressage // definition de l espace d adressage address. SetBase (" 10.1.1.0 ", " 255.255.255.0 "); // assignation des adresses Ipv4InterfaceContainer interfaces = address. Assign ( devices ); Python stack = ns. internet. InternetStackHelper () # creation de la pile IP stack. Install ( nodes ) # installation de la pile address = ns. internet. Ipv4AddressHelper () # definition address. SetBase (ns. network. Ipv4Address (" 10.1.1.0 "), # d un espace ns. network. Ipv4Mask (" 255.255.255.0 ")) # d adressage interfaces = address. Assign ( devices ); # assignation des adresses Sébastien Bindel Introduction à ns-3 18 / 33

Mise en place du serveur C++ // declaration du serveur (ouverture du port 9) UdpEchoServerHelper echoserver (9) ; // installation de l application serveur sur le noeud 2 ApplicationContainer serverapps = echoserver. Install ( nodes.get (1) ); serverapps. Start ( Seconds (1.0) ); // demarrage du traffic a 1s serverapps.stop ( Seconds (10.0) ); // arret du traffic a 10s Python # declaration du serveur (ouverture du port 9) echoserver = ns. applications. UdpEchoServerHelper (9) # installation de l application serveur sur le noeud 2 serverapps = echoserver. Install ( nodes.get (1) ) serverapps. Start (ns.core. Seconds (1.0) ) serverapps.stop (ns.core. Seconds (10.0) ) # demarrage du traffic a 1s # arret du traffic a 10s Sébastien Bindel Introduction à ns-3 19 / 33

Installation du client Introduction à la simulation C++ // declaration du client (adresse,numero de port) UdpEchoClientHelper echoclient ( interfaces. GetAddress (1), 9); // MaxPackets : nombre max de paquets envoyes echoclient. SetAttribute (" MaxPackets ", UintegerValue (1) ); echoclient. SetAttribute (" Interval ", TimeValue ( Seconds (1.0) )); echoclient. SetAttribute (" PacketSize ", UintegerValue (1024) ); // installation de l application cliente ApplicationContainer clientapps = echoclient. Install ( nodes.get (0) ); clientapps. Start ( Seconds (2.0) ); // demarrage du traffic a 2s xclientapps.stop ( Seconds (10.0) ); // arret du traffic a 10s Python echoclient = ns. applications. UdpEchoClientHelper ( interfaces. GetAddress (1),9) echoclient. SetAttribute (" MaxPackets ", ns.core. UintegerValue (1) ) echoclient. SetAttribute (" Interval ", ns.core. TimeValue (ns.core. Seconds (1.0) )) echoclient. SetAttribute (" PacketSize ", ns.core. UintegerValue (1024) ) clientapps = echoclient. Install ( nodes.get (0) ) clientapps. Start (ns.core. Seconds (2.0) ) clientapps.stop (ns.core. Seconds (10.0) ) Sébastien Bindel Introduction à ns-3 20 / 33

Démarrage de simulation C++ Simulator :: Run (); Simulator :: Destroy (); Python ns.core. Simulator.Run () ns.core. Simulator. Destroy () Sébastien Bindel Introduction à ns-3 21 / 33

Execution d un script de simulation Script en C++./ waf -- run script Script en Python./ waf -- pyrun script. py Sébastien Bindel Introduction à ns-3 22 / 33

Premier script Introduction à la simulation Copiez le fichier examples/tutorial/first.cc dans le dossier scratch Résultat Lancez la commande./waf build Lancez la commande./waf run scratch/myfirst At time 2s client sent 1024 bytes to 10.1.1.2 port 9 At time 2.00369 s server received 1024 bytes from 10.1.1.1 port 49153 At time 2.00369 s server sent 1024 bytes to 10.1.1.1 port 49153 At time 2.00737 s client received 1024 bytes from 10.1.1.2 port 9 Sébastien Bindel Introduction à ns-3 23 / 33

PyViz Introduction à la simulation Permet de visualiser le scénario de simulation N utilise pas de fichiers traces Le script doit pouvoir parser les arguments donnés (argc,argv) Aucun ajout de code supplémentaire Ajoutez dans le script (C++) CommandLine cmd ; cmd. Parse (argc, argv ); Ajoutez dans le script (Python) import ns. core import ns. visualizer [...] cmd = ns.core. CommandLine () cmd. Parse (sys.argv ) [...] ns.core. Simulator.Run () Sébastien Bindel Introduction à ns-3 24 / 33

Résultat de PyViz Introduction à la simulation Pourquoi a t-on reçu 1054 octets? Sébastien Bindel Introduction à ns-3 25 / 33

Résultat de PyViz Introduction à la simulation Pourquoi a t-on reçu 1054 octets? Données (1024 o) + Header UDP (8 o) + Header IP (20 o) + Header PPP (2 o) = 1054 octets Sébastien Bindel Introduction à ns-3 25 / 33

Netanim Introduction à la simulation Permet de visualiser le scénario de simulation offline Utilise un fichier trace Fichier trace => xml Ajout de codes supplémentaires Non disponible sous les scripts Python Ajoutez dans le script (C++) #i n c l u d e "ns3 /netanim - module.h" // inclure le header... // generation du fichier animation.xml // a inclure juste avant Simulator::Run (); AnimationInterface anim (" animation.xml "); Sébastien Bindel Introduction à ns-3 26 / 33

Résultat de Netanim Introduction à la simulation Sébastien Bindel Introduction à ns-3 27 / 33

Trace ASCII Introduction à la simulation Permet de visualiser les informations véhiculées Similaire aux traces pcap S active sur le channel pour que les interfaces puissent capturer le trafic Ajoutez dans le script (C++) AsciiTraceHelper ascii ; pointtopoint. EnableAsciiAll ( ascii. CreateFileStream (" myfirst.tr")); Ajoutez dans le script (Python) pointtopoint. EnableAsciiAll (" ascii ") Sébastien Bindel Introduction à ns-3 28 / 33

Rendu partiel des traces ascii + 2 /NodeList/0/DeviceList/0/$ns3 : :PointToPointNetDevice/TxQueue/Enqueue ns3 : :PppHeader (Point-to-Point Protocol : IP (0x0021)) ns3 : :Ipv4Header (tos 0x0 DSCP Default ECN Not-ECT ttl 64 id 0 protocol 17 offset (bytes) 0 flags [none] length : 1052 10.1.1.1 > 10.1.1.2) ns3 : :UdpHeader (length : 1032 49153 > 9) Payload (size=1024) - 2 /NodeList/0/DeviceList/0/$ns3 : :PointToPointNetDevice/TxQueue/Dequeue ns3 : :PppHeader (Point-to-Point Protocol : IP (0x0021)) ns3 : :Ipv4Header (tos 0x0 DSCP Default ECN Not-ECT ttl 64 id 0 protocol 17 offset (bytes) 0 flags [none] length : 1052 10.1.1.1 > 10.1.1.2) ns3 : :UdpHeader (length : 1032 49153 > 9) Payload (size=1024) Sébastien Bindel Introduction à ns-3 29 / 33

Trace pcap Introduction à la simulation Permet de visualiser les informations véhiculées Utilisé par tcpdump ou wireshark S active sur le channel pour que les interfaces puissent capturer le trafic Documentation www.nsnam.org/doxygenrelease/classns3_1_1_pcap_helper_for_device.html Ajoutez dans le script (C++) pointtopoint. EnablePcapAll ("trace - files "); Ajoutez dans le script (Python) pointtopoint. EnablePcapAll ("trace - files ") Sébastien Bindel Introduction à ns-3 30 / 33

Rendu des traces pcap Sébastien Bindel Introduction à ns-3 31 / 33

Traçage de graphiques avec Gnuplot Permet de tracer des graphiques Utilisable de deux façons Création de fichier de contrôle : commandes Gnuplot Création de fichier de données : données à afficher Outil très utilisé Example (C++) #i n c l u d e "ns3 /stats - module.h" // utilise pour Gnuplot Gnuplot plot ( graphicsfilename ); // objet Gnuplot Gnuplot2dDataset dataset ; // donnees pour Gnuplot Sébastien Bindel Introduction à ns-3 32 / 33

Introduction à la simulation Les points abordés durant ce cours Les outils d étude des réseaux Le simulateur ns-3 et ses outils Comprendre l écriture d un script simple Sébastien Bindel Introduction à ns-3 33 / 33

Introduction à la simulation Les points abordés durant ce cours Les outils d étude des réseaux Le simulateur ns-3 et ses outils Comprendre l écriture d un script simple Les points importants Scripts ns-3 en C++ ou Python Savoir appeler les outils de ns Ecrire et comprendre un script simple Sébastien Bindel Introduction à ns-3 33 / 33

Introduction à la simulation Les points abordés durant ce cours Les outils d étude des réseaux Le simulateur ns-3 et ses outils Comprendre l écriture d un script simple Les points importants Scripts ns-3 en C++ ou Python Savoir appeler les outils de ns Ecrire et comprendre un script simple Les points restant à aborder en TD Ecriture de scripts plus complexes Voir certains protocoles et leurs mécanismes associés Sébastien Bindel Introduction à ns-3 33 / 33