SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Dynamips - Un émulateur de routeur Cisco sur PC
Christophe Fillot
Université de Technologie de Compiègne, Service Informatique
rue Personne de Roberval, 60200 Compiègne
Christophe.Fillot@utc.fr
Jean-Marc Berenguier
Université de Technologie de Compiègne, Service Informatique
rue Personne de Roberval, 60200 Compiègne
Jean-Marc.Berenguier@utc.fr



Résumé                                                          Pour obtenir des performances correctes, un recompilateur
                                                                "JIT" (Just-In Time) recompile le code de l'image IOS à la
La création de maquettes « réseau » Cisco de taille             volée en code natif Intel x86 (ou x86 64-bits). Bien que
conséquente se heurte à deux principales problématiques :       beaucoup plus lent, un mode d'exécution pas-à-pas existe
le coût et la disponibilité des équipements mis en œuvre ou     également pour les plateformes hôtes non supportées (non
le comportement imparfait des simulateurs de routeurs tel       x86). Une plateforme x86 est donc à préférer.
Boson [1] quand ceux-ci sont utilisés, les spécificités des
différentes versions d'IOS (fonctionnalités, comportements,
bogues) n'étant pas prises en compte.                           Les gammes de routeurs émulés sont:
                                                                    •  Cisco 7200 (NPE-100 jusqu'à NPE-400, NPE-G2)
Nous avons développé et présentons Dynamips [2], une                •  Cisco 3600 (3620, 3640, 3660)
solution d'émulation hardware de routeurs Cisco, capable            •  Cisco 3700 (3725, 3745)
de faire fonctionner sur PC des images IOS non modifiées.           •  Cisco 2600 (2610 à 2651XM, 2691)
La possibilité de démarrer et d'interconnecter plusieurs
instances de Dynamips sur un ou plusieurs serveurs                  •  Cisco 1700 (1710 à 1760)
permet de réaliser des maquettes opérationnelles de ré-
seaux complets.                                                 L'émulation de switches (de type Catalyst) n'est pas suppor-
                                                                tée, mais un module de switching Ethernet (référence Cisco
Nous présentons également les projets connexes de confi-        NM-16ESW) peut être utilisé sur les plateformes 3600,
guration et de pilotage de Dynamips, Dynagen [3], inter-        3700 et 2600.
face en mode texte, et GNS-3 [4], interface graphique.
                                                                Les interfaces émulées sont de type:
Mots clefs
                                                                    •    Ethernet, FastEthernet, GigabitEthernet,
Routeurs Cisco, IOS, émulation                                      •    Série,
                                                                    •    ATM (Cisco 7200 uniquement),
1    Introduction                                                   •    POS (Cisco 7200 uniquement).

Dynamips est un émulateur de routeurs Cisco capable de
faire fonctionner des images Cisco IOS non modifiées            Différentes instances de l'émulateur peuvent être intercon-
comme si elles s'exécutaient sur de véritables équipements.     nectées à travers ces interfaces. Une connexion à un réseau
Le rôle de Dynamips n'est pas de remplacer de véritables        réel est réalisable en Ethernet via une interface physique du
routeurs, mais de permettre la réalisation de maquettes         serveur hôte.
complexes avec de vraies versions d'IOS. Contrairement à
certains autres produits, il ne s'agit pas d'une émulation de   Dynamips fonctionnant uniquement en ligne de commande,
la ligne de commande IOS et de son fonctionnement, mais         des projets connexes non portés par l'UTC ont vu le jour :
d'une émulation complète du « hardware ». Dynamips peut         Dynagen est un produit complémentaire écrit en Python
être utilisé à des fins de formation, d'expérimentation, aide   s'interfaçant avec Dynamips grâce au mode hyperviseur
au diagnostic, validation de configurations, ...                que nous aborderons plus loin. Dynagen facilite la création
                                                                et la gestion de maquettes grâce à un fichier de configura-
2    Présentation générale                                      tion simple décrivant la topologie du réseau à simuler et
                                                                une interface texte interactive.
Dynamips est écrit en langage C, sous licence GPL. Les
plateformes hôtes supportées sont de type PC sous Linux,        GNS-3 reprend ces mêmes fonctionnalités sous forme
Mac Os X et Windows (via Cygwin [5]). Un portage sur            d'interface graphique. Ecrit en Python, il s'appuie sur des
d'autres plateformes Unix est également possible.               modules de Dynagen.
couche permet de découpler l'interface réseau émulée (vi-
                                                               sible sous IOS) de l'interface réseau sur le serveur hôte.
                                                               Elle gère en particulier la communication inter-instances en
                                                               s'appuyant sur des sockets UDP ou Unix.

                                                               4     Utilisation
                                                               4.1    Hyperviseur
                                                               Dynamips fonctionne selon deux modes : en ligne de com-
                                                               mande Unix classique ou en mode « Hyperviseur ».
                                                               En mode « hyperviseur », une instance Dynamips attend les
                                                               ordres de gestion des routeurs virtuels locaux (création,
                                                               suppression, démarrage, arrêt, ...) et des interconnexions
                                                               réseau, à travers un canal de commande TCP.
          Figure 1 - Une copie d'écran de GNS-3                De même, l'accès aux ports console des routeurs émulés
                                                               s'effectue au travers de canaux TCP dont les caracté-
                                                               ristiques (port) sont spécifiés via l'hyperviseur.
3     Architecture
                                                               4.2    Interconnexions réseau
3.1    Exécution du code IOS
                                                               Les interconnexions réseau s'effectuent grâce à des
Pour permettre l'exécution d'une image IOS, Dynamips doit      interfaces IOS Ethernet, Séries ou ATM auxquelles sont
émuler le processeur ainsi que tous les périphériques de la    affectées des méthodes de transport de la couche
plateforme cible.                                              d'abstraction NIO en fonction de leur utilisation.
                                                               L'interconnexion d'instances s'appuie sur des sockets UDP
Les équipements Cisco étant basés sur des processeurs          ou Unix. Les sockets UDP permettent de relier des routeurs
MIPS (64-bits) ou PowerPC (32-bits), Dynamips émule            virtuels fonctionnant sur des serveurs différents, les sockets
donc ces processeurs.                                          Unix offrant moins d' « overhead » pour des intercon-
                                                               nexions locales.
Pour des raisons de performances, le code MIPS ou              La méthode NIO PCAP permet de faire correspondre une
PowerPC de l'image IOS est recompilé à la volée en code        interface émulée IOS à une interface Ethernet physique du
natif Intel x86 (ou x86 64-bits). Un compilateur JIT a donc    serveur hôte.
été écrit à cet effet.
                                                               Enfin, la connexion à des machines virtuelles telles que
                                                               QEMU [6] ou UML [7] est possible grâce au support de
Par exemple, le code PPC suivant :
                                                               VDE (« Virtual Distributed Ethernet ») [8].
lis       r9,804                                               La création de maquettes intégrant à la fois du matériel
addi      r9,r9,4592                                           physique, des routeurs virtuels (sous Dynamips) et de ma-
rlwinm    r0,r0,2,0,29                                         chines virtuelles (QEMU, UML) est donc réalisable.
                                                               Dynamips fournit également une boîte à outils comprenant
sera compilé à la volée pour donner le code x86 :
                                                               des bridges et des switches virtuels Ethernet, ATM et
mov      $0x32411f0,%ecx                                       Frame-Relay simplifiés.
mov      %ecx,0x28(%edi)
mov      0x4(%edi),%eax
                                                               4.3    Perturbation de trafic
rol      $0x2,%eax                                             La simulation de problèmes réseau est réalisable par l'ad-
and      $0xfffffffc,%eax                                      jonction de modules spécifiques. Un module permettant la
mov      %eax,0x4(%edi)                                        coupure franche de liens ou la perte de paquets est dispo-
                                                               nible. Un module de « fuzzing » (modification aléatoire
Pour les plateformes hôtes non-x86, un mode interpréteur,      d'un certain nombre de bits) pour altérer des paquets est en
beaucoup plus lent, est disponible.                            cours de développement. Tout autre type d'altération du
                                                               trafic peut être envisagé par la création de nouveaux mo-
3.2    Emulation des périphériques                             dules.
Outre le CPU, Dynamips doit également gérer l'ensemble         4.4    Capture de trafic
des périphériques qui composent le routeur : mémoire
RAM, NVRAM (stockage de la configuration), mémoire             Dynamips permet la capture de trafic entre instances au
Flash, bus PCI, interfaces réseau...                           format « pcap » (compatible avec les outils tcpdump [9],
                                                               ethereal/wireshark [10]). La capture est possible sur des
Dynamips propose une couche d'abstraction pour la gestion      liaisons émulées Ethernet et Série. Sur les liaisons série, les
de l'envoi et de la réception des paquets sur les interfaces   protocoles HDLC, PPP et Frame-Relay sont supportés pour
réseau, appelée « NIO » (Network Input/Output). Cette          la capture.
Indépendamment, l'aide au diagnostic par caractérisation
du trafic peut également être réalisée en exploitant les      [[Router r3]]
fonctionnalités d'un collecteur « NetFlow » [11] alimenté     model = 7200
par des exports « NetFlow » d'IOS. Nous proposons l'utili-    a1/0 = Switch 3
sation du collecteur « IPFlow » [12] que nous avons égale-
ment développé.                                               [[ATMSW Switch]]
                                                              # Définition du switch virtuel ATM et des PVCs
5    De la topologie réseau à la simula-                      1:10:32 = 3:20:100
                                                              2:10:33 = 3:20:101
     tion
Nous nous proposons de détailler ici les différentes étapes   Les extraits pertinents des configurations des trois routeurs
permettant de construire une maquette opérationnelle à par-   sont donnés ci-dessous :
tir de la topologie de la figure 2 ci-dessous :
                                                              !
                                                              interface ATM1/0
         R1                                                     no ip address
                ATM1/0                                          no atm ilmi-keepalive
                         Switch ATM                           !
                                               R3
                         1                                    interface ATM1/0.32 point-to-point
                                 3                              ip address 10.10.0.1 255.255.255.252
         R2                           ATM1/0                    no snmp trap link-status
                         2                                      pvc 10/32
                ATM2/0                                          !
                                                              !
                   Figure 2 - Topologie                       router ospf 100
Le switch ATM sera simulé par Dynamips en utilisant un          log-adjacency-changes
switch virtuel simplifié de la boîte à outils. Les routeurs     network 10.0.0.0 0.255.255.255 area 0
émulés sont de type Cisco 7200.                               !
Deux circuits ATM ont été construits entre R1 et R3, et R2
et R3. Pour cela, les PVC ATM suivants ont été mis en                            Configuration de R1
place entre :
     •    R1 (10/32) et R3 (20/100)
     •    R2 (10/33) et R3 (20/101)                           !
Dans cette configuration, les flux entre R1 et R2 passent     interface ATM2/0
donc par R3.                                                    no ip address
Enfin, le protocole de routage OSPF a été activé entre les      no atm ilmi-keepalive
trois routeurs.                                               !
                                                              interface ATM2/0.33 point-to-point
Le fichier de configuration de Dynagen correspondant à
                                                                ip address 10.11.0.1 255.255.255.252
cette topologie est le suivant :
                                                                no snmp trap link-status
autostart = False                                               pvc 10/33
                                                                !
[localhost]                                                   !
                                                              router ospf 100
[[7200]]                                                        log-adjacency-changes
# Type de routeur et image                                      network 10.0.0.0 0.255.255.255 area 0
image=/Users/chris/IOS_pool/extract/C7200-AD.BIN              !
idlepc = 0x606ba100
ram = 192                                                                        Configuration de R2

[[Router r1]]
# Définition du routeur R1 et
# interconnexion de son interface atm1/0
# avec l'interface 1 du switch ATM virtuel
model = 7200
a1/0 = Switch 1

[[Router r2]]
model = 7200
a2/0 = Switch 2
!                                                          La copie d'écran de la figure 3 ci-dessous présente
interface ATM1/0                                           différentes fenêtres de gestion de la maquette.
  no ip address
  no atm ilmi-keepalive
!                                                          La première fenêtre (en haut à gauche) est celle de
interface ATM1/0.100 point-to-point                        l'hyperviseur Dynamips. On peut y voir les sorties
  ip address 10.10.0.2 255.255.255.252                     correspondant au démarrage des différentes instances.
  no snmp trap link-status                                 L'hyperviseur a été démarré en tapant la commande
  pvc 20/100                                               suivante dans cette fenêtre :
  !                                                        # dynamips -H 7200
!
                                                           Dynamips attend ensuite les commandes envoyées par
interface ATM1/0.101 point-to-point
                                                           Dynagen sur le port TCP 7200 spécifié par l'argument -H.
  ip address 10.11.0.2 255.255.255.252
  no snmp trap link-status
  pvc 20/101                                               La seconde fenêtre (en haut à droite) est celle de Dynagen.
  !                                                        La saisie des commandes « telnet r1 » et « telnet r2 »
!                                                          a provoqué l'ouverture des fenêtres du bas de la copie
router ospf 100                                            d'écran. Elles correspondent aux ports console des deux
  log-adjacency-changes                                    routeurs R1 et R2.
  network 10.0.0.0 0.255.255.255 area 0
!

                Configuration de R3




                                  Figure 3 - Fenêtres de gestion de la maquette
6    Perspectives
Dynamips possède une importante communauté
d'utilisateurs [13], source de nombreuses propositions
d'évolutions.
Dynamips est amené à évoluer avec le support de nouvelles
plateformes Cisco et de nouveaux modules réseau.
Un effort particulier sera porté sur la partie switching.
Nous accueillerons volontiers tout « contributeur »
passionné par le domaine de l'émulation de processeurs et
de « hardware », et par les plateformes Cisco.



Bibliographie et Liens
[1] Boson Software, Boson, http://www.boson.com/

[2] Christophe Fillot, Jean-Marc Berenguier, Dynamips,
    http://www.ipflow.utc.fr/index.php/Cisco_7200_Simu
    lator

[3] Greg Anuzelli, Dynagen, http://dynagen.org

[4] Projet de fin d'études EPITECH GNS-3,
    http://www.gns3.net

[5] Cygwin, http://www.cygwin.com/

[6] Fabrice Bellard, QEMU,
    http://fabrice.bellard.free.fr/qemu/

[7] User-Mode Linux, UML,
    http://user-mode-linux.sourceforge.net/

[8] Virtual Distributed Ethernet, VDE,
    http://vde.sourceforge.net/

[9] Tcpdump, http://www.tcpdump.org/

[10] Wireshark (Ethereal), http://www.wireshark.org/

[11] Cisco NetFlow Version 9, RFC3954,
     http://www.ietf.org/rfc/rfc3954.txt

[12] Christophe Fillot, Jean-Marc Berenguier, Collecteur
     Netflow « IPFlow », http://www.ipflow.utc.fr

[13] Forum de la communauté d'utilisateurs de Dynamips,
     http://7200emu.hacki.at
141[1]

Contenu connexe

Tendances

Etat de l’art des communications basées sur Mach (1995)
Etat de l’art des communications basées sur Mach (1995)Etat de l’art des communications basées sur Mach (1995)
Etat de l’art des communications basées sur Mach (1995)Julien SIMON
 
Cisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracerCisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracerMed Ali Bhs
 
Etat de l’art des serveurs Unix au dessus de Mach (1995)
Etat de l’art des serveurs Unix au dessus de Mach (1995)Etat de l’art des serveurs Unix au dessus de Mach (1995)
Etat de l’art des serveurs Unix au dessus de Mach (1995)Julien SIMON
 
Article open-silicium-juin-juillet-aout-2013
Article open-silicium-juin-juillet-aout-2013Article open-silicium-juin-juillet-aout-2013
Article open-silicium-juin-juillet-aout-2013O10ée
 

Tendances (7)

Smi5 cours partie2
Smi5 cours partie2Smi5 cours partie2
Smi5 cours partie2
 
Etat de l’art des communications basées sur Mach (1995)
Etat de l’art des communications basées sur Mach (1995)Etat de l’art des communications basées sur Mach (1995)
Etat de l’art des communications basées sur Mach (1995)
 
Cisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracerCisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracer
 
Smi5 cours partie1
Smi5 cours partie1Smi5 cours partie1
Smi5 cours partie1
 
Etat de l’art des serveurs Unix au dessus de Mach (1995)
Etat de l’art des serveurs Unix au dessus de Mach (1995)Etat de l’art des serveurs Unix au dessus de Mach (1995)
Etat de l’art des serveurs Unix au dessus de Mach (1995)
 
Article open-silicium-juin-juillet-aout-2013
Article open-silicium-juin-juillet-aout-2013Article open-silicium-juin-juillet-aout-2013
Article open-silicium-juin-juillet-aout-2013
 
Utilisation de dkms
Utilisation de dkmsUtilisation de dkms
Utilisation de dkms
 

En vedette

Erasing race
Erasing raceErasing race
Erasing raceaarthi_
 
La adoracion en los salmos powerpoint pastor nic garza
La adoracion en los salmos powerpoint pastor nic garzaLa adoracion en los salmos powerpoint pastor nic garza
La adoracion en los salmos powerpoint pastor nic garzaPt. Nic Garza
 
Accessibility Means Business
Accessibility Means BusinessAccessibility Means Business
Accessibility Means BusinessIrene Walker
 
Appreciative listening
Appreciative listeningAppreciative listening
Appreciative listeningWenlie Jean
 
The Real-time Landscape: Zero-delay Advertising - Marco Kloots. Click District
The Real-time Landscape: Zero-delay Advertising - Marco Kloots. Click District The Real-time Landscape: Zero-delay Advertising - Marco Kloots. Click District
The Real-time Landscape: Zero-delay Advertising - Marco Kloots. Click District auexpo Conference
 
Nom de code : iLife / Présentation
Nom de code : iLife / Présentation Nom de code : iLife / Présentation
Nom de code : iLife / Présentation Agence 50A
 
Barcamp paris septembre_2013_public
Barcamp paris septembre_2013_publicBarcamp paris septembre_2013_public
Barcamp paris septembre_2013_publicAgence 50A
 

En vedette (7)

Erasing race
Erasing raceErasing race
Erasing race
 
La adoracion en los salmos powerpoint pastor nic garza
La adoracion en los salmos powerpoint pastor nic garzaLa adoracion en los salmos powerpoint pastor nic garza
La adoracion en los salmos powerpoint pastor nic garza
 
Accessibility Means Business
Accessibility Means BusinessAccessibility Means Business
Accessibility Means Business
 
Appreciative listening
Appreciative listeningAppreciative listening
Appreciative listening
 
The Real-time Landscape: Zero-delay Advertising - Marco Kloots. Click District
The Real-time Landscape: Zero-delay Advertising - Marco Kloots. Click District The Real-time Landscape: Zero-delay Advertising - Marco Kloots. Click District
The Real-time Landscape: Zero-delay Advertising - Marco Kloots. Click District
 
Nom de code : iLife / Présentation
Nom de code : iLife / Présentation Nom de code : iLife / Présentation
Nom de code : iLife / Présentation
 
Barcamp paris septembre_2013_public
Barcamp paris septembre_2013_publicBarcamp paris septembre_2013_public
Barcamp paris septembre_2013_public
 

Similaire à 141[1]

BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesXavier MARIN
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitWassim Smati
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitWassim Smati
 
Administration VMware esxi vsphere
Administration VMware esxi  vsphere Administration VMware esxi  vsphere
Administration VMware esxi vsphere tiandrazanalino
 
VPN site-to-site.pdf
VPN site-to-site.pdfVPN site-to-site.pdf
VPN site-to-site.pdfgorguindiaye
 
presentation.pptx
presentation.pptxpresentation.pptx
presentation.pptxAnassRoman1
 
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch
 
Microprocesseur.pptx
Microprocesseur.pptxMicroprocesseur.pptx
Microprocesseur.pptxJohnsonHang
 
vpn-site-a-site-avec-des-routeurs-cisco
 vpn-site-a-site-avec-des-routeurs-cisco vpn-site-a-site-avec-des-routeurs-cisco
vpn-site-a-site-avec-des-routeurs-ciscoCamara Assane
 
éTude des techno de stockage
éTude des techno de stockageéTude des techno de stockage
éTude des techno de stockagekhech123
 
Les commandes CISCO (routeur)
Les commandes CISCO (routeur)Les commandes CISCO (routeur)
Les commandes CISCO (routeur)EL AMRI El Hassan
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IPTarik Zakaria Benmerar
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxThierry Gayet
 
Cours sys 2PPT20.pdf
Cours sys 2PPT20.pdfCours sys 2PPT20.pdf
Cours sys 2PPT20.pdfC00LiMoUn
 

Similaire à 141[1] (20)

BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
_JCVFr
_JCVFr_JCVFr
_JCVFr
 
Ccna1
Ccna1Ccna1
Ccna1
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 
Administration VMware esxi vsphere
Administration VMware esxi  vsphere Administration VMware esxi  vsphere
Administration VMware esxi vsphere
 
_JCVFr
_JCVFr_JCVFr
_JCVFr
 
VPN site-to-site.pdf
VPN site-to-site.pdfVPN site-to-site.pdf
VPN site-to-site.pdf
 
GNS3, VoIP, ToIP
GNS3, VoIP, ToIPGNS3, VoIP, ToIP
GNS3, VoIP, ToIP
 
presentation.pptx
presentation.pptxpresentation.pptx
presentation.pptx
 
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
 
ccna1-3.pdf
ccna1-3.pdfccna1-3.pdf
ccna1-3.pdf
 
Microprocesseur.pptx
Microprocesseur.pptxMicroprocesseur.pptx
Microprocesseur.pptx
 
Vpn
VpnVpn
Vpn
 
vpn-site-a-site-avec-des-routeurs-cisco
 vpn-site-a-site-avec-des-routeurs-cisco vpn-site-a-site-avec-des-routeurs-cisco
vpn-site-a-site-avec-des-routeurs-cisco
 
éTude des techno de stockage
éTude des techno de stockageéTude des techno de stockage
éTude des techno de stockage
 
Les commandes CISCO (routeur)
Les commandes CISCO (routeur)Les commandes CISCO (routeur)
Les commandes CISCO (routeur)
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IP
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU Linux
 
Cours sys 2PPT20.pdf
Cours sys 2PPT20.pdfCours sys 2PPT20.pdf
Cours sys 2PPT20.pdf
 

Dernier

Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 

Dernier (20)

Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 

141[1]

  • 1. Dynamips - Un émulateur de routeur Cisco sur PC Christophe Fillot Université de Technologie de Compiègne, Service Informatique rue Personne de Roberval, 60200 Compiègne Christophe.Fillot@utc.fr Jean-Marc Berenguier Université de Technologie de Compiègne, Service Informatique rue Personne de Roberval, 60200 Compiègne Jean-Marc.Berenguier@utc.fr Résumé Pour obtenir des performances correctes, un recompilateur "JIT" (Just-In Time) recompile le code de l'image IOS à la La création de maquettes « réseau » Cisco de taille volée en code natif Intel x86 (ou x86 64-bits). Bien que conséquente se heurte à deux principales problématiques : beaucoup plus lent, un mode d'exécution pas-à-pas existe le coût et la disponibilité des équipements mis en œuvre ou également pour les plateformes hôtes non supportées (non le comportement imparfait des simulateurs de routeurs tel x86). Une plateforme x86 est donc à préférer. Boson [1] quand ceux-ci sont utilisés, les spécificités des différentes versions d'IOS (fonctionnalités, comportements, bogues) n'étant pas prises en compte. Les gammes de routeurs émulés sont: • Cisco 7200 (NPE-100 jusqu'à NPE-400, NPE-G2) Nous avons développé et présentons Dynamips [2], une • Cisco 3600 (3620, 3640, 3660) solution d'émulation hardware de routeurs Cisco, capable • Cisco 3700 (3725, 3745) de faire fonctionner sur PC des images IOS non modifiées. • Cisco 2600 (2610 à 2651XM, 2691) La possibilité de démarrer et d'interconnecter plusieurs instances de Dynamips sur un ou plusieurs serveurs • Cisco 1700 (1710 à 1760) permet de réaliser des maquettes opérationnelles de ré- seaux complets. L'émulation de switches (de type Catalyst) n'est pas suppor- tée, mais un module de switching Ethernet (référence Cisco Nous présentons également les projets connexes de confi- NM-16ESW) peut être utilisé sur les plateformes 3600, guration et de pilotage de Dynamips, Dynagen [3], inter- 3700 et 2600. face en mode texte, et GNS-3 [4], interface graphique. Les interfaces émulées sont de type: Mots clefs • Ethernet, FastEthernet, GigabitEthernet, Routeurs Cisco, IOS, émulation • Série, • ATM (Cisco 7200 uniquement), 1 Introduction • POS (Cisco 7200 uniquement). Dynamips est un émulateur de routeurs Cisco capable de faire fonctionner des images Cisco IOS non modifiées Différentes instances de l'émulateur peuvent être intercon- comme si elles s'exécutaient sur de véritables équipements. nectées à travers ces interfaces. Une connexion à un réseau Le rôle de Dynamips n'est pas de remplacer de véritables réel est réalisable en Ethernet via une interface physique du routeurs, mais de permettre la réalisation de maquettes serveur hôte. complexes avec de vraies versions d'IOS. Contrairement à certains autres produits, il ne s'agit pas d'une émulation de Dynamips fonctionnant uniquement en ligne de commande, la ligne de commande IOS et de son fonctionnement, mais des projets connexes non portés par l'UTC ont vu le jour : d'une émulation complète du « hardware ». Dynamips peut Dynagen est un produit complémentaire écrit en Python être utilisé à des fins de formation, d'expérimentation, aide s'interfaçant avec Dynamips grâce au mode hyperviseur au diagnostic, validation de configurations, ... que nous aborderons plus loin. Dynagen facilite la création et la gestion de maquettes grâce à un fichier de configura- 2 Présentation générale tion simple décrivant la topologie du réseau à simuler et une interface texte interactive. Dynamips est écrit en langage C, sous licence GPL. Les plateformes hôtes supportées sont de type PC sous Linux, GNS-3 reprend ces mêmes fonctionnalités sous forme Mac Os X et Windows (via Cygwin [5]). Un portage sur d'interface graphique. Ecrit en Python, il s'appuie sur des d'autres plateformes Unix est également possible. modules de Dynagen.
  • 2. couche permet de découpler l'interface réseau émulée (vi- sible sous IOS) de l'interface réseau sur le serveur hôte. Elle gère en particulier la communication inter-instances en s'appuyant sur des sockets UDP ou Unix. 4 Utilisation 4.1 Hyperviseur Dynamips fonctionne selon deux modes : en ligne de com- mande Unix classique ou en mode « Hyperviseur ». En mode « hyperviseur », une instance Dynamips attend les ordres de gestion des routeurs virtuels locaux (création, suppression, démarrage, arrêt, ...) et des interconnexions réseau, à travers un canal de commande TCP. Figure 1 - Une copie d'écran de GNS-3 De même, l'accès aux ports console des routeurs émulés s'effectue au travers de canaux TCP dont les caracté- ristiques (port) sont spécifiés via l'hyperviseur. 3 Architecture 4.2 Interconnexions réseau 3.1 Exécution du code IOS Les interconnexions réseau s'effectuent grâce à des Pour permettre l'exécution d'une image IOS, Dynamips doit interfaces IOS Ethernet, Séries ou ATM auxquelles sont émuler le processeur ainsi que tous les périphériques de la affectées des méthodes de transport de la couche plateforme cible. d'abstraction NIO en fonction de leur utilisation. L'interconnexion d'instances s'appuie sur des sockets UDP Les équipements Cisco étant basés sur des processeurs ou Unix. Les sockets UDP permettent de relier des routeurs MIPS (64-bits) ou PowerPC (32-bits), Dynamips émule virtuels fonctionnant sur des serveurs différents, les sockets donc ces processeurs. Unix offrant moins d' « overhead » pour des intercon- nexions locales. Pour des raisons de performances, le code MIPS ou La méthode NIO PCAP permet de faire correspondre une PowerPC de l'image IOS est recompilé à la volée en code interface émulée IOS à une interface Ethernet physique du natif Intel x86 (ou x86 64-bits). Un compilateur JIT a donc serveur hôte. été écrit à cet effet. Enfin, la connexion à des machines virtuelles telles que QEMU [6] ou UML [7] est possible grâce au support de Par exemple, le code PPC suivant : VDE (« Virtual Distributed Ethernet ») [8]. lis r9,804 La création de maquettes intégrant à la fois du matériel addi r9,r9,4592 physique, des routeurs virtuels (sous Dynamips) et de ma- rlwinm r0,r0,2,0,29 chines virtuelles (QEMU, UML) est donc réalisable. Dynamips fournit également une boîte à outils comprenant sera compilé à la volée pour donner le code x86 : des bridges et des switches virtuels Ethernet, ATM et mov $0x32411f0,%ecx Frame-Relay simplifiés. mov %ecx,0x28(%edi) mov 0x4(%edi),%eax 4.3 Perturbation de trafic rol $0x2,%eax La simulation de problèmes réseau est réalisable par l'ad- and $0xfffffffc,%eax jonction de modules spécifiques. Un module permettant la mov %eax,0x4(%edi) coupure franche de liens ou la perte de paquets est dispo- nible. Un module de « fuzzing » (modification aléatoire Pour les plateformes hôtes non-x86, un mode interpréteur, d'un certain nombre de bits) pour altérer des paquets est en beaucoup plus lent, est disponible. cours de développement. Tout autre type d'altération du trafic peut être envisagé par la création de nouveaux mo- 3.2 Emulation des périphériques dules. Outre le CPU, Dynamips doit également gérer l'ensemble 4.4 Capture de trafic des périphériques qui composent le routeur : mémoire RAM, NVRAM (stockage de la configuration), mémoire Dynamips permet la capture de trafic entre instances au Flash, bus PCI, interfaces réseau... format « pcap » (compatible avec les outils tcpdump [9], ethereal/wireshark [10]). La capture est possible sur des Dynamips propose une couche d'abstraction pour la gestion liaisons émulées Ethernet et Série. Sur les liaisons série, les de l'envoi et de la réception des paquets sur les interfaces protocoles HDLC, PPP et Frame-Relay sont supportés pour réseau, appelée « NIO » (Network Input/Output). Cette la capture.
  • 3. Indépendamment, l'aide au diagnostic par caractérisation du trafic peut également être réalisée en exploitant les [[Router r3]] fonctionnalités d'un collecteur « NetFlow » [11] alimenté model = 7200 par des exports « NetFlow » d'IOS. Nous proposons l'utili- a1/0 = Switch 3 sation du collecteur « IPFlow » [12] que nous avons égale- ment développé. [[ATMSW Switch]] # Définition du switch virtuel ATM et des PVCs 5 De la topologie réseau à la simula- 1:10:32 = 3:20:100 2:10:33 = 3:20:101 tion Nous nous proposons de détailler ici les différentes étapes Les extraits pertinents des configurations des trois routeurs permettant de construire une maquette opérationnelle à par- sont donnés ci-dessous : tir de la topologie de la figure 2 ci-dessous : ! interface ATM1/0 R1 no ip address ATM1/0 no atm ilmi-keepalive Switch ATM ! R3 1 interface ATM1/0.32 point-to-point 3 ip address 10.10.0.1 255.255.255.252 R2 ATM1/0 no snmp trap link-status 2 pvc 10/32 ATM2/0 ! ! Figure 2 - Topologie router ospf 100 Le switch ATM sera simulé par Dynamips en utilisant un log-adjacency-changes switch virtuel simplifié de la boîte à outils. Les routeurs network 10.0.0.0 0.255.255.255 area 0 émulés sont de type Cisco 7200. ! Deux circuits ATM ont été construits entre R1 et R3, et R2 et R3. Pour cela, les PVC ATM suivants ont été mis en Configuration de R1 place entre : • R1 (10/32) et R3 (20/100) • R2 (10/33) et R3 (20/101) ! Dans cette configuration, les flux entre R1 et R2 passent interface ATM2/0 donc par R3. no ip address Enfin, le protocole de routage OSPF a été activé entre les no atm ilmi-keepalive trois routeurs. ! interface ATM2/0.33 point-to-point Le fichier de configuration de Dynagen correspondant à ip address 10.11.0.1 255.255.255.252 cette topologie est le suivant : no snmp trap link-status autostart = False pvc 10/33 ! [localhost] ! router ospf 100 [[7200]] log-adjacency-changes # Type de routeur et image network 10.0.0.0 0.255.255.255 area 0 image=/Users/chris/IOS_pool/extract/C7200-AD.BIN ! idlepc = 0x606ba100 ram = 192 Configuration de R2 [[Router r1]] # Définition du routeur R1 et # interconnexion de son interface atm1/0 # avec l'interface 1 du switch ATM virtuel model = 7200 a1/0 = Switch 1 [[Router r2]] model = 7200 a2/0 = Switch 2
  • 4. ! La copie d'écran de la figure 3 ci-dessous présente interface ATM1/0 différentes fenêtres de gestion de la maquette. no ip address no atm ilmi-keepalive ! La première fenêtre (en haut à gauche) est celle de interface ATM1/0.100 point-to-point l'hyperviseur Dynamips. On peut y voir les sorties ip address 10.10.0.2 255.255.255.252 correspondant au démarrage des différentes instances. no snmp trap link-status L'hyperviseur a été démarré en tapant la commande pvc 20/100 suivante dans cette fenêtre : ! # dynamips -H 7200 ! Dynamips attend ensuite les commandes envoyées par interface ATM1/0.101 point-to-point Dynagen sur le port TCP 7200 spécifié par l'argument -H. ip address 10.11.0.2 255.255.255.252 no snmp trap link-status pvc 20/101 La seconde fenêtre (en haut à droite) est celle de Dynagen. ! La saisie des commandes « telnet r1 » et « telnet r2 » ! a provoqué l'ouverture des fenêtres du bas de la copie router ospf 100 d'écran. Elles correspondent aux ports console des deux log-adjacency-changes routeurs R1 et R2. network 10.0.0.0 0.255.255.255 area 0 ! Configuration de R3 Figure 3 - Fenêtres de gestion de la maquette
  • 5. 6 Perspectives Dynamips possède une importante communauté d'utilisateurs [13], source de nombreuses propositions d'évolutions. Dynamips est amené à évoluer avec le support de nouvelles plateformes Cisco et de nouveaux modules réseau. Un effort particulier sera porté sur la partie switching. Nous accueillerons volontiers tout « contributeur » passionné par le domaine de l'émulation de processeurs et de « hardware », et par les plateformes Cisco. Bibliographie et Liens [1] Boson Software, Boson, http://www.boson.com/ [2] Christophe Fillot, Jean-Marc Berenguier, Dynamips, http://www.ipflow.utc.fr/index.php/Cisco_7200_Simu lator [3] Greg Anuzelli, Dynagen, http://dynagen.org [4] Projet de fin d'études EPITECH GNS-3, http://www.gns3.net [5] Cygwin, http://www.cygwin.com/ [6] Fabrice Bellard, QEMU, http://fabrice.bellard.free.fr/qemu/ [7] User-Mode Linux, UML, http://user-mode-linux.sourceforge.net/ [8] Virtual Distributed Ethernet, VDE, http://vde.sourceforge.net/ [9] Tcpdump, http://www.tcpdump.org/ [10] Wireshark (Ethereal), http://www.wireshark.org/ [11] Cisco NetFlow Version 9, RFC3954, http://www.ietf.org/rfc/rfc3954.txt [12] Christophe Fillot, Jean-Marc Berenguier, Collecteur Netflow « IPFlow », http://www.ipflow.utc.fr [13] Forum de la communauté d'utilisateurs de Dynamips, http://7200emu.hacki.at