Déc 15 2009

Un Routeur Cisco Virtuel sur votre Réseau

Publié par à 9:03 sous Cisco,Linux

Dynamips et dynagen permettent de créer un routeur Cisco virtuel sur un environnement Linux. Ne serait-ce encore mieux si ce routeur était connecté au LAN local? En allant plus loin, ce même routeur pourrait être connecté à d’autres routeurs virtuels formant un lab complet.
 

Téléchargement et Installation

Télécharger dynamips et dynagen depuis sourceforge.net. Bien prendre en compte que la dernière version de Dynagen nécessite Dynamips 0.2.8-RC2.
Les 2 programmes sont livrés sous forme de paquets RPM pour Redhat/Fedora.
 
Sur d’autres distributions Linux telles que Debian ou Ubuntu, Dynagen n’est disponible que sous forme d’archive depuis laquelle on peut extraire les binaires. Il suffit ensuite de faire pointer un lien symbolique vers dynagen depuis /usr/local/bin par exemple. Quant à Dynamips, il faut l’extraire du rpm. Il peut aussi être téléchargé sur netexpertise.eu.
A noter que dynamips peut retourner une erreur comme ceci:

[root@cisco_host]$ dynamips -h
dynamips: error while loading shared libraries: libpcap.so.0.9:
cannot open shared object file: No such file or directory

[root@cisco_host]$ ln -s /usr/lib/libpcap.so.0.9.8 /usr/lib/libpcap.so.0.9

 
Un lien symbolique suffit pour pointer vers la bonne librairie.
 

Installation des Outils Réseau

Les 2 outils suivants seront nécessaires:
– brctl du package bridge-utils (sur la majorité des distributions Linux) – pour créer un bridge
– tunctl de rpmfind pour Redhat/Fedora et uml-utilities pour Debian/Ubuntu – pour créer une interface tap. Celui-ci n’est pas absolument nécessaire puisque Dynagen est capable de créer sa propre interface de lui-même mais il s’avère très utile.
 

Création du Bridge et Connexion au Réseau

Le bridge br0 se constituera de l’interface eth1 connectée au LAN et de tap0 liée au routeur Cisco. 192.168.0.100 est l’adresse de l’hôte Linux.

[root@cisco_host]$ brctl addbr br0
[root@cisco_host]$ ifconfig br0 up
[root@cisco_host]$ ifconfig eth1 0.0.0.0
[root@cisco_host]$ brctl addif br0 eth1
[root@cisco_host]$ ifconfig br0 192.168.0.100 netmask 255.255.255.0 up


Fichier de Configuration du Routeur Cisco Virtuel

Créer le fichier de configuration Dynagen suivant. Il faudra copier sa propre image Cisco sur le serveur puisqu’elle est propriétaire bien entendu. C’est là que l’on fait le lien entre l’interface f0/0 du Cisco et tap0.

[localhost]
workingdir = /tmp

    [[ 7200 ]]
    image = /root/c7200-js-mz.124-3.bin
    ram = 128
    idlepc = 0x6082c30c

    [[ router R1 ]]
    console = 2001
    f0/0 = NIO_tap:tap0

 
Je suggère de jeter un oeil sur le tutorial Dynagen pour définir la meilleure valeur de idlepc pour ne pas consommer toutes les ressources CPU de la machine. On peut ensuite lancer l’hyperviseur Dynamips ainsi que Dynagen pour exécuter le routeur virtuel.

[root@cisco_host]$ dynamips -H 7200&
[1] 2347
[root@cisco_host]$ Cisco Router Simulation Platform (version 0.2.8-RC2-x86)
Copyright (c) 2005-2007 Christophe Fillot.
Build date: Apr 20 2008 12:25:53
Hypervisor TCP control server started (port 7200).

[root@cisco_host]$ dynagen router.net
Reading configuration file...

Shutdown in progress...
Shutdown completed.
Network successfully loaded

Dynagen management console for Dynamips and Pemuwrapper 0.11.0
Copyright (c) 2005-2007 Greg Anuzelli, contributions Pavel Skovajsa

=>


Ajout du Routeur Cisco au Bridge

tap0 a été créé par Dynagen et peut maintenant être activé et ajouté au bridge.

[root@cisco_host]$ brctl addif br0 tap0
[root@cisco_host]$ ifconfig tap0 up



Connexion au Routeur

Connectez-vous au routeur en telnet sur le port 2001 – comme défini dans le fichier de configuration précédemment – et jouez avec la console comme si vous étiez sur un véritable routeur Cisco et son IOS.

[root@cisco_host]$ telnet localhost 2001
router>enable
router#show interface summary

 *: interface is up
 IHQ: pkts in input hold queue     IQD: pkts dropped from input queue
 OHQ: pkts in output hold queue    OQD: pkts dropped from output queue
 RXBS: rx rate (bits/sec)          RXPS: rx rate (pkts/sec)
 TXBS: tx rate (bits/sec)          TXPS: tx rate (pkts/sec)
 TRTL: throttle count

  Interface              IHQ   IQD  OHQ   OQD  RXBS RXPS  TXBS TXPS TRTL
------------------------------------------------------------------------
* FastEthernet0/0          0     0    0     0     0    0     0    0    0
  FastEthernet0/1          0     0    0     0     0    0     0    0    0
NOTE:No separate counters are maintained for subinterfaces
     Hence Details of subinterface are not shown

router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
router(config)#int fa0/0
router(config-if)#ip address 192.168.0.101 255.255.255.0
router(config-if)#no shutdown
router(config-if)#end
router#

router#ping 192.168.0.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/11/16 ms
router#ping 192.168.0.100

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.100, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 4/20/36 ms

 
192.168.0.1 étant la passerelle ou tout matériel sur le LAN.
Vous pouvez maintenant virtualiser autant de routeurs Cisco que vous le souhaitez, dans la limite des ressources de votre machine.


No responses yet

Comments RSS

Leave a Reply