Policy-based routing

Les policy-based routing sont toujours configurées en entrée sur les interfaces de routeurs.
Les route-map sont une forme de policy-based routing et analysent donc que les paquets entrants. Les route-map utilisent des access-list standard pour étudier la source d'un paquet, ou étendue pour étudier la source et la destination d'un paquet.
Les interfaces nulles sont des interfaces virtuelles qui sont souvent utilisées à la place d'access-lists. Le trafic envoyé sur une interface nulle est automatiquement détruit.

Exemple
router(config)#route-map drop_host permit 10
router(config-route-map)# match ip address 100
router(config-route-map)# set interface null0
router(config)# route-map drop_host permit 20
router(config-route-map)# match ip address 1
router(config-route-map)# st interface S1

router(config)# access-list 100 permit 10.0.2.14 0.0.0.0 10.0.1.98 0.0.0.255
router(config)# access-list 1 permit any
router(config)# interface S0
router(config-if)# ip policy route-map drop_host
La commande route-map drop_host permit 10 définit une route-map qui se nomme drophost.
La séquence 10 représente la première occurance de la route-map.
La configuration de la route-map: match ip address 100, demande au routeur d'analyser l'adresse source des paquets qui arrivent, en utilisant les définitions de l'access-list 100.
L'access-list étendue 100 demande au routeur d'autoriser le trafic issu de l'adresse 10.0.2.14 à destination de l'adresse 10.0.1.98.
La commande set interface null0 commande au routeur de forwarder les paquets qui conviennent aux conditions de la liste 100, sur l'interface virtuelle 100.
L'interface virtuelle null0 est utilisée à destination du trafic qui doit être détruit.
La séquence 20 utilise une autre occurance math ip address , qui pointe sur l'access-list standard 1.
L'access-list 1 se terminant par implicite deny any, elle permet le passage pour tout le trafic reçu par la policy-routed-interface.
La commande set interface S0 dirige ce trafic entrant sur l'interface de sortie S0.
Les policy-based routing sont toujours basées sur les entrées d'interfaces et n'analisent donc que les paquets entrants.
La conséquence est l'utilisation de la commande ip policy route-map drop_host pour assigner la route amp drop_host sur l'interface S0

2. L'optimisation des processing de routage

L'optimisation du process  de routage passe par  plusieurs mécaniques:
La redistribution
Le filtrage
Les policies based

2.1.            La redistribution:

La redistribution est le fait d'implanter des routes apprises par un protocle de routage dans un autre.
Seed Metric : C'est le métrique initial d'une interface lors d'une redistribution.
Les routes redistribuées ne sont pas directement connectées au routeur, elles sont apprises par des protocoles.
Si un routeur frontalier doit redistribuer des routes, il doit tenir être capable de traduire les métriques d'un protocole dans un autre.
Ce type de métrique est appelé un seed métrique ou dfault-metric, il est définit lors de la configuration de la redistribution.

router# default-metric -->   La commande pour établir un seed métrique à une route.
Les commandes de redistribution s'introduisent sur le routeur de destination, celui qui agit sur la redistribution.
Les commandes de redistribution dépendent du protocole de routage.
La redistribution d'IGRP dans EIGRP est automatique si les 2 protocoles appartiennent au même AS.
La configuration de la redistribution suit les étapes suivantes:
1° identifier le boundary router
2° déterminer quel est le core protocol (OSPF et EIGRP)
3° déterminer quel est l'edge protocol.
4° sélectionner une méthode d'injection de l'edge protocol dans le core protocol.
5° Considérer comment injecter le core prorocol dans l'edge protocol.

router(router-config)# redistribute eigrp 100 metric 30 metric-type 1 --> configure la redistribution d'EIGRP AS=100, avec un métrique (seed-metric) de 30, en utilisant des annonces E1 (externes)

Le métrique est obligatoire, soit dans la configuration d'OSPF soit dans la configuration globale en utilisant :
router(config)# default-metric bandwidth delay reliability loading mtu --> pour EIGRP
router(config)# default-metric number --> pour OSPF
On redistribue souvent l'edge protocol dans le core, alors que dans le chemin inverse on utilise plutôt une default route ou une route statique ou on filtre la redistribution, ou on redistribue en changeant l'administrative distance.
router(config-router)# passive interface interface  --> silent router. Dans ce cas le routeur est réceptif aux protocoles de routages mais n'envoir plus rien.
Le default-network: le routeur assure qu'il est le default gateway. Il envoie donc une default route aux autres routeurs. en annonçant que c'est lui qui est le default gateway. L'interêt réside dans la propagation de la default-route. En fait cette commande ne procure aucun effet direct sur le routeur sur lequel elle est configurée.

2.2.            Le filtrage de routes

Le filtrage de routes s'établit par la commande distribute-list.
Cette commande utilise une liste d'accès simple pour permettre ou non certaines routes.
Les access-list peuvent être appliquées pour transmettre ou recevoir des routing updates.
router# router eigrp 1
router(config-router)# network 172.16.0.0
router(config-router)# network 192.168.5.0
router(config-router)# distribute-list 7 out S0

access-list 7 permit 172.16.0.0 0.0.255.255
Dans cet exemple une access-list n°7 est créée, qui ne permet que l'adresse source 172.16.0.0.
Cette access-list est appliquée au protocole de routage EIGRP en sortie de l'interface S0.
Seuls les informations concernant le réseau 172.16.0.0 seront propagées.
De ce fait le réseau 10.0.0. ne sera pas vu au delà de l'interface S0. 

Exemple d'une route staique redistribuée et filtrée dans EIGRP:
ip route 10.0.0.0 255.0.0.0 192.168.7.9
ip route 172.16.0.0 255.255.0.0 192.168.7.5
!
router eigrp 1
            network 192.168.7.0
            default-metric 10000 100 255 1 1500
            redistribute static
            distribute-list 3 out static
!
access-list 3 permit 10.0.0.0 0.255.255.255

Dans notre exemple, la route 10.0.0.0 est passée au routeur suivant , alors que la route 172.16.0.0 est filtrée.

2.3.            La modification de l'adminstrative distance

router(config-router)# distance weight [address mask [access-list n°|name]] [ip]è utilisé par tous les protocoles sauf EIGRP et BGP redistribution
router(config-router)# distance  eigrp internal-distance external-distance    è EIGRP redistribution

2.4.            Route maps

Il s'agit d'access-list complexes qui permettent le cas échéant de modifier le routage, en fonction de la source on peut imposer le routage.
router(config)# route-map map-tag [permit|deny] [sequence n°]è définit les conditions de la police de routage
match {conditions} --> définit les conditions à réaliser
set {actions}--> définit les actions quand une occurrence est vérifiée
Les route amps permettent d'implanter des polices qui font que sélectivement les paquets peuvent suivrent des chemins différents. De plus cette fonction permet de marquer le trafic avec différentes valeur de TOS (Type Of Service)
router(config-if)# ip policy route-map map-tag    --> sur l'interface entrante, spécifie la police qui sera aplliquée.
router(config-if)# ip route-cache policy              --> permet le fast switching sur la police appliquée.
On applique toujours la policy sur l'interface entrante, là où on contrôle la distribution du trafic.
Le sequence number sert à organiser les commandes dans la liste.show ip policy
show route-map [map-name]

2.4.1.        La configuration d'une policy

router(config)# route-map map-tag [permit|deny] [sequence-number]
router(config-route-map)# match {conditions}
router(config-route-map)# set {actions}

exemple:
router(config)# route-map map-tag [permit|deny] [sequence-number]
router(config-route-map)# match {conditions}
router(config-route-map)# set ip next-hop ip-address
router(config-route-map)# set interface type number

Publié le vendredi 10 novembre 2006
par Jack Mielcarek