Table of Contents

routage redistribution

Redistribution de routes

La redistribution de route permet d'importer des réseaux appris par un AS vers un autre AS.

Cela se configure dans le protocole de routage grâce à la commande redistribute, les paramètres classiques sont les suivants : redistribute protocol [process-id] [metric metric-value] [route-map map-tag]

Par exemple le routeur R1 utilise 2 protocoles de routage (c'est un ASBR) : eigrp 4 et ospf 3. La commande suivante permet d'injecter les réseaux (ainsi que leur masque grâce au paramètre subnets) appris en EIGRP dans l'OSPF (il faut lire “redistribute from eigrp 4”).

(config)#router ospf 3
(config-router)#redistribute eigrp 4 subnets

NB : cette commande n'injecte pas les réseaux OSPF dans EIGRP ! Pour être symétrique il faut préciser la réciproque :

(config)#router eigrp 4
(config-router)#redistribute ospf 3 subnets

default-information originate

Cette commande, à placer dans un processus de routage, ne peut être utilisée que sur un ASBR (un routeur qui fait la jonction entre plusieurs zones de routage (AS)). Elle sert à diffuser une route par défaut dans ledit protocole (ce qui n'est pas le cas par défaut, même si le routeur possède une route par défaut).

Exemple avec un routeur qui redistribue des routes statiques dans l'OSPF :

router ospf 1
 router-id 10.0.0.1
 redistribute static subnets
 default-information originate

Les paramètres optionnels sont les suivants :

default-metric

Précise la métrique par défaut (seed metric) des routes importées dans le protocole de routage.

(router-if)#default-metric 30

Modifier la métrique

La métrique par défaut dépend du protocole source et destination.

Protocole destination Métrique par défaut
OSPF 20, excepté pour les routes importées de BGP qui valent 1
RIP infini
IGRP et EIGRP infini
IS-IS 0
BGP égale à la métrique de l'IGP

<note warning> Il est plus que recommandé de définir explicitement la métrique de redistribution d'un protocole dans du RIP. En effet, dans le cas d'OSPF par exemple, la métrique par défaut est 20 ; or le RIP est basé sur un nombre de saut (~métrique) limité à 15. Si on ne défini pas de métrique dans la redistribution, les routes prennent la métrique 20 (considérée comme infinie) et ne sont plus annoncées. </note>

Exemple : redistribuer des routes OSPF dans du RIP avec une métrique de 5

router rip
 version 2
 default-information originate
 no auto-summary
 redistribute ospf 3 metric 5
 !
 ! ou pour tous les protocoles redistribués
 default-metric 5

Métrique EIGRP

EIGRP utilise une métrique composite (c-metric), qui permet de prendre en compte plus de paramètres que le coût d'un lien (5 en tout). On peut affiner ces paramètres lors de la redistribution, en spécifiant, dans l'ordre, la bande passante (en Kbps), le délais (cs ou centi-seconde (en dizaine de ms quoi)), la fiabilité, la charge et la MTU (en octet).

redistribute ospf 3 metric 10000 100 255 1 1500 

OSPF

OSPF est un cas particulier :

Exemple de redistribution de routes statiques dans l'OSPF avec une métrique de 30 et de type E1 :

redistribute static metric 30 metric-type 1

Par exemple pour redistribuer des routes EIGRP dans l'OSPF :

router ospf 3
 redistribute eigrp 100 subnets
router eigrp 2
 redistribute ospf 3 subnet match external 1 external 2
router ospf 1
 redistribute eigrp 100 route-map redistibute-EIGRP_to_OSPF
!
route-map redistibute-EIGRP_to_OSPF permit 10
 match ip address ACL-redistibute-EIGRP_to_OSPF
!
ip access-list standard ACL-redistibute-EIGRP_to_OSPF
 permit 192.168.0.0 0.0.0.255
 deny any

Par défaut, tout ce qui ne matche pas l'ACLACL-redistibute-EIGRP_to_OSPF” n'est pas redistribué dans ospf 1. La directive deny any est donc redondante, mais plus prudente.

OSPF vers OSPF

Des problèmes peuvent surgir lorsqu'on redistribue de OSPF vers OSPF sur 2 routeurs (pour la redondance) car alors :

Des solutions / contournements à ces problèmes sont indiqués dans cette doc Cisco : OSPF Redistribution Among Different OSPF Processes

Une solution est :

router ospf 1
 distance 100
!
router ospf 2
! on ne touche pas à la distance administrative par défaut de l'ospf,
! à savoir 110

Ceci provoque la priorité inconditionnelle (pas exactement : voir Distance administrative) des routes de l'OSPF 1 par rapport à l'OSPF 2.

router ospf 1
 redistribute ospf 2 subnets route-map AS2_to_AS1
!
router ospf 2
 redistribute ospf 1 subnets route-map AS1_to_AS2
!
route-map AS2_to_AS1 permit 10
 match ip address network_2
!
route-map AS1_to_AS2 permit 10
 match ip address network_1

Cela évite que les routes de l'AS2, redistribuées par un R1 dans l'AS1, soient apprises par R2 en tant que route externe et soit également redistribuées à nouveau dans l'AS2, créant une boucle de routage.

Cette solution pourrait être réaliser avec des distribute-list in/out.

IS-IS

IS-IS utilise différents niveaux de routage (1 et 2) ; on peut préciser à quel niveau on injecte les routes avec le paramètre level-1 | level-2 | level-1-2.

router isis
 redistribute ospf 3 subnet level-1

Configuration avancée

passive-interface

Cette commande permet d'empêcher une interface, sur laquelle un protocole de routage est activé, d'émettre des routing update mais elle peut toujours en recevoir. Si le protocole de routage est à état de lien (EIGRP, OSPF) il n'émettra plus non plus de paquets Hello. Cela peut se configurer sur une interface ou dans la partie routage :

(config-router)#passive-interface fa0/0

On peut, par sécurité, mettre le mode passif par défaut sur toutes les interfaces de routage, et ne les activer qu'une par une :

(config-router)#passive-interface default
(config-router)#no passive-interface fa0/0

distribute-list

On peut filtrer les routes annoncées en sortie ou apprises en entrée avec la commande distribute-list, qui permet d'utiliser une ACL pour filtrer les réseaux : attention la syntaxe est différente suivant le sens :

ex: Filtrer les réseaux RIP redistribués dans l'OSPF (en sortie)

router ospf 3
 distribute-list 61 out rip

access-list 61 deny   10.200.200.0 0.0.0.255
access-list 61 permit any

route-map

Les route-map permettent de sélectionner certains réseaux (match) et de leur associer une action (set).

Comme les ACLs, elles utilisent un deny implicite à la fin.

ex: Changer la métrique des routes injectées dans l'OSPF : on remplace 1 par 1000 et 2 par 2000 (on utilise une route-map):

router ospf 3
 redistribute rip subnets route-map CONVERT

route-map CONVERT permit 10
 match metric 1
 set metric 1000
!
route-map CONVERT permit 20
 match metric 2
 set metric 2000
!
route-map CONVERT permit 30

Distance administrative

La distance administrative permet aux routeurs de privilégier les routes apprises par certains protocoles de routage (jugés plus fiables), indépendamment de la métrique de celle-ci. Plus une source est jugée fiable, plus sa distance administrative sera faible pour prioriser ses routes par rapport à une source moins fiable.

Chaque source possède une distance administrative par défaut dont voici le récapitulatif :

Connected 0
Static 1
EIGRP summary route 5
eBGP 20
EIGRP (internal) 90
IGRP 100
OSPF 110
IS-IS 115
RIP 120
Exterior Gateway Protocol (EGP) 140
On Demand Routing (ODR) 160
EIGRP (external) 170
iBGP 200
Inconnu* 255

* : La distance de 255 détermine une source inconnue qui ne sera pas prise en compte dans la table de routage.

<note warning> Rappel : la détermination de la meilleure route se fait dans l'ordre suivant :

Cela signifie que la distance administrative ne rentre en ligne de compte qu'à préfixe équivalent. Si tous ces paramètres sont égaux, on se trouve en ECMP et les paquets sont répartis sur les 2 next hop

Concrètement, si on reçoit ces 2 routes : 192.168.32.0/19 [90/25789217] via 10.1.1.1 et 192.168.32.0/26 [110/229840] via 10.1.1.3 alors les paquets à destination de l'IP 192.168.32.1 (par exemple) seront routés vers 10.1.1.3 car il annonce un préfixe plus long (/26 contre /19). </note>

Pour changer le distance administrative des routes apprises par la source 10.0.0.1 qui matchent l'ACL 64 :

router ospf 3
 distance 125 10.0.0.1 255.255.255.255 64
!  
access-list 64 permit 10.200.200.32
access-list 64 permit 10.3.0.0 0.0.255.255

Avec l'EIGRP on utilise cette commande : distance eigrp internal-distance external-distance. Il s'agit bien sur de fixer la distance administrative pour, respectivement, les routes internes et externes.

distance eigrp 80 100

(Avec du BGP : distance bgp)

Liens