Bannière

IPv6, DHCPv6 et VLAN sous Packet Tracer

  Le 12 novembre 2023     Aurélien Schnoebelen     #cisco#ipv6#packet-tracer  

Dans ce mémo, nous verrons comment faire fonctionner l’IPV6 sous Packet Tracer version 8.2.1

Cet article sera mis à jour prochainement :

  • Le fichier packet tracer sera joint à ce mémo prochainement.
  • L’image sera mise à jour avec des annotations (adresses IP, interfaces) pour plus de clareté.

Cisco Packet Tracer est un outil très intéressant pour appréhender le matériel Cisco. Dependant, dans sa version 8.1.1, l’utilisation de l’IPv6 peut rapidement devenir un calvaire ; en effet, il est actuellement impossible de faire fonctionner l’IPv6 et le routage IPv6 lorsque l’on utilise des liaisons trunk, des commutateurs multicouches et des vlan.

Dans ce mémo, je vais vous proposer une topologie qui permet de contourner ce problème et obtenir un résultat relativement satisfaisant.

Table of Contents

    1. Topologie

    Voici la topologie utilisée dans cet exemple, qui est une version très (mais pas trop) simplifiée de l’architecture en 3 tier de chez Cisco.

    2. Matériel à utiliser

    • Pour les commutateurs de la couche « Access », prendre des Cisco 2960.
    • Pour les commutateurs multicouches des couches « Distribution » et « Core », prendre des Cisco 3560.
    • Pour le routeur, prendre un Cisco ISR4331.

    On pourrait être tenté de prendre des commutateurs multicouches Cisco 3650, mais l’IPv6 est très mal géré avec Packet Tracer et cela ne fonctionne tout simplement pas.

    3. Configuration des commutateurs Cisco 3560

    Dans les deux sous-parties suivantes je ne détaillerai que la configuration d’un des deux commutateurs car les commandes sont exactement les mêmes.

    3.1. Mise à jour de l’image système

    Tout d’abord, il faut ajouter un Serveur à la maquette, et le rendre accessible au commutateur. Cela nous permettra de changer l’image du switch. La manipulation est identique sur les deux appareils.

    Activez une interface (par exemple Fa0/24) et y brancher le serveur :

    L3_sw_core> en
    L3_sw_core# conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    L3_sw_core(config)# interface fa0/24
    L3_sw_core(config-if)# no switchport
    L3_sw_core(config-if)# ip address 192.168.0.1 255.255.255.0
    L3_sw_core(config-if)# no shutdown
    L3_sw_core(config-if)# end

    Sur le serveur, attribuer une adresse IPv4 fixe dans la réseau configuré à l’étape précédente. Il faut ensuite choisir l’image c3560-advipservicesk9-mz.122-46.SE.bin (cf. la capture d’écran ci-dessous). Cliquez dessus et faites Ctrl + C pour copier le nom.

    Nous allons pouvoir la copier dans la mémoire flash du commutateur, en mode privilèges :

    L3_sw_core#copy tftp: flash:
    Address or name of remote host []? 192.168.0.2
    Source filename []? c3560-advipservicesk9-mz.122-46.SE.bin
    Destination filename [c3560-advipservicesk9-mz.122-46.SE.bin]?
    
    Accessing tftp://192.168.0.2/c3560-advipservicesk9-mz.122-46.SE.bin...
    Loading c3560-advipservicesk9-mz.122-46.SE.bin from 192.168.0.2: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    [OK - 10713279 bytes]
    
    10713279 bytes copied in 0.098 secs (21666779 bytes/sec)

    Ensuite, nous devons supprimer l’image d’origine et redémarrer le commutateur pour charger la nouvelle image. Pour ce, nous allons lister le contenu de la mémoire flash, copier le nom de l’ancienne image, et la coller dans la commande « delete » :

    L3_sw_core#sh flash:
    
    System flash directory:
    File Length Name/status
    3 8662192 c3560-advipservicesk9-mz.122-37.SE1.bin
    4 10713279 c3560-advipservicesk9-mz.122-46.SE.bin
    2 28282 sigdef-category.xml
    1 227537 sigdef-default.xml
    [19631290 bytes used, 44385094 available, 64016384 total]
    63488K bytes of processor board System flash (Read/Write)
    
    L3_sw_core#delete flash:
    Delete filename []?c3560-advipservicesk9-mz.122-37.SE1.bin
    Delete flash:/c3560-advipservicesk9-mz.122-37.SE1.bin? [confirm]
    
    L3_sw_core#copy run start
    Destination filename [startup-config]?
    Building configuration...
    [OK]
    L3_sw_core#reload
    Proceed with reload? [confirm]

    Nous pouvons maintenant supprimer la configuration de l’interface Fa0/24, car elle n’est plus utile :

    L3_sw_core>en
    L3_sw_core#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    L3_sw_core(config)#interface FastEthernet 0/24
    L3_sw_core(config-if)#switchport
    %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/24, changed state to down
    %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/24, changed state to up
    L3_sw_core(config-if)#end

    3.2. Activation du template prenant en charge l’IPv6

    Il faut maintenant activer le sdm « dual-ipv4-and-ipv6 vlan« .

    L3_sw_core>en
    L3_sw_core#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    L3_sw_core(config)#sdm prefer dual-ipv4-and-ipv6 vlan
    Changes to the running SDM preferences have been stored, but cannot take effect until the next reload.
    Use 'show sdm prefer' to see what SDM preference is currently active.
    L3_sw_core(config)#end
    %SYS-5-CONFIG_I: Configured from console by console
    L3_sw_core#copy run start
    Destination filename [startup-config]?
    Building configuration...
    [OK]
    L3_sw_core#reload
    Proceed with reload? [confirm]

    Nous pouvons désormais activer le routage IPv6 et IPv4 :

    L3_sw_core>en
    L3_sw_core#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    L3_sw_core(config)#ipv6 unicast-routing
    L3_sw_core(config)#ip routing
    L3_sw_core(config)#end

    Répétez la procédure sur les deux switches Cisco 3560.

    3.3. Configuration des VLAN et des interfaces

    Nous allons maintenant pouvoir passer à la configuration des interfaces des switches core et distribution, ainsi que des VLAN. Nous allons utiliser VTP pour automatiser la configuration des VLAN sur les autres Switches. Nous choisissons d’utiliser le switch core comme serveur VTP.

    3.3.1. Commutateur multicouche « Core » (L3_sw_core)

    Choisissons les interfaces comme suit :

    • GigabitEthernet 0/1 : vers le Routeur.
    • FastEthernet 0/1 : vers le Commutateur multicouche « Distribution »

    Commençons par configurer les interfaces :

    L3_sw_core>en
    L3_sw_core#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    L3_sw_core(config)#interface GigabitEthernet 0/1
    L3_sw_core(config-if)#switchport trunk encapsulation dot1q
    L3_sw_core(config-if)#switchport mode trunk
    L3_sw_core(config-if)#switchport trunk allowed vlan 2-4
    L3_sw_core(config-if)#exit
    L3_sw_core(config)#interface FastEthernet 0/1
    L3_sw_core(config-if)#switchport trunk encapsulation dot1q
    L3_sw_core(config-if)#switchport mode trunk
    %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down
    %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
    L3_sw_core(config-if)#switchport trunk allowed vlan 2-4
    L3_sw_core(config-if)#exit

    Puis configurons les VLAN :

    L3_sw_core(config)#vlan 2
    L3_sw_core(config-vlan)#name IT
    L3_sw_core(config-vlan)#vlan 3
    L3_sw_core(config-vlan)#name RH
    L3_sw_core(config-vlan)#vlan 4
    L3_sw_core(config-vlan)#name R&D
    L3_sw_core(config-vlan)#exit

    Et enfin configurons le protocole VTP. Je choisis comme domaine et password VTP « aurelien » :

    L3_sw_core(config)#vtp mode server
    Device mode already VTP SERVER.
    L3_sw_core(config)#vtp version 2
    L3_sw_core(config)#vtp domain aurelien
    Changing VTP domain name from NULL to aurelien
    L3_sw_core(config)#vtp password aurelien
    Setting device VLAN database password to aurelien

    3.3.2. Commutateur multicouche « Distribution » (L3_sw_distri)

    Choisissons les interfaces comme suit :

    • FastEthernet 0/1 : vers le Commutateur multicouche « Core »
    • FastEthernet 0/2 : vers le Commutateur du VLAN 2
    • FastEthernet 0/3 : vers le commutateur du VLAN 3
    • FastEthernet 0/4 : vers le commutateur du VLAN 4

    Dans cet exemple nous ne monterrons pas la configuration des VSI car cela n’entre pas dans le cadre de notre étude.

    Commençons par configurer le protocole VTP, car nous aurons besoin de la configuration des VLAN :

    L3_sw_distri>en
    L3_sw_distri#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    L3_sw_distri(config)#vtp version 2
    VTP mode already in V2.
    L3_sw_distri(config)#vtp mode client
    Setting device to VTP CLIENT mode.
    L3_sw_distri(config)#vtp domain aurelien
    Domain name already set to aurelien.
    L3_sw_distri(config)#vtp password aurelien
    Setting device VLAN database password to aurelien

    Nous pouvons contrôler la bonne propagation des VLAN avec la commande sh vlan (mode privilèges), ou do sh vlan (mode configuration globale).

    Avant de configurer les interfaces il peut être de bon alloi de configurer le VTP sur les commutateurs des différents vlan, car le protocole fonctionne que sur des liaisons trunk. A vous de voir (reprendre la configuration précédente sur les trois commutateurs « Access »).

    Nous configurons maintenant les interfaces :

    L3_sw_distri(config)#interface fastEthernet 0/1
    L3_sw_distri(config-if)#switchport trunk encapsulation dot1q
    L3_sw_distri(config-if)#switchport mode trunk
    L3_sw_distri(config-if)#switchport trunk allowed vlan 2-4
    L3_sw_distri(config-if)#interface fastEthernet 0/2
    L3_sw_distri(config-if)#switchport access vlan 2
    L3_sw_distri(config-if)#interface fastEthernet 0/3
    L3_sw_distri(config-if)#switchport access vlan 3
    L3_sw_distri(config-if)#interface fastEthernet 0/4
    L3_sw_distri(config-if)#switchport access vlan 4
    L3_sw_distri(config-if)#end

    Cette étape bouclée, nous allons pouvoir passer aux commutateurs « Access ». Vous noterez que les liens desservant les commutateurs « Access » -> commutateur « Distribution » ne sont pas en trunk mais en access. En effet, c’est une concession que nous sommes obligés de faire à cause des limitations du logiciel Packet Tracer.

    4. Configuration des commutateurs Cisco 2960

    Dans cette partie, je ne détaillerai la configuration que d’un commutateur « Access », car seules les ID des VLAN changent. A vous d’adapter en fonction des VLAN.

    4.1. Activation du template prenant en charge l’IPv6

    Activons le sdm « dual-ipv4-and-ipv6 default » :

    sw_it>en
    sw_it#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    sw_it(config)#sdm prefer dual-ipv4-and-ipv6 default
    Changes to the running SDM preferences have been stored, but cannot take effect until the next reload.
    Use 'show sdm prefer' to see what SDM preference is currently active.
    sw_it(config)#end
    %SYS-5-CONFIG_I: Configured from console by console
    sw_it#copy run start
    Destination filename [startup-config]?
    Building configuration...
    [OK]
    sw_it#reload
    Proceed with reload? [confirm]

    4.2. Configuration des interfaces

    Choisissons les interfaces comme suit :

    • FastEthernet 0/1 : vers l’ordinateur de notre topologie
    • FastEthernet 0/2 : vers le commutateur « Distribution ».
      Notez que j’ai choisi 0/2 pour le switch du vlan 2, sur le switch du vlan 3 j’ai choisi 0/3 et pour le switch du vlan 4 j’ai choisi 0/4. Simple choix arbitraire et peu judicieux de ma part pour simplifier mes efforts de mémoire ! :-p

    Configurons ensuite les interfaces (en considérant que le VTP a été configuré avant de bidouiller les interfaces de L3_sw_distri ou que les VLAN ont été ajoutés à la main) :

    sw_it>en
    sw_it#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    sw_it(config)#interface fastEthernet 0/1
    sw_it(config-if)#switchport access vlan 2
    sw_it(config-if)#interface fastEthernet 0/2
    sw_it(config-if)#switchport access vlan 2
    sw_it(config-if)#end

    Et voilà ! C’est tout bon pour les commutateurs « Access ». Nous pouvons passer au cerveau de notre maquette, le ROUTEUR !

    5. Configuration du Routeur Cisco ISR4331

    Le routeur Cisco ISR4331 jouera le rôle de ROAS, de serveur DHCP et de serveur DHCPv6. Point de vue DHCPv6 il ne servira qu’à attribuer une adresse pour le serveur DNS.

    Le routeur est relié au Commutateur « Core » par l’interface GigabitEthernet 0/0/0. Nous commençons par créer un pool DHCPv6 pour définir le nom de domaine et l’adresse du serveur DNS, puis nous configurerons chaque interface avec une IPv4, une IPv6, et la configuration du serveur DHCPv6 STATELESS.

    Router>en
    Router#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#ipv6 dhcp pool DHCPv6
    Router(config-dhcpv6)#dns-server 2001:4860:4860::8888
    Router(config-dhcpv6)#domain-name aschnoebelen.fr
    Router(config-dhcpv6)#exit
    Router(config)#interface gigabitEthernet 0/0/0
    Router(config-if)#no shutdown
    %LINK-5-CHANGED: Interface GigabitEthernet0/0/0, changed state to up
    %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/0, changed state to up
    Router(config-if)#interface gigabitEthernet 0/0/0.2
    %LINK-5-CHANGED: Interface GigabitEthernet0/0/0.2, changed state to up
    %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/0.2, changed state to up
    Router(config-subif)#encapsulation dot1Q 2
    Router(config-subif)#ip address 192.168.2.254 255.255.255.0
    Router(config-subif)#ipv6 address 2001:0:cafe:0:2000::/68
    Router(config-subif)#ipv6 dhcp server DHCPv6
    Router(config-subif)#ipv6 nd other-config-flag
    Router(config-subif)#interface gigabitEthernet 0/0/0.3
    %LINK-5-CHANGED: Interface GigabitEthernet0/0/0.3, changed state to up
    %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/0.3, changed state to up
    Router(config-subif)#encapsulation dot1Q 3
    Router(config-subif)#ip address 192.168.3.254 255.255.255.0
    Router(config-subif)#ipv6 address 2001:0:cafe:0:3000::/68
    Router(config-subif)#ipv6 dhcp server DHCPv6
    Router(config-subif)#ipv6 nd other-config-flag
    Router(config-subif)#interface gigabitEthernet 0/0/0.4
    %LINK-5-CHANGED: Interface GigabitEthernet0/0/0.4, changed state to up
    %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/0.4, changed state to up
    Router(config-subif)#encapsulation dot1Q 4
    Router(config-subif)#ip address 192.168.4.254 255.255.255.0
    Router(config-subif)#ipv6 address 2001:0:cafe:0:4000::/68
    Router(config-subif)#ipv6 dhcp server DHCPv6
    Router(config-subif)#ipv6 nd other-config-flag
    Router(config-subif)#end

    Puis nous configurons le serveur DHCP sur le ROAS :

    Router>en
    Router#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#service dhcp
    Router(config)#ip dhcp pool VLAN_2
    Router(dhcp-config)#network 192.168.2.0 255.255.255.0
    Router(dhcp-config)#dns-server 8.8.8.8
    Router(dhcp-config)#domain-name aschnoebelen.fr
    Router(dhcp-config)#default-router 192.168.2.254
    Router(dhcp-config)#ip dhcp pool VLAN_3
    Router(dhcp-config)#network 192.168.3.0 255.255.255.0
    Router(dhcp-config)#dns-server 8.8.8.8
    Router(dhcp-config)#domain-name aschnoebelen.fr
    Router(dhcp-config)#default-router 192.168.3.254
    Router(dhcp-config)#ip dhcp pool VLAN_4
    Router(dhcp-config)#network 192.168.4.0 255.255.255.0
    Router(dhcp-config)#dns-server 8.8.8.8
    Router(dhcp-config)#domain-name aschnoebelen.fr
    Router(dhcp-config)#default-router 192.168.4.254
    Router(dhcp-config)#end

    Et enfin nous n’oublions surtout pas d’activer le routage IPv6 sur le Routeur :

    Router>en
    Router#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#ipv6 unicast-routing
    Router(config)#end

    6. Notes importantes

    Pour que la maquette fonctionne, il y a quelques points importants à respecter :

    • Si vous créez des SVI sur les commutateurs (interface Vlan XXX), il est nécessaire de ne pas configurer d’adresse IPv6 ! Autrement le ND perd la boule et ne s’y retrouve plus. Seul les interfaces virtuelles sur le routeur doivent avoir des adresses IPv6.
    • Entre les commutateurs de distribution et les commutateurs d’accès, il ne doit pas y avoir de liaison trunk mais uniquement des liaisons access. Si par exemple sur le commutateur « access » 1 on souhaite faire passer plusieurs VLAN, il faudra tirer un lien par VLAN entre les commutateurs. Dans la réalités on ne le ferait pas, mais avec PT nous n’avons pas le choix.

    7. Conclusion

    A cette étape si vous configurez les postes en DHCP et en DHCPv6, ils devraient obtenir des adresses IPv4 et IPv6 ainsi que toute la configuration nécessaire à un poste client (DNS, Gateway…). Vous devriez être capables de pinger entre les postes en IPv4 et IPv6 sans problèmes.

    Pensez à faire un copy run start pour sauvegarder la configuration de chaque appareil, et je vous conseille de régler le spanning-tree sur vos switches. Allez, petit bonus ; sur chaque commutateur, en mode configuration globale, tapez spanning-tree mode rapid-pvst. Sur les commutateurs « Access », vous pouvez aussi régler le spanning-tree en mode portfast sur tous les ports terminaux (les interfaces sur lesquelles sont branchées les postes clients. Attention à ne pas le faire sur un trunk ou sur une interface branchée à un autre switch !! Cela risquerai d’entraîner des tempêtes de broadcast, des boucles, bref ça va mettre le zbeul !!) : en mode configuration d’interface, spanning-tree portfast.

    Après bien entendu il faudra penser à sécuriser les appareils, à mettre les messages d’accueil et de connexion, mais ce n’est pas l’objet de ce chapitre.