Routage statique et adressage IPv6

Afin d’aborder la configuration orientée IPv6 d’un routeur de manière simple, nous allons voir, dans cet article, comment configurer un routeur en utilisant un adressage IPv6 ainsi que comment utiliser des routes statiques IPv6.

La topologie

Rien de très compliqué. Nous avons ici deux routeurs, chacun disposant d’un LAN (ici simulé par une interface loopback). Le but étant de permettre au LAN de R1 de communiquer avec le LAN de R2.

Nous allons donc devoir définir l’adressage IPv6 des interfaces, et ensuite définir le routage statique sur R1 et R2.

Configuration des interfaces de R1

Commençons par configuré l’interface loopback qui simulera le LAN de R1. Qui recevra la première adresse du réseau 2001:ABCD:0001::/48 … soit 2001:ABCD:0001:0000:0000:0000:0001 que l’on peut écrire sous forme abrégée 2001:ABCD:1::1

R1>enable
R1#configure terminal
R1(config)#interface loopback 0
R1(config-if)#description LAN R1
R1(config-if)#ipv6 address 2001:ABCD:1::1/48
R1(config-if)#exit
R1(config)#

Configurons maintenant l’interface Serial 0/0 de R1 qui le lie à R2. Elle sera quant à elle configurée selon la norme EUI-64. Ce qui signifie que les 64 derniers bits de l’adresse IPv6 seront automatiquement définis. Il suffit de donner l’adresse du réseau et de spécifier le format eui-64.

Les derniers 64 bits sont normalement attribués en fonction de l’adresse MAC d’une interface ethernet, toutefois, ici nous configurons une interface sérielle qui bien entendu n’a pas d’adresse MAC. Le routeur va alors compléter l’adresse IPv6 en utilisant l’adresse MAC d’une interface Ethernet présente sur le routeur.

R1(config)#interface serial 0/0
R1(config-if)#clock rate 4000000
R1(config-if)#ipv6 address 2001:ABCD::/48 eui-64
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#

Voyons le résultat…

R1#show ipv6 interface serial 0/0
Serial0/0 is up, line protocol is down
IPv6 is enabled, link-local address is FE80::C200:AFF:FE78:0 [TEN]
No Virtual link-local address(es):
Global unicast address(es):
2001:ABCD::C200:AFF:FE78:0, subnet is 2001:ABCD::/48 [EUI/TEN]
Joined group address(es):
FF02::1
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ICMP unreachables are sent
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
R1#

L’interface a donc maintenant l’adresse IPv6 globale 2001:ABCD::C200:AFF:FE78:0 … reste à comprendre d’où cela provient. Pour cela, analysons l’adresse MAC de l’interface FastEthernet que le routeur a utilisé pour générer l’adresse en question…

R1#show interfaces fastEthernet 0/0 | include Hardware
Hardware is Gt96k FE, address is c000.0a78.0000 (bia c000.0a78.0000)
R1#

Voici comment le routeur a composé l’adresse:

  1. Les 64 permiers bits sont définis par l’adresse réseau, et si nécessaire complétés par des 0. Soit: 2001:ABCD:0000:0000……..
  2. Les 64 derniers bits sont composés de l’adresse MAC (empruntée à une interface FastEthernet), en insérant la valeur hexadécimale FFFE au milieur de celle-ci pour passer de 48 bits (format de l’adresse MAC) aux 64 bits requis… soit: 2001:ABCD:0000:0000:C000:0AFF:FE78:0000
  3. Dernière étape, le 7e bit de l’adresse MAC est mis à 1 on passe donc de C000.0A78.0000 à C200.00A78.0000, ce qui au final nous donne l’adresse 2001:ABCD:0000:0000:C200:0AFF:FE78:0000 qui peut s’écrire plus simplement 2001:ABCD::C200:AFF:FE78:0

Reste maintenant à configurer R2…

Configuration de R2

R2>enable
R2#configure terminal
R2(config)#interface loopback 0
R2(config-if)#ipv6 address 2001:ABCD:2::1/48
R2(config-if)#exit
R2(config)#interface serial 0/0
R2(config-if)#ipv6 address 2001:ABCD::/48 eui-64
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#exit
R2#

Testons la connectivité entre R1 et R2…

Pour cela commençons par retrouver l’adresse IPv6 de l’interface sérielle de R2…

R2#show ipv6 interface brief
FastEthernet0/0            [administratively down/down]
Serial0/0                  [up/up]
FE80::C201:AFF:FE78:0
2001:ABCD::C201:AFF:FE78:0
FastEthernet0/1            [administratively down/down]
Serial0/1                  [administratively down/down]
Loopback0                  [up/up]
FE80::C201:AFF:FE78:0
2001:ABCD:2::1
R2#

Utilisons maintenant la commande ping en ipv6 pour tester que le lien entre R1 et R2 fonctionne…

R1#ping ipv6 2001:ABCD::C201:AFF:FE78:0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:ABCD::C201:AFF:FE78:0, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/12/36 ms
R1#

Ok, tout semble en ordre, passons maintenant à la définition des routes statiques.

Définition des routes statiques…

Pour que le LAN de R1 puisse communiquer avec le LAN de R2, nous devons définir une route sur R1 qui indique le next-hop pour atteintre le LAN de R2, … et … sur R2 une route qui indique le Next-hop pour atteindre le LAN de R1.

Mais avant tout … il faut activer le routage IPv6 ! Sans quoi, le routeur se comporterait comme une simple machine IPv6, capable d’envoyer ou de recevoir du traffic mais pas de router !

Sur R1…

R1(config)#ipv6 unicast-routing
R1(config)#ipv6 route 2001:ABCD:2::/48 2001:ABCD::C201:AFF:FE78:0

Sur R2

R2(config)#ipv6 unicast-routing
R2(config)#ipv6 route 2001:ABCD:1::/48 2001:ABCD::C200:AFF:FE78:0

Vérifications

Commençons par jeter un oeil à la table de routage de R1

R1#show ipv6 route
IPv6 Routing Table - 6 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route, M - MIPv6
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       D - EIGRP, EX - EIGRP external
C   2001:ABCD::/48 [0/0]
     via ::, Serial0/0
L   2001:ABCD::C200:AFF:FE78:0/128 [0/0]
     via ::, Serial0/0
C   2001:ABCD:1::/48 [0/0]
     via ::, Loopback0
L   2001:ABCD:1::1/128 [0/0]
     via ::, Loopback0
S   2001:ABCD:2::/48 [1/0]
     via 2001:ABCD::C201:AFF:FE78:0
L   FF00::/8 [0/0]
     via ::, Null0
R1#

La route crée est bien présente. Testons maintenant la connectivité, en lançant un ping ipv6, depuis l’interface Loopback de R1 vers l’interface Loopback de R2.

R1#ping
Protocol [ip]: ipv6
Target IPv6 address: 2001:ABCD:2::1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands? [no]: yes
Source address or interface: 2001:ABCD:1::1
UDP protocol? [no]:
Verbose? [no]:
Precedence [0]:
DSCP [0]:
Include hop by hop option? [no]:
Include destination option? [no]:
Sweep range of sizes? [no]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:ABCD:2::1, timeout is 2 seconds:
Packet sent with a source address of 2001:ABCD:1::1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/10/40 ms
R1#

Tout semble en ordre !

5 Comments on “Routage statique et adressage IPv6

  1. tu ne peut pas router sur s0/0 parceque l’adresse ipv6 ne concerne pas le routeur R1 elle concerne le routeur de destination

    • Une telle affirmation démontre une certaine méconnaissance du fonctionnement des routeurs Cisco.
      Quand on configure une route via une liaison point-à-point (ce qui est le cas ici), on a deux choix:
      1) Donner l’adresse IP du next-hop
      2) Définir l’interface de sortie (ce que j’ai fait ici)

      L’avantage de la deuxième méthode c’est qu’elle rend la route indépendante de l’adressage configuré. De plus cette route sera considérée comme « connectée » et donc préférée par le routeur par rapport à une autre route statique où le next-hop serait renseigné par son adresse IP

  2. quand tu indiques ta route ipv6, il est preferable de router sur l’interface s0/0, comme ca si tu dois modifier l’addr ipv6, pas besion de re-ecrire ta route 🙂

    ipv6 route 2001:ABCD:1::/48 serial 0/0

    sympa le site
    ++

    • En effet, sur des liaisons point-à-point mieux vaut indiquer l’interface de sortie que le next-hop … par contre sur un réseau multi-accès … c’est une autre histoire. L’interface de sortie n’est pas une information suffisante. Sur de l’ethernet par exemple, le routeur a besoin de l’adresse du next-hop que ce soit pour récupérer son adresse MAC ou même pour quelle adresse Multicast utiliser pour joindre la machine en question.

      C’est la raison pour laquelle je parle ici de la méthode qui marche à tous les coups … et qui au final, en dehors de la syntaxe, n’est pas limitée au monde Cisco 😉