IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

[GNS3 Unix] Accéder à Internet depuis votre lab virtuel !


Sujet :

Réseau

  1. #1
    Invité
    Invité(e)
    Par défaut [GNS3 Unix] Accéder à Internet depuis votre lab virtuel !
    Il y a quelques semaines, un client me laisse un message pour une question relative à NAT sur de l'IOS Cisco. Théoriquement, c'était pas spécialement compliqué, j'avais mon idée, il fallait simplement le vérifier par l'expérience. J'avais environ deux heures d'attente pour un train et je me suis dit que ce serait un beau challenge de faire tourner un lab virtuel avec un accès réel sur Internet pour vérifier la réponse que je voulais laisser à mon client. Chiche ! Croyez-le ou non, ça m'a pris un peu plus d'une heure grâce à notre ami Google. Voilà pour l'histoire derrière cet article :-)

    Je sais qu'il y a quelques fans de GNS3 sur ce forum, il y en a peut-être qui l'utilisent sous Unix, d'où l'intérêt de partager les quelques notes que j'avais compilées suite à cette manip


    Quand j'accède à Internet au travers de mon Blackberry, mon laptop monte une interface ppp. Le fait que mon laptop accède au net par un lien ppp n'a pas d'importance, ça pourrait être une interface Ethernet. A vous d'adapter ! L'hypothèse de base, c'est que vous ayez accès à Internet depuis votre machine Linux, quelle que soit l'interface, et bien évidemment que vous soyez root de votre machine.


    1) Faisons le point sur les interfaces.

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    root@steph-ThinkPad-T400:~# ip address show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
        link/ether 00:24:7e:6e:5a:e8 brd ff:ff:ff:ff:ff:ff
    3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
        link/ether 00:1e:65:41:fc:94 brd ff:ff:ff:ff:ff:ff
    4: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 3
        link/ppp 
        inet 10.167.241.66 peer 169.254.1.1/32 scope global ppp0

    J'accède donc à l'Internet au travers de l'interface ppp0.

    2) Si ça n'est pas déjà fait, il faut maintenant importer le package uml-utilities pour pouvoir créer une interface tap. Vous faites ça avec votre packet manager favori ou bien avec un 'apt-get install uml-utilities'.

    3) Maintenant, c'est le moment de faire un petit schéma de ce qu'on veut faire. On va créer un réseau d'interconnexion entre GNS3 et l'interface tap0 de votre machine Linux. Supposons que ce soit 1.1.1.0/24 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                          +-------+
    INTERNET ------- ppp0 | Linux | tap0 --- 1.1.1.0/24 --- Routeur R1 GNS3
                          +-------+   .1                    .2
    4) Création de l'interface tap0.

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    root@steph-ThinkPad-T400:~#modprobe tun
    root@steph-ThinkPad-T400:~#tunctl
    root@steph-ThinkPad-T400:~#ifconfig tap0 1.1.1.1 netmask 255.255.255.0 up

    On vérifie que ça répond bien :

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    root@steph-ThinkPad-T400:~# ping 1.1.1.1
    PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
    64 bytes from 1.1.1.1: icmp_req=1 ttl=64 time=0.042 ms
    64 bytes from 1.1.1.1: icmp_req=2 ttl=64 time=0.029 ms

    So far, so good...


    5) On active le routage entre les interfaces up :

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    root@steph-ThinkPad-T400:~#sysctl -w net.ipv4.ip_forward=1


    6) Puis on ouvre les flux entrant/sortant qui traversent l'interface tap0. Après, à vous de régler un peu plus finement si besoin est avec des ipchains et tout le bazar qui va avec

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    root@steph-ThinkPad-T400:~#sudo iptables -I INPUT -j ACCEPT -i tap0
    root@steph-ThinkPad-T400:~#sudo iptables -I OUTPUT -j ACCEPT -o tap0


    7) Enfin, on active NAT en sortie sur l'interface ppp0.

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    root@steph-ThinkPad-T400:~#iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE

    C'est l'équivalent d'un 'nat overload' dans l'IOS Cisco configuré sur ppp0 !

    Si l'interface qui connecte votre Linux à Internet est par exemple eth0, la commande serait bien sûr

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE


    8) Il ne reste plus qu'à configurer GNS3.

    Ouvrir GNS3 et glisser un nuage dans la map.
    Clic droit, Configurer et aller dans l'onglet NIO TAP.
    Saisir tap0, puis Ajouter.

    Glisser un routeur Cisco dans la map. Dans mon cas, c'est un 3600.
    Créer un lien manuel Ethernet entre le nuage et le Cisco, dans mon cas, c'est entre l'interface fa0/0 du 3600 et l'interface nio_tap:tap0 du nuage.
    Enfin, on configure le routeur avec le DNS Google par exemple, l'adresse IP de l'interface fa0/0 et surtout la default route qui doit pointer vers tap0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    R1#conf t
    R1(config)#ip name-server 8.8.8.8
    R1(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1
    R1(config)#int fa0/0
    R1(config-if)#ip add 1.1.1.2 255.255.255.0
    R1(config-if)#no shut
    R1(config-if)#^Z
    Bien, voilà où nous en sommes :



    Depuis votre lab virtuel, R1 a maintenant accès à Internet !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    R1#ping <a href="http://www.developpez.com" target="_blank">www.developpez.com</a>
     
    Translating "www.developpez.com"...domain server (8.8.8.8) [OK]
     
    Type escape sequence to abort.
    Sending 5, 100-bytes ICMP Echos to 87.98.130.52, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 224/236/240 ms
    Voilà, vous avez mis en œuvre ce que certains appellent un "chock network" (R1 est le "chock router").

    Maintenant, rien ne m'empêche de configurer R1 pour faire un nouveau point de translation (suffit de faire du NAT overload sur l'interface fa0/0), voire le remplacer par un ASA dans GNS3.

    Autre intérêt, si vous avez bien suivi toutes les étapes, il est très facile de monter un script. Il suffit ensuite d'éditer le script avec les bonnes interfaces et les bonnes adresses IP si vous voulez changer le "chock network". Inutile de réinventer la roue...

    Bonne config sous GNS3

    Steph
    Dernière modification par Obsidian ; 14/04/2012 à 15h05.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 20
    Points
    20
    Par défaut super grand merci
    Et 4 ans plus tard je te remercie infiniment pour ce tuto génial !

    J'ai installé gns3 sur mon portable sous debian et je galérais pour le connecter à mon lan puis au net . Grâce à toi c'est chose faite .
    Ca a marché direct et j'ai compris ce que j'ai fait ! C'est clair et pédagogique comme du grand Christian Caleca .

    Pour ce qui concerne GNS3 , je l'utilise avec cisco IOU plutôt qu'avec les IOS , énorme économie de ressources et gain en stabilité , et possibilité de switch de niveau 2 !

    Encore super merci pour le tuto !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Points : 48
    Points
    48
    Par défaut
    6 ans plustard....
    J'ai besoin de la même configuration.
    j'ai un serveur chez ioons, j'ai suivi la même procédure:
    Mon serveur se connecte bien à internet. J'ai crée l'interface tap0, je ping bien les deux interface 1.1.1.1 et la 1.1.1.2 configurée sur la FE0/0 de mon R1
    J'ai bien configuré mon R1 comme indiqué avec la route par default le tout vers la 1.1.1.1
    Mais impossible de pinger internet depuis mon R1
    Une idée svp? je galère.... et je ne suis pas un spécialiste du réseau...Merci

    R1#ping 8.8.8.8
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
    .....
    Success rate is 0 percent (0/5)

Discussions similaires

  1. Accéder à Tomcat depuis Internet
    Par crocodingo dans le forum Tomcat et TomEE
    Réponses: 20
    Dernier message: 18/06/2013, 09h36
  2. Partage d'internet depuis machine virtuelle
    Par Synchro dans le forum Applications
    Réponses: 1
    Dernier message: 14/04/2013, 22h52
  3. Réponses: 1
    Dernier message: 22/12/2012, 15h12
  4. Accéder au localhost depuis sa machine virtuelle
    Par erehcab dans le forum VirtualBox
    Réponses: 22
    Dernier message: 22/05/2012, 16h08
  5. Réponses: 0
    Dernier message: 20/04/2012, 19h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo