Nous avons vu le but de la redistribution, les problèmes posés par celle-ci, puis nous avons fait un aperçu des méthodes qui existent pour redistribuer les routes.
Passons au plus intéressant, la pratique !
Nous allons implémenter les solutions vues précédemment, dans une topologie.
Nous verrons la Distribution List, la Prefix List et les Route Maps.
1) Topologie
La topologie que nous allons utiliser est presque la même que dans l’article traitant de la théorie.
Nous retrouvons 3 réseaux : un OSPF, un EIGRP, et un RIP.
Comme toujours, les IP des interfaces sont celles du réseau associé + ID du routeur.
Exemple pour R3 S0/1 : 10.0.34.3 /24
2) Configuration de base
Voici la liste des choses à mettre en place avant de commencer :
– IP des interfaces
– Interfaces Loopback
Configurons ensuite le routage.
OSPF
R1(config)#router ospf 1 R1(config-router)#router-id 1.1.1.1
R1(config-router)#network 172.16.30.0 0.0.0.255 area 0 R1(config-router)#network 172.16.31.0 0.0.0.255 area 0 R1(config-router)#network 172.16.32.0 0.0.0.255 area 0 R1(config-router)#network 172.16.33.0 0.0.0.255 area 0 R1(config-router)#network 10.0.13.0 0.0.0.255 area 0 R1(config-router)#network 10.0.12.0 0.0.0.255 area 0
R2(config)#router ospf 1 R2(config-router)#router-id 2.2.2.2 R2(config-router)#network 10.0.12.0 0.0.0.255 area 0
R3(config)#router ospf 1 R3(config-router)#router-id 3.3.3.3 R3(config-router)#network 10.0.13.0 0.0.0.255 area 0
EIGRP
R2(config)#router eigrp 1 R2(config-router)#no auto-summary R2(config-router)#network 10.0.25.0 0.0.0.255
R3(config)#router eigrp 1 R3(config-router)#no auto-summary R3(config-router)#network 10.0.34.0 0.0.0.255
R4(config)#router eigrp 1 R4(config-router)#no auto-summary R4(config-router)#network 10.0.34.0 0.0.0.255 R4(config-router)#network 10.0.45.0 0.0.0.255
R5(config)#router eigrp 1 R5(config-router)#no auto-summary R5(config-router)#network 10.0.25.0 0.0.0.255 R5(config-router)#network 10.0.45.0 0.0.0.255
R4(config-router)#network 172.16.20.0 0.0.0.255 R4(config-router)#network 172.16.21.0 0.0.0.255 R4(config-router)#network 172.16.22.0 0.0.0.255 R4(config-router)#network 172.16.23.0 0.0.0.255
RIP
R5(config)#router rip R5(config-router)#version 2 R5(config-router)#network 10.0.56.0
R6(config)#router rip R6(config-router)#version 2 R6(config-router)#network 10.0.56.0 R6(config-router)#network 172.16.0.0
(Il faudra un peu de temps à R5 pour recevoir la routes 172.16.0.0 /16)
La configuration de base est prête.
Avant de passer à la redistribution, vérifier que les routes se sont bien propagées.
3) Redistribution basique
Passons aux choses sérieuses !
Nous allons commencer par redistribuer les routes OSPF dans EIGRP
La configuration doit s’effectuer sur R2 et R3.
Pour redistribuer les routes OSPF dans EIGRP, il faut aller dans le mode EIGRP (attention à ne pas se tromper).
Il est très important de spécifier la métrique quand on redistribue des routes dans EIGRP (de même pour RIP). Sans une métrique choisie, les routes sont annoncées avec une métrique infinie.
Pour OSPF, une métrique de 20 est utilisée si rien n’est spécifié.
Pour BGP, la métrique est conservée.
Il faut ensuite faire de même pour R3 :
Allons voir sur R4 si la redistribution a fonctionné :
Les routes ayant le préfix « EX » sont des routes externes, c’est-à-dire les routes que nous avons importées dans EIGRP.
Parfait !
Faisons de même en important les routes EIGRP dans OSPF
La commande est presque la même que précédemment.
Le mot clé « Subnet » permet de ne pas résumer les routes quand elles sont redistribuées.
Le « metric-type » permet de définir si la métrique doit grandir après redistribution.
Un « Metric-type » de 1 signifie que la métrique augmente après la redistribution (à chaque fois qu’un routeur annonce cette route)
Un « Metric-type » de 2 signifie que la métrique reste la même après redistribution (tous les routeurs recevant cette route verrons une métrique de 50)
Ne pas oublier de faire de même sur R3 (même si ce n’est pas obligatoire).
Voyons le résultat sur R1 :
Parfait, il connait les routes venant d’EIGRP !
Finissons par la redistribution entre RIP et EIGRP
Vérifions si R6 connait toutes les routes
En effet.
Libre à vous de faire divers test pour vous assurer du bon fonctionnement de la redistribution.
4) Distribution List
Nous venons de voir la redistribution basique.
Voyons maintenant une première technique permettant de contrôler la redistribution.
La Distribution List se base sur une ACL pour savoir si oui ou non il faut redistribuer une route.
Prenons un exemple : nous ne voulons pas qu’une route vers le réseau 172.16.33.0 /24 soit redistribuée.
Nous allons donc faire une ACL n’autorisant que les routes voulues (ou bien une ACL interdisant la route non voulue).
R2(config)#access-list 1 permit 172.16.30.0 0.0.0.255 R2(config)#access-list 1 permit 172.16.31.0 0.0.0.255 R2(config)#access-list 1 permit 172.16.32.0 0.0.0.255 R2(config)#access-list 1 permit 10.0.12.0 0.0.0.255 R2(config)#access-list 1 permit 10.0.13.0 0.0.0.255
Le Deny All qui est automatiquement placé à la fin, se chargera de refuser le reste.
R2(config)#router eigrp 1 R2(config-router)#distribute-list 1 out
N’oublions pas de faire la même chose sur R3 :
R3(config)#access-list 1 permit 172.16.30.0 0.0.0.255 R3(config)#access-list 1 permit 172.16.31.0 0.0.0.255 R3(config)#access-list 1 permit 172.16.32.0 0.0.0.255 R3(config)#access-list 1 permit 10.0.12.0 0.0.0.255 R3(config)#access-list 1 permit 10.0.13.0 0.0.0.255
R3(config)#router eigrp 1 R3(config-router)#distribute-list 1 out
Puis vérifions le résultat sur R5 :
Plus aucune trace de la route vers 172.16.33.0 /32
Au passage les réseaux sont en /32 à cause des interfaces Loopback
La commande ip ospf network point-to-point sur les interfaces Loopback résout ce problème
5) Prefix List
La Prefix List ressemble un peu à la distribution List. Son fonctionnement est relativement simple.
Voici un exemple :
R2(config)#ip prefix-list PL_EIGRP-To-OSPF seq 10 permit 172.16.20.0/21 ge 24 le 26
Tout d’abord, il faut donner un nom à la Prefix List
Ensuite, on choisit un numéro de séquence. Celui-ci permet de créer plusieurs entrées dans une Prefix List. Elles seront parcourues du plus bas numéro de séquence au plus haut (un peu à la manière d’une ACL)
Ensuite nous choisissons Permit ou Deny
Nous choisissons ensuite le sous-réseau concerné
Les 2 dernières options sont facultatives
« ge 24 le 32 » signifie que le masque de la route redistribuée doit être au minimum de 24, et au maximum de 32
Par exemple :
172.16.20.0 /24 -> OK
172.16.20.0 /26 -> OK
172.16.20.0 /23 -> Non
Voici la configuration à appliquer à R2 et R3 :
R2(config)#ip prefix-list PL_EIGRP-To-OSPF seq 10 permit 172.16.20.0/21 ge 24 le 26 R2(config)#ip prefix-list PL_EIGRP-To-OSPF seq 20 deny 0.0.0.0/0 le 32
La deuxième entrée permet de refuser tout le reste
R2(config)#router ospf 1 R2(config-router)#distribute-list prefix PL_EIGRP-To-OSPF out
Une fois cela appliqué à R2 et R3, allons voir sur R1 si le résultat est bon :
Les routes vers 172.16.20.0 /21 sont toujours là
Par contre, il n’y a plus les routes vers 10.0.34.0 /24 et 10.0.45.0 /24
Ajoutons une permission pour ces routes (à faire sur R2 et R3) :
R2(config)#ip prefix-list PL_EIGRP-To-OSPF seq 15 permit 10.0.34.0/24 R2(config)#ip prefix-list PL_EIGRP-To-OSPF seq 16 permit 10.0.25.0/24
Si vous souhaitez tester le filtrage par masque, changer celui d’une interface Loopback de R4 :
R4(config-if)#ip address 172.16.23.1 255.255.255.224
Voyons le résultat :
Pas de routes vers 172.16.23.0 /27, et les routes vers 10.0.25.0 /24 et 10.0.34.0 /24 ont réapparu !
6) Route Map Basique
Les routes Map sont une solution plus avancées que la Distribution List ou la Prefix List.
Elles permettent de faire beaucoup plus de chose.
Nous allons étudier certaines des possibilités se rapportant à la redistribution de routes.
Chaque entrée d’une Route Map a un numéro de séquence.
Les entrées sont parcourues du plus bas au plus haut numéro de séquence, jusqu’à trouver une correspondance.
Il y a un Deny ALL implicite à la fin de la Route Map.
Voici la structure d’une Route Map :
R2(config)#route-map Name SeqNumber R2(config-route-map)#match Condition R2(config-route-map)#set Option
Voyons cela en pratique.
Mais avant, retirons les Prefix List et Distribution List que nous avons ajouté
R2(config)#router eigrp 1 R2(config-router)#no distribute-list 1 out R2(config)#router ospf 1 R2(config-router)#no distribute-list prefix PL_EIGRP-To-OSPF out
Pareil pour R3
Nous allons faire une Route Map pour contrôler la redistribution EIGRP vers OSPF et une autre pour OSPF vers EIGRP.
R2(config)#route-map EIGRP-TO-OSPF 10
Nous avons créé l’entrée numéro 10 dans la Route Map EIGRP-TO-OSPF
R2(config-route-map)#match ip address prefix-list PL_EIGRP-To-OSPF
L’entrée numéro 10 va s’appliquer aux routes menant vers les réseaux capturés par la Prefix List PL_EIGRP-To-OSPF (nous avions créé cette Prefix List précédemment).
R2(config-route-map)#set metric 50
Les routes concernées par l’entrée 10 de la Route Map, seront redistribuées avec une métrique de 50.
R2(config-route-map)#set metric-type type-2
Une fois redistribuées, la métrique des routes n’augmentera pas
R2(config)#route-map EIGRP-TO-OSPF 20 R2(config-route-map)#set metric 100 R2(config-route-map)#set metric-type type-2
Avec cette deuxième entrée, nous permettons la redistribution de toutes les autres routes, avec une métrique de 100 et de type 2.
Voici comment afficher le résumé des Route Map :
Tout semble bon.
Il faut maintenant utiliser la Route Map.
R2(config)#router ospf 1 R2(config-router)#no redistribute eigrp 1 metric 50 subnets 2(config-router)#redistribute eigrp 1 subnets route-map EIGRP-TO-OSPF
Faire de même sur R3, puis allez voir sur R1 si tout est bon.
Toutes les routes sont là.
Certaines avec une métrique de 50, d’autres avec 100.
Bien. Créons une Route Map pour OSPF vers EIGRP
La voici :
route-map OSPF-TO-EIGRP permit 10 match ip address 1 set metric 50 50 50 50 50 route-map OSPF-TO-EIGRP permit 20 set metric 100 100 100 100 100
Par contre, nous souhaitons ne pas redistribuer la route vers 172.16.33.0 /24.
Nous allons donc créer une ACL faisant référence à 172.16.33.0 /24, puis ajouter une entrée dans la Route Map.
R2(config)#access-list 2 permit 172.16.33.0 0.0.0.255 R2(config)#route-map OSPF-TO-EIGRP deny 9 R2(config-route-map)#match ip address 2
L’entrée No 9 refuse tout ce qui est capté par l’ACL 2.
Il ne reste plus qu’à appliquer la Route Map.
R2(config)#router EIGRP 1 R2(config-router)#no redistribute ospf 1 metric 100 100 100 100 100 R2(config-router)#redistribute ospf 1 route-map OSPF-TO-EIGRP
Faites de même sur R3.
Puis allez voir le résultat sur R4 :
Toutes les routes sont là, sauf 172.16.33.0 /24.
C’est ce que nous voulions.
Libre à vous de modifier ces Routes Map afin de vous familiariser avec le concept.
7) Route Map – Tag de routes
Dans l’article précédent, nous avons vu qu’il est possible de créer une boucle de routage en faisant de la redistribution. Les Tag de routes permettront d’empêcher cela.
Voyons d’abord un cas de boucle de routage.
Prenons un exemple :
R5 veut joindre 172.16.10.0 /24 (c’est-à-dire R6)
Dans sa table de routage, il possède une route RIP menant à ce réseau.
Jusqu’ici tout est normal.
Mais saviez-vous que R5 possède aussi une route EIGRP pour aller vers 172.16.10.0 /24 ?
Voici un extrait du résultat de la commande « R5#show ip eigrp topology »
Cette entrée correspond aux réseaux derrière R6.
Mais alors pourquoi ne voit-on pas la route EIGRP dans la table de routage de R5 ?
Simplement car la route alternative que R5 connait, lui a été annoncé par R2 en mode redistribution EIGRP.
Cette route alternative a pour AD 170. Ce qui explique qu’elle ne soit pas visible dans la table de routage.
Et d’où vient cette route au fait ?
R3 a appris la route pour 172.16.10.0 /24 par R5 (grâce à la redistribution de RIP dans EIGRP).
R3 a ensuite redistribué cette route dans OSPF.
Jusqu’ici rien d’anormal.
Puis, R2 a pris connaissance de la route, puis l’a re-redistribué vers R5.
Au final, R2 n’aurais pas dû redistribuer des routes EIGRP dans leur zone d’origine.
Encore une fois, R5 préfère la route RIP à la route externe EIGRP.
Mais imaginez que nous avions mis en place de l’OSPF à la place de l’EIGRP (et inversement).
En OSPF il n’y a pas d’AD spéciale pour les routes externes.
Nous pouvons simuler cela en changeant l’AD des routes EIGRP externes.
R5(config)#router eigrp 1 R5(config-router)#distance eigrp 110 109
(dans le cas présent, il faut que l’AD externe soit plus faible que l’AD interne)
Et là, c’est le drame.
Pour joindre 172.16.10.0 /24, R5 va envoyer les paquets vers R2.
Au final nous aurons une boucle de routage !
Vous pouvez constater que les requêtes de ping ne parviennent plus à destinations.
Voici les conditions pour créer une boucle de routage :
- Avoir une redistribution mutuelle. Ici R2 et R3 font tous les deux de la redistribution, ce qui permet aux routes d’être re-redistribuées.
- Qu’un routeur (ici R5) possède deux routes possible : une bonne (vers R6) et une mauvaise (la route re-redistribuée)
- Que la route re-redistribuée ai une AD plus faible que la bonne route.
Voyons maintenant comment éviter les boucles de routage.
Le Tag de routes permettra aux routeurs de ne pas redistribuer les routes déjà redistribuées.
Par exemple, R2 pourra reconnaitre les routes qui ont été redistribuées dans OSPF par R3.
Voyons cela en pratique, ce sera plus simple.
Nous allons taguer toutes les routes redistribuées.
R2(config)#route-map EIGRP-TO-OSPF 10 R2(config-route-map)#set tag 10 R2(config)#route-map EIGRP-TO-OSPF 20 R2(config-route-map)#set tag 20
R2(config)#route-map OSPF-TO-EIGRP 10 R2(config-route-map)#set tag 30 R2(config)#route-map OSPF-TO-EIGRP 20 R2(config-route-map)#set tag 40
Faites de même sur R3
Toutes les routes redistribuées sont maintenant taguées.
Il ne reste plus qu’à empêcher EIGRP-TO-OSPF de redistribuer les routes taguées par OSPF-TO-EIGRP (et inversement).
R2(config)#route-map EIGRP-TO-OSPF deny 5 R2(config-route-map)#match tag 30 40
R2(config)#route-map OSPF-TO-EIGRP deny 5 R2(config-route-map)#match tag 10 20
Faites de même sur R3.
Allons voir le résultat sur la table de routage de R5 :
Plus de boucle de routage en vue !
Au passage, vous pouvez rétablir les paramètres d’AD EIGRP sur R5 (ils n’étaient utiles que pour créer une boucle de routage):
R5(config)#router eigrp 1 R5(config-router)#distance eigrp 90 170
Pour résumer, dans certains cas la redistribution de routes peut causer une boucle de routage.
Ici nous avons forcé la boucle, mais elle peut très bien survenir d’elle-même si l’on respecte les critères cités précédemment.
Le Tag de routes est une des solutions pour empêcher cela. Des Prefix List ou des Distribution List peuvent aussi suffire.
Il conviendra de s’adapter à la topologie.
8) Modification de la distance administrative
Comme nous l’avons vu dans l’article précédent, la perte de la distance administrative (ou AD), peut amener à choisir une route moins bonne.
Pour constater cela, allez voir la table de routage de R2 :
Pour joindre 172.16.10.0 /21, R2 va utiliser R1 comme NetHop. Alors que R5 est bien plus indiqué.
Si R2 a choisi R1, c’est à cause de la distance administrative.
Il a le choix entre :
NextHop R1, AD 110
NextHop R5, AD 170
La redistribution de routes a donc faussé le choix de route.
La solution est simple : changer les paramètres d’AD sur R2.
R2(config)#router eigrp 1 R2(config-router)#distance eigrp 90 105
Et le résultat :
Plus aucune trace de la route vers 172.16.33.0 /32 😉
Merci de votre aide à travers ce site 🙂
dans la section 5) des prefix list, est il normal de trouver des routes vers les réseaux : 172.16.21.0, 172.16.22.0, 172.16.23.0 sur R1?
Bonjour,
Oui, c’est justement ce que nous voulions avec cette Prefix List. Relisez bien l’explication de cette Prefix List.