Vous êtes sur la page 1sur 29

Routage dans l’Internet : OSPF, BGP

Abdelkader Lahmadi

LORIA - École des Mines de Nancy


{Abdelkader.Lahmadi}@loria.fr

Lahmadi (INRIA) Routage Janvier 2008 1 / 29


Plan

Lahmadi (INRIA) Routage Janvier 2008 2 / 29


Algorithmes de routage fondamentaux

L’algorithme du vecteur de distance (distance-vector routing) : un


noeud transmet à ses voisins le coût pour atteindre chaque noeud
du réseau
L’algorithme de l’état des liens (state-link routing) : un noeud
transmet à chaque noeud du réseau le coût pour atteindre ses
voisins.
Ces deux algorithmes supposent que chaque routeur connaît
l’adresse de ses voisins et le coût pour atteindre ceux-ci. Ce sont des
algorithmes distribués qui conviennent particulièrement bien à Internet.

Lahmadi (INRIA) Routage Janvier 2008 3 / 29


Problème de l’algorithme du vecteur de distance

Des problèmes apparaissent lorsque des liaisons sont


régulièrement indisponibles.
Lorsqu’un routeur distribue son DV, il cache la façon dont il a
calculé ce vecteur.
Illustration du problème du comptage jusqu’à l’infini ou problème
de la valeur infinie.

Lahmadi (INRIA) Routage Janvier 2008 4 / 29


Routage par information d’état des liens : Link State
Routing

Le problème principal du routage par vecteur de distance est qu’il


converge trop lentement.
Remplacé par un algorithme de routage entièrement nouveau.
Diverses variantes de cet algorithme sont trés en vogue
aujourd’hui.
L’idée sous-jacente du routage par informations d’état des liens
peut s’énoncer en 5 points. Tout routeur doit :
1 Découvrir ses voisins et apprendre leur adresse réseau respective.
2 Mesurer le temps d’acheminement vers chacun de ses voisins.
3 Construire un paquet spécial disant tout ce qu’il vient d’apprendre.
4 Envoyer ce paquet à tous les autres routeurs du sous-réseau.
5 Calculer le plus court chemin vers tous les autres routeurs.

Lahmadi (INRIA) Routage Janvier 2008 5 / 29


Routage par information d’état des liens : (1)Découvrir
ses voisins

La première tâche d’un routeur en cours d’initialisation est de


savoir qui sont ses voisins.
Il envoit sur chacune de ses ligne un paquet spécial HELLO et
attend la réponse.
Les routeurs aux extrémités de ces lignes répondent en donnant
des informations de routage (nom (unique), adresse IP,...)

Lahmadi (INRIA) Routage Janvier 2008 6 / 29


Routage par information d’état des liens : (2) mesurer
le temps d’acheminement

Cet algorithme exige que chaque routeur connaisse le temps


d’acheminement avec chacun de ses voisins.
Utilisation d’un paquet spécial ECHO.
Prendre en compte ou non la charge de la liaison (déclencher la
mesure de temps dès la mise en file d’attente ou dès que le
paquet atteint la tête de la file et qu’il est transmis).
Pour : utile lorsqu’un routeur dispose de deux lignes identique
pour atteindre une destination donnée.
Contre : Engendre des oscillations incessante au rythme de mise
à jour des tables.

Lahmadi (INRIA) Routage Janvier 2008 7 / 29


Routage par information d’état des liens : (3)
construire un paquet d’informations d’état de lien

Une fois les informations nécessaire aux routage obtenues,


chaque routeur construit un paquet spécial contenant les données
qu’il a collectées.
Ce paquet contient : id. du routeur src., seq number, âge du
paquet et la liste des routeurs voisins (+ le temps d’acheminement
associé).
Ces paquets peuvent être construit :
périodiquement
lorsqu’un événement significatif apparaît (ex : coupure de ligne)

Lahmadi (INRIA) Routage Janvier 2008 8 / 29


Routage par information d’état des liens : (4) Envoyer
les paquets d’informations d’état de lien

La faiblesse de cet algorithme est la diffusion fiable des paquets. Il


n’y a pas de concertation entre les routeurs ce qui peut conduire
à:
différente topologie du sous-réseau ;
donner lieu à des boucles ;
rendre certaine machines inaccessibles.
Distribution des paquets par inondation (contrôlé par l’id. et le
numéro de séquence).
Trois problèmes avec le seq number résolus grâce au champ âge.

Lahmadi (INRIA) Routage Janvier 2008 9 / 29


Routage par information d’état des liens : (5) Calculer
les nouvelles routes

Dés que le routeur a accumulé un jeu de paquets d’informations


d’état, il peut construire le graphe complet du sous-réseau.
Une ligne peut avoir deux représentations (une dans chaque
direction). Le routeur peut prendre la valeur moyenne des deux
valeurs ou les utiliser séparément.
L’algorithme de Dijkstra peut-être utilisé localement sur chaque
routeur. Les résultats sont inscrits dans les tables de routage et le
fonctionnement du sous-réseau peut reprendre.

Lahmadi (INRIA) Routage Janvier 2008 10 / 29


État des liens

La philosophie du routage par état des liens est de distribuer la


topologie du réseau et le coût de chaque liaison à travers tout le
réseau.
Ensuite chaque routeur calcule indépendamment les chemins
optimaux vers chaque destination.
Les routeurs communiquent entre eux par des LSP (link-state
packets) qui décrivent leurs liens.
Un LSP contient l’adresse du routeur, l’adresse de ses voisins et le
coût de chaque liaison avec ses voisins.
Un LSP reçu est stocké dans une « LSP database », et l’envoie à
chaque interface autre que celle par laquelle il est arrivé

Lahmadi (INRIA) Routage Janvier 2008 11 / 29


État des liens : Algorithme de Dijkstra

Algorithme du plus court chemin d’abord de Dijkstra (Short Path


First)
Théorie de graphes
Soit N l’ensemble des noeuds dans le graphe
I(i,j) poids sur l’arc entre noeud i et j
Si aucun arc entre i et j alors I(i,j)=∞
C(n) détermine le coût du chemin de s vers le noeud n

M={s}
Pour tout n dans N - {s}
C(n) = I(s,n)
Tant que (N different M)
M = M U {w} tel que C(w) est le minimum pour tout w dans (N-M)
Pour tout n dans (N-M)
C(n) = MIN (C(n), C(w)+I(w,n))

Lahmadi (INRIA) Routage Janvier 2008 12 / 29


Choix du coût des liaisons

On peut faire dépendre le coût d’une liaison de plusieurs


paramètres :
bande passante, coût financier, valeur fixé par l’admin., délai,
nombre de sauts, charge, MTU, fiabilité, ...
Dans le cas du routage dynamique, le coût d’une liaison peut-être
fonction de son encombrement (du point de vue du trafic).
On parle de métrique dynamique par opposition à la métrique
statique.
Métrique statique : poids de 1 à chaque liaison
Métrique dynamique de l’ARPAnet : longueur de la file d’attente du
routeur à lentrée de la liaison
Métrique dynamique de l’ARPAnet modifiée : capacités de liaisons

Lahmadi (INRIA) Routage Janvier 2008 13 / 29


Et le routage dans l’Internet ?

L’internet est découpé en systèmes autonomes (AS) comprenant


chacun un ensemble de routeurs sous une administration unique
Stanford 32, HP 71, MCI Worldcom 17373
whois -h whois.arin.net ASN "MCI Worldcom"
Au sein d’un AS, l’administrateur met en oeuvre un protocole de
routage interne IGP
Exemple : RIP (rfc 1058), OSPF (rfc 1247)
Les routeurs dans le même AS s’exécutent le même algorithme de
routage
L’algorithme de routage dans à l’intérieur d’un AS est appelé
intra-autonomous system routing protocol

Lahmadi (INRIA) Routage Janvier 2008 14 / 29


Routage dans l’Internet

Lahmadi (INRIA) Routage Janvier 2008 15 / 29


OSPF : Open Shorthest Path Protocol

Devenu un standard en 1990 (RFC 1247)


routage hiérarchique
la notion de zone pour diriger un paquet dans un AS.
Protocole supporter par de nombreux routeurs
Devient le protocole de routeurs internes principal.
Il est plus complexe à mettre en oeuvre que RIP.

Lahmadi (INRIA) Routage Janvier 2008 16 / 29


OSPF : caractéristiques

Lors de sa conception les exigences suivantes ont été incluses :


Utilisation d’un algorithme ouvert (Open Shortest ...)
Support de divers métriques (distance géo., délai, ... )
Algorithme dynamique capable de s’adapter automatiquement et
rapidement aux changements de topologies.
Nouveauté : Supporter le routage par type de service (ex : trafic
temps réel) en utilisant le champ ToS de IP.
Faire de l’équilibrage de charge (répartition sur plusieurs liens).
Support de systèmes hiérarchiques.
Un minimum de sécurité.

Lahmadi (INRIA) Routage Janvier 2008 17 / 29


OSPF : Division d’un AS en zone

Dans grand domaine, chaque changement provoque une diffusion


de la table de l’état des liens de tous les routeurs, ce qui provoque
Une consommation de bande passante importante
Une charge CPU importante sur les routeurs
Alors que la portée d’une modfication reste localisée
d’où l’idée de découper le domaine en aires : chaque aire est plus
simple, plus stable -> plus simple à traiter
Pour garder une cohérence globale, une aire principale
(backbone)
Relie toutes les aires entre elles
Connaît toutes les infos de routage, mais ne diffuse que des
condensés (en agrégeant les routes, si c’est possible)

Lahmadi (INRIA) Routage Janvier 2008 18 / 29


Zone principale, secondaires, terminales

Ce sont les interfaces des routeurs (les liens) qui sont positionnés
dans les différents zones :
network <network or IP address> <mask> <area-id>
L’aire 3 est une aire secondaire de type terminale (Stub). Ce type
d’aire a une gestion car l’unique point de sortie vers la zone
principale permet de gérer les routeurs en leur difuusant une
route par défaut
area <area-id> stub [no-summary]
Lahmadi (INRIA) Routage Janvier 2008 19 / 29
OSPF : Fonctionnement

Quand un routeur démarre, il envoie un message Hello sur toutes


ses lignes de sorties.
Les réponses qu’il reçoit lui permettent de savoir qui sont ses
voisins.
Fonctionnement par échange de messages d’information entre
routeurs adjacents.
En fonctionnement normal, chaque routeur transmet
périodiquement un message de Mise à jour d’état de lien à
chacun de ses routeurs adjacents.
Ce message indique l’état des liens et leurs poids à la base de
données topologique.
Demande un accusé de réception pour améliorer la fiabilité.
Chaque message a un numéro de séquence.
Le même type de message est émis lorsqu’une liaison se crée, se
coupe ou change de poids.

Lahmadi (INRIA) Routage Janvier 2008 20 / 29


BGP : Border Gatway Protocol

Topologie : L’Internet est un réseau maillé entre AS complexe


avec peu de structures
Autonomie des AS : chauqe AS définit le coût des liens avec des
philosophies/approches différentes. Il est impossible de trouver
les plus courts chemins
Confiance : des AS peuvent ne pas se faire confiance
mutuellement pour propager de "bonnes routes"
Opérateurs concurrents, nation en guerre...
Politiques : Des AS différents ont des objectifs différents, router
peu de sauts, utiliser un provider plutôt qu’un autre
La politique de routage est paramétrée manuellement dans
chaque routeur BGP - Elle ne fait pas partie du protocole lui
même : sous forme de contrats

Lahmadi (INRIA) Routage Janvier 2008 21 / 29


BGP pour le trafic de transit

Trois catégories de réseaux :


réseaux souches : une seule connexion au graphe BGP
réseaux multiconnectés : peuvent être utilisés pour le trafic de
transit (à l’exception de celui qu’il refuse)
réseaux de transit : épines dorsales disposés à acheminer les
datagrammes d’un tiers avec d’éventuelles restrictions

Lahmadi (INRIA) Routage Janvier 2008 22 / 29


BGP : communications

Deux routeurs BGP communiquent via des connexions TCP.


BGP : protocole à Path-Vector
poids des liaisons vers chaque destination
garde la trace du chemin exact utilisé
envoie à ses voisins le chemin exact qu’il utilise
Le routeur ignore tous les chemins passant par lui même.
Les routes restantes sont évalués en fonction de : la distance, la
stratégie de routage (si violé -> distance infinie).
La fonction d’évaluation ne fait pas partie du protocole BGP
(fonction choisie par l’admin. du système).

Lahmadi (INRIA) Routage Janvier 2008 23 / 29


Exemple de peering BGP (1)
Client connecté à un seul Fournisseur d’Accès Internet (FAI).
Seuls les routeurs de bord de l’AS sont figurés.
Les routeurs qui échangent leurs informations en BGP doivent
être directement connectés (liaison point à point ou LAN partagé).
L’utilisation de numéro d’AS privés est à éviter pour des AS
terminaux (clients) car une connexion à un deuxième AS de
transit (FAI) peut conduire à une configuration illégale.

Lahmadi (INRIA) Routage Janvier 2008 24 / 29


Exemple de peering BGP (2)
Client connecté à deux FAI
Faire passer tout son trafic par FAI1 (AS 200) et garder sa liaison
vers FAI2 (AS 300) en secours
Equilibrer son trafic entre FAI1 et FAI2
C’est le cas typique qui amène à utiliser le protocole de routage
BGP pour réagir dynamiquement en cas de défaillance de lien

Lahmadi (INRIA) Routage Janvier 2008 25 / 29


Exemple de peering BGP (3)
Client connecté à deux FAI par deux routeurs
Protection contre la défaillance de l’un d’entre eux ou l’un de ses
routeurs
Connexion BGP entre les routeurs de bord de l’AS 100
maintenir la cohérence entre les 2 routeurs qui doivent posséder
les mêmes informations de routage
En BGP la granularité du routage est l’AS !

Lahmadi (INRIA) Routage Janvier 2008 26 / 29


Exemple de peering BGP (4)

Client connecté à 3 FAI avec redondance sur l’un


Maillage complet de sessions I-BGP
Pour les autres AS, les 4 routeurs de bord de l’AS 100 sont vus,
du point de vue fonctionnel comme un seul routeur (avec 4
interfaces)

Lahmadi (INRIA) Routage Janvier 2008 27 / 29


BGP : Bilan

Les algorithme à DV font souvent un mauvais choix car ils sont


incapables de déterminer lesquels de leur voisins ont des routes
indépendantes.
BGP (Border Gateway Protocol) utilise un protocole à vecteur de
chemin (path vector).
Pas de boucles mais des tables de routage beaucoup plus grande.
Les routeurs utilisent TCP (contrairement à tous les autres
protocoles).
BGPv4 est complexe et difficile à maintenir.

Lahmadi (INRIA) Routage Janvier 2008 28 / 29


Références

Le routage, Jean-Patrick Gelas


Protcoles de routage : RIP, OSPF, BGP, Eric Fleury
Les réseaux, Guy Pujolle, ISBN : 2212110863
Computer Networks, Andrew Tanenbaum, Pearson Education
ISBN : 2744070017

Lahmadi (INRIA) Routage Janvier 2008 29 / 29