Brevet FR2893799A1 — publié le 20070525

L'invention concerne un procédé pour sélectionner dans un routeur une route parmi au moins deux routes relatives à une même adresse réseau de destination et annoncées par des routeurs pairs. Le réseau Internet est scindé en une pluralité de "sous-réseaux", chacun comportant un ensemble de routeurs et fonctionnant sous une administration technique propre, appelés "système autonome". Les routeurs ont pour rôle d'assurer l'acheminement des paquets à travers le réseau et partagent des informations de routage, stockées dans des tables de routage. Un protocole tel que BGP (Border Gateway Protocol), défini dans la RFC 1771 de l'IETF (pour Internet Engeering Task Force), permet de garantir un routage sans boucle entre systèmes autonomes. Un protocole de routage de type BGP permet en effet d'avoir des sessions entre des routeurs d'un réseau de manière à assurer la cohérence des tables de routage sur tous les équipements à l'intérieur d'un domaine administratif donné et sur l'ensemble des domaines administratifs du réseau Internet. Deux versions de BGP existent: si les deux routeurs appartiennent au même système autonome, il s'agit de IBGP (Internai BGP); si les deux routeurs appartiennent à des systèmes autonomes différents, il s'agit de EBGP (External BGP). Deux routeurs, pour se communiquer leurs tables de routage, établissent une session BGP. Un routeur avec lequel un autre routeur a établi une session BGP est appelé un routeur pair BGP. Pour chaque session BGP avec un routeur pair, un routeur reçoit les informations de routage annoncées par ce pair et les stocke dans une table AdjRIBIn. En fonction de ces informations, notamment en cas de retrait, d'ajout ou de modification d'une route, ou encore de façon périodique, le routeur sélectionne une route préférée parmi plusieurs routes indiquant la même adresse réseau de destination à l'aide d'un algorithme de sélection dit de "tie-breaking" en anglais. Une fois la route préférée sélectionnée, il met à jour une table locale de gestion des routes (L0c RIB), met à jour les informations d'une table de routage (FIB) utilisée pour le routage des paquets dans son plan de transport, définit l'ensemble des informations de routage à annoncer à chacun des routeurs pairs BGP, stocke pour chaque routeur pair BGP les informations à annoncer dans une table (Adj RIBOut) et les transmet à chaque routeur pair BGP. Chaque évènement survenant sur le réseau, par exemple la fermeture d'une session BGP ou le redémarrage d'un équipement, entraîne des mises à jour en cascade des différents routeurs du réseau. En effet, chaque routeur BGP reçoit des mises à jour de route, sélectionne la route préférée pour chaque adresse réseau de destination, met à jour la table de routage de son plan de transport et transmet les informations de routage à chaque routeur pair. En vue de la sécurisation du réseau, des routeurs redondants ont été introduits. Io Un routeur redondant, dit "de secours", possède avec le routeur, dit "nominal", qu'il sécurise un grand nombre de caractéristiques ou attributs communs. Un algorithme de sélection de route est proposé dans le document de travail de l'IETF référencé draft-ietf-idr-bgp4-26. Cet algorithme comporte différentes étapes de sélection en fonction de ces caractéristiques et de paramètres intrinsèques au routeur 15 ayant annoncé la route. Pour des routes annoncées par des routeurs redondants, seule la dernière étape de l'algorithme basée sur la sélection de la route annoncée par le routeur dont l'adresse IP est la plus petite permet d'effectuer la sélection finale. Quand les sessions BGP avec le routeur nominal dont l'adresse IP est la plus petite et donc par lequel passe les routes sélectionnées par ses routeurs BGP pairs, sont 20 fermées, par exemple suite à un évènement du réseau, l'ensemble de ses routeurs BGP pairs exécute l'algorithme de sélection de route et les routes sélectionnées deviennent celles annoncées par le routeur de secours. Les routes sélectionnées par chaque routeur BGP pair sont transmises à son plan de transport et à ses propres routeurs BGP pairs. Lorsque les sessions BGP du routeur nominal sont à nouveau ouvertes, l'ensemble de 25 ses routeurs BGP pairs va à nouveau exécuter l'algorithme de sélection de route et les routes sélectionnées deviennent celles annoncées par le routeur nominal. Un tel changement implique un transfert des nouvelles routes sélectionnées au plan de transport de chaque routeur et une diffusion de ces informations à l'ensemble des pairs BGP de ce routeur. Il en résulte un accroissement de la charge du réseau en raison des 30 échanges de messages entre routeurs, et également un accroissement de la charge des routeurs en raison du traitement de ces messages, qui se traduit par un temps de convergence, c'est-à-dire le temps correspondant au temps mis par le routeur pour mettre à jour ses tables de routage lors d'une modification de topologie, élevé. Prenons l'exemple des routeurs de type réflecteurs de routes aussi appelés "RR" (pour "Route Reflector" en anglais). Ces équipements centralisent les informations de routage et gèrent de façon centralisée des sessions BGP avec chacun des routeurs BGP du réseau. Du fait de cette centralisation, les tables de routage qu'ils diffusent sont très volumineuses. En cas de redémarrage du RR nominal, le temps de convergence de celui-ci est environ trois fois plus élevé que celui du RR de secours. Le but de l'invention est donc de limiter les modifications des tables de routage de l'ensemble des routeurs BGP pairs et de réduire le temps de convergence des routeurs en cas de réinitialisation de session. A cet effet, l'invention concerne un procédé pour sélectionner dans un routeur une route parmi au moins deux routes, ces routes étant relatives à une même adresse réseau de destination et ayant été annoncées par deux autres routeurs au routeur. Il comprend: - une étape d'affectation au cours de laquelle, sur réception de cette route, le premier routeur affecte un paramètre local de discrimination des routes annoncées en fonction des routeurs ayant annoncé ces routes; - une étape de sélection de l'une de ces routes en fonction du paramètre affecté. L'invention consiste donc à associer dans le routeur, lors de la réception d'une route annoncée par un routeur pair, un paramètre de discrimination ayant une signification locale au routeur de réception. Ce paramètre permet ensuite de discriminer deux routes, relatives à une même adresse réseau de destination, émises par deux routeurs redondants et d'éviter le changement dans la sélection des routes lors du retour en service du routeur nominal. Ainsi, une utilisation indifférenciée des routeurs redondants devient possible. Dans un premier mode de réalisation, le paramètre affecté est représentatif de l'ordre chronologique de réception des routes par le routeur.30 L'invention permet ainsi de prendre en compte l'ordre chronologique de réception des routes annoncées en tant que paramètre local de discrimination. Ce paramètre n'a un sens que localement au niveau du routeur de réception des routes. Dans un deuxième mode de réalisation, la route sélectionnée correspond à celle dont la réception est la plus ancienne. Ainsi, lorsque le choix doit se réaliser entre deux routes, respectivement annoncées par deux routeurs pairs distincts, le procédé va permettre de privilégier celle annoncée de façon antérieure. Dans l'exemple cité ci-dessus, ceci évite de basculer inutilement sur les routes annoncées par le routeur qui avait présenté un disfonctionnement lorsqu'il n'y a plus de disfonctionnement. Avantageusement, l'étape de sélection en fonction du paramètre affecté est exécutée avant une deuxième étape de sélection en fonction de l'adresse réseau du routeur annonceur de la route. Ainsi, l'étape de sélection basée sur le paramètre de discrimination ayant une signification locale au routeur de réception s'effectue avant l'étape de sélection en fonction de l'adresse réseau du routeur ayant annoncé la route et permet d'éviter les mises à jour des tables de routage dans le plan de transport et la diffusion des routes sélectionnées vers les routeurs BGP pairs. L'invention concerne également un routeur destiné à acheminer des paquets de données le traversant, comprenant : - des moyens de gestion des routes, agencés pour recevoir des routes annoncées par au moins un routeur pair; - des moyens de sélection d'une route, agencés pour sélectionner une route parmi un ensemble de routes annoncées, relatives à une même adresse réseau de destination. caractérisé par le fait qu'il comprend en outre - des moyens pour affecter à une route annoncée un paramètre local de discrimination des routes annoncées, ces moyens de gestion étant agencés pour associer le paramètre à la route; et par le fait que les moyens de sélection sont aptes à sélectionner une route en fonction du paramètre. L'invention sera mieux comprise à l'aide de la description suivante d'un mode de réalisation particulier du procédé de sélection de routes et du routeur de l'invention, en référence aux dessins annexés sur lesquels : - la figure 1 représente un réseau de routeurs ; - la figure 2 représente les étapes du procédé selon le mode de réalisation particulier décrit; - la figure 3 représente le routeur selon le mode de réalisation particulier décrit. La figure 1 illustre un réseau 10 comprenant une pluralité de routeurs ici référencés 1l, 12, 13, 20 et 21. Le routeur 11 a une première session BGP 201 établie avec le routeur 20 et une seconde session BGP 211 établie avec le routeur 21. Les routeurs 20 et 21 sont redondants ; par conséquent, les mêmes informations de routage et/ou de connectivité sont transmises entre le routeur 20 et le routeur 11 et entre le routeur 21 et le routeur 11. De même, le routeur 12 a une session BGP 202 établie avec le routeur 20 et une session BGP 212 établie avec le routeur 21. Le routeur 13 a une session BGP 203 établie avec le routeur 20 et une session BGP 213 établie avec le routeur 21. La description suivante concerne les routeurs 11 et 20 mais est ici applicable à l'ensemble des routeurs 12, 13 et 21. Pour un routeur, tout routeur avec lequel il a une session BGP établie est dénommé routeur BGP pair. Une fois la session BGP 201 établie entre les routeurs 20 et 11, chaque routeur 20 (respectivement 11) reçoit de son routeur BGP pair 11 (respectivement 20) des informations de routage dans un message BGP-UPDATE. Celui-ci contient différentes informations: - liste d'adresses réseau de destination mises hors service; - liste d'adresses réseau de destination connues du routeur BGP pair; - ensemble d'attributs communs à la liste d'adresses réseau de destination connues du routeur BGP pair. Une route est définie par une adresse réseau de destination et un ensemble de caractéristiques propres à la route. Ces caractéristiques sont connues sous le nom d'attributs de la route et définies dans le document de travail de l'IETF référencé draftietf-idr-bgp4-26. A la réception du message BGP-UPDATE, le routeur 20 (respectivement 11) met à jour une table relative à cette session BGP, appelée communément Adj-RIB-In, en fonction des informations contenues dans le message BGP-UPDATE. En particulier: il ajoute les nouvelles routes annoncées dans le message BGP-UPDATE, -dans le cas où le message contient une route déjà enregistrée dans la table Adj-RIB-In, il met à jour les attributs de cette route ou - il supprime de la table Adj-RIB-In les routes mises hors service. De façon optionnelle, une information complémentaire telle que l'adresse IP du routeur ayant émis la route est stockée dans la table, en y étant associée à la route. Selon l'invention, le routeur 20 (respectivement 11) associe à une nouvelle route annoncée un paramètre ayant une signification locale au routeur de réception. Ce paramètre est créé localement par le routeur et n'a une signification que pour ce routeur. Ce paramètre local est un paramètre de discrimination des routes en fonction du routeur ayant annoncé cette route. Dans l'exemple particulier de réalisation, il s'agit d'un paramètre temporel représentatif de l'ordre chronologique de réception des routes par le routeur correspondant à la valeur à l'instant de réception de la route d'une horloge de référence du réseau diffusée à l'ensemble des routeurs. En variante, il s'agit de la valeur d'une horloge interne au routeur. Dans un deuxième mode de réalisation, le paramètre de discrimination est généré par un compteur, géré localement par le routeur, s'incrémentant à chaque demande de paramètre liée à la réception d'une nouvelle route annoncée. Le routeur met également à jour les informations de la table Adj-RIB-In en fonction d'événements autres que la réception du message BGP-UPDATE survenus lors de la session BGP. Par exemple, lors d'une coupure de la session BGP suite à une coupure au niveau transport, par exemple une coupure TCP, le routeur supprime l'ensemble des informations de routage annoncées par le routeur BGP pair de cette session BGP contenues dans la table Adj-RIB-In. Dans l'exemple particulier de la description, si une nouvelle route est annoncée ou si une route est devenue indisponible, ces routes étant relatives à une adresse réseau de destination, le routeur exécute un procédé de sélection d'une route relative à cette adresse réseau de destination. Le but de ce procédé, qui sera décrit plus en détail ultérieurement, est de sélectionner une route relative à une adresse réseau de destination. La route sélectionnée est stockée dans une table du routeur Local-RIB (RIB pour "Routing Information Base" en anglais) puis transférée dans une table de routage, nommée FIB (pour "Forwarding Information Base" en anglais), relative au plan de transport du routeur. On notera que dans certaines implémentations, les tables Adj-RIB-In, Adj- RIB-Out et Local-RIB peuvent être communes. Le routeur annonce ensuite la route sélectionnée en fonction de critères qui ne seront pas détaillés ici vers chaque routeur BGP pair. Il garde en mémoire, pour chaque session BGP établie, l'ensemble des routes annoncées dans une table Adj-RIB-Out. On notera que sur la figure 1, seuls les routeurs 1l, 12, 13, 20 et 21 ont été représentés. Un nombre plus important de routeurs peut bien entendu faire partie du réseau. Le procédé de sélection d'une route relative à une adresse réseau de destination va maintenant être décrit en référence à la figure 2. On notera d'emblée que les étapes El, E2, E4 et E5 sont décrites plus en détail dans le document de travail de l'IETF référencé draft-ietf-idr-bgp4-26 au paragraphe 9.1.2.2 qui propose un exemple de procédé de sélection. Une étape préalable EO consiste, sur réception d'une nouvelle route, à obtenir un paramètre local de discrimination des routes et à l'associer à la route. Une première étape El, décomposée en différentes sous-étapes successives, vise à procéder à une mise à l'écart de routes en fonction des attributs de ces routes. Ces attributs sont des paramètres, associés à la route, tels que: AS_PATH, Origin et MULTIEXIT DISC. Ils sont définis au paragraphe 4.3 du document de travail, référencé ci-dessus. Ces sous-étapes ne sont pas représentées sur la figure 2 pour des raisons de clarté. A l'issue de chacune de ces sous-étapes, s'il ne reste qu'une seule route relative à une adresse réseau de destination, le procédé passe à une étape E5 d'écriture de la route sélectionnée dans la table de routage Local RIB. Sinon, le procédé poursuit l'exécution de l'étape El. Si, à l'issue de l'étape El, il reste plus d'une route relative à l'adresse réseau de destination, le procédé comporte ensuite une étape E2, également décomposée en différentes sous-étapes successives, visant à procéder à une mise à l'écart de routes en fonction de l'origine de la route (externe ou interne au système autonome ), d'un critère de coût de la route ou d'un paramètre BGP-Identifier lié à la session BGP. A l'issue de chacune de ces sous-étapes, s'il ne reste qu'une seule route relative à une adresse réseau de destination, le procédé passe à une étape E5 d'écriture de la route sélectionnée dans la table de routage Local RIB. Sinon, le procédé poursuit l'exécution de l'étape E2. Si, à l'issue de l'étape E2, il reste plus d'une route relative à l'adresse réseau de destination, une étape E3 est exécutée. Pour des routes annoncées par des équipements redondants, les étapes El et E2 n'ont pas permis de discriminer les routes annoncées par les deux équipements. Cette étape E3 vise à effectuer cette discrimination. Elle consiste à sélectionner la route en fonction du paramètre local de discrimination, associé à la route lors de l'étape E0. On rappelle que, dans l'exemple particulier de la description, le paramètre local de discrimination est représentatif de l'ordre chronologique de réception correspondant à la valeur de l'horloge de référence du réseau à l'instant de réception de la route. L'étape E3 consiste alors à sélectionner la route qui aura été annoncée la première, autrement dit celle associée à la valeur d'heure la plus faible correspondant à la date la plus ancienne. Dans la variante de réalisation selon laquelle le paramètre local de discrimination correspond à l'heure de réception indiquée par une horloge interne au routeur, l'étape E3 de discrimination consiste également à sélectionner la route associée à la valeur d'heure la plus faible. Dans le deuxième mode de réalisation, le paramètre local de discrimination correspond à la valeur d'un compteur. Le compteur est géré par le routeur de réception et n'a donc un sens que localement au niveau du routeur de réception. Ce compteur est incrémenté d'une unité à chaque demande de paramètre émise à l'étape E0. La route la plus ancienne correspond alors à celle dont la valeur de paramètre local de discrimination est la plus faible. A l'issue de cette étape, s'il ne reste qu'une seule route relative à l'adresse réseau de destination, le procédé passe à une étape E5 d'écriture de la route sélectionnée dans la table de routage Local RIB. Sinon, le procédé passe à une dernière étape E4. Cette dernière étape de l'algorithme appelée E4 sélectionne la route annoncée par le routeur dont la valeur de l'adresse IP est la plus basse. Les adresses IP des routeurs redondants n'étant pas identiques, cette dernière étape permet obligatoirement de discriminer les deux routeurs si cela n'a pas été possible lors des étapes précédentes. A l'étape E5, la route relative à l'adresse réseau de destination est écrite dans la table de routage Local RIB. Ce procédé s'exécute sur l'ensemble des routes relatives à une adresse réseau de destination extraites de l'ensemble des tables Adj-RIB-In du routeur. Ce procédé peut également être exécuté périodiquement par le routeur. On va maintenant décrire le routeur 11 en référence à la figure 3. Le routeur comprend une unité centrale de commande 33 à laquelle l'ensemble des modules du routeur est relié, cette unité étant agencée pour contrôler le fonctionnement de ces modules. Le routeur 11 comprend : - un premier module de stockage 40 des informations de routage annoncées par un routeur BGP pair (Adj RIB In); - un deuxième module de stockage 42 des informations de routage annoncées à un routeur BGP pair (Adj RIB Out); - un troisième module de stockage 41 des routes sélectionnées (Local RIB). En variante, ces modules de stockage peuvent être regroupés en un seul module de stockage. En outre, le routeur 11 comprend un module 30 de mise en oeuvre du protocole BGP, un module 31 de sélection d'une route et un module 32 d'affectation d'un paramètre. Le module 30 comprend une application permettant au routeur 11 de mettre en oeuvre le protocole BGP tel que défini par le document RFC 1771. Ce module 30 est notamment agencé pour: -recevoir les messages BGP transmis par un routeur BGP pair; - extraire des messages reçus les informations concernant les routes annoncées par les routeurs BGP pairs; l0 - obtenir du module 32 d'affectation, pour chaque nouvelle route annoncée, un paramètre local de discrimination; associer ce paramètre à la nouvelle route annoncée et, - stocker les informations relatives à la route dans le premier module de stockage 40. 15 Il est également agencé pour lire les routes sélectionnées dans le troisième module de stockage 42 et les annoncer à un routeur BGP pair. Le module 32 d'affectation comprend une application fournissant sur requête du module 30 le paramètre local de discrimination. Le module de sélection 31 est agencé pour exécuter les étapes El à E5 du 20 procédé décrit, autrement dit pour - écarter des routes sur la base de critères basés sur les attributs AS PATH, Origin, MULTI_EXIT_DISC; - écarter des routes sur la base de paramètres tels que l'origine de la route (externe ou interne au système autonome), le coût de la route ou le 25 paramètre BGP-Identifier lié à la session BGP; - écarter des routes sur la base d'un paramètre local de discrimination; - écarter des routes sur la base de l'adresse IP du routeur BGP pair et, - stocker la route sélectionnée dans le troisième module de stockage 41. Les modules 30, 31 et 32 comprennent des instructions de code de programme pour l'exécution des étapes du procédé précédemment décrit, destinées à être exécutées par le routeur 1l, lorsque le programme est exécuté sur celui-ci. Les modules logiciels peuvent être stockés dans ou transmis par un support de données. Celui-ci peut être un support matériel de stockage, par exemple un CD-ROM, une disquette magnétique ou un disque dur, ou bien un support de transmission tel qu'un signal électrique, optique ou radio, ou un réseau de télécommunication. Le mode de réalisation décrit est basé sur un protocole de routage de type BGP. Il s'applique par conséquent aux différentes versions du protocole, par exemple au protocole BGP4 qui permet l'annonce de routes IPv4 entre deux équipements distincts et à ses extensions, en particulier l'extension MP-BGP pour Multi Protocol BGP. Il s'agit d'une extension apportée au protocole de routage BGP4 pour que ce dernier puisse annoncer d'autres types d'informations et est utilisée pour annoncer des routes IPv6, des routes VPN (pour Virtual Private Network) ou d'autres informations de type dimensionnement du trafic ("traffic engineering" en anglais) L2VPN pour Layer 2 VPN en anglais. Le mode de réalisation est également applicable à d'autres protocoles de routage permettant le partage d'informations de routage, en particulier IDRP IS 10747/OSI. La présente invention s'applique à tous les réseaux utilisant de tels protocoles. La présente invention peut être mise en oeuvre dans des réseaux unifiés, c'est-à-dire fonctionnant sous une seule administration technique, ainsi que dans des réseaux comprenant plusieurs domaines administratifs. Elle peut s'appliquer dans des réseaux connectés à un réseau de type Internet, ou encore dans des réseaux utilisés à des fins privées. L'invention couvre une configuration dans laquelle tous les routeurs du réseau mettent en oeuvre un procédé selon un mode de réalisation de l'invention. Toutefois, une configuration dans laquelle un des routeurs ou une partie seulement des routeurs du réseau met en oeuvre un mode de réalisation de l'invention s'avère déjà être très avantageuse. REVENDICATIONS 1. Procédé pour sélectionner dans un premier routeur une route parmi au moins deux routes, lesdites routes étant relatives à une même adresse réseau de destination et ayant été annoncées par deux seconds routeurs respectifs, au premier routeur, caractérisé en ce que ledit procédé comprend: - une étape d'affectation (EO) au cours de laquelle, sur réception de ladite route, le premier routeur affecte un paramètre local de discrimination des routes annoncées en fonction des seconds routeurs ayant annoncé ces routes; - une étape (E3) de sélection de l'une desdites routes en fonction du paramètre affecté. 2. Procédé selon la revendication 1, dans lequel ledit paramètre affecté est représentatif de l'ordre chronologique de réception desdites routes par le premier routeur. 3. Procédé selon la revendication 2, dans lequel la route sélectionnée correspond à celle dont la réception est la plus ancienne. 4. Procédé selon l'une quelconque des revendications précédentes, dans lequel le paramètre affecté correspond à la valeur d'une horloge à l'instant de réception de la route par le premier routeur. 5. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel le paramètre affecté correspond à la valeur d'un compteur local au premier routeur. 6. Procédé selon l'une quelconque des revendications précédentes, dans lequel l'étape (E3) de sélection en fonction du paramètre affecté est exécutée avant une deuxième étape (E4) de sélection en fonction de l'adresse réseau du second routeur annonceur de la route. 7. Routeur (11, 12, 13, 20, 21) destiné à acheminer des paquets de données le traversant, comprenant : - des moyens (30) de gestion des routes, agencés pour recevoir des routes annoncées par au moins un routeur pair; -des moyens (31) de sélection d'une route, agencés pour sélectionner une route parmi un ensemble de routes annoncées, relatives à une même adresse réseau de destination; caractérisé par le fait qu'il comprend en outre -des moyens (32) pour affecter à une route annoncée un paramètre local de discrimination des routes annoncées, lesdits moyens (30) de gestion étant agencés pour associer ledit paramètre à ladite route; et par le fait que lesdits moyens de sélection sont aptes à sélectionner une route en fonction dudit paramètre. 8. Programme de sélection d'une route parmi au moins deux routes comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon les revendications 1 à 6 destinées à être exécutées par un routeur, lorsque ledit programme est exécuté sur le routeur. 9. Support d'enregistrement lisible par un routeur sur lequel est enregistré le programme selon la revendication 8.25