« Gns3 » : différence entre les versions
(Page créée avec « GNS3 est un logiciel de simulation réseau. Il exploite qemu au travers du framework libvirt pour émuler des équipements réseaux. Nous nous trouvons donc avec des équi... ») |
Aucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
GNS3 est un logiciel de simulation réseau. Il exploite qemu au travers du framework libvirt pour émuler des équipements réseaux. Nous nous trouvons donc avec des équipements | GNS3 est un logiciel de simulation réseau. Il exploite ''qemu'' au travers du framework ''libvirt'' pour émuler des équipements réseaux. Nous nous trouvons donc avec des équipements virtuels qui réagissent comme des équipement physiques et qui, après avoir été reliés au monde réel par l'intermédiaire d'un pont sur la carte réseau de l'hôte, peuvent communiquer avec leurs pairs physiques de la même manière que de vrai équipements. | ||
{{info|Testé avec la version 2.0 sortie le 02/05/2017}} | |||
=Installation= | =Installation= | ||
La version de GNS3 disponible dans les dépôts Debian est affligeante, il s'agit d'une très ancienne version (elle ne permet même pas de supprimer les câbles que l'on connectes aux équipements...), nous allons donc ajouter le dépôt du projet pour être à jour. | La version de GNS3 disponible dans les dépôts Debian est affligeante, il s'agit d'une très ancienne version (elle ne permet même pas de supprimer les câbles que l'on connectes aux équipements...), nous allons donc ajouter le dépôt du projet pour être à jour. | ||
Ligne 18 : | Ligne 19 : | ||
apt install gns3-gui | apt install gns3-gui | ||
==Méthode DPKG== | ==Méthode DPKG== | ||
Cette méthode a été testé avec GNS3 1.5.3. Elle est fonctionnelle mais en plus de sa lourdeur, elle ne permet pas une monté en version simple. Elle reste toutefois plus abordable que la compilation depuis les sources. | Cette méthode a été testé avec GNS3 1.5.3. Elle est fonctionnelle mais en plus de sa lourdeur, elle ne permet pas une monté en version simple. Elle reste toutefois plus abordable que la compilation depuis les sources et a été documenté car je me suis bien fait chier pour la pondre quand j'en avais besoin. | ||
Installation des dépendances de ''gns3-gui'' (j'ai enlevé gns3-server qui réclame ''libvirt-bin'' qui n'existe pas) | Installation des dépendances de ''gns3-gui'' (j'ai enlevé gns3-server qui réclame ''libvirt-bin'' qui n'existe pas) | ||
Ligne 34 : | Ligne 35 : | ||
À ce stade nous avons GNS3 d'installé. Ne criez pas victoire trop vite car libvirt-bin, bien que nous ayant bien fiat chier reste un élément indispensable pour émuler les équipements. Il va donc falloir l'installer si on veut bénéficier de l’intérêt de ce logiciel. Pour ce faire, soit vous optez pour l'installation des dépendances de ''libvirt-bin'' ainsi que lui même à la main, soit vous le récupérez depuis les dépôts Jessie comme avec la méthode ''apt''. | À ce stade nous avons GNS3 d'installé. Ne criez pas victoire trop vite car libvirt-bin, bien que nous ayant bien fiat chier reste un élément indispensable pour émuler les équipements. Il va donc falloir l'installer si on veut bénéficier de l’intérêt de ce logiciel. Pour ce faire, soit vous optez pour l'installation des dépendances de ''libvirt-bin'' ainsi que lui même à la main, soit vous le récupérez depuis les dépôts Jessie comme avec la méthode ''apt''. | ||
{{astuce|Les dépendances des ''.deb'' se trouvent avec la commande <source lang="bash" inline>dpkg-deb --info nom.deb</source>. Lorsque ''apt'' ne veut plus rien savoir et qu'il casse les couille on nettoie tout avec la commande <source lang="bash" inline>apt --fix-broken install</source>.}} | {{astuce|Les dépendances des ''.deb'' se trouvent avec la commande <source lang="bash" inline>dpkg-deb --info nom.deb</source>. Lorsque ''apt'' ne veut plus rien savoir et qu'il casse les couille on nettoie tout avec la commande <source lang="bash" inline>apt --fix-broken install</source>.}} | ||
==Ajout d'un IOS Cisco== | |||
Les IOS Cisco sont disponibles dans [https://{{SERVERNAME}}/fichiers/réseaux/cisco/iso/ nos fichiers]. Il sont à ajouter dans les modèles de routeur (vous trouverez, ce n'est pas très compliqué). | |||
=Lien avec le monde physique= | =Lien avec le monde physique= | ||
Faire son réseau virtuel est intéressant mais pouvoir exploiter ses atouts avec de vrais équipements, c'est encore mieux. Ainsi ont peut considérer sont PC hôte comme une baie avec plein d'équipement que l'on relie au réseau externe. Les possibilités sont infinies... | Faire son réseau virtuel est intéressant mais pouvoir exploiter ses atouts avec de vrais équipements, c'est encore mieux. Ainsi ont peut considérer sont PC hôte comme une baie avec plein d'équipement que l'on relie au réseau externe. Les possibilités sont infinies... | ||
Pour ce faire, il faut créer une interface de lien local ''tap'' et lui assigner une adresse IP. On ajoutera ensuite un "cloud" dans GNS3 (équipement avec l'icône de nuage) et on le configurera pour ajouter cette interface dans l'onglet ''NIO TAP''. Il faut rentrer le nom de l'interface dans le champ prévu à cet effet : " | Pour ce faire, il faut créer une interface de lien local ''tap'' et lui assigner une adresse IP. On ajoutera ensuite un "cloud" dans GNS3 (équipement avec l'icône de nuage) et on le configurera pour ajouter cette interface dans l'onglet ''NIO TAP''. Il faut rentrer le nom de l'interface dans le champ prévu à cet effet : ''tap0''. | ||
{{info|Avec GNS3 2.0, l'étape avec l'onglet n'est plus nécessaire car le nuage ajoute automatiquement les interfaces qu'il trouve sur l'hôte.}} | |||
==Installation== | |||
Installation des dépendances | |||
apt install uml-utilities net-tools | |||
Création de l'interface ''tap0'' et attribution d'une adresse IP | |||
tunctl -t tap0 | |||
ifconfig tap0 10.200.200.1 netmask 255.255.255.252 | |||
Attribution des droits à l'outil ''ubridge'' | |||
chmod 777 /usr/bin/ubridge | |||
==Problèmes== | |||
Cette étape aussi simple qu'il puisse y paraitre peut générer des erreurs bloquantes. Un message disant quand le chemin de ubridge n'est pas valide ou qu'il n'est pas installer peu survenir. C'est un problème de permission (faites un <source lang="bash" inline>ub+<tab></source> avec l'utilisateur qui doit executer GNS3, si bash n'autocomplète pas en ''ubridge'', c'est que <source lang="bash" inline>/usr/bin/ubridge</source> n'a pas les bons droits. Sinon c'est que c'est un problème inconnu (ce qui ne serai pas surprenant vu comment c'est une galère à installer). | |||
=Utilisation de Docker= | =Utilisation de Docker= | ||
Docker est une solution de conteneurisation. Il permettra de créer des serveurs et des postes clients virtuelles ainsi que faire des analyses réseaux au sein de l'infra virtuelle. Docker n'est malheureusement pas dans les dépôts Debian. Il faut donc ajouter le dépôt officiel à la main | |||
==Installation== | |||
Installation des paquets permettant la connexion à un dépôt HTTPS | |||
apt install apt-transport-https ca-certificates curl software-properties-common | |||
Ajout du dépôt dans le ''sources.list'' | |||
echo -e '#Dépôt docker\ndeb [arch=amd64] https://download.docker.com/linux/debian stretch stable' >> /etc/apt/sources.list | |||
Téléchargement et importation de la clé GPG du dépôt | |||
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - | |||
Mise à jour de la base ''apt'' | |||
apt update | |||
Installation du démon docker | |||
apt install docker-ce | |||
==Configuration== | |||
Ajout de l'utilisateur se servant de GNS3 au groupe docker (sinon l'application ne pourra pas se connecter au démon docker pour intéragir avec les conteneurs) | |||
usermod -aG docker <VOTRE_UTILISATEUR_DE_GNS3> | |||
Je n'ai pas trouver comment appliquer ces changements autrement qu'en redémarrant, navré | |||
reboot | |||
Téléchargement d'un conteneur Kalilinux (en root) | |||
docker pull gns3/kalilinux | |||
{{astuce|Il y a un bon nombre de conteneurs téléchargeables dans le [https://hub.docker.com/r/gns3/ dépôt Docker du projet GNS3]. Je vous conseils d'aller y faire un tour.}} | |||
Il faut maintenant ajouter le conteneur à GNS3 en tant que modèle. Pour ce faire il faut aller dans les paramètres, dans la section dédié à Docker et faire du clickodrôme jusqu'à l'ajout de notre conteneur (le 3ème lien des sources montre la procédure officielle si vraiment vous êtes en galère). | |||
==Problèmes== | |||
Tout comme ''ubridge'', Docker peut ne pas fonctionner pour cause de permission. Si la commande <source lang="bash" inline>docker ps</source> renvoi une erreur de permission en tant que utilisateur utilisant GNS3, c'est qu'il n'appartient pas au groupe ''docker''. | |||
J'ai également eu l'erreur <source lang="bash" inline>Docker has returned an error: 304 b</source> avec GNS3 1.5.3. Je n'ai pas eu le temps de résoudre cette erreur qui a été corrigé avec la mise à jour 2.0 de GNS3 et je n'ai pas de piste de résolution (ça semble être le problème de merde bien chiant à régler avec aucune aide sur Internet). Dieu vous garde si vous la rencontrez... | |||
==Sources== | |||
* https://store.docker.com/editions/community/docker-ce-server-debian?tab=description | |||
* http://stackoverflow.com/questions/21871479/docker-cant-connect-to-docker-daemon | |||
* https://docs.gns3.com/1KGkv1Vm5EgeDusk1qS1svacpuQ1ZUQSVK3XqJ01WKGc/index.html | |||
* https://hub.docker.com/r/gns3/kalilinux/ | |||
=Sources= | =Sources= | ||
* http://docs.gns3.com/1QXVIihk7dsOL7Xr7Bmz4zRzTsJ02wklfImGuHwTlaA4/ | * http://docs.gns3.com/1QXVIihk7dsOL7Xr7Bmz4zRzTsJ02wklfImGuHwTlaA4/ |
Version du 5 mai 2017 à 17:32
GNS3 est un logiciel de simulation réseau. Il exploite qemu au travers du framework libvirt pour émuler des équipements réseaux. Nous nous trouvons donc avec des équipements virtuels qui réagissent comme des équipement physiques et qui, après avoir été reliés au monde réel par l'intermédiaire d'un pont sur la carte réseau de l'hôte, peuvent communiquer avec leurs pairs physiques de la même manière que de vrai équipements.
INFORMATION
Testé avec la version 2.0 sortie le 02/05/2017Installation
La version de GNS3 disponible dans les dépôts Debian est affligeante, il s'agit d'une très ancienne version (elle ne permet même pas de supprimer les câbles que l'on connectes aux équipements...), nous allons donc ajouter le dépôt du projet pour être à jour.
Depuis une installation via debootstrap, le paquet dirmngr
est absent et est nécessaire à l'importation des clés GPG. Il faut l'installer
apt install dirmngr
INFORMATION
Sous Debian Stretch, la dépendance libvirt-bin ne peut être satisfaite car il s'agit d'un paquet de transition qui s'est vu découpé en deux paquets nommés libvirt-daemon-system et libvirt-clients (voir ici). Le problème c'est que sans un paquet qui s'appel libvirt-bin, GNS3 est impossible à installer (et c'est pas faute d'avoir essayé, merci le gestionnaire de paquet apt qui sait se comporter comme une grosse merde quand il le faut). J'ai donc mis au point deux solution pour palier au problème. L'une exploite apt et une bidouille avec son sources.list, l'autre utilise directement dpkg pour contourner le problème. Je conseil vivement d'utiliser la solution apt.Méthode APT
Comme nous l'avons vu, le paquet libvirt-bin n'est pas disponible dans les dépôts Stretch suite à un changement programmé de stratégies de ses mainteneurs. Cependant il est présent dans ceux de Debian Jessie puisque il en été au stade de transition à ce moment là. Jessie n'étant pas très différent de Stretch, il n'y a pas de risques de stabilité en confondant ce paquet avec les autres. Nous allons donc combiner les dépôts de Jessie avec ceux de Stretch pour avoir ce qu'il nous faut. Pas de panique, apt n'étant pas si mal fait, il prendra toujours les paquets avec un numéros de version plus récent. Ce qui garanti que Seul les paquets absents de Stretch seront piochés dans Jessie.
Ajouter les dépôts de GNS3 et Debian Jessie dans Stretch
echo -e '#GNS3\ndeb http://ppa.launchpad.net/gns3/ppa/ubuntu xenial main\n#Debian jessie (pour avoir le paquet libvirt-bin)\ndeb http://ftp.fr.debian.org/debian jessie main' >> /etc/apt/sources.list
Ajout de la clé GPG des dépôts GNS3
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F88F6D313016330404F710FC9A2FD067A2E3EF7B
Mise à jour de la base apt
apt update
Installation de GNS3
apt install gns3-gui
Méthode DPKG
Cette méthode a été testé avec GNS3 1.5.3. Elle est fonctionnelle mais en plus de sa lourdeur, elle ne permet pas une monté en version simple. Elle reste toutefois plus abordable que la compilation depuis les sources et a été documenté car je me suis bien fait chier pour la pondre quand j'en avais besoin.
Installation des dépendances de gns3-gui (j'ai enlevé gns3-server qui réclame libvirt-bin qui n'existe pas)
apt install python3 python3-pyqt5 python3-pyqt5.qtsvg wireshark vinagre libc6 libexpat1 zlib1g
Installation des dépendances de gns3-server (j'ai enlevé libvirt-bin qui n'existe pas)
apt install python3 vpcs qemu-system-x86 qemu-system-arm qemu-kvm cpulimit x11vnc xvfb libc6 libexpat1 zlib1g
Téléchargement des dépendances non disponibles dans les dépôts Debian
wget http://ppa.launchpad.net/gns3/ppa/ubuntu/pool/main/d/dynamips/dynamips_0.2.16-1~xenial1_amd64.deb http://ppa.launchpad.net/gns3/ppa/ubuntu/pool/main/u/ubridge/ubridge_0.9.11-1~yakkety_amd64.deb
Installation manuelle des dépendances non disponibles dans les dépôts Debian (dépot GNS3) pour gns3-server
dpkg -i dynamips_0.2.16-1~xenial1_amd64.deb ubridge_0.9.11-1~xenial_amd64.deb
Installation de gns3-server sans libvirt-bin
dpkg -i --ignore-depends=libvirt-bin gns3-server_1.5.4~xenial1_amd64.deb
Installation de gns3-gui
dpkg -i gns3-gui_1.5.3~xenial5_amd64.deb
À ce stade nous avons GNS3 d'installé. Ne criez pas victoire trop vite car libvirt-bin, bien que nous ayant bien fiat chier reste un élément indispensable pour émuler les équipements. Il va donc falloir l'installer si on veut bénéficier de l’intérêt de ce logiciel. Pour ce faire, soit vous optez pour l'installation des dépendances de libvirt-bin ainsi que lui même à la main, soit vous le récupérez depuis les dépôts Jessie comme avec la méthode apt.
ASTUCE
Les dépendances des .deb se trouvent avec la commandedpkg-deb --info nom.deb
. Lorsque apt ne veut plus rien savoir et qu'il casse les couille on nettoie tout avec la commande apt --fix-broken install
.Ajout d'un IOS Cisco
Les IOS Cisco sont disponibles dans nos fichiers. Il sont à ajouter dans les modèles de routeur (vous trouverez, ce n'est pas très compliqué).
Lien avec le monde physique
Faire son réseau virtuel est intéressant mais pouvoir exploiter ses atouts avec de vrais équipements, c'est encore mieux. Ainsi ont peut considérer sont PC hôte comme une baie avec plein d'équipement que l'on relie au réseau externe. Les possibilités sont infinies...
Pour ce faire, il faut créer une interface de lien local tap et lui assigner une adresse IP. On ajoutera ensuite un "cloud" dans GNS3 (équipement avec l'icône de nuage) et on le configurera pour ajouter cette interface dans l'onglet NIO TAP. Il faut rentrer le nom de l'interface dans le champ prévu à cet effet : tap0.
INFORMATION
Avec GNS3 2.0, l'étape avec l'onglet n'est plus nécessaire car le nuage ajoute automatiquement les interfaces qu'il trouve sur l'hôte.Installation
Installation des dépendances
apt install uml-utilities net-tools
Création de l'interface tap0 et attribution d'une adresse IP
tunctl -t tap0 ifconfig tap0 10.200.200.1 netmask 255.255.255.252
Attribution des droits à l'outil ubridge
chmod 777 /usr/bin/ubridge
Problèmes
Cette étape aussi simple qu'il puisse y paraitre peut générer des erreurs bloquantes. Un message disant quand le chemin de ubridge n'est pas valide ou qu'il n'est pas installer peu survenir. C'est un problème de permission (faites un ub+<tab>
avec l'utilisateur qui doit executer GNS3, si bash n'autocomplète pas en ubridge, c'est que /usr/bin/ubridge
n'a pas les bons droits. Sinon c'est que c'est un problème inconnu (ce qui ne serai pas surprenant vu comment c'est une galère à installer).
Utilisation de Docker
Docker est une solution de conteneurisation. Il permettra de créer des serveurs et des postes clients virtuelles ainsi que faire des analyses réseaux au sein de l'infra virtuelle. Docker n'est malheureusement pas dans les dépôts Debian. Il faut donc ajouter le dépôt officiel à la main
Installation
Installation des paquets permettant la connexion à un dépôt HTTPS
apt install apt-transport-https ca-certificates curl software-properties-common
Ajout du dépôt dans le sources.list
echo -e '#Dépôt docker\ndeb [arch=amd64] https://download.docker.com/linux/debian stretch stable' >> /etc/apt/sources.list
Téléchargement et importation de la clé GPG du dépôt
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
Mise à jour de la base apt
apt update
Installation du démon docker
apt install docker-ce
Configuration
Ajout de l'utilisateur se servant de GNS3 au groupe docker (sinon l'application ne pourra pas se connecter au démon docker pour intéragir avec les conteneurs)
usermod -aG docker <VOTRE_UTILISATEUR_DE_GNS3>
Je n'ai pas trouver comment appliquer ces changements autrement qu'en redémarrant, navré
reboot
Téléchargement d'un conteneur Kalilinux (en root)
docker pull gns3/kalilinux
ASTUCE
Il y a un bon nombre de conteneurs téléchargeables dans le dépôt Docker du projet GNS3. Je vous conseils d'aller y faire un tour.Il faut maintenant ajouter le conteneur à GNS3 en tant que modèle. Pour ce faire il faut aller dans les paramètres, dans la section dédié à Docker et faire du clickodrôme jusqu'à l'ajout de notre conteneur (le 3ème lien des sources montre la procédure officielle si vraiment vous êtes en galère).
Problèmes
Tout comme ubridge, Docker peut ne pas fonctionner pour cause de permission. Si la commande docker ps
renvoi une erreur de permission en tant que utilisateur utilisant GNS3, c'est qu'il n'appartient pas au groupe docker.
J'ai également eu l'erreur Docker has returned an error: 304 b
avec GNS3 1.5.3. Je n'ai pas eu le temps de résoudre cette erreur qui a été corrigé avec la mise à jour 2.0 de GNS3 et je n'ai pas de piste de résolution (ça semble être le problème de merde bien chiant à régler avec aucune aide sur Internet). Dieu vous garde si vous la rencontrez...
Sources
- https://store.docker.com/editions/community/docker-ce-server-debian?tab=description
- http://stackoverflow.com/questions/21871479/docker-cant-connect-to-docker-daemon
- https://docs.gns3.com/1KGkv1Vm5EgeDusk1qS1svacpuQ1ZUQSVK3XqJ01WKGc/index.html
- https://hub.docker.com/r/gns3/kalilinux/