Vous êtes ici : Accueil Routage Load Balancing IGRP

Load Balancing IGRP

Ce que l'on apelle le 'Load Balancing' est la capacité pour un routeur de supporter plusieurs chemins à coût égaux vers une destination . IGRP, comme E-IGRP d'ailleurs, supporte jusqu'à quatre chemins égaux. Aussi, ces protocoles de routage permettent de désigner l'équivalence entre des chemins inégaux à certaines conditions. C'est que l'on apelle l'Unequal-Cost Load Balancing ...

1. Load balancing en général

1.1. La sélection des routes


Un routeur inscrira seulement la meilleure route vers une destination dans sa table de routage. Quels sont les critères qui vont fonder sa décision ?


D’abord, il se basera sur la valeur de la distance administrative, c’est-à-dire la confiance accordée à un protocole de routage par rapport à un autre. Plus cette valeur est faible, meilleure sera la route. Par défaut, sur les routeurs Cisco :


Connected


0

Static route


1

E-IGRP


90

IGRP


100

OSPF


110

RIP


120


Si deux ou plusieurs routes ont la même distance administrative, le routeur fera son choix d’inscription dans la table de routage en fonction de la métrique. Egalement, plus cette valeur sera faible, meilleure sera la route. La composition de cette valeur dépend du protocole de routage.


Au cas où deux ou plusieurs routes auraient la même distance administrative et la même métrique, elles seront inscrites dans la table de routage[1] . La capacité de supporter plusieurs chemins à coût égaux vers une destination est appelée Load balancing.


1.2. Illustration




Chaque liaison sérielle est configurée avec la même bande passante administrative (256 Kb/s) [2].

Le routeur de référence est Router_1 et le réseau de destination est 150.150.2.0.


Table de routage


Voici la table de routage de Router_1 dans la topologie présentée ci-dessus.


Router_1#show ip route
...
Gateway of last resort is not set
150.150.0.0/24 is subnetted, 6 subnets
C 150.150.1.0 is directly connected, Serial0
I 150.150.2.0 [100/43062] via 150.150.1.2, 00:00:06, Serial0
              [100/43062] via 150.150.3.1, 00:00:06, Serial1
C 150.150.3.0 is directly connected, Serial1
C 150.150.10.0 is directly connected, FastEthernet0
I 150.150.20.0 [100/41072] via 150.150.1.2, 00:00:06, Serial0
I 150.150.30.0 [100/41072] via 150.150.3.1, 00:00:06, Serial1


On constate que le réseau 150.150.2.0 est joignable par deux routes éqivalentes, l’une passant par S0 et l’autre passant par S1.


Débogage des paquets ICMP

 

Router_1#ping 150.150.2.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 150.150.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/41/60 ms

 

01:09:35: IP: s=150.150.3.2 (local), d=150.150.2.1 (Serial1), len 100, sending
01:09:35: ICMP type=8, code=0
01:09:35: IP: s=150.150.2.1 (Serial0), d=150.150.3.2, len 100, rcvd 4
01:09:35: ICMP type=0, code=0
01:09:35: IP: s=150.150.1.1 (local), d=150.150.2.1 (Serial0), len 100, sending
01:09:35: ICMP type=8, code=0
01:09:35: IP: s=150.150.2.1 (Serial0), d=150.150.1.1 (Serial0), len 100, rcvd 3
01:09:35: ICMP type=0, code=0
01:09:35: IP: s=150.150.3.2 (local), d=150.150.2.1 (Serial1), len 100, sending
01:09:35: ICMP type=8, code=0
01:09:35: IP: s=150.150.2.1 (Serial1), d=150.150.3.2 (Serial1), len 100, rcvd 3
01:09:35: ICMP type=0, code=0
01:09:35: IP: s=150.150.1.1 (local), d=150.150.2.1 (Serial0), len 100, sending
01:09:35: ICMP type=8, code=0
01:09:35: IP: s=150.150.2.1 (Serial0), d=150.150.1.1 (Serial0), len 100, rcvd 3
01:09:35: ICMP type=0, code=0
01:09:35: IP: s=150.150.3.2 (local), d=150.150.2.1 (Serial1), len 100, sending
01:09:35: ICMP type=8, code=0
01:09:35: IP: s=150.150.2.1 (Serial0), d=150.150.3.2, len 100, rcvd 4
01:09:35: ICMP type=0, code=0

Grâce au débogage ICMP [3], on peut examiner les paquets ICMP qui sont envoyés d’une interface de sortie et puis de l’autre de manière alternative.


2. Unequal-cost load balancing en IGRP


IGRP peut utiliser un ensemble asymétrique de chemins pour une destination donnée [4]. Cette fonctionnalité est connue sous le nom de Unequal-cost load balancing, en français, répartition de charge à coût inégaux. L’Unequal-cost load balancing permet au trafic d’être distribué (au maximum quatre) par des chemins inégaux en coût (métrique différente) pour améliorer la capacité des interfaces et la fiabilité.


La variance d’un chemin alternatif est la différence en qualité pour protocole de routage entre une route primaire (la meilleure selon la métrique) et des chemins alternatifs.

Concrètement, la variance indique au routeur d’inclure dans sa table de routage des routes avec une métrique « n » fois le minimum de métrique d’une route pour une destination.


Cette variance va déterminer la faisabilité (« feasibility ») d’une route potentielle.


Toutefois, il faut prendre garde aux conditions de faisabilité !

Une route alternative est « faisable » si :

  • le prochain routeur dans le chemin alternatif est plus proche (une métrique plus faible) que le router courant

et si :

  • la métrique pour le chemin alternatif entier est dans la variance
    La métrique du chemin alternif / n doit être inférieure ou égale à la métrique du chemin primaire, où n est la valeur de la variance.


Seulement les chemins « faisables » peuvent être utilisés pour la répartition de charge et sont donc inclus dans la table de routage.


Par défaut, la variance a une valeur de 1. Cette valeur peut être comprise entre 1 et 128.


(config-router)#variance n


En cas de unequal-cost load balancing, le trafic sera distribué proportionnellement à la valeur des métriques.

Illustration

Le routeur de référence sera Router_1 et le réseau destination sera 150.150.20.0.


Table de routage


Router_1#show ip route
...
Gateway of last resort is not set
150.150.0.0/24 is subnetted, 6 subnets
C 150.150.1.0 is directly connected, Serial0
I 150.150.2.0 [100/43062] via 150.150.1.2, 00:00:04, Serial0
C 150.150.3.0 is directly connected, Serial1
C 150.150.10.0 is directly connected, FastEthernet0
I 150.150.20.0 [100/41072] via 150.150.1.2, 00:00:04, Serial0
I 150.150.30.0 [100/43072] via 150.150.1.2, 00:00:04, Serial0

On constate que, à partir de Router_1, il y a un seul chemin inscrit vers le réseau de destination 150.150.20.0. Il passe par l’interface de sortie S0 et le prochain saut est à 150.150.1.2. Sa métrique IGRP est d’une valeur de 41072.


Inclusion du chemin « feasible ».


Comme vu ci-dessus, pour qu’il y ait de l’Unequal-cost load balancing à partir de Router_1 vers le réseau 150.150.20.0, il faut que la route alternative soit « feasible » :


1. La métrique de Router_3 vers le réseau de destination 150.150.20.0, doit être meilleure que la métrique du meilleur chemin vers le réseau de destination.


Router_3#sh ip route
...
Gateway of last resort is not set
150.150.0.0/24 is subnetted, 6 subnets
I 150.150.1.0 [100/43062] via 150.150.2.1, 00:00:05, Serial1
C 150.150.2.0 is directly connected, Serial1
C 150.150.3.0 is directly connected, Serial0
I 150.150.10.0 [100/43072] via 150.150.2.1, 00:00:05, Serial1
I 150.150.20.0 [100/28051] via 150.150.2.1, 00:00:05, Serial1
C 150.150.30.0 is directly connected, FastEthernet0

Où la métrique 28051 (du Router_3) est meilleure que 41072 (du Router_1) vers le réseau de destination 150.150.20.0.


2. Sur le routeur de distribution, la métrique du chemin alternatif doit être dans la variance :

Router_1(config)#router igrp 666
Router_1(config-router)#variance 50

Nous mettons une variance élevée afin de connaître la métrique du chemin alternatif.


Nouvelle table de routage avec la variance.

Router_1#sh ip route
...
Gateway of last resort is not set
150.150.0.0/24 is subnetted, 6 subnets
C 150.150.1.0 is directly connected, Serial0
I 150.150.2.0 [100/160250] via 150.150.3.1, 00:00:54, Serial1
              [100/43062] via 150.150.1.2, 00:00:05, Serial0
C 150.150.3.0 is directly connected, Serial1
C 150.150.10.0 is directly connected, FastEthernet0
I 150.150.20.0 [100/160260] via 150.150.3.1, 00:00:54, Serial1
               [100/41072] via 150.150.1.2, 00:00:05, Serial0
I 150.150.30.0 [100/158260] via 150.150.3.1, 00:00:55, Serial1
               [100/43072] via 150.150.1.2, 00:00:06, Serial0


La métrique IGRP du chemin alternatif a une valeur de 160260 autrement dit quatre fois plus élevée que celle du chemin primaire. La variance aurait pu être d’une valeur de quatre.


Débogage ICMP avec variance définie

 

Router_1#ping
Protocol [ip]:
Target IP address: 150.150.20.1
Repeat count [5]: 10
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 150.150.20.1, timeout is 2 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 28/34/60 ms
Router_1#
01:39:50: IP: s=150.150.1.1 (local), d=150.150.20.1 (Serial0), len 100, sending
01:39:50: ICMP type=8, code=0
01:39:50: IP: s=150.150.20.1 (Serial0), d=150.150.1.1 (Serial0), len 100, rcvd 3
01:39:50: ICMP type=0, code=0
01:39:50: IP: s=150.150.1.1 (local), d=150.150.20.1 (Serial0), len 100, sending
01:39:50: ICMP type=8, code=0
01:39:50: IP: s=150.150.20.1 (Serial0), d=150.150.1.1 (Serial0), len 100, rcvd 3
01:39:50: ICMP type=0, code=0
01:39:50: IP: s=150.150.1.1 (local), d=150.150.20.1 (Serial0), len 100, sending
01:39:50: ICMP type=8, code=0
01:39:50: IP: s=150.150.20.1 (Serial0), d=150.150.1.1 (Serial0), len 100, rcvd 3
01:39:50: ICMP type=0, code=0
01:39:50: IP: s=150.150.1.1 (local), d=150.150.20.1 (Serial0), len 100, sending
01:39:50: ICMP type=8, code=0
01:39:50: IP: s=150.150.20.1 (Serial0), d=150.150.1.1 (Serial0), len 100, rcvd 3
01:39:50: ICMP type=0, code=0
01:39:50: IP: s=150.150.3.2 (local), d=150.150.20.1 (Serial1), len 100, sending
01:39:50: ICMP type=8, code=0
01:39:50: IP: s=150.150.20.1 (Serial1), d=150.150.3.2 (Serial1), len 100, rcvd 3
01:39:50: ICMP type=0, code=0
01:39:50: IP: s=150.150.1.1 (local), d=150.150.20.1 (Serial0), len 100, sending
01:39:50: ICMP type=8, code=0
01:39:50: IP: s=150.150.20.1 (Serial0), d=150.150.1.1 (Serial0), len 100, rcvd 3
01:39:50: ICMP type=0, code=0
01:39:50: IP: s=150.150.1.1 (local), d=150.150.20.1 (Serial0), len 100, sending
01:39:50: ICMP type=8, code=0
01:39:50: IP: s=150.150.20.1 (Serial0), d=150.150.1.1 (Serial0), len 100, rcvd 3
01:39:50: ICMP type=0, code=0
01:39:50: IP: s=150.150.1.1 (local), d=150.150.20.1 (Serial0), len 100, sending
01:39:50: ICMP type=8, code=0
01:39:50: IP: s=150.150.20.1 (Serial0), d=150.150.1.1 (Serial0), len 100, rcvd 3
01:39:50: ICMP type=0, code=0
01:39:50: IP: s=150.150.1.1 (local), d=150.150.20.1 (Serial0), len 100, sending
01:39:50: ICMP type=8, code=0
01:39:50: IP: s=150.150.20.1 (Serial0), d=150.150.1.1 (Serial0), len 100, rcvd 3
01:39:50: ICMP type=0, code=0
01:39:50: IP: s=150.150.3.2 (local), d=150.150.20.1 (Serial1), len 100, sending
01:39:50: ICMP type=8, code=0
01:39:50: IP: s=150.150.20.1 (Serial0), d=150.150.3.2, len 100, rcvd 4
01:39:50: ICMP type=0, code=0
Router_1#

Par défaut, la répartition des paquets sera proportionnelle à la valeur des métriques.

Après quatre paquets envoyés sur S0, le cinquième est envoyé sur S1, et ainsi de suite.


3. Annexe


3.1. Configuration de la bande passante


En mode de configuration des interfaces, la commande « bandwidth » donnera une bande passante administrative qui sera interprétée par des protocoles supérieures, particulièrement pour notre cas par IGRP. En effet, par défaut, IGRP prendra la bande passante en considération pour le calcul des métriques. En aucun cas, cette commande limitera le débit d’une liaison. Elle s’exprime en Kb/s.


(config-if)#bandwidth bandwidth


Par exemple, définir une bande passante de 1Mb/s :


(config-if)#bandwidth 1000


3.2. Configuration du débogage ICMP


La commande « debug ip packet » va déboguer tous les paquets qui passent par le routeur. Pour empêcher la pollution de logs inopportuns, on conseille la création d’une liste d’accès (ACL) qui autorisera uniquement les paquets ICMP venant ou partant de n’importe quelle adresse IP, étant sous-entendu que tout autre paquet sera interdit. Cette condition sera appliquée au débogage détaillé des paquets.


Création d’une liste de filtrage (ACL) :


Router_1(config)#access-list 101 permit icmp any any


Application du débogage :


Router_1#debug ip packet 101 detail


1 Par défaut, tous les protocoles de routage supportent quatre routes en load balancing sauf BGP qui en supporte une seule. Le maximum, selon les capacités des protocoles de routage, est de six. On peut changer ce maximum par la commande (config-router)#maximum-paths n. Notons qu’IGRP en supporte quatre au plus.

2 Voir Annexe.

3 Voir Annexe.

4 E-IGRP supporte également cette fonctionnalité. Ce n’est pas le cas des autres protocoles de routage.

Mots-clés associés :