Info0702 – Réseaux
Informatiques!
Couche Réseau
• Routage
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é
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é
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 ...
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
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
Métriques!
▶ Types de mé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)
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)
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
Routage Dynamique!
▶ Fonctions de 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
Types de Routage!
▶ Vecteur de distance
▶ État de liens
Routage à Vecteur de 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
Algorithme Bellman-Ford
(1957)!
Initialisation des poids 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
Extension au cas Distribué!
▶ Version distribuée
▶ proposé par Ford et Fulkerson (1962)
▶ basé sur l’échange des vecteurs de distance
▶ construction de tous les plus courts chemins
Exemple d'Exécution!
▶ Initialisation en 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
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
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
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
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
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
Convergence!
▶ Définition
▶ reflet local 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
Compter jusqu'à l'Infini!
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
Routage à État des 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
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
Routage à États des Liens!
▶ Impératifs
▶ ressource CPU : recalcul des tables
▶ mémoire : stockage de la base de données
▶ Protocoles
▶ OSPF, IS-IS
Exemples de Protocoles de
Routage!
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
Algorithme!
▶ Toutes les 30 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
RIP : gestion des 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
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
Format des Messages!
Aucun
masque
envoyé
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
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
Format du Message!
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
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
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
Routage intérieur et exté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
BGP!
▶ LE SEUL protocole 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
Algorithme à Vecteur de
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
Exemples de Politiques BGP!
▶ 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

Introduction aux réseaux informatiques - Routage

  • 1.
  • 2.
    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
  • 12.
    Types de Routage! ▶Vecteur de distance ▶ État de liens
  • 13.
    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
  • 23.
  • 24.
    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
  • 28.
  • 29.
    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
  • 33.
  • 34.
    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
  • 36.
  • 37.
    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