Difference between revisions of "MOOC:Compagnon Act22-s7"

From Livre IPv6

(Route directe et route indirecte)
(Introduction : Qu'est ce que le routage ?)
Line 6: Line 6:
 
== Introduction : Qu'est ce que le routage ? ==
 
== Introduction : Qu'est ce que le routage ? ==
  
Le routage est la fonction indispensable au réseau pour acheminer un paquet vers sa destination<ref>Rubino, G. et Toutain, L. (2000). Techniques de l'ingénieur.  Routage dans les réseaux Internet</ref>.  
+
Nous avons vu les aspects statiques du protocole IPv6 dans l’activité précédente, nous allons voir les aspects opérationnels de ce protocole. L'objectif de IPv6 est de réaliser un réseau virtuel qui assure un service de connectivité par la remise de datagramme. Ce réseau doit être doté de moyens d'acheminement de datagrammes jusqu'au destinataire final. Les 2 fonctions essentielles de n'importe quelle réseau sont l'adressage et le routage:
On peut définir de manière simpliste le routage comme la fonction faite par les routeurs. En vérité, cette fonction recouvre deux activités :
+
* L'adresse IP sert à l'identification des noeuds dans le réseau virtuel mais également à leur localisation.
* la détermination des routes (''routing''), c'est à dire identifier les chemins pour atteindre les différentes destinations du réseau.
+
* Le routage est la fonction indispensable au réseau pour acheminer un paquet vers sa destination<ref>Rubino, G. et Toutain, L. (2000). Techniques de l'ingénieur.  Routage dans les réseaux Internet</ref>. Cette fonction fait référence au traitement des routes., Elle recouvre deux activités :
* l'acheminement des paquets (''forwrding'') qui consiste à relayer un paquet reçu vers une ligne de sortie du routeur.  Le choix de la ligne de sortie est effectué en fonction des informations dont dispose le routeur issu de la détermination des routes.
+
** l'établissement des routes (''routing''), c'est à dire identifier les chemins pour atteindre les différentes destinations du réseau.
 +
** la détermination d'une route (''forwrding'') pour acheminer le datagramme.  L'acheminement consiste à choisir une route pour un datagramme c'est à dire la ligne de sortie du noeud.  Le choix de la ligne de sortie est effectué à partir des informations obtenues du processus d'établissement des routes et de l'adresse de destination du datagramme.
  
La routage est commun à tous les noeuds du réseau. Le routage est propre à la couche de réseau et s'effectue indépendamment des systèmes de transmission sous-jacents. Lorsqu'un paquet IP arrive à un noeud, celui-ci décide si ce paquet lui est destiné ou s'il doit le relayer. Dans ce dernier cas, le routage consiste à déterminer la direction autrement dit vers quelle interface faire sortir le paquet afin qu'il atteigne sa destination. Cette décision s'appuie d'une part sur les informations contenues dans l'en-tête IP du paquet, principalement '''l'adresse destination'''. D'autre part, des informations sur la position relative de la destination par rapport au noeud en charge du routage du paquet. Ces informations sont contenues dans la '''table de routage''' du noeud et  constituent sa connaissance locale de la topologie du réseau. Avec ces informations, un noeud déterminera vers quelle interface faire sortir le paquet et à quel noeud le remettre. Ainsi, de proche en proche, le paquet sera acheminé depuis la source jusqu'à sa destination.
+
 
 +
Les élèments du routage IPv6 sont:
 +
• Hôte: noeud d'extrémité (source et/ou destination). Les hôtes peuvent avoir plusieurs interfaces qui ont chacune une adresse IP. L'interface réseau constitue le point d'accès au réseau phyique. Les hôtes émettent et recoivent des datagrammes mais ils n'ont pas le rôle de relayage. Les datagrammes recus qui ne lui sont pas destinés sont purement et simplement détruit.
 +
• Lien:  le Lien IPv6 est réseau physique identifié par un préfixe réseau.
 +
• Routeur: Relie deux liens IPv6. Il est le composant indispensable de l'Internet. Il utilise le préfixe réseau pour le routage. Un routeur est un noeud intermédiaire :
 +
** connecté à 2 ou plusieurs liens IPv6 simultanément,
 +
** capable d'effectuer un choix de route, (action de routage)
 +
**.  ayant  la connaissance de la topologie du réseau.
 +
** capable de relayer des paquets entre les interfaces, (action de commutation)
 +
 
 +
 
 +
 
 +
 
 +
La routage est commun à tous les noeuds du réseau et propre à la couche de réseau. Il s'effectue indépendamment des systèmes de transmission sous-jacents. Lorsqu'un paquet IP arrive à un noeud, celui-ci décide si ce paquet lui est destiné ou s'il doit le relayer. Dans ce dernier cas, le routage consiste à déterminer la direction autrement dit vers quelle interface faire sortir le paquet afin qu'il atteigne sa destination. Cette décision s'appuie d'une part sur les informations contenues dans l'en-tête IP du paquet, principalement '''l'adresse destination'''. D'autre part, des informations sur la position relative de la destination par rapport au noeud en charge du routage du paquet. Ces informations sont contenues dans la '''table de routage''' du noeud et  constituent sa connaissance locale de la topologie du réseau. Avec ces informations, un noeud déterminera vers quelle interface faire sortir le paquet et à quel noeud le remettre. Ainsi, de proche en proche, le paquet sera acheminé depuis la source jusqu'à sa destination.
 
{{HorsTexte| Topologie|  
 
{{HorsTexte| Topologie|  
 
La topologie de réseau correspond à l'arrangement (physique ou logique)  de ses équipements et de ses liaisons.}}
 
La topologie de réseau correspond à l'arrangement (physique ou logique)  de ses équipements et de ses liaisons.}}

Revision as of 09:22, 24 April 2019


Activité 22: Les principes du routage en IPv6

Introduction : Qu'est ce que le routage ?

Nous avons vu les aspects statiques du protocole IPv6 dans l’activité précédente, nous allons voir les aspects opérationnels de ce protocole. L'objectif de IPv6 est de réaliser un réseau virtuel qui assure un service de connectivité par la remise de datagramme. Ce réseau doit être doté de moyens d'acheminement de datagrammes jusqu'au destinataire final. Les 2 fonctions essentielles de n'importe quelle réseau sont l'adressage et le routage:

  • L'adresse IP sert à l'identification des noeuds dans le réseau virtuel mais également à leur localisation.
  • Le routage est la fonction indispensable au réseau pour acheminer un paquet vers sa destination[1]. Cette fonction fait référence au traitement des routes., Elle recouvre deux activités :
    • l'établissement des routes (routing), c'est à dire identifier les chemins pour atteindre les différentes destinations du réseau.
    • la détermination d'une route (forwrding) pour acheminer le datagramme. L'acheminement consiste à choisir une route pour un datagramme c'est à dire la ligne de sortie du noeud. Le choix de la ligne de sortie est effectué à partir des informations obtenues du processus d'établissement des routes et de l'adresse de destination du datagramme.


Les élèments du routage IPv6 sont: • Hôte: noeud d'extrémité (source et/ou destination). Les hôtes peuvent avoir plusieurs interfaces qui ont chacune une adresse IP. L'interface réseau constitue le point d'accès au réseau phyique. Les hôtes émettent et recoivent des datagrammes mais ils n'ont pas le rôle de relayage. Les datagrammes recus qui ne lui sont pas destinés sont purement et simplement détruit. • Lien: le Lien IPv6 est réseau physique identifié par un préfixe réseau. • Routeur: Relie deux liens IPv6. Il est le composant indispensable de l'Internet. Il utilise le préfixe réseau pour le routage. Un routeur est un noeud intermédiaire :

    • connecté à 2 ou plusieurs liens IPv6 simultanément,
    • capable d'effectuer un choix de route, (action de routage)
    • . ayant la connaissance de la topologie du réseau.
    • capable de relayer des paquets entre les interfaces, (action de commutation)



La routage est commun à tous les noeuds du réseau et propre à la couche de réseau. Il s'effectue indépendamment des systèmes de transmission sous-jacents. Lorsqu'un paquet IP arrive à un noeud, celui-ci décide si ce paquet lui est destiné ou s'il doit le relayer. Dans ce dernier cas, le routage consiste à déterminer la direction autrement dit vers quelle interface faire sortir le paquet afin qu'il atteigne sa destination. Cette décision s'appuie d'une part sur les informations contenues dans l'en-tête IP du paquet, principalement l'adresse destination. D'autre part, des informations sur la position relative de la destination par rapport au noeud en charge du routage du paquet. Ces informations sont contenues dans la table de routage du noeud et constituent sa connaissance locale de la topologie du réseau. Avec ces informations, un noeud déterminera vers quelle interface faire sortir le paquet et à quel noeud le remettre. Ainsi, de proche en proche, le paquet sera acheminé depuis la source jusqu'à sa destination.

Topologie

La topologie de réseau correspond à l'arrangement (physique ou logique) de ses équipements et de ses liaisons.

La connaissance de la topologie du réseau peut être communiquée à chaque routeur de plusieurs façons. L'administrateur peut configurer manuellement la table de routage au niveau des différents routeurs. Mais ce mode de configuration est peu adapté lorsque le réseau évolue comme par exemple une nouvelle liaison apparait. On parle alors de routage statique. Une autre méthode consiste, pour chaque routeur, à propager sa connaissance locale du réseau et à intégrer les informations fournies par d'autres routeurs. Ces échanges s'effectuent grâce à des protocoles de routage. Avec ces échanges, une prise en compte automatique des évolutions du réseau est effectuée. On parle alors de routage dynamique.

Cette activité présente comment s'effectue l'acheminement des paquets et en particulier le choix de la route. Elle explique le rôle du test d'adjacence dans ce processus et l'utilité de la route par défaut. Les protocoles de routage disponibles en IPv6 sont rappelés. Toutefois, les algorithmes de routage pour le calcul des routes est hors du champ de ce cours.

Acheminement des paquets

Le relayage d'un paquet par un routeur nécessite de prendre une décision afin de l'acheminer vers sa destination. Un paquet est à relayer lorsqu'il arrive sur un routeur et que l'adresse destination de ce paquet ne concerne aucune interface de ce routeur. Plusieurs cas sont alors possibles :

  • La destination est sur un des réseaux sur lequel le routeur est directement connecté. Le paquet doit alors être remis directement à la destination.
  • La destination n'est sur aucun des réseaux directement connectés au routeur. ce dernier doit déterminer quel est le meilleur routeur voisin qui rapproche le paquet de sa destination finale. Le paquet doit alors être relayé vers cet autre routeur qui prendra en charge l'acheminement du paquet.
  • La destination est inconnue. Le routeur ne peut décider vers où le paquet doit être relayé. Le paquet doit donc être éliminé et un message d'erreur ICMP (ICMPv4 ou ICMPv6 selon la version du protocole IP utilisé) est émis vers la source du paquet pour lui indiquer le problème de routage.

La détermination du cas approprié se fait à partir des informations connues par le routeur contenues dans sa table de routage.

La table de routage

La table de routage d'un noeud contient la liste des réseaux accessibles depuis le noeud. À chacun de ces réseaux est associé le prochain saut (Next Hop) pour atteindre ce réseau depuis le noeud ; information qui va servir au relayage du paquet. Le prochain saut de la table de routage est un routeur qui est local au noeud. Ils partagent tous les deux le même préfixe réseau.

Parmi les réseaux connus dans la table de routage, on trouve les réseaux directement connectés au noeud ; c'est-à-dire que le noeud possède une interface connectée sur l'un de ces réseaux. Lorsque l'interface du noeud est configurée sur un réseau, elle obtient une adresse IPv6 à laquelle s'ajoute la longueur du préfixe ; c'est-à-dire le nombre de bits communs aux adresses de toutes les interfaces connectées au même réseau. À la table de routage IPv6 s'ajoute alors automatiquement le préfixe du réseau connecté, défini par les bits communs de l'adresse. Le prochain saut pour ce réseau est alors défini par l'identifiant de l'interface connectée à ce réseau. Cela signifie au noeud que les paquets destinés à ce réseau doivent être envoyés sur cette interface.

Voici un exemple de configuration d'une interface réseau et l'entrée correspondante dans la table de routage sur un système Linux. Notez bien la correspondance entre le préfixe de l'adresse de l'interface eth0 et l'entrée correspondante dans la table de routage. La commande ifconfig montre l'adresse configurée à l'interface réseau eth0 et le préfixe associé à ce réseau. La commande netstat affiche la table de routage. L'absence d'information dans la colonne 'Next Hop' indique que ce préfixe est associé au réseau de l'interface eth0. Enfin la commande ip fait la même chose mais présentée sous une autre forme.

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:18:73:68:21:20
          inet6 addr: 2001:db8:1:1:218:73ff:fe68:2120/64 Scope:Global
          inet6 addr: fe80::218:73ff:fe68:2120/64 Scope:Link
(...)

$ netstat -rn -A inet6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
2001:db8:1:1::/64              ::                         UAe  256 0345733 eth0
(...)

$ ip -6 route
2001:db8:1:1::/64 dev eth0  proto kernel  metric 256  expires 2592155sec mtu 1500 advmss 1440 hoplimit 0
(...)

La table de routage peut aussi comporter des préfixes de réseaux auxquels le noeud n'est pas directement connecté. Ces préfixes peuvent être ajoutés par l'administrateur réseau ou alors, appris automatiquement à l'aide de protocoles de routage. Ces préfixes peuvent être spécifiques à un réseau local (généralement de longueur 64 bits) mais peuvent être plus larges pour désigner un ensemble de réseaux. Plus la longueur du préfixe est faible et plus l'ensemble des réseaux considéré est large. Le prochain saut est alors configuré avec l'adresse d'un routeur qui va prendre en charge la suite de l'acheminement du paquet.

L'exemple suivant montre une table de routage d'un routeur VyOS comportant un préfixe plus large que celui connecté sur son interface. Notez que l'adresse du prochain saut est une adresse lien-local, ce qui signifie que le noeud vers lequel transmettre le paquet est sur le réseau connecté à l'interface eth0.

vyos(config)# do show ipv6 route
C>* 2001:db8:1:1::/64 is directly connected, eth0
S>* 2001:db8:1::/48 [110/1] via fe80::290:bff:fe1e:c4fe, eth0, 1d09h16m

Un dernier type d'entrée de la table de routage permet à un noeud de relayer les paquets pour tous les réseaux qu'il ne connait pas, évitant ainsi de les éliminer parce qu'il n'a pas une connaissance suffisante du réseau. Cette entrée s'appelle la route par défaut. Le préfixe utilisé pour désigner ainsi tous les réseaux ne doit comporter aucun bit spécifié. En IPv6, ce préfixe se note ::/0 ; la longueur du préfixe à 0 signifiant qu'aucun bit n'est spécifié comme commun. La route par défaut possède comme prochain saut l'adresse du routeur qui prendra en charge le routage des paquets vers les réseaux non connus localement. Ce routeur est communément appelé routeur par défaut, ou passerelle par défaut. Dans un réseau local domestique par exemple, le routeur par défaut des hôtes, comme un ordinateur portable, est généralement le boitier de l'opérateur, car c'est lui qui sait comment joindre les différents réseaux de l'Internet.

L'exemple suivant montre l'entrée correspondant à la route par défaut d'un noeud sous Windows 7 avec l'outil en ligne de commande netsh.

netsh> interface ipv6
netsh interface ipv6> show routes
Recherche du statut actif...

Type      Mét  Préfixe                    Idx  Nom passerelle/interface
--------  ---  ------------------------   ---  ------------------------
Auto        8  2001:db8:1:1::/64           4  Connexion au réseau local 4
Auto      256  ::/0                        4  fe80::290:bff:fe1e:c4fe


Route directe et route indirecte

Dans le cas présenté par la Figure 1, les deux hôtes A et B peuvent communiquer directement car ils sont connectés sur le même réseau local Ethernet à l’aide d'un lien mis en oeuvre sous la forme d’un commutateur qui relaie les trames de manière transparente. Le préfixe IPv6 2001:db8:0001::/64 est commun à chaque noeud. Ainsi, les échanges sont possibles directement, sans l'intervention d'un routeur. On parle dans ce cas d'une route directe. Dans la table de routage, le Next Hop est vide comme le montre la Figure 1 (l'adresse IPv6 notée '::' est l'adresse nulle).

Figure 1 : Route directe.


Lorsqu'il n'y a pas de lien direct entre 2 noeuds, le paquet doit être passé à un ou plusieurs noeuds intermédiaires qui s’occuperont de son transfert jusqu'au noeud de destination. On parle alors de route indirecte. Dans le cas présenté par la Figure 2, l'hôte A peut atteindre les deux hôtes B et C. Par contre, B et C ne peuvent pas directement communiquer car ils sont connectés sur des réseaux avec des préfixes IPv6 différents :

Figure 2 : Route indirecte.

La table de routage de l'hôte B doit être complétée avec une entrée avec le préfixe distant 2001:db8:0002::/64 en précisant l’adresse de A, 2001:db8:0001::1/64, comme noeud intermédiaire comme le montre la Figure 3. Les paquets émis depuis B vers C seront dès lors relayé.

Figure 3 : Table de routage avec route indirecte.

Ensuite, il conviendra de ne pas omettre la même opération dans la table de routage de C ; sans quoi, aucune réponse vers B ne sera possible. Il faudra introduire une entrée vers le préfixe réseau de B 2001:db8:0001::/64 en précisant l’adresse de A, 2001:db8:0002::1/64, comme routeur, qui, lui, est directement accessible par C comme le montre la Figure 3. Les paquets émis depuis C vers B seront dès lors relayé par A.

Route par défaut

Lorsque qu'un réseau est raccordé à Internet, il n'est pas nécessaire de détailler toutes les destinations de l'Internet dans la table de routage. Cependant, il faut pouvoir acheminer des paquets vers des réseaux qui ne sont pas connus des noeuds. La table de routage doit contenir dans ce cas une entrée pour indiquer vers quel routeur un noeud doit émettre les paquets.

Dans le cas simple, un routeur par défaut est spécifié et tous les paquets qui visent des destinations inconnues lui seront remis. En quelque sorte, on fait confiance aux capacités et à la connectivité de ce routeur. Une route par défaut est présente dans la table de routage du routeur par défaut. Cette route par défaut joue le rôle du panneau toute direction dans le réseau routier. L'exemple de la Figure 4 montre la configuration avec une route par défaut sur le routeur IPv6 :

Figure 4 : Routeur par défaut.

Les hôtes n'ont pas à avoir la connaissance du routage, aussi pour ces noeuds, ils confient tous les paquets pour des destinations indirectes au routeur local représenté dans la figure 5 par le routeur connecté à un fournisseur d’accès à Internet. Ceci se déclare dans la table de routage des hôtes par une simple route par défaut. La Figure 5 montre la table de routage des hôtes avec la route par défaut. Dans notre exemple, le routeur par défaut est le routeur local de l'hôte A. Il n'y a pas de routeur intermédiaire entre 'hôte A et le routeur par défaut.

Figure 5 : Route par défaut dans les stations.

Choix de la route

Effectué par un noeud du réseau, le test d’adjacence consiste à vérifier si le destinataire est directement accessible. Pour cela, le noeud va comparer le préfixe de la destination avec les préfixes des réseaux directement connectés. En cas de correspondance, le noeud peut réaliser une remise directe. La découverte des voisins' opérée par ICMPv6 va alors servir à déterminer l'adresse physique associée à l'adresse IPv6 du noeud voisin. Cette fonction sera développée dans la prochaine séquence.

Des routes spécifiques peuvent être définies dès lors que l’on dispose d’une connectivité bien adaptée pour certains préfixes. Dans ce cas, une configuration manuelle de la table de routage est nécessaire.

  • Les routes les plus spécifiques, c’est-à-dire celles avec un long préfixe, seront traitées en premier ; puis, les routes moins spécifiques ; et enfin, la route par défaut en dernier ressort.

Protocoles de routage

Comme pour IPv4, il faut faire la distinction entre deux grandes familles de protocoles de routage : les protocoles de routage interne (Interior Gateway Protocols, IGP) et les protocoles de routage externe (Exterior Gateway Protocols, EGP). La différence provient de la notion de système autonome (Autonomous System, AS), par la définition de la portée des échanges d'informations de routage des protocoles de routage. Ainsi, la propagation des préfixes réseaux internes à un AS se fait par un IGP, alors que les annonces de préfixes entre AS se fait par un EGP.

Pour connecter un site à l'Internet, il faut donc mettre oeuvre des protocoles de routage interne et des protocoles de routage externe. Ce chapitre traite des trois protocoles IGP suivants : RIPng (équivalent de RIPv2 pour IPv4), ISIS et OSPFv3 (équivalent d’OSPFv2 pour IPv4), ainsi que du protocole de routage externe BGP.

Les protocoles de routage interne visent à rendre automatique la configuration des tables de routage des routeurs à l'intérieur d'un même système autonome. Les routeurs déterminent le plus court chemin pour atteindre un réseau distant. Les protocoles de routage internes nécessitent une configuration minimale du routeur, notamment en ce qui concerne les annonces de routes initiées par ce routeur (exemple : réseaux directement accessibles par une interface du routeur, routes statiques...).

Deux types de protocoles de routage interne existent : les protocoles à vecteur de distance (distance vector), et le protocoles à état de lien (link state). Les premiers génèrent des annonces de routeur, transmises aux routeurs voisins, qui contiennent des informations de direction (les réseaux accessibles par le routeur) et de distance associée aux destinations annoncées (la métrique, qui peut être le nombre de routeurs à traverser, pour RIP, mais qui peut être un coût lié au débit, comme pour EIGRP). Pour les protocoles à état de lien, les annonces de routeur ne contiennent plus d'informations issues de la table de routage, mais des informations sur les liens auxquels sont connectés les routeurs (adresses IP, nature du lien, coût calculé souvent à partir du débit, etc). Chaque routeur construit une base de données d'états de liens (link state database), qui permet de redessiner la topologie du réseau. Dans un second temps, un algorithme de recherche du plus court chemin permet à chaque routeur de construire sa table de routage, à partir de cette base de données.

RIPng ou RIP IPv6

RIPv2 (RFC 2453) est un algorithme à vecteur de distance, basé sur l'algorithme de Bellman-Ford et figure parmi les premiers algorithmes de routage interne utilisés dans l'Internet.

Les routeurs diffusent leurs tables de routage sur les liens auxquels ils sont connectés. Les autres routeurs modifient une route dans leur table si la métrique (le nombre de routeurs à traverser pour atteindre une destination) reçue est plus petite que celle déjà stockée dans la table. Si une annonce de route n'est pas présente dans la table, le routeur l'ajoute. Ces modifications sont à leur tour diffusées sur les autres réseaux auxquels sont connectés les routeurs. Elles se propagent donc sur l'ensemble du réseau à l'intérieur du système autonome. On montre que cet algorithme converge et, qu'en condition stable, aucune boucle n'est créée sur le réseau, c'est-à-dire qu'un paquet ne sera pas transmis indéfiniment de routeur en routeur sans jamais pouvoir atteindre sa destination.

Les tables sont émises périodiquement. Si un routeur tombe en panne, ou si le lien est coupé, les autres routeurs ne recevant plus l'information suppriment l'entrée correspondante de leur table de routage. RIPng est le premier protocole de routage dynamique proposé pour IPv6 (RFC 2080). RIPng est une simple extension à IPv6 du protocole RIPv2 d'IPv4. Il en hérite les mêmes limitations d'utilisation (maximum de 15 sauts par exemple).

ISIS

IS-IS (Intermediate System to Intermediate System) est un protocole de routage interne à état de lien. Il a été standardisé par l'ISO (ISO 10589). C'est un protocole de niveau 3 (contrairement à OSPF et RIP, de niveau 4) qui s'appuie sur une couche 2 de type Ethernet 802.2. Cet élément mérite d'être signalé car cela rend ce protocole indépendant d'IP, que ce soit IPv4 ou IPv6. Ce protocole travaille sur deux niveaux de hiérarchie : les aires (niveau 1) et le backbone (niveau 2).

Un routeur IS-IS peut être :

  • level-1 (routage intra aire),
  • level-2 (routage inter aire),
  • ou level-1-2 (routage intra et inter aire).

Un routeur de niveau 1 n'a de voisins que dans son aire alors qu'un routeur de niveau 2 peut avoir des voisins dans une autre aire. Il n'y a pas d'aire de backbone (contrairement à OSPF). Le backbone est constitué de la réunion de tous les routeurs de level-2. Sur un réseau de type LAN, il y a élection d'un routeur désigné (DIS) qui a la charge de produire les annonces.

Afin de construire sa topologie, IS-IS utilise 3 types de messages :

  • les messages HELLO permettant de construire les adjacences ;
  • les messages LSP (Link State Protocol) permettant d'échanger les informations sur l'état des liens ;
  • les messages SNP (Sequence Number Packet) permettant de confirmer la topologie.

Pour élaborer ces messages, IS-IS se base sur l'utilisation d'éléments d'informations indépendants appelés TLV (Type, Longueur, Valeur). Le message est ainsi constitué d'un en-tête suivi d'une liste de TLV. Chaque TLV véhicule une information propre, et est donc standardisée. L'exemple ci-dessous montre une TLV Protocoles supportés faisant partie d'un message HELLO, informant les voisins des protocoles supportés par l'émetteur du paquet :

  • 0x81 0x02 0xcc 0x8e
    • Le premier octet donne le type de la TLV. Il s'agit ici du type 0x81, c'est-à-dire Protocoles supportés.
    • Le second octet donne la longueur en octets de la TLV : ici, les deux octets qui suivent.
    • Les autres octets composent la valeur de la TLV. Ici, nous avons deux octets indiquant des numéros de protocoles supportés (NLPID : Network Layer Protocol IDentifier): 0xCC pour IPv4 et 0x8E pour IPv6.

OSPFv3

Le troisième protocole de routage interne, basé sur l'algorithme du plus court chemin (SPF, Shortest Path First, ou algorithme de Dijkstra), s'appelle OSPF (Open Shortest Path First). Relativement plus complexe à mettre en oeuvre que RIPng, il est beaucoup plus efficace dans les détections et la suppression des boucles dans les phases transitoires. Ce protocole est basé sur plusieurs sous-protocoles, dont un qui permet une inondation fiable du réseau. Les routeurs possèdent alors chacun une copie des configurations de tous les routeurs présents sur le réseau, et peuvent calculer simultanément le plus court chemin pour aller vers l'ensemble des destinations.

Pour réduire la durée des calculs, et surtout pour éviter un recalcul complet des routes à chaque changement de configuration, OSPF offre la possibilité de découper le réseau en aires. Une aire principale appelée backbone relie toutes les autres aires. Les réseaux trouvés dans une aire donnée sont envoyés aux autres aires par les routeurs qui sont en frontière d'aire.

OSPF a été adapté à IPv6 (RFC 2740) ; la version est passée de 2 à 3. La plupart des algorithmes implémentés dans OSPFv2 ont été réutilisés en OSPFv3. Bien évidemment, certains changements ont été nécessaires en vue de l'adaptation aux fonctionnalités d'IPv6.

BGP

BGP-4 est le protocole de routage externe actuellement utilisé pour le routage global de l'Internet IPv4 (le numéro de version 4, identique pour BGP et IP, est une pure coïncidence)[2]. Compte tenu de sa criticité, ce protocole est l'objet d'évolutions constantes. L'une d'entre elles est le RFC 4760 qui rend BGP-4 "multi-protocole" en introduisant la notion de famille d'adresses (ex. IPv4, IPv6, IPX...) et de sous-famille d'adresses (ex. unicast, multicast). Le RFC 2545 précise l'usage des extensions multi-protocoles pour le cas d'IPv6.

L'adaptation multi-protocole de BGP-4 est assez simple car elle ne concerne que les trois attributs dont le format dépend de l'adresse, soit :

  • NLRI : Network Layer Reachability Information (suite de préfixes) ;
  • NEXT_HOP : Adresse IP où il faut router les NLRI ;
  • AGGREGATOR : Adresse IP du routeur qui a fait une agrégation de préfixes.

Pour réaliser pratiquement cette adaptation, BGP4+ introduit deux nouveaux attributs :

  • MP_REACH_NLRI : Multiprotocol Reachable NLRI,
  • MP_UNREACH_NLRI : Multiprotocol Unreachable NLRI,

qui indiquent que l'on annonce des informations de routage autres que les routes unicast IPv4. Ces attributs codent en premier le type de famille et de sous-famille d'adresses, puis les attributs dont le format est spécifique. Les autres attributs (comme le chemin d'AS Autonomous System) sont codés et annoncés sans changement.

Les implémentations du RFC 4760 sont souvent appelées MP-BGP (pour faire référence à leur capacité de traitement des routes multicast) ou BGP4+ (pour faire référence à leur capacité de traitement de routes IPv6). Pour l'anecdote, le numéro de version du protocole n'a pas été modifié (en BGP-5 par exemple) car le passage de BGP-3 à BGP-4 rappelle trop de souvenirs douloureux à ceux qui l'ont mis en oeuvre. Les numéros d'AS utilisés pour IPv4 servent aussi pour IPv6.

Conclusion

Cette activité vous a présenté le principe du routage IP, et la table de routage. Cet élément essentiel de la couche réseau, présent dans chaque noeud de l'Internet, indique à un routeur qui a un paquet à transmettre à qui doit être remis ce paquet : à un routeur local, indiqué dans la table de routage comme prochain associé à l'adresse de destination contenue dans la paquet, ou directement à la destination. La configuration correcte de la table de routage est donc importante aussi bien sur les routeurs que sur les stations.

Cette configuration peut se faire manuellement par l'administrateur du réseau : on parle alors de routage statique. Afin de pouvoir s'adapter à l'évolution du réseau, les tables de routage peuvent être mise à jour par des protocoles de routage dynamique permettant de propager les modifications de la topologie du réseau. Les tables de routage sont mises à jour automatiquement au fur et à mesure des changements dans le réseau.

Références bibliographiques

  1. Rubino, G. et Toutain, L. (2000). Techniques de l'ingénieur. Routage dans les réseaux Internet
  2. Balakrishnan, H. et Feamster, N. (2005), Lecture notes. Interdomain Internet Routing.

Pour aller plus loin

RFC et leur analyse par S. Bortzmeyer : Vous pouvez approfondir vos connaissances sur les protocoles de routage en consultant les liens suivants :

RIPng :

ISIS :

OSPF :


BGP :


Personal tools