7 / 46
Routage- Généralités!
▶ Nœud du réseau :
▶ canaux en entrée
▶ canaux en sortie
▶ élément logiciel déterminant le canal de sortie d’émission
(ré-émission) d’un paquet
▶ mode orienté connexion : routage lors de l’établissement
de la connexion
▶ mode non connecté : routage individuel des paquets
▶ Garanties à assurer
▶ Exactitude
▶ Équité
▶ Stabilité
3.
Rôles du routage!
▶Détermination des chemins
▶ définition du meilleur chemin à utiliser
▶ maintenance de tables de routage en fonction
d’une métrique particulière
▶ Commutation
▶ réception depuis une interface vers une autre
interface
▶ choix de la meilleure interface pour l’efficacité
4.
Routage et Protocoles!
▶Protocole routé
▶ protocole dont l’adresse de couche réseau
fournit suffisamment d’informations pour
permettre l’acheminement des paquets
▶ définition du format des champs d’un paquet
▶ IP, IPX ...
5.
Routage et Protocoles!
▶Protocole de routage
▶ support d’un protocole routé
▶ mise en place des mécanismes de partage
des informations de routage
▶ fonctionnement par échange entre les
routeurs de messages des protocoles de
routage
▶ protocoles associés à TCP/IP : RIP, IGRP,
EIGRP, OSPF, BGP
6.
Processus de Routage!
▶Emission depuis la source
▶ détermination par la source de la localisation de la
destination (même sous-réseau ou non)
- même sous-réseau : émission directe
- sinon encapsulation de la trame avec l’adresse de la
passerelle par défaut, puis émission à celle-ci
▶ Relais par une la passerelle / routeur
▶ réception du paquet
▶ analyse de la destination
- routeur final : distribution du message
- routeur intermédiaire : relais du paquet selon les tables de
routage
7.
Métriques!
▶ Types demétriques
▶ Bande passante (débit, mesuré en bits/s)
▶ Délai (temps d’acheminement d’un paquet)
▶ Charge (quantité de trafic par élément)
▶ Fiabilité (taux d’erreur sur chaque liaison/
équipement)
▶ Nombre de sauts (hop count) (nombre de routeurs
entre une source et une destination)
▶ Coût (basé sur une fonction de coût attribué par
l’administrateur)
8.
Routage Statique!
▶ Principe
▶À partir d'une connaissance préalable, calculer
les meilleur chemins "offline"
▶ Le réseau est vu comme un graphe
▶ Algorithmes (si nécessaire)
▶ Plus court chemin d'abord (Dijkstra)
▶ Limitations
▶ Manque de réactivité en cas de changement
des conditions (pannes, modifications, etc)
10.
Routage Dynamique!
▶ Histoire
▶ARPANet 1969-1979
- Liens de même capacité
- Routage basée sur la
charge des liens (file d'attente)
- Algorithme Bellman-Ford
▶ Internet 1979-1987
- Protocole à état de liens
- Algorithme Dijkstra
- Principe des zones
▶ Internet 1987-présent
- Séparation en protocoles extérieur et intérieurs
- BGP
- RIP, OSPF, EIGRP, IS-IS
11.
Routage Dynamique!
▶ Fonctionsde base
▶ gestion des tables de routage
▶ échange des informations avec les autres routeurs
▶ adaptation en cas de changement
▶ Constitution d’un protocole
▶ émission des mises à jour
▶ types d’informations contenues dans les mises à jour
▶ gestion des périodicités des émissions
▶ localisation des destinataires
Routage à Vecteurde Distance!
▶ Principe
▶ détermination de la direction et de la distance vers un lien de
l’inter-réseau
▶ transmission périodique entre les routeurs des tables de routage
▶ pas de connaissance globale de la topologie
▶ connaissance de :
▶ toutes les destinations
▶ toutes les distances
▶ du lien sortant pour les atteindre
▶ Protocoles à vecteur de distance
▶ RIP
▶ IGRP
▶ EIGRP
14.
Algorithme Bellman-Ford
(1957)!
Initialisation despoids de tous les sommets à l'infini
Initialisation du poids du sommet initial à 0
for (i=1 … n−1){
foreach (arc (u, v) de G){
paux = poids(u) + poids (arc(u, v))
if (paux < poids (v)) {
pred (v) = u
poids (v) = paux
}
}
}
foreach ( arc (u, v) du graphe) {
if ( poids (u) + poids (arc (u, v) <poids(v))) {
retourner faux
}
}
retourner vrai
15.
Extension au casDistribué!
▶ Version distribuée
▶ proposé par Ford et Fulkerson (1962)
▶ basé sur l’échange des vecteurs de distance
▶ construction de tous les plus courts chemins
16.
Exemple d'Exécution!
▶ Initialisationen A
▶ Émission de la table de A vers B et D
Exemple d’exécution
A B C
D E
Initialisation en A
A Liaison Coût
A locale 0
Emission de la table de A vers B , D
B Liaison Coût
B locale 0
)
B Liaison Coût
B locale 0
A A 1
D Liaison Coût
)
D Liaison Coût
D locale 0
Exemple d’exécution
A B C
D E
Initialisation en A
A Liaison Coût
A locale 0
Emission de la table de A vers B , D
B Liaison Coût
B locale 0
)
B Liaison Coût
B locale 0
A A 1
D Liaison Coût
D locale 0
)
D Liaison Coût
D locale 0
A A 1
Olivier Flauzac (URCA) Routage : le protocole RIP olivier.flauzac@univ-reims.fr
Exemple d’exécution
A B C
D E
Initialisation en A
A Liaison Coût
A locale 0
Emission de la table de A vers B , D
B Liaison Coût
B locale 0
)
B Liaison Coût
B locale 0
A A 1
D Liaison Coût
D locale 0
)
D Liaison Coût
D locale 0
A A 1
Olivier Flauzac (URCA) Routage : le protocole RIP olivier.flauzac@univ-reims.fr
17.
Exemple d'Exécution (suite)!
▶Émission de la table de B
vers A, C et E
Exemple d’exécution
A B C
D E
Initialisation en A
A Liaison Coût
A locale 0
Emission de la table de A vers B , D
B Liaison Coût
B locale 0
)
B Liaison Coût
B locale 0
A A 1
D Liaison Coût
)
D Liaison Coût
D locale 0
Exemple d’exécution (suite)
A B C
D E
Emission de la table de B vers A , C , E
A Liaison Coût
A locale 0
)
A Liaison Coût
A locale 0
B B 1
C Liaison Coût
C locale 0
)
C Liaison Coût
C locale 0
B B 1
A B 2
E Liaison Coût
E locale 0
)
E Liaison Coût
E locale 0
B B 1
A B 2
Olivier Flauzac (URCA) Routage : le protocole RIP olivier.flauzac@univ-reims.fr 9 / 23
Et ainsi de
suite…
sur le tableau
18.
Exemple d'Exécution (fin)!
▶Résultat
Exemple d’exécution
A B C
D E
Initialisation en A
A Liaison Coût
A locale 0
Emission de la table de A vers B , D
B Liaison Coût
B locale 0
)
B Liaison Coût
B locale 0
A A 1
D Liaison Coût
)
D Liaison Coût
D locale 0
Exemple d’exécution (fin)
A B C
D E
Résultat
A Liaison Coût
A locale 0
B B 1
C B 2
D D 1
E B 2
B Liaison Coût
A A 1
B locale 0
C B 1
D A 2
E B 1
C Liaison Coût
A B 2
B B 1
C locale 0
D E 2
E E 1
D Liaison Coût
A A 1
B A 2
C E 2
D locale 0
E E 1
E Liaison Coût
A B 2
B B 1
C C 1
D D 1
E locale 0
19.
Gestion de fautes!
▶Rupture de Liaison
▶ Mise à jour des tables de A et B
Gestion des fautes : rupture de liaison
A B C
D E
Mise à jour des tables par A et B
A Liaison Coût
A locale 0
B B inf
C B inf
D D 1
E B inf
B Liaison Coû
A A inf
B locale 0
C B 1
D A inf
E B 1
Gestion des fautes : rupture de liaison
A B C
D E
Mise à jour des tables par A et B
A Liaison Coût
A locale 0
B B inf
C B inf
D D 1
E B inf
B Liaison Coût
A A inf
B locale 0
C B 1
D A inf
E B 1
Gestion des fautes : rupture de liaison
A B C
D E
Mise à jour des tables par A et B
A Liaison Coût
A locale 0
B B inf
C B inf
D D 1
E B inf
B Liaison Coût
A A inf
B locale 0
C B 1
D A inf
E B 1
20.
Diffusion des Informations!
▶Mise à jour AàD
▶ Mise à jour BàC
▶ Mise à jour BàE
▶ Mise à jour DàA
▶ Mise à jour DàE
Mise à jour
A ! D donc
(D)
A A E locale E
1 inf 2 0 1
B ! C , B ! E
(C)
B B locale E E
inf 1 0 2 1
D ! A , D ! E
(A)
locale B D D D
0 inf 3 1 2
Olivier Flauzac (URCA) Routage : le protocole R
Mise à jour
A ! D donc
(D)
A A E locale E
1 inf 2 0 1
B ! C , B ! E
(C)
B B locale E E
inf 1 0 2 1
D ! A , D ! E
(A)
locale B D D D
0 inf 3 1 2
Olivier Flauzac (URCA) Routage : le protocole R
ffusion de “l’information”
se à jour
A ! D donc
(D)
A A E locale E
1 inf 2 0 1
B ! C , B ! E
(C)
B B locale E E
inf 1 0 2 1
(E)
B B C D locale
inf 1 1 1 0
D ! A , D ! E
(A)
locale B D D D
0 inf 3 1 2
(E)
D B C D locale
2 1 1 1 0
Olivier Flauzac (URCA) Routage : le protocole RIP olivier.flauzac@univ-reims.fr 12 / 23
Diffusion de “l’information”
Mise à jour
A ! D donc
(D)
A A E locale E
1 inf 2 0 1
B ! C , B ! E
(C)
B B locale E E
inf 1 0 2 1
D ! A , D ! E
(A)
locale B D D D
0 inf 3 1 2
Olivier Flauzac (URCA) Routage : le protocole R
fusion de “l’information”
se à jour
A ! D donc
(D)
A A E locale E
1 inf 2 0 1
B ! C , B ! E
(C)
B B locale E E
inf 1 0 2 1
(E)
B B C D locale
inf 1 1 1 0
D ! A , D ! E
(A)
locale B D D D
0 inf 3 1 2
(E)
D B C D locale
2 1 1 1 0
21.
Vers la Convergence!
▶Suite des échanges
▶ C → B , C → E
▶ E → B, E → C , E → D
▶ A → D
▶ B → C , B → E
▶ D → A , D → E
▶ E → B, E → C , E → D
▶ Convergence !
▶ Remarque : Convergence longue !
Gestion des fautes : rupture de liaison
A B C
D E
Mise à jour des tables par A et B
A Liaison Coût
A locale 0
B B inf
C B inf
D D 1
B Liaison C
A A
B locale
C B
D A
22.
Convergence!
▶ Définition
▶ refletlocal de l’état réel du réseau
▶ nécessité d’une convergence la plus rapide
possible
▶ Problèmes
▶ création de boucles de routage
- paquet qui circulent à l’infini dans les boucles
- surcharge du réseau par des paquets sans
destination existante
Convergence : solutions!
▶Métrique de mesure infinie
▶ “infini” : nombre maximum défini
▶ Horizon partagé (Split Horizon)
▶ pas de mise à jour émise pas la voie par
laquelle on a appris la modification
▶ Compteurs de retenue (Hold Downs)
▶ décalage entre la réception de l’information et
la mise à jour des tables
▶ permet à une information d’atteindre la totalité
du réseau avant modification
25.
Routage à Étatdes Liens!
▶ Principe
▶ Recréer l’ensemble de la topologie
- Gestion de la base de données de routeurs et de
leurs liens
▶ Moyens utilisés
- une base de données topologique
- algorithme du plus court chemin d’abord
- mises à jour déclenchées par modifications
topologiques
▶ Arbre du plus court chemin d’abord résultant
- table de routage déduite à partir de l’arbre
26.
Algorithme de Dijkstra(1959)!
Dijkstra (noeuds, fils, distance, début, fin)
for n in noeuds
n.parcouru = infini; n.précédent = 0
début.parcouru = 0
pasEncoreVu = nœuds
while pasEncoreVu != liste vide
n1 = minimum(pasEncoreVu) // Le noeud dans pasEncoreVu avec
parcouru le plus petit
pasEncoreVu.enlever(n1)
for n2 in fils(n1) // Les nœuds reliés à n1 par un arc
if n2.parcouru > n1.parcouru + distance(n1, n2)
n2.parcouru = n1.parcouru + distance(n1, n2)
n2.précédent = n1 // Pour aller à n2, faut passer par n1
chemin = liste vide
n = fin
while n != début
chemin.ajouterAvant(n)
n = n.précédent
chemin.ajouterAvant(debut)
return chemin
27.
Routage à Étatsdes Liens!
▶ Impératifs
▶ ressource CPU : recalcul des tables
▶ mémoire : stockage de la base de données
▶ Protocoles
▶ OSPF, IS-IS
Le protocole RIP!
▶RIP : Routing Information Protocol
▶ algorithme de Bellman-Ford
▶ utilisé pour les réseaux homogènes
▶ Caractéristiques
▶ mise à jour toutes les 30 secondes
▶ défaut de routage après 180 secondes sans
émissions (routes non accessibles)
▶ suppression des routes après 120 secondes sans
mise à jour
▶ métrique : nombre de sauts (hop count)
▶ la “valeur infinie” est de 16
30.
Algorithme!
▶ Toutes les30 secondes
▶ émission de la table de routage complète
▶ Réception d’une table de routage
▶ création d’une nouvelle route
- ajout de la nouvelle route
- incrémentation de la distance de 1
- vérification de la distance (<15)
- émission de la nouvelle table
- mise en place de la “tempo de route” (180 s)
▶ route existante avec une valeur inférieure
- modification de la route connue
- réinitialisation de la “tempo de route”
▶ route existante avec une valeur supérieure
- la valeur est ignorée
31.
RIP : gestiondes erreurs!
▶ Défaut de réception de tables (tempo de route)
▶ affectation de la distance infinie (16)
▶ mise en place du temporisateur de maintien (120 s)
▶ émission d’un vecteur infini
▶ Défaut de temporisation de maintien
▶ suppression de la route
32.
RIPv1!
▶ Généralités
▶ normaliséen 1988 (RFC 1058)
▶ routage de type IGP (routage intérieur)
▶ protocole d’échange UDP, port 520
▶ gestion très limitée des sous-réseaux
- Utilisation des masques par défaut des classes
Champs!
▶ Commande
▶ REQUEST(1) : demande spécifique
(démarrage, test ...)
▶ RESPONSE (2) : échange de tables
▶ Version : 1
▶ ID de la famille d’adresse
▶ 2 : adresses IP
35.
RIPv2!
▶ Généralités
▶ Publiéen 1993 (RFC 1388)
▶ Nouveautés
▶ gestion des masques des sous-réseaux
▶ Diffusion via multicast (224.0.0.9)
▶ Exploitation de formats de paquets identiques
de RIPv1
OSPF!
▶ Généralités
▶ basésur l’algorithme de plus court chemin (Dijkstra)
▶ protocole basé sur l'état des liens
- réponse apportée au temps de convergence de RIP
▶ exploite le principe d’adjacence
- deux routeurs sont adjacents sur leurs bases de données sont
synchronisées
▶ Notions élémentaires
▶ système autonome : réseaux qui utilisent un système de
routage commun, autorité d’administration unique
▶ notion de zone : partie du réseau avec une
connaissance limitée à la topologie de la zone locale
▶ zone backbone : zone d’interconnexion de routeurs,
connectés à toutes les zones
38.
OSPF : Principe!
▶Initialisation
▶ découverte des voisins
▶ initialisation des fonctions de coût
▶ Diffusion (inondation)
▶ émission à tous les routeurs des coûts du routeur
▶ Changement d’état
▶ réception d’une modification
▶ diffusion de la modification
▶ Construction
▶ Construction de la carte du réseau
▶ Calcul des plus courts chemins
39.
Comparaison!
Vecteur de distancesÉtats des Liens
Vue de la topologie du réseau à
partir des voisins
Vue commune et complète de la
topologie du réseau
Ajout de vecteur de distance d’un
routeur à l’autre
Calcul des chemins les plus court
vers les autres routeurs
Mise à jour périodique fréquente
(convergence lente)
Mise à jour déclenchée par les
événements (convergence rapide)
Transmission des copies de tables
de routage aux routeurs voisins
Transmission des informations de la
base de données topologique
40.
Routage intérieur etextérieur!
▶ Routage intérieur
▶ IGP : Interior Gateway Protocol
▶ routage dans un système autonome
▶ RIP, IGRP, EIGRP, OSPF, IS-IS
▶ Routage extérieur
▶ EGP : Exterior Gateway Protocol
▶ communication entre les systèmes autonomes
▶ BGP
41.
BGP!
▶ LE SEULprotocole extérieur sur Internet
▶ Première version 1989
▶ Version actuelle (BGPv4) – 2006
▶ Principe
▶ Relier des "systèmes autonomes" plutôt que des routeurs
- Simplicité, diminution des tables de routage
- Les AS sont officiellement désignés
▶ Permettre un contrôle sur les choix de routage
42.
Algorithme à Vecteurde
Chemins!
▶ Construction d'un graphe de AS
▶ Principe similaire à celui de SPF
▶ Définition du chemin le plus adapté
▶ À la base : plus courte distance
▶ Autres paramètres
- Préférences locales
- Suggestions aux voisins
- Équilibrage
- Coût
43.
Exemples de PolitiquesBGP!
▶ Ne pas laisser le trafic vers "youtube.com"
passer par notre réseau
▶ Ne jamais mettre l'Irak sur une route prenant la
source au Pentagone
▶ Suggérer aux voisins de prendre le lien moins
rapide
▶ On évite de surcharger notre lien vers le client
▶ etc