Archivé sous: Divers | Tagué : noubeau blog | Laisser un commentaire »
Les différents types d’adresses IPv6
Comme vous le savez (ou non) IPv6 reprends les concepts d’IPv4, tout en y apportant son lot d’amélioration. Les adresses ne font pas exceptions à la règles.
Tout d’abord, une adresse IPv6 mesure 128 bits (contre 32 pour une adresse IPv4). Afin de simplifier son écriture, on l’écrira sous forme de nombre héxadécimaux: 8 nombres de 4 digits héxadécimaux séparés par ‘:’. On peut aussi simplifier en suprimant les 0 en début de nombre (00FF = FF).
On peut aussi supprimer les blocs de 0 en les remplacant par ::.
Exemple:
0000:0000:0000:0000:0000:0000:0000:0001 = 0:0:0:0:0:0:0:1 = ::1
Attention, on ne peut pas utiliser plusieurs fois ‘::’.
FC00::5::1 pourrait être FC00:0:0:5:0:0:0:1 ou FC00:0:5:0:0:0:0:1 ou FC00:0:0:0:5:0:0:1 …
Note: le caractère ‘:’ étant utilisé pour indiqué le numéro d’un port TCP ou UDP, pour écrire une adresse IPv6 dans la pluspart des applications on l’encadrera de crochets (ex: [FC00::1]).
Les différents type d’adresses IPv6:
- les adresses Unicast, qui sont, tout comme les adresses Unicast IPv6, qui sont associée à des interfaces réseau. Une nouveauté est que plusieurs interfaces peuvent avoir la même adresse unicast pour le partage de charge.
- Les adresses unicast globales (global unicast), qui ont la même fonction que les adresses unicast, mais sont des adresses routables sur un réseau publique (internet). C’est le même principe que les adresses IPv4 publiques…
La plage de ces adresses est:
2000::/3 - Les adresses de lien local (Link Local Address), sont des adresses qui ne sont pas routables, qui permettent à des équipements reliés entre eux de communiquer entre eux, lorsqu’ils n’ont pas besoin de communiquer avec l’extérieur. L’avantage de ces adresses est qu’elles se configurent automatiquement, par exemple, si l’on a deux routeurs reliés entre eux, pour qu’ils puissent communiquer entre eux, il suffit de taper:
rtr(config-if)ipv6 enable
La plage de ces adresses est:
FE80::/10 - Addresses locales Uniques: Ces adresses sont des adresses unicast pouvant être routées uniquement au sein d’un LAN: elles ont la même fonction que les adresses ip privées IPv4.
La plage de ces adresses est:
FC00::/7 - Les adresses multicast, qui, comment les adressent multicast IPv4, permettent de joindre un groupe d’hôtes.
La plage de ces adresses est:
FF00::/8 - Les adresses anycast: Nouveautée IPv6, sont des adresses qui comment les multicast pointent vers un groupe d’hôte, mais seul le premier hôte joignable recevra l’information. Cela permet de faire des serveurs de backup en toute transparence.
Quelques plages d’adresses particulières:
- 0:0:0:0:0:0:0:0 ou :: est l’équivalent de 0.0.0.0 en IPv4.
- 0:0:0:0:0:0:0:1 ou ::1 est l’équivalent de 127.0.0.1 en IPv4, l’adresse de loopback d’une machine.
- 0:0:0:0:0:0:192.168.1.1 est la forme qu’aurait une adresse IPv4 dans un environnement IPv6: Utilisé pour la compatibilité.
- 3FFF:FFFF::/32 et 2001:0DB8::/32 : Réservé pour exemples, documentations et recherche…
- 2002::/16 adresses utilisées pour les tunnels 6to4, qui permettent le transport de paquets IPv6 dans un réseau IPv4
Archivé sous: IPv6 | Tagué : adresses, adresses ipv6, anycast, global, IPv6, link local, local, multicast, unicast | Laisser un commentaire »
Configuration de RIPNG, OSPFv3 et EIGRP pour IPV6.
Topologie étudiée :
Fichier dynagen :
ghostios = True
sparsemem = True
[localhost] [[3660]] image = ..\images\C3660-JK.BIN ram = 128 idlepc = 0x604eb02c [[ROUTER R1]] model = 3660 [[ROUTER R2]] model = 3660 S1/0 = R1 S1/0 S1/1 = R3 S1/0 [[ROUTER R3]] model = 3660
Configuration de l’adressage des routeurs :
Activer le support du routage IPV6 sur tous les routeurs :
R1(config)#ipv6 unicast-routing R2(config)#ipv6 unicast-routing R3(config)#ipv6 unicast-routing
Spécifier l’utilisation d’adresses IPv6 d’adresses type link-local choisie automatiquement sur les routeurs (voir article sur les type d’adresses IPv6) :
R1(config)#int S1/0 R1(config-if)#ipv6 enable R1(config-if)#no shutdown R2(config)#int S1/0 R2(config-if)#ipv6 enable R2(config-if)#no shutdown R2(config-if)#int S1/1 R2(config-if)#ipv6 en R2(config-if)#ipv6 enable R2(config-if)#no shutdown R3(config)#int S1/0 R3(config-if)#ipv6 enable R3(config-if)#no shutdown
Vérifications :
Vérifications de l’adressage :
R1#show ipv6 interface brief Serial1/0 [up/up] FE80::CE00:13FF:FE80:0 R2#show ipv6 interface brief Serial1/0 [up/up] FE80::CE01:13FF:FE80:0 Serial1/1 [up/up] FE80::CE01:13FF:FE80:0 R3#show ipv6 interface brief Serial1/0 [up/up] FE80::CE02:13FF:FE80:0
On voit bien que des adresses de type link-local (FE80:: ont étés configurées automatiquement).
Vérifications de la connectivité :
R2#ping ipv6 FE80::CE00:13FF:FE80:0 //ping R1 Output Interface: serial1/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FE80::CE00:13FF:FE80:0, timeout is 2 seconds: Packet sent with a source address of FE80::CE01:13FF:FE80:0 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 8/25/48 ms R2#ping ipv6 FE80::CE02:13FF:FE80:0 //ping R3 Output Interface: serial1/1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FE80::CE02:13FF:FE80:0, timeout is 2 seconds: Packet sent with a source address of FE80::CE01:13FF:FE80:0 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 8/24/36 ms
Nos routeurs communiquent donc entre eux en étant directement connectés, il est donc temps de configurer un protocole de routage !
Configuration des protocoles de routage
Introduction
Bien que l’ont retrouve la plupart des protocoles de routage d’IPv4, et qu’ils ont les mêmes fonctionnalités, leur configuration change quelque peu, en effet, on ne spécifie plus les réseaux participant au routage en mode de configuration du protocole de routage (config-router)# mais on active le processus, et l’ont l’associe avec chaque interface faisant partie du processus.
Utilisation de RIPNG
Création d’un processus RIPNG :
R1(config)#ipv6 router rip test_RIPNG R1(config-rtr)#exit R2(config)#ipv6 router rip test_RIPNG R2(config-rtr)#exit R3(config)#ipv6 router rip test_RIPNG R3(config-rtr)#exit
Application du processus aux interfaces :
R1(config)#int s1/0 R1(config-if)#ipv6 rip test_RIPNG enable R2(config)#int s1/0 R2(config-if)#ipv6 rip test_RIPNG enable R2(config-if)#int s1/1 R2(config-if)#ipv6 rip test_RIPNG enable R3(config)#int s1/0 R3(config-if)#ipv6 rip test_RIPNG enable
Chouette je vais pouvoir pinger mes interfaces !! Enfin c’est ce que vous disent vos bon vieux réflexes d’IPv4-istes !!
R1#ping ipv6 FE80::CE02:13FF:FE80:0 Output Interface: serial1/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FE80::CE02:13FF:FE80:0, timeout is 2 seconds: Packet sent with a source address of FE80::CE00:13FF:FE80:0 ..... Success rate is 0 percent (0/5)
Mince, j’ai activé RIP, spécifié mes interfaces et ça ne marche pas, que se passe t-il ?
R2#debug ipv6 rip RIP Routing Protocol debugging is on R2# *Mar 1 00:36:45.451: RIPng: Suppressed null multicast update on Serial1/1 for test_RIPNG *Mar 1 00:36:45.455: RIPng: Suppressed null multicast update on Serial1/0 for test_RIPNG
Que nous dit cette sortie de debug ? Que les mises à jour ne contiennent pas de mise à jour. Pourquoi donc ? Rappelez-vous la manière dont nous avons configuré les interfaces de nos routeurs ? Avec des adresses link local, ce qui veut dire qu’elles ne sont utilisables que localement, et ne seront pas routées.
Ont peut vérifier cela en affichant la table de routage de R2 :
R2#sh ipv6 route IPv6 Routing Table - 4 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route 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 L FE80::/10 [0/0] via ::, Null0 L FF00::/8 [0/0] via ::, Null0
Nous allons donc créez une loopback sur R1 et R3 avec des adresses privées.
R1(config)#int loopback 1 R1(config-if)#ipv6 address FC00::1/126 R1(config-if)#ipv6 rip test_RIPNG enable R3(config)#int loopback 1 R3(config-if)#ipv6 address FC00::5/126 R3(config-if)#ipv6 rip test_RIPNG enable
Affichons maintenant la table de routage de R1 et R3:
R1(config-if)#do sh ipv6 route IPv6 Routing Table - 5 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route 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 C FC00::/126 [0/0] via ::, Loopback1 L FC00::1/128 [0/0] via ::, Loopback1 R FC00::4/126 [120/3] via FE80::CE01:13FF:FE80:0, Serial1/0 L FE80::/10 [0/0] via ::, Null0 L FF00::/8 [0/0] via ::, Null0 R3(config-if)#do sh ipv6 route IPv6 Routing Table - 5 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route 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 R FC00::/126 [120/3] via FE80::CE01:13FF:FE80:0, Serial1/0 C FC00::4/126 [0/0] via ::, Loopback1 L FC00::5/128 [0/0] via ::, Loopback1 L FE80::/10 [0/0] via ::, Null0 L FF00::/8 [0/0] via ::, Null0
Test de ping entre R1 et R3 :
R1#ping ipv6 FC00::5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FC00::5, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 8/17/36 ms Test de ping entre R3 et R1 : R3#ping ipv6 FC00::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FC00::5, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 8/19/44 ms
Succès !!
Vous voila paré à configurer RIPNG.
Les plus malins auront remarqué que la commande ping ne demande pas l’interface de sortie. Ceci peut s’expliquer simplement car les adresses link local peuvent être sur plusieurs interfaces, il faut donc spécifier l’interface de sortie.
Création d’un processus EIGRPv6 :
Configurez l’adressage comme vu au dessus, ou si vous souhaitez continuer avec la topologie ci-dessus, tapez les commandes suivantes :
R1(config)#no ipv6 router rip test_RIPNG R1(config)#no int l 1 R2(config)#no ipv6 router rip test_RIPNG R3(config)#no ipv6 router rip test_RIPNG R3(config)#no int l 1
Comme pour RIPNG, EIGRPv6 s’active avec la commande ipv6 router eigrp, à la différence prêt qu’il faut, comme pour EIGRP, spécifier un numéro d’as. Il faudra de plus taper la commande « no shutdown » en mode de configuration du protocole de routage pour activer le processus dans l’AS spécifié.
R1(config)#ipv6 router eigrp 65000 R1(config-rtr)#enable R1(config-rtr)#exit R2(config)#ipv6 router eigrp 65000 R2(config-rtr)#enable R2(config-rtr)#exit R3(config)#ipv6 router eigrp 65000 R3(config-rtr)#enable R3(config-rtr)#exit
Comme pour RIP NG, il faut rattacher le processus aux interfaces du routeur grâce à la commande :
R1(config)#int S1/0 R1(config-if)#ipv6 eigrp 65000 R2(config)#int S1/0 R2(config-if)#ipv6 eigrp 65000 R2(config-if)#int S1/1 R2(config-if)#ipv6 eigrp 65000 R3(config)#int S1/0 R3(config-if)#ipv6 eigrp 65000
Mon image IOS ne supportant pas EIGRPv6 je continuerai la partie EIGRP ultérieurement.
Création d’un processus OSPFv3 :
A la manière de RIPNG et EIGRPv6, OSPFv3 s’active grâce aux commandes suivantes (le 1 n’étant pas un numéro d’AS comme EIGRPv6 mais un numéro de processus OSPF).
R1(config)#ipv6 router ospf 1 R1(config-rtr)# *Mar 1 03:16:19.307: %OSPFv3-4-NORTRID: OSPFv3 process 1 could not pick a router-id, please configure manually R1(config-rtr)#router-id ? A.B.C.D OSPF router-id in IP address format R1(config-rtr)#router-id 1.1.1.1 R1(config-rtr)#exit R2(config)#ipv6 router ospf 1 R2(config-rtr)#router-id 1.1.1.2 R2(config-rtr)#exit R3(config)#ipv6 router ospf 1 R3(config-rtr)#router-id 1.1.1.3 R3(config-rtr)#exit
Nous remarquons qu’OSPFv3 nécessite un router-id, pour l’élection des DR et BDR (voir OSPFv2 pour IPv4). Il faut donc en spécifier un grâce à la commande router-id A.B.C.D.
Pour rappel, le DR sera le router ayant l’ID le plus grand.
Il faut ensuite rattacher les interfaces au processus OSPFv3. Pour rappel, OSPF découpe un AS sous forme d’aires. Il faudra donc spécifier l’aire à laquelle est reliée l’interface.
R1(config)#int s1/0 R1(config-if)#ipv6 ospf 1 area 0 R2(config)#int S1/0 R2(config-if)#ipv6 ospf 1 area 0 R2(config-if)#int s1/1 R2(config-if)# ipv6 ospf 1 area 0 *Mar 1 03:22:19.579: %OSPFv3-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Serial1/0 from LOADING to FULL, Loading Done R3(config)#int S1/0 R3(config-if)#ipv6 ospf 1 area 0 R3(config-if)# *Mar 1 03:23:21.819: %OSPFv3-5-ADJCHG: Process 1, Nbr 1.1.1.2 on Serial1/0 from LOADING to FULL, Loading Done
Nous remarquons bien la découverte des voisins OSPF, ce qui indique que les routeurs établissent une relation de voisinage et s’échangent leur tables de routage.
Cela peut se voir grâce à la commande :
R1#show ipv6 ospf neighbor Neighbor ID Pri State Dead Time Interface ID Interface 1.1.1.2 1 FULL/ - 00:00:31 6 Serial1/0
Les routeurs étant dans des sous réseau différents et reliés par des connexions point à point, il n’y aura pas d’élection de DR/BDR.
Créons des interfaces loopbacks sur R1 et R3 :
R1(config)#int loopback 1 R1(config-if)#ipv6 address FC00::1/126 R1(config-if)#ipv6 ospf 1 area 0 R3(config)#int loopback 1 R3(config-if)#ipv6 address FC00::5/126 R3(config-if)#ipv6 ospf 1 area 0
Affichons la table de routage de R1:
R1#show ipv6 route IPv6 Routing Table - 5 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route 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 C FC00::/126 [0/0] via ::, Loopback1 L FC00::1/128 [0/0] via ::, Loopback1 O FC00::5/128 [110/128] via FE80::CE01:13FF:FE80:0, Serial1/0 L FE80::/10 [0/0] via ::, Null0 L FF00::/8 [0/0] via ::, Null0
Validons par un ping entre R1 et R3 :
R1#ping ipv6 FC00::5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FC00::5, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/30/60 ms
Puis de R3 vers R1 :
R3#ping ipv6 FC00::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FC00::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/31/52 ms
Conclusion :
Nous avons vu dans cet article la configuration basique des protocoles de routage les plus employés au sein d’un AS. Le principe de ces protocoles et leur fonctionnement différent très peux de leurs homologues pour IPv4, ceux qui ont déjà configuré OSPFv2, EIGRP et RIPv1/v2 ne devraient pas être trop dépaysés.
Archivé sous: IPv6 | Tagué : CCNA, EIGRPv6, IPv6, OSPFv3, RIPng | Laisser un commentaire »
Spanning tree, Portfast, Backbonefast, Uplinkfast & co
Certains d’entre vous ont certainement entendu parler du protocole spanning tree, qui permet de « casser » la redondance d’un lien afin d’éviter les boucles de commutation, et lorsqu’un lien vient à tomber, spanning tree rétabli l’autre lien afin d’assurer une continuité de connectivité. Cela peut paraître idyllique, mais voilà, il faut à spanning tree 50s pour détecter les changements de topologies, et plus ennuyeux, lorsque l’on se branche sur un commutateur avec spanning tree activé, il faudra 50s pour que l’on puisse utiliser le port, ce qui peut causer des timeout au niveau de la demande d’adresse DHCP et avoir des ordinateurs qui n’arrivent pas à obtenir d’adresse IP du premier coup.
Le but de cet article est donc de montrer quelques techniques permettant d’accélérer le processus spanning tree.
1. PortFast
Le mode portfast permet purement et simplement de désactiver le protocole spanning tree pour un ou plusieurs ports d’un commutateur.
ATTENTION ! Seuls les ports d’un commutateur qui sont reliés à des points d’extrémité et ne pouvant générer de redondance doivent être mis en mode portfast, sans quoi des boucles de commutations peuvent apparaître et bloquer votre réseau. Vous aurez d’ailleurs un bel avertissement en activant le mode portfast :
Switch(config-if)#spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single host.
Connecting hubs, concentrators, switches, bridges, etc.to this interface when portfast is enabled, can cause temporary spanning tree loops.
Use with CAUTION
%Portfast has been configured on FastEthernet1/1 but will only have effect when the interface is in a non-trunking mode.
Switch(config-if)#
Comme vous avez pu le constater, l’utilisation du mode portfast peut s’avérez risquée. Voici donc quelques astuces pour « limiter les dégats » en cas de mauvaise utilisation.
· BPDU Filter
Le mode spanning tree BPDU Filter permet de stopper l’envoi et la réception de BPDU par ce port. Si tant est si bien un BPDU de faufilait jusqu’à notre port, le mode portfast serait tout simplement enlevé de ce port et referai parti du processus spanning tree.
· BPDU Guard
Un port en mode BPDU Guard va désactiver le port et le mettre en « Error disabled state » (Show spanning tree) si un BPDU arrive sur ce port.
Pour activer ces options :
Switch(config-if)#spanning-tree BPDUGuard enable
Switch(config-if)#spanning-tree BPDUFilter enable
2. Optimisation
Bien, nous avons vu deux options sympathiques pour notre switch, mais ne nous arrêtons pas en si bon chemin. Voici quelques options permettant d’optimiser le temps de convergence spanning tree.
· Uplinkfast
Comme vous le savez, lorsqu’un switch reçoit des BPDU par plusieurs de ses ports, il va en désactiver un et le mettre en mode bloqué et l’autre sera le port désigné. Si le lien du port désigné tombe, le porcessus spanning tree recommence. Le mode Uplinkfast permet de sauvegarder en mémoire les ports alternatifs vers le rootbridge de manière à ce que si un port tombe, le port alternatif soit instantanément réactivé sans repasser par les processus d’écoute et d’apprentissage classique de spanning tree.
Typiquement, les switchs sur lesquels on activera cette option seront les switchs d’accès (sur lesquels seront reliés les ordinateurs).
· Backbonefast
Imaginons 3 switchs, le switch Root, le switch Gauche et le switch Droite. Gauche et Droite sont tous deux reliés au switch Root et sont reliés entre eux. Imaginons que le lien entre le switch Gauche et le switch Root tombe. Le switch Gauche n’ayant pas de chemin alternatif va se considérer comme le switch root et va envoyer un BPDU au switch Droite. D’ordinaire, celui-ci aurait ignoré ce BPDU ayant une valeur inférieure à la valeur en mémoire, jusqu’à ce que celle-ci expire (20s). Avec le mode backbonefast activé, la réception d’un BPDU de valeur inférieure force le switch à relancer le processus spanning tree, ce qui peux faire gagner 20s au processus spanning tree.
Pour activer ces options :
Switch(config-if)#spanning-tree backbonefast
Switch(config-if)#spanning-tree uplinkfast
Les options Backbonefast et Uplinkfast sont des options propriétaires Cisco, qui ont été créées pour améliorer le protocole spanning tree. Il est cependant utile de noter qu’un protocole stantardisé (802.1w) , appelé Rapid Spanning tree reprend ces mécanismes en plus du spanning tree, et est quant à lui disponible sur des plateformes non Cisco. Je vous conseille donc d’utiliser le rapid spanning tree. Il s’active de la sorte sur un Switch Cisco :
Switch(config)#spanning−tree mode rapid−pvst
Archivé sous: CCNA | Tagué : backbone fast, CCNA, rapid spanning tree, Spanning tree, uplink fast | Laisser un commentaire »
Hello world!
Bonjour à tous,
Je me lance dans la blogosphère avec un blog sans prétention ou je regrouperai des informations que je jugerai utiles aux personnes souhaitant évoluer dans l’univers des réseaux informatiques, et je fournirai aussi quelques astuces, points importants, problèmes et leur solutions quant aux certifications que j’ai ou vais passer, essentiellement sur du matériel Cisco.
Archivé sous: Divers, bienvenue | Tagué : certifications, cisco | Laisser un commentaire »