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

Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...NaimDoumissi
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursStagiaireLearningmat
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 37
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxMartin M Flynn
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 

Dernier (18)

Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceurs
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 

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