Introduction:
Dans certaines situations, une entreprise possède des liens redondants ,deux connexions vers deux FAI (ISP) par exemple ou bien des liens redondants dans son réseau interne. L'exploitation de ses liens par les routeurs est parfois primordiale : répartition de charge, réaction en cas de panne, privilégier un traffic sur un autre en fonction de la vitesse du lien etc...
Nous allons vois trois méthodes :
PBR: Policy Based Routing
Les Offset List
IP SLA – Service Level Agreement
Chaque méthode utilise une technique différente pour le path control.
Définition:
Dans certains cas, un réseau possède plusieurs chemins (Several path) pour une même destination, soit en interne ou vers internet
Le but est donc de contrôler l’utilisation de ces différents liens.
Par exemple, un réseau connecté à deux FAI, on peut utiliser un FAI pour un type de traffic (VOIP par exemple), et utiliser l’autre pour le reste.
Ou bien, garder un FAI en secours au cas où le premier tombe en panne (et basculer le trafic sur le FAI de secours si nécessaire). Aussi, nous pouvons influencer les protocoles de routage. Par exemple, RIP ne prend pas en charge la bande passante.
Imaginez un routeur RIP a le choix entre deux liens (deux chemins), le premier en 2 saut à 1Gbs, et le deuxième en 1 saut à 100Mbs, il va préférer le deuxième (ce qui n’est pas le bon choix en matière de vitesse),ça c'est une limitation de RIP .
le Path Control vient en secours.
Lab Pratique :
Nous avons deux réseaux internes et Internet.
Le réseau 1 avec R1 R2 et R3utilisent EIGRP. Le réseau 2 avec R7 R8 et R9 utilisent RIP.
|
Routage sur le réseau 1:
R1(config)#router eigrp 1
R1(config-router)# network 172.16.1.0 0.0.0.255
R1(config-router)# network 172.16.10.0 0.0.0.255
R1(config-router)# no auto-summary
R2(config)#router eigrp 1
R2(config-router)# network 172.16.2.0 0.0.0.255
R2(config-router)# network 172.16.20.0 0.0.0.255
R2(config-router)# no auto-summary
R3(config)#router eigrp 1
R3(config-router)# network 172.16.1.0 0.0.0.255
R3(config-router)# network 172.16.2.0 0.0.0.255
R3(config-router)# no auto-summary
Routage sur le réseau 2:
R7(config)# router rip
R7(config-router)# version 2
R7(config-router)# network 172.17.0.0
R7(config-router)# no auto-summary
R8(config)# router rip
R8(config-router)# version 2
R8(config-router)# network 172.17.0.0
R8(config-router)# no auto-summary
R9(config)# router rip
R9(config-router)# version 2
R9(config-router)# network 172.17.0.0
R9(config-router)# no auto-summary
Pour allez sur internet ,sur le réseau 1 nous allons utiliser des routes statiques :
Réseau 1:
R1(config)#ip route 0.0.0.0 0.0.0.0 172.16.1.3
R2(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.3
Pour allez sur internet ,sur le réseau 2 R7 va annoncer une route par défaut dans RIP:
Réseau 2:
R7(config)#ip route 0.0.0.0 0.0.0.0 Serial0/0 R7(config)#router rip
R7(config-router)#redistribute static
Sur internet ,nous allons utiliser des routes statiques pour aller ver les réseaux 1 et 2 comme suit:
R4(config)#ip route 172.16.0.0 255.255.0.0 serial 0/0
R4(config)#ip route 172.17.0.0 255.255.0.0 serial 0/1
R5(config)#ip route 172.16.0.0 255.255.0.0 serial 0/0
R5(config)#ip route 172.17.0.0 255.255.0.0 serial 0/1
R6(config)#ip route 172.16.0.0 255.255.0.0 serial 0/0
R6(config)#ip route 172.17.0.0 255.255.0.0 serial 0/2
Objectif 1:
Influencer l'acheminement des paquets du réseau 1 vers internet.
Policy Based Routing:
Le Policy Based Routing permet d’influencer le chemin utilisé par les données
On peut forcer un routeur à envoyer le traffic via un chemin. En fonction de la source du traffic, de son type et de sa destination. Par la suite, nous allons mettre en place un système de tolérance de panne pour assurer la continuité de l'acheminement des paquets.
Comment influencer le routage ? Voici notre scenario :
Admettons que le FAI 1 (R4) est le plus rapide et le plus fiable que le FAI 2 (R5) . L'objectif est d’envoyer le traffic important vers le FAI 1, et le reste vers le FAI 2.
Objectif-a: Le réseau 172.16.10.0 est celui des clients. Ce trafic n’est pas important, nous l’enverrons sur le FAI 2.
Objectif-b: Le réseau 172.16.20.0 est celui des serveurs. Comme ils sont accessibles à partir d'internet Ces serveurs sont très sollicité. Ils utiliseront le FAI 1.
Pour réaliser cet objectif ,nous allons utiliser une Route-map Voici les fonctionnalités qu'on va utiliser :
Route Map «nom de la route-map»
Match ip address « ACL »
Set ip next-hop « l'adresse ip du FAI »
Objectif-a: Le réseau 172.16.10.0 des clients.
Nous allons identifier le traffic qu'on veut influencer avec une ACL nommée CLIENTS:
R3(config)#ip access-list extended CLIENTS
R3(config-ext-nacl)#permit ip 172.16.10.0 0.0.0.255 any
On crée une route-map nommée ChoixFAI avec un numéro de séquence 10,cette route-map appelle l'ACL CLIENTS configurée au-dessus avec la commande match ip address ,ensuite rediriger tout le trafic des clients vers le FAI 2 avec la commande set ip next-hop:
R3(config)#route-map ChoixFAI permit 10
R3(config-route-map)#match ip address CLIENTS
R3(config-route-map)#set ip next-hop 35.0.0.5
Objectif-b: Le réseau 172.16.20.0 des serveurs
Nous allons identifier le traffic qu'on veut influencer avec une ACL nommée SERVERS:
R3(config)#ip access-list extended SERVERS
R3(config-ext-nacl)#permit ip 172.16.20.0 0.0.0.255 any
On crée une route-map nommée ChoixFAI avec un numéro de séquence 20,cette route-map appelle l'ACL SERVERS configurée au-dessus avec la commande match ip address ,ensuite rediriger tout le trafic des serveurs vers le FAI 1 avec la commande set ip next-hop:
R3(config)#route-map ChoixFAI permit 20 R3(config-route-map)#match ip address SERVERS R3(config-route-map)#set ip next-hop 34.0.0.4
A la fin on on crée une route-map nommée ChoixFAI avec un numéro de séquence 30 pour le reste du traffic, en d'autres termes, le traffic qui ne correspond ni au réseau des clients ni au réseau des serveurs, ce traffic non capturé, on va l'envoyer vers le FAI 2:
R3(config)#route-map ChoixFAI permit 30
R3(config-route-map)#set ip next-hop 35.0.0.5
Maintenant on va finir par appliquer la Route-Map sur les interfaces de R3 s0/0 et s0/1:
R3(config)#interface serial 0/0
R3(config-if)#ip policy route-map ChoixFAI
R3(config)#interface serial 0/1
R3(config-if)#ip policy route-map ChoixFAI
Verification:
Réseau des clients:
R1#traceroute 172.17.10.9 source 172.16.10.1
Type escape sequence to abort.
Tracing the route to 172.17.10.9
1 172.16.1.3 76 msec 52 msec 0 msec
2 35.0.0.5 4 msec 32 msec 0 msec
3 56.0.0.6 36 msec 4 msec 32 msec
4 67.0.0.7 4 msec 4 msec 32 msec
5 172.17.2.9 32 msec * 44 msec
Réseau des serveurs:
R2#traceroute 172.17.10.9 source 172.16.20.2
Type escape sequence to abort.
Tracing the route to 172.17.10.9
1 172.16.2.3 32 msec 0 msec 64 msec
2 34.0.0.4 64 msec 64 msec 64 msec
3 46.0.0.6 132 msec 68 msec 0 msec
4 67.0.0.7 0 msec 0 msec 28 msec
5 172.17.2.9 28 msec * 104 msec
Analyse du chemin emprunté par le traffic non capturé qui ne match pas la route-map:
R1#traceroute 172.17.10.9
Type escape sequence to abort.
Tracing the route to 172.17.10.9
1 172.16.1.3 24 msec 0 msec 8 msec
2 35.0.0.5 52 msec 72 msec 28 msec
3 56.0.0.6 4 msec 0 msec 0 msec
4 67.0.0.7 140 msec 0 msec 68 msec
5 172.17.2.9 64 msec * 116 msec
R2#traceroute 172.17.10.9
Type escape sequence to abort.
Tracing the route to 172.17.10.9
1 172.16.2.3 32 msec 60 msec 36 msec
2 35.0.0.5 72 msec 0 msec 0 msec
3 56.0.0.6 68 msec 0 msec 32 msec
4 67.0.0.7 100 msec 32 msec 68 msec
5 172.17.2.9 104 msec * 212 msec R2#
|
Cas particulier le traffic Lan to lan ,entre les clients et les serveurs:
Pour atteindre le réseau des serveurs ,les clients passent par le FAI 2:
R1#traceroute 172.16.20.2 source 172.16.10.1
Type escape sequence to abort. Tracing the route to 172.16.20.2
1 172.16.1.3 0 msec 64 msec 0 msec
2 35.0.0.5 68 msec 0 msec 0 msec
3 35.0.0.3 0 msec 0 msec 0 msec
4 172.16.2.2 52 msec * 32 msec
|
Pour atteindre le réseau des clients , les serveurs passent par le FAI 1:
R2#traceroute 172.16.10.1 source 172.16.20.2
Type escape sequence to abort.
Tracing the route to 172.16.10.1
1 172.16.2.3 4 msec 64 msec 0 msec
2 34.0.0.4 0 msec 0 msec 0 msec
3 34.0.0.3 0 msec 32 msec 12 msec
4 172.16.1.1 32 msec * 64 msec
Pour résoudre ce problème, Il faut ajouter une entrée dans la Route-Map, de manière à ce que le Next-Hop du traffic ne soit pas changé.
Commençons par une ACL :
R3(config)#ip access-list extended LanToLan
R3(config-ext-nacl)#permit ip 172.16.0.0 0.0.255.255 172.16.0.0 0.0.255.255
Puis ajoutons l’entrée dans la Route-Map :
R3(config)#route-map ChoixFAI permit 2
R3(config-route-map)#match ip address LanToLan
Pour atteindre le réseau des serveurs ,les clients passent par R3-- R2:
R1#traceroute 172.16.20.2 source 172.16.10.1
Type escape sequence to abort.
Tracing the route to 172.16.20.2
1 172.16.1.3 12 msec 16 msec 8 msec
2 172.16.2.2 36 msec * 4 msec
Pour atteindre le réseau des les clients serveurs , les serveurs passent par R3--R1:
R2#traceroute 172.16.10.1 source 172.16.20.2
Type escape sequence to abort.
Tracing the route to 172.16.10.1
1 172.16.2.3 4 msec 64 msec 0 msec
2 172.16.1.1 0 msec * 16 msec
R2#
|
Dans l'exemple précédent le traffic défini dans les ACL des clients et serveurs est le traffic IP, on peut très bien se limiter à d'autres types de traffic comme HTTPS ,Telnet ...(ou tout autre type de trafic).
Par exemple, on veut que le traffic HTTPS initiés à partir des clients vers internet passe par le FAI 1
R3(config)#ip access-list extended CLIENTS_HTTPS
R3(config-ext-nacl)#permit tcp 172.16.10.0 0.0.0.255 any eq 443
R3(config)#route-map ChoixFAI permit 5
R3(config-route-map)#match ip address CLIENTS_HTTPS
R3(config-route-map)#set ip next-hop 34.0.0.4
On vérifie en faisant un Telnet sur 172.17.10.9 l'adresse loopback de R9, en spécifiant le port 443:
R1#telnet 172.17.10.9 443
Trying 172.17.10.9, 443 ...
% Connection refused by remote host
|
Le message “Connection refused by remote host “ indique que la requête HTTPS est arrivée.
Pour vérifier que le message passe bien par le FAI 1, on désactive l'interface s0/2 de R3 et qui est connectée à FAI 1:
R3(config)#int s0/2
R3(config-if)#shutdown
R1#telnet 172.17.10.9 443
Trying 172.17.10.9, 443 ...
% Connection timed out; remote host not responding
IP SLA (Service Level Agreement)
Pour comprendre le concept IP SLA (Service Level Agreement). Voyons les limites de PBR (Policy-Based Policy).
Si FAI 1 tombe en panne, est ce que le routeur R3 va basculer sur FAI 2 Vérifions :
R2#ping 172.17.10.9 source 172.16.20.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.17.10.9, timeout is 2 seconds:
Packet sent with a source address of 172.16.20.2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/37/68 ms R2#
|
Maintenant nous allons désactiver l'interface s0/2 de R3 connectée à FAI 1
R3(config)#int s0/2
R3(config-if)#shutdown
R3(config-if)#
*Mar 1 00:11:23.027: %LINK-5-CHANGED: Interface Serial0/2, changed state to administratively down
*Mar 1 00:11:24.027: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/2, changed state to down
R3(config-if)#
|
Le ping ne passe pas:
R2#ping 172.17.10.9 source 172.16.20.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.17.10.9, timeout is 2 seconds: Packet sent with a source address of 172.16.20.2
U.U.U
Success rate is 0 percent (0/5) R2#
Les serveurs ne peuvent pas joindre internet même si un deuxième chemin existe via FAI 2. Même problème avec les clients et FAI 2.
Donc il est nécessaire d'utiliser le deuxième FAI si le premier tombe en panne. IP SLA vient en secours avec la technique de test proactive.
Le principe est de tester la disponibilité du FAI avec des requêtes Ping périodique, et basculer sur le deuxième FAI si le premier ne répond plus.
Focalisons-nous sur l'exemple des serveurs. Si le FAI 1 ne répond plus, ils utiliseront le FAI 2.
La première chose à faire est de créer une opération SLA en lui assignant un nombre entier ,on définit les paramètres pour cette opération : ICMP Echo , l'adresse de destination (FAI 1) à tester, la durée de timeout ,la fréquence (fréquence d'envoi de requête ICMP) et enfin la dernière commande dit au routeur : "le test démarre tout de suite, et ne s’arrête jamais"
R3(config)#ip sla monitor 1
R3(config-sla-monitor)#type echo protocol ip icmp Echo 34.0.0.4
R3(config-sla-monitor-echo)#timeout 1000
R3(config-sla-monitor-echo)#frequency 3
R3(config)#ip sla monitor schedule 1 start-time now life forever
Ensuite, un objet de tracking va analyser le statut de l’opération SLA.
R3(config)#track 1 rtr 1 reachability
Voici la configuration actuelle de PBR concernant les serveurs:
route-map ChoixFAI permit 20 match ip address SERVERS set ip next-hop 34.0.0.4
Et voici comment la modifier :
R3(config)#route-map ChoixFAI permit 20
R3(config-route-map)#no set ip next-hop 34.0.0.4
R3(config-route-map)#set ip next-hop verify-availability 34.0.0.4 10 track 1
R3(config-route-map)#set ip next-hop 35.0.0.5
Lors de la configuration du Next Hop dans la route-map ,nous spécifions l’objet de tracking. Le numéro 10 après l’IP du Next Hop, correspond à son ID.
Dans l’ordre, le routeur teste la disponibilité du Next Hop ayant le plus haut ID,dans ce cas 34.0.0.4 (FAI 1) est prioritaire. Sinon, il prend le Next Hop par défaut (celui qui n’a pas d’ID),dans ce cas 35.0.0.5 (FAI 2).
Faisons un test:
R2#traceroute 172.17.10.9 source 172.16.20.2
Type escape sequence to abort.
Tracing the route to 172.17.10.9
1 172.16.2.3 4 msec 28 msec 0 msec
2 34.0.0.4 0 msec 0 msec 0 msec
46.0.0.6 32 msec 0 msec 0 msec
67.0.0.7 64 msec 0 msec 0 msec
5 172.17.2.9 64 msec * 156 msec
R2#
|
Désactivons l'interface s0/2 de R3 connectée à FAI 1:
R3(config)#int s0/2
R3(config-if)#shutdown
R3(config-if)#
*Mar 1 00:20:45.995: %LINK-5-CHANGED: Interface Serial0/2, changed state to administratively down
*Mar 1 00:20:46.995: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/2, changed state to down
R3(config-if)#
*Mar 1 00:20:48.335: %TRACKING-5-STATE: 1 rtr 1 reachability Up->Down R3(config-if)#
|
Le ping passe:
R2#ping 172.17.10.9 source 172.16.20.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.17.10.9, timeout is 2 seconds: Packet sent with a source address of 172.16.20.2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/68/76 ms
Aprés que FAI 1 est tombé en panne, les serveurs passent par FAI 2 (35.0.0.5):
R2#tracer 172.17.10.9 source 172.16.20.2
Type escape sequence to abort.
Tracing the route to 172.17.10.9
1 172.16.2.3 24 msec 48 msec 36 msec
2 35.0.0.5 0 msec 4 msec 44 msec
3 56.0.0.6 20 msec 44 msec 72 msec
4 67.0.0.7 100 msec 36 msec 36 msec
5 172.17.2.9 64 msec * 112 msec
Objectif 2:
Influencer l'acheminement des paquets à l'intérieur du réseau 2.
Les Offset-Lits
Cette notion permet de rajouter un Offset à la métrique d’une route. Offset signifie décalage.
Le but est donc de modifier la métrique d’une route.
Dans le réseau 2, R7 a deux chemins pour joindre 172.17.10.0 /24. Soit R7-- R9 avec un saut (métrique 1) Soit R7-- R8 -- R9 avec 2 sauts -métrique 2 Le meilleur chemin pour rip est R7--R9.
Mais imaginons que le lien R7 -> R9 soit un lien serial, alors que R7 --R8 et R8 -- R9 sont des liens fastethernet. Le meilleur chemin rip est le chemin le plus lent.
R7#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route
Gateway of last resort is 0.0.0.0 to network 0.0.0.0 172.17.0.0/24 is subnetted, 4 subnets
R 172.17.10.0 [120/1] via 172.17.2.9, 00:00:00, Serial0/2
C 172.17.1.0 is directly connected, Serial0/1
R 172.17.3.0 [120/1] via 172.17.2.9, 00:00:00, Serial0/2
[120/1] via 172.17.1.8, 00:00:24, Serial0/1
C 172.17.2.0 is directly connected, Serial0/2 67.0.0.0/24 is subnetted, 1 subnets
C 67.0.0.0 is directly connected, Serial0/0 S* 0.0.0.0/0 is directly connected, Serial0/0
Il faut donc augmenter la métrique de la route vers 172.17.10.0 /24 ainsi elle va être supérieure à 2 :
Si on configure un offset (décalage de 3), la métrique via R9 sera de 4 ainsi R7 préférera passer par R8 pour joindre 172.17.10.0/24.
On définit le réseau de destination avec une ACL ,172.17.10.0/24 dans notre cas, ensuite on rentre dans le mode de configuration de router rip et on utilise la commande offset-list pour augmenter la métrique de la route vers 172.17.10.0 reçue en inbound (IN) sur l'interface s0/2 connectée à R9:
offset-list : mot clé pour mettre en place une Offset List en mode « router »
1 : numéro de l’ACL indiquant quelles routes il faut leur appliquer l'offset-list
In : permet de choisir si l’Offset est appliqué sur les routes reçus ou annoncées
3 : Offset à appliquer
Serial 0/2 : interface sur laquelle on applique l’Offset List
R7(config)#access-list 1 permit 172.17.10.0 0.0.0.255
R7(config)#router rip
R7(config-router)#offset-list 1 in 3 serial 0/2
Maintenant R7 a choisi R8 comme Next Hop pour 172.17.10.0 /24 parceque la métrique 2 du chemin via R8 est meilleure que la métrique 4 via R9:
R7#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route
Gateway of last resort is 0.0.0.0 to network 0.0.0.0 172.17.0.0/24 is subnetted, 4 subnets
R 172.17.10.0 [120/2] via 172.17.1.8, 00:00:10, Serial0/1
C 172.17.1.0 is directly connected, Serial0/1
R 172.17.3.0 [120/1] via 172.17.2.9, 00:00:11, Serial0/2
[120/1] via 172.17.1.8, 00:00:10, Serial0/1
C 172.17.2.0 is directly connected, Serial0/2 67.0.0.0/24 is subnetted, 1 subnets
C 67.0.0.0 is directly connected, Serial0/0 S* 0.0.0.0/0 is directly connected, Serial0/0
Si on fait un shutdown sur l'interface s0/1 de R7 connectée à R8:
R7(config)#int s0/1
R7(config-if)#shu
*Mar 1 01:02:49.823: %SYS-5-CONFIG_I: Configured from console by console
*Mar 1 01:02:50.159: %LINK-5-CHANGED: Interface Serial0/1, changed state to administratively down
*Mar 1 01:02:51.159: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1, changed state to down
On voit bien que la métrique est 4 (3+1) via R9 après la configuration d'un offset de 3:
R7#show ip route 172.17.10.0 Routing entry for 172.17.10.0/24
Known via "rip", distance 120, metric 4 Redistributing via rip
Last update from 172.17.2.9 on Serial0/2, 00:00:07 ago Routing Descriptor Blocks:
* 172.17.2.9, from 172.17.2.9, 00:00:07 ago, via Serial0/2 Route metric is 4, traffic share count is 1
|
Notez également que EIGRP supporte la notion d'offset-list:
|
Pour ajouter un commentaire ici, vous devez être inscrit. Si vous êtes déjà inscrit, connectez-vous. Dans le cas contraire, inscrivez-vous puis connectez-vous.
La communauté est un hub pour vous connecter avec vos pairs et les spécialistes Cisco, pour demander de l'aide, partager votre expertise, développer votre réseau et évoluer professionnellement.
Vous êtes un nouvel arrivant ? Cliquez ici pour en savoir plus.
Nous voulons que votre navigation soit la meilleure, donc vous trouverez des liens pour vous aider à être rapidement familiarisé avec la Communauté Cisco :