Académique Documents
Professionnel Documents
Culture Documents
boumiza.safa@gmail.com
1
Acheminement des données
• Assurer le transit des blocs d’un point d’entrée à un point de sortie désigné par
son adresse
• Chaque nœud du réseau comporte des tables de routage qui indiquent la route à
suivre pour atteindre le destinataire
Acheminement des données (suite)
• Il faut distinguer entre
• la politique d’acheminement qui indique comment est choisie une route, et
• Le protocole de routage ou simplement routage qui décrit comment sont
construites les tables d’acheminement,
• c’est-à-dire qu’il spécifie les échanges d’information entre les routeurs pour le calcul de
la route
Protocole de routage
• Permettre aux routeurs interconnectés de s'échanger des
informations
• Mettre à jour automatiquement leurs tables de routage (routage
dynamique).
• Configurer les tables de routage (des routeurs) afin que les paquets
empruntent le meilleur chemin disponible
• Plus-court-chemin au sens d’une métrique de coût
• nombre de routeurs traversés, délai, coût financier, etc.
• Il existe deux critères de classement :
• Portée du protocole
• Algorithme utilisé
Portée du protocole
• Système autonome (SA):
• ensemble de réseaux placés sous le contrôle de la
même autorité (par exemple un FAI).
• C'est une notion administrative et non technique.
• Deux classes de protocoles selon la portée du
protocole :
• Protocoles Internes: Interior Gateway Protocol
(IGP):
• Portée est limitée à un SA
• Protocoles externes: (EGP – Exterior Gateway
Protocol)
• Utilisés entre les systèmes autonomes
Algorithme de routage
• Il existe deux classes d’algorithmes utilisés
• Les algorithmes à Vecteur de distance (Distance-vector)
• RIP v1(Routing Internet Protocol),
• RIP v2,
• IGRP (Interior Gateway Routing Protocol)
• Les algorithmes à état de liens (Link-State)
• OSPF (Open Shortest Path First)
• Il y a des protocoles hybrides (utilisent les deux algorithmes)
• BGP (Border Gateway Protocol)
• EIGRP (Enhanced Interior Gateway Routing Protocol)
Routage à vecteur de distance
Routage à vecteur de distance
• Méthode itérative par transmission des tables de routage.
• Chaque routeur
• Transmet sa table de routage initiale à ses voisins immédiats.
• Fusionne sa table avec les tables reçues de ses voisins immédiats.
• En cas de modification, transmet la nouvelle table à ses voisins
immédiats
→ Algorithme de Bellman-Ford (1957)
Routage à vecteur de distance
• Un routeur envoi périodiquement vers ses voisins directs des messages avec la
liste des chemins qu’il connaît
• Les chemins sont indiqués sous forme de couples {destination; distance}
• Les messages sont envoyés aux routeurs voisins uniquement
• À la réception d'un message,
• un voisin compare les chemins avec les chemins de sa table de routage
• En cas de découverte d’un meilleur chemin vers une destination
• on remplace l’ancien chemin dans la table de routage par le nouveau (indiqué par le
message)
• L’information se propagera vers les voisins de ce routeur lors du prochain
envoi
• Itération du processus à l'infini
Routage à vecteur de distance: Exemple
• 5 routeurs et 6 liens de coûts différents
• 2 réseaux (N1 et N3) connectés au routeur
• Tables de routage initiales:
Routage à vecteur de distance: Exemple
• Première étape de communication
Routage à vecteur de distance: Exemple
• Deuxième étape de communication
Routage à vecteur de distance: Exemple
• Troisième étape de communication
• Aucune modification!
→ Le protocole a convergé
Routage à vecteur de distance: Exemple
• En cas de panne d’un lien:
• B détecte le problème
• Il associe un coût infini à N1 et N3
Routage à vecteur de distance: Exemple
• La liaison entre A et B est rompu !
Routage à vecteur de distance: l’Algorithme
• Chaque routeur envoie à tous ses voisins périodiquement sa table de
routage sous forme (@destination, coût)
• A la réception d’un message de routage arrivant d’un routeur voisin
d’adresse @routeur_voisin, pour chaque (@destination, cout)
contenue dans le paquet reçu faire
• Si @destination inconnue
• Rajouter dans la table de routage l’entrée (@destination, @routeur,
• coût+cout_vers_routeur_voisin)
• Si @destination connue : apparait dans la table de routage →
(@destination, @routeur_suivant, coût_présent)
• Si @routeur_voisin= @routeur_suivant alors
• Changer table (@destination, @routeur_voisin, coût +cout_vers_routeur_voisin)
• Si @routeur_voisin ≠ @routeur et coût
• +cout_vers_routeur_voisin<coût_présent alors
• Changer table (@destination, @routeur, coût+cout_vers_routeur_voisin)
Routage à vecteur de distance: problème
• Comptage vers l’infini
• Deux routeurs se considèrent mutuellement comme prochain saut vers une
destination
• On doit attendre d’avoir atteint une grande valeur du coût pour conclure que la route est
défaillante
• Solutions possibles
• Limiter le coût maximal (limite assez basse ; exemple : 15 sauts)
• Que faire des routes effectivement plus longues ?
• Dimensionnement important
• S’échanger l’adresse du prochain saut dans les messages
• Si un routeur se reconnait il ne prendra pas en compte la route
• Augmente la taille des messages et donc le trafic!
• Ne pas annoncer une route à un voisin si la route passe par ce voisin (horizon partagé)
• Nécessité de distinguer les routeurs voisins 1 à 1 → construire un message diffèrent pour
chaque routeur voisin
Routage à vecteur de distance: RIP
• RIP «Routing Information Protocol»
• Une implémentation du Routage à vecteur de distance
• Routage interne à un système autonome (AS) : IGP «Interior Gateway
Protocol»
• Les routeurs n’ont pas une vue globale du réseau
• Il s’échangent les distances qu’ils connaissent
• Il existe deux versions RIPv1 et RIPv2
RIPv1
• Exécution de l’algorithme Routage à vecteur de distance
• Un routeur diffuse sa table de routage avec une période de 30s
• Un message de routage contient au maximum de 25 routes
• Il n’y a pas d’accusé de réception des messages
• RIP utilise deux messages
• Requête :
• Message transmis au démarrage par chaque interface du routeur
• Demande à tous les voisins RIP de transmettre leur table de routage
• Réponse
• Message transmis au routeur demandant la table de routage
• Ou périodiques toutes les 30 secondes
RIPv1 (suite)
• Si on ne reçoit aucun message durant 180 secondes qui rappelle ou met à
jour une route
• une route est déclarée inaccessible
• → à chaque fois qu’une route est indiqué par un message un temporisateur est
actionné
• Si le temporisateur atteint 180s et aucun rappel ou mise à jour n’est reçu la route est
suprimée
• La visibilité d’un routeur est limitée à 15 sauts
• un coût de 16 représente une route non joignable.
RIPv1: Quelques problèmes
• Ne contient aucune information sur le masque de sous-réseau
• le routeur doit disposer localement de cette information
• le masque de sous-réseau doit être identique sur tout le réseau
• Limitation de la visibilité d’un routeur à 15 sauts
• diffusion des tables toutes les 30 s → un trafic important et un temps de convergence
(stabilisation des tables) grand pour les grands réseaux (jusqu’à plusieurs minutes)
• Convergence lente
• Les changements de topologie ne sont pas immédiatement pris en compte
• Il faut que le changement soit détecté́ et que l’information se propage
• Les routeurs sont nombreux et éloignes
• Le rebond
• Des boucles peuvent être créées : des paquets y circulent sans fin (trous noirs)
• Incrémentation infinie
• La distance des destinations inaccessibles s’accroît (lentement) jusqu’à l’infini
RIPv1: Quelques problèmes (suite)
• Les messages ne sont pas authentifiés.
• Possibilité de générer des messages RIP avec des coûts tels que toutes les
routes passent par un même routeur.
• Le routeur attaqué devient un goulet d’étranglement
• Le réseau peut ainsi être complètement paralysé (congestion).
RIPv2
• RIP v2 remédie à certains inconvénients de RIPv1 en restant compatible avec lui
• Utilise les champs non-utilisés dans RIPv1
• Permet de diffuser le masque de sous-réseau
• Permet d’insérer un champ d’authentification entre l’en-tête RIP et la première
entrée
• sa portée, toujours limitée à 15 sauts, le destine aux petits et moyens réseaux.
Routage à état de liens
Routage à état de liens
• Routage à état de liens : Link state
• Méthode non itérative par transmission d’état des liaisons.
• Principes:
• Un nœud envoie à tous les nœuds du réseau les informations au sujet de
ces voisins.
• Les nœuds ont une copie complète de la carte du réseau
• Chaque nœud exécute algorithme de Dijkstra pour chercher les plus court
chemins vers les autres nœuds
• Pas de problème de convergence.
Routage à état de liens
• Avantages:
• Chaque routeur calcule indépendamment la carte du réseau
→ l’algorithme converge plus rapidement que le routage à vecteur de distance
• Inconvénients:
• nécessite un espace mémoire plus important pour le stockage de la carte du
réseau
• et les calculs sont assez complexes
• Exemple : OSPF (Internet), IS-IS (DECnet, CLNP, Internet, Netware)
Routage à état de liens : Fonctionnement
• Chaque routeur :
• surveille activement l'état de tous ses liens
• détermine ses voisins (via des messages HELLO)
• mesure les coûts vers chacun de ses voisins (via des messages ECHO).
• Construit un message avec l’état de ces liens (LSA : «Link State
Advertisements») qui inclut
• Son adresse
• Un numéro de séquence et une durée de vie (âge)
• La liste de ces voisins et les coûts d’acheminement associés
• diffuse ce message LSA à tous les autres routeurs via ses voisins.
• construit une carte topologique et calcule les plus courts chemins (algorithme
de Dijkstra).
Routage à état de liens : Fonctionnement
• Calcul des routes
• Deux listes :
• PATH:(ID,coût,direction) liste des nœuds avec un chemin définitif
• TEMP: liste des nœuds avec des chemins intermédiaires
• Algorithme:
• Initialisation :
1- Placer mon identifiant (ID, 0, 0) dans PATH
• Boucle:
2- Prendre N le dernier nœud placé dans PATH :
i. Développer les voisins de N
ii. Ajouter les voisins de N à TEMP (si pas dans PATH) ou mettre à jour leurs coûts si déjà dans
TENT
3- Prendre le nœud avec le moindre coût de TENT et l’ajouter a PATH
4- Recommencer à 2.
Routage à état de liens : Fonctionnement
Routage à état de liens : Fonctionnement
• Calcul de la table de R1
• Etape 0
R1 R2
100
7
Routage à état de liens : Fonctionnement
• Calcul de la table de R1
• Etape 1 (voisins directs de R1)
R1 R2
100
R1 R2 R3 R4 R5 R6
10 000 1 000 100
1 000 R4
0 . . . . . R3
R5 1 500
10000
100 (R2) . 1000 (R5) . 100
(R4)
100
1 000 R6
7
8
Routage à état de liens : Fonctionnement
• Calcul de la table de R1
• Etape 2 (voisinage de R2)
R1 R2
100
R1 R2 R3 R4 R5 R6
10 000 1 000 100
0 . . . . . 1 000 R4
1 500
R3
R5
10000
. 100 (R2) . 1000 (R5) . 100
(R4)
100
1 100 1 000 R6
. . 200 (R2) .
(R2)
7
8
Routage à état de liens : Fonctionnement
• Calcul de la table de R1
• Etape 3 (voisinage de R3, R6, R5 et R4)
R1 R2
100
R1 R2 R3 R4 R5 R6
10 000 1 000 100
1 000 R4
0 . . . . . R3
R5 1 500
10000 100
. 100 (R2) . 1000 (R5) .
(R4) 100
1 000 R6
1100
. . 200 (R2) .
(R2)
7
8
OSPF
• « Open Shortest Path First », RFC 1247, 1583
• Protocole ouvert non lié à un constructeur
• Routage IGP «Interior Gateway Protocol» interne à un
système autonome (AS)
• Accepte une variété de métriques : distances, délais, débits,...,
• Basé sur un algorithme dynamique, capable de s’adapter aux
changements topologiques
• Acceptation du routage par « type de service »
• Gestion d’un niveau de sécurité pour éviter l’attaque des
tables de routage
• Intègre la notion d‘air de routage
Routage hiérarchique
• Besoin apparue avec l’extension d’Internet
• Problème nombre de réseaux aujourd’hui
• Taille des tables de routage trop grandes
• Solution:
• Regroupement des routeurs par zone
• Chaque table de routage contient le chemin pour accéder
• aux routeurs de sa zone,
• à au moins un routeur de niveau supérieur (ligne de la table de routage particulière
«!default!»)
• Au sommet les routeurs possédant des tables de routage quasi- complète
Routage hiérarchique
• Découpage des systèmes autonome (AS, Autonomus System) en aires:
• Chaque aire contient :
• des routeurs intra-aire (niveau1),
• au moins un routeur inter-aire (niveau2).
• Un routeur intra-aire connait tous les routeurs de l’aire
• Un routeur inter-aire ne connait que les routeurs inter-aire et les routeurs intra-aire de son aire
• Permet de:
• Simplifier le calcul des routes
• Réduire la taille des tables de routage et le trafic généré pour le calcul de ces tables
Routage hiérarchique
• Il faut ne pas confondre la notion d’aire et celle de système autonome.
• C’est les AS qui seront décomposés en Aires
Routeurs de bordure
EGP Système
Autonome
(AS)
IGP
Système
Autonome
(AS)
INTERNET
Aire de routage OSPF
• Un réseau OSPF est divisé en plusieurs aires (Area)
• Zone ou aire «area» :
• un ensemble de réseaux contigus qui se comporte comme un réseau
indépendant
• elle ne connaît que l'état des liaisons internes à la zone
• Chaque aire est désignée par un identifiant de 32 bits sous la forme X.Y.Z.T.
• Cet identifiant ne correspond pas forcément à l’adresse réseau
Aire de routage OSPF
• Les aires se connectent à une aire centrale de distribution appelée zone
fédératrice (Backbone Area)
• l’épine dorsale du système autonome: assure l’acheminement des données
entre les zones et l’interconnexion
• tout autre zone est connectée à la zone 0
AREA 4
AREA 2 AREA 3
AREA 1
AS X
R1
R7
ABR
R4
R8
ASBR
Aire 0.0.0.2 R3
R9
R10
R2
R11
ABR
Backbone area
Routeur désigné
• Réduction du nombre de routeurs par zone de diffusion
→Limitation du trafic de gestion
• Mais les échanges entre routeurs sont encore très nombreux.
• si N est le nombre de routeurs, le nombre de liens possibles entre ces routeurs est N (N – 1)/2
• le nombre d’annonces est donc de N (N – 1).
• Pour limiter ce trafic, OSPF définit des routeurs désignés (DR, Designated Router)
• assurent la diffusion des messages vers les routeurs de la zone
→ ne nécessite plus que N messages (1 message vers le DR et N – 1 message du DR vers les hôtes)
Routeur désigné
Sans Avec
N*(N-1)/2 N échanges
échanges
Routeur désigné
• Plusieurs routeurs peuvent être connectés au même LAN
• l’un d’entre eux est retenu pour servir d’intermédiaire pour l’échange des messages d’annonce
de liens entre les routeurs du LAN et les autres routeurs dans la zone.
• Routeur désigné « Designated Router »
• En plus un routeur de secours « Backup Designated Router ».
LAN
Ro u t eu r d és ig n é ( D R )
Chemins OSPF
• Trois types de chemins :
• Chemin intra-zone: le plus simple, puisque chaque routeur d’une zone connaît la topologie de
la zone
• Chemin inter-zone, il nécessite 3 étapes :
• Aller de la source vers l’épine dorsale (dans la zone source)
• Transiter à travers l’épine dorsale jusqu’à la zone de destination
• Transiter dans la zone destination: du routeur de bordure jusqu’à la destination
• Chemin inter-systèmes autonomes
• Nécessite un autre protocole de routage
• Bases de données maintenues sur un routeur :
• « Adjacencies Database » => les voisins
• « Topology Database » => toutes les routes
• « Forwarding Database » => les meilleures routes
Fonctionnement d’OSPF
• Le fonctionnement d’OSPF peut se décomposer en quatre étapes :
• Election du routeur désigné et de son backup;
• Synchronisation des données topologiques;
• Mise à jour des bases de données;
• calcul du chemin le plus court.
• OSPF met en œuvre trois sous-protocoles :
• Protocole Hello: utilisé entre deux routeurs adjacents pour synchroniser leur base de
connaissance ;
• Protocole d’échange : permet, lors de l’initialisation d un routeur, l’acquisition des entrées de
sa base de données ;
• Protocole d’inondation : utilisé par un routeur pour signaler la modification de l’état d’un
lien qui lui est rattaché.