En Une :

Installer et configurer GNS3 Server / GUI

Pour se rapprocher d'une expérience moderne des interfaces de configuration des produits Cisco Systems, on conseillera volontiers le projet Open Source GNS3 comme meilleur rapport qualité/prix pour se préparer aux examens de certification et à la pratique des systèmes Cisco.

1. GNS3

GNS3 est une interface graphique frontale écrite en Python pour simuler des topologies réseau. Les technologies de virtualisation utilisées par GNS3 sont Dynamips, VPCS, VMWare Workstation/ESXi, VirtualBox, QEMU/KVM, Docker, ...

Le logiciel émule aussi des technologies LAN/WAN comme Ethernet, Frame-Relay, ATM, HDLC, PPP, ...

Il permet de construire des topologies complexes. On peut capturer en temps réel le trafic qui passe par les interfaces des périphériques. Les topologies créées sont importables/exportables.

Le projet GNS3 trouve son origine dans le logiciel Open Source Dynamips. Dynamips est émulateur de routeur Cisco écrit par Christophe Fillot. Il émule les plateformes matérielles 2691, 3620, 3640, 3660, 3725, 3745 et 7206 en faisant fonctionner de véritables images Cisco IOS. Dynagen et Dynagui sont deux autres projets qui s'interfacent avec Dynamips. GNS3 est en quelque sorte le successeur de ces deux logiciels d'interface et s'est étendu en supportant d'autres hyperviseurs / émulateurs matériels.

Le logiciel GNS3 peut s'installer en "stand-alone" avec une interface graphique et un serveur en local. Mais la méthode actuellement préconisée est d'utiliser un serveur GNS3 installé dans le nuage chez un prestataire comme OVH ou Scaleway. Le serveur est alors commandé à travers un tunnel VPN avec une installation locale du GUI GNS3.

On utilisera aujourd'hui la version de GNS3 2.0 au minimum.

2. Installation de GNS3 Server

GNS3 fonctionne selon un modèle client / serveur. Les deux logiciels doivent fonctionner dans une version identique. GNS3 évolue rapidement en plusieurs branches. Pour une meilleure expérience, on peut aisément installer les dernières versions en développement.

S'il est évident que le client doit être installé sur l'ordinateur de travail de l'utilisateur (Windows, Mac OS X, Linux), le serveur peut être exécuté :

  • sur le client directement (peu recommandé)
  • ou dans une machine virtuelle locale (de moins en moins recommandé)
  • sur un serveur "bare-metal" dédié (fortement recommandé)

Pour une meilleure expérience, il sera donc nécessaire de commander une instance de type Bare-Metal avec un accès natif aux instructions de virtualisation du processeur.

Aussi les performances du serveur GNS3 peuvent se mesurer en fonction du nombre de CPU, de la vitesse des disques (SATA, SSD direct ou non), de l'accès au réseau, de la quantité de mémoire RAM.

Un sous-dimensionnement du rapport machine à démarrer / vcpu disponibles peut ralentir le lancement d'une topologie. De même que les ressources en RAM pourrait être réservées et s'agréger. Dans cette perspective l'usage des IOSv et des images Docker s'avère judicieux.

Le dimensionnement nécessaire dépendra des topologies à déployer et des machines utilisées. Pour commencer en CCNA Routing et Switching (200-125), on recommandera au minimum 16Go RAM, 8 vcpu disponibles et 50Go SSD et plus.

Aussi, le fournisseur doit offrir une image Ubuntu 16.04 LTS prête à l'emploi.

En lab Cisco, on recommandera les IOSv (L3, 1 vCPU, 512 Mo RAM) et IOSv-L2 (1 vCPU, 768 Mo RAM) et des machines Docker. Mais à condition de disposer de ressources suffisantes (2 vCPU et 4G RAM par machine), il est possible de virtualiser IOS-XE et IOS-XR mais aussi ASAv.

Fournisseur Offre Prix Appréciation
Scaleway C2M (16Go RAM, 8 vcpu, 50Go SSD) 20 EUR/mois ou 0,036 EUR/heure +++ Choix minimal, mais très bon rapport qualité/prix
Scaleway C2L (32Go RAM, 8 vcpu, 250Go direct SSD) 25 EUR/mois ou 0,048 EUR/heure +++ Très confortable, bon rapport qualité/prix
OVH HOST-32L (32Go RAM, 8 vcpu, 2To SATA) 20 EUR/semaine ++ Très bon service mais disques faibles
Packet.net Type 1 (32Go RAM, 8 vcpu, 50Go SSD) 25 EUR/mois ou 0,40 EUR/heure + Rolls du Bare-Metal-As-a-Service

En bref,

  1. Inscription chez Scaleway : https://cloud.scaleway.com/#/signup
  2. Prendre une instance C2M (16Go RAM, 8 cores, 50Go SSD) Ubuntu16.04
  3. Suivre la procédure décrite dans http://docs.gns3.com/1c2Iyiczy6efnv-TS_4Hc7p11gn03-ytz9ukgwFfckDk/ (le script d'installation est situé sur https://github.com/GNS3/gns3-server/blob/master/scripts/remote-install.sh)
  4. Télécharger les images à partir de son compte Cisco VIRL (200 EUR/an).
  5. Placer les images IOSv et Intel dans /opt/gns3/images/QEMU

3. Comment trouver des images Cisco IOS pour GNS3 ?

Le seul moyen d'obtenir des images IOSv légalement est de prendre un abonnement VIRL.

Un abonnement VIRL vous permet d'obtenir des images à exécuter dans GNS3 (https://learningnetworkstore.cisco.com/virlfaq/features) :

  • IOSv,
  • IOSvL2,
  • IOS-XRv,
  • CSR1000v,
  • NX-OSv,
  • ASAv,
  • NX-OS 9000v,
  • IOS XRv 9000.

Les images utilisées dans les exemples de ce site sont les suivantes :

Périphériques Images Commentaire
Routeur Cisco IOSv vios-adventerprisek9-m.vmdk.SPA.156-2.T avec IOSv_startup_config.img VIRL
Commutateur Cisco IOSv L2/L3 vios_l2-adventerprisek9-m.03.2017.qcow2 VIRL
Poste de travail L2 à L7 container Docker gns3/ubuntu:xenial Ubuntu GNS3 Docker Hub
Pare-feu ASAv asav971.qcow2 VIRL

4. Installation de GNS3 GUI et connexion au serveur

La procédure consiste à suivre quatre étapes :

  1. Télécharger et installer le logiciel OpenVPN.
  2. Etablir la connexion OpenVPN avec votre serveur GNS3
  3. Installer la version GUI de GNS3
  4. Importer des appliances (les modèles de machines virtuelles)

4.1. Téléchargement et installation d'OpenVPN

4.2. Connexion OpenVPN

Fourniture d'un fichier ovpn : http://$MY_IP_ADDR:8003/$UUID/$HOSTNAME.ovpn

4.3. Téléchargement et installation de GNS3-GUI

Le logiciel se télécharge à partir de cette adresse : https://github.com/GNS3/gns3-gui/releases/

L'installation est très intuitive car elle consiste uniquement à choisir "Next". Excepté qu'il n'est pas nécessaire d'installer les produits commerciaux quand bien même ils sont très intéressants (SolarWinds Response Time Viewer). On trouvera une aide dans le document http://docs.gns3.com/11YYG4NQlPSl31YwvVvBS9RAsOLSYv0Ocy-uG2K8ytIY/index.html.

Choisir une configuration "Run everything on a remote server (advanced usage)".

Ce serveur distant est à l'autre bout du tunnel VPN. Les paramètres à indiquer sont :

  • Adresse : 172.16.253.1
  • Port : 3080

4.4. Installation des appliances

Un template (un modèle) d'appliance est un fichier de défintion d'une machine virtuelle qui référence les paramètres d'interfaces, la RAM, les CPUs, la console et des images disque.

Depuis la version 2.1., les modèles des appliances sont directement disponibles dans l'interface GNS3 GUI ce qui facilite le déploiement en classe de formation. Il est conseillé d'utiliser l'appliance Ubuntu comme station de travail en attendant la disponibilité d'un Windows Core en image Docker par exemple.

Les images à utiliser devraient déjà être placées sur le serveur GNS3. Les images IOSv s'acquièrent en prenant un abonnement Cisco VIRL.

5. Création d'une topologie de Base

De nouveau l'usage de GNS3 est très intuitif.

Page d'aide : http://docs.gns3.com/1wr2j2jEfX6ihyzpXzC23wQ8ymHzID4K3Hn99-qqshfg/index.html

Author image
Francois Goffinet est formateur Cisco Systems depuis 2002. Passionné des technologies des réseaux, de virtualisation et en nuage, Web et de cybersécurité souvent en Open Source ou Unix-Like, devops.