Académique Documents
Professionnel Documents
Culture Documents
CHAPITRE 6 OSPF
6.1 6.2 6.3 6.4 6.5 6.6 CARACTERISTIQUES GENERALES BASES DE DONNEES MESSAGES ET PROCEDURES PROCEDURE HELLO PROCEDURE ECHANGE PROCEDURE INONDATION
iii
22 24 25 27 34 35 36 37 39 54 63 65 67 69 611 73 75 84 92
iv
TABLEAUX
21 51 61 Terminologie des noeuds Mtriques de base dIGRP Optimisation du nombre darcs par OSPF 21 55 62
Chapitre 1 INTRODUCTION
Ce document est une introduction au routage. Pour des raisons de cohrence et defcacit, lessentiel des exemples concerne le routage IP. Le livre de PERLMAN (1992) peut tre consult pour ltude du routage OSI. Le chapitre 2 prsente les concepts de base indispensables (quest-ce quun routeur, un protocole de routage, un domaine de routage...). Le chapitre 3 prsente les principaux algorithmes de plus court chemin utiliss dans les protocoles de routage. Les chapitres 4, 5, 6 et 7 traitent plus prcisment du routage IP. La transmission dun paquet et les principaux protocoles de routage (RIP, IGRP, integrated IS-IS, OSPF, BGP) y sont dcrits brivement. IP est ici synonyme de IPv4 par opposition IPv6. En conclusion, les chapitres 8 et 9 prsentent respectivement le routage multicast et le routage par contraintes, 2 volutions technologiques majeures qui vont inuencer les protocoles de routage court terme. Un glossaire la n du document explicite les nombreux acronymes utiliss.
INTRODUCTION 11
Comme lindique le tableau 21, les noms attribus aux systmes terminaux et intermdiaires diffrent selon larchitecture.
Dans ce qui suit, nous utiliserons les termes gnriques de host et routeur pour dsigner respectivement un systme terminal et un systme intermdiaire, et cela quelque soit larchitecture. La gure 21 illustre la distinction entre host et routeur dans le cas de larchitecture TCP/IP. Le routeur y apparait comme une passerelle de niveau Internet.
CONCEPTS DE BASE 21
HOST A
ROUTEUR IP
HOST B
APPLICATION
APPLICATION
22 CONCEPTS DE BASE
Ces processes sont en comptition permanente pour les ressources mmoire et CPU du routeur. La commutation de paquets reprsente la nalit du routeur. Les paquets commuter contiennent des donnes destination de hosts distants. Ces paquets sont reus sur un port dentre i, forwards vers un port de sortie j et enn mis sur ce port j. Le forwarding ncessite la consultation dune table de routage qui indique le port de sortie correspondant ladresse de destination du paquet. La table de routage est aussi appele Forwarding database. La table de routage peut tre mise jour de 2 manires : manuellement La mise jour manuelle est effectue par lingnieur rseau travers le process de gestion (Telnet, SNMP...). On parle alors de routage statique. dynamiquement La mise jour dynamique est effectue par un protocole de routage travers le process de routage. On parle alors de routage dynamique.
Le routage statique permet llimination du process de routage ce qui libre certaines ressources mmoire et CPU. Cependant, toute modication de la topologie du rseau (ajout, supression ou panne dlments du rseau) doit tre immdiatement prise en compte par lingnieur rseau; celui-ci doit alors modier la table de routage en consquence sous peine de dysfonctionnements plus ou moins graves (trous noirs). Le routage dynamique dtecte toute modication de la topologie du rseau et la rpercute en recalculant la table de routage. La dtection de la modication de la topologie de rseau et le recalcul de la table de routage qui en dcoule sont dautant plus rapides que le protocole de routage est efcace. On parle alors de vitesse de convergence. Le process de commutation de paquets se limite aux seules couches les plus basses de larchitecture mais ce nest pas forcment le cas des processes de routage et de gestion (gure 23).
CONCEPTS DE BASE 23
REC
GESTION
DONNEES
ROUTAGE
MAJ DYNAMIQUE
FORWARDING
TABLE DE ROUTAGE
MAJ MANUELLE
EMI
24 CONCEPTS DE BASE
ARP ISIS IP
1 2
ICMP IGMP
88 89
IGRP OSPF
TCP
20, 21 23
FTP TELNET
17
UDP
520 161
RIP SNMP
CONCEPTS DE BASE 25
26 CONCEPTS DE BASE
IGPl2 AS1
EGP
IGPl1
IGPl1
IGPl1
IGPl1
IGPl1
IGPl1
AREA1 AS2
AREA2
CONCEPTS DE BASE 27
Arbre recouvrant de poids minimal Un arbre recouvrant de poids minimal est un arbre recouvrant dont les chemins reliant le noeud racine aux autres noeuds ont un cot minimal.
Grce ces dnitions, nous pouvons afrmer que tout rseau peut tre modlis comme un graphe connect, orient et pondr. En choisissant un routeur comme noeud racine, on peut alors calculer larbre recouvrant de poids minimal pour le rseau. On obtient ainsi lensemble des plus courts chemins reliant ce routeur lensemble des destinations. Cest la dmarche suivie par les protocoles de routage. Les algorithmes de calcul de plus courts chemins les plus utiliss par les protocoles de routage sont ceux de BELLMAN-FORD (voir paragraphe 3.2) et de DIJKSTRA (voir paragraphe 3.3). Les protocoles de routage utilisant lalgorithme de BELLMAN-FORD sont dits de type Distance-Vector. Les protocoles de routage utilisant lalgorithme de DIJKSTRA sont dits de type Link-State. Le livre de BERTSEKAS et GALLAGER (1992) peut tre consult pour tudier les fondements mathmatiques de ces algorithmes.
Seule la version distribue appele galement algorithme de FORD-FULKERSON est utilise par les protocoles de routage de type Distance-Vector. Dans la version centralise, chaque noeud connait la topologie du rseau et calcule larbre recouvrant de poids minimal dont il est la racine selon la mthode illustre par la gure 31. N et M tant respectivement le nombre de noeuds et le nombre darcs, on dmontre que lalgorithme converge au plus en N-1 tapes et que sa fonction de complexit est O(MxN). Dans la version distribue, les noeuds nont pas connaissance de la topologie du rseau. Chaque noeud calcule ses distances minimales lensemble des noeuds du rseau grce aux messages que lui envoient ses noeuds voisins. Ces messages sont appels vecteurs de distance (routing vectors) et contiennent un ou plusieurs couples (noeud, distance). De fait, le noeud racine ne supporte pas lintgralit du calcul puisque les noeuds voisins lui fournissent des rsultats intermdiaires.
Les gures 32 et 33 illustrent la faon dont seffectuent lchange de messages et le calcul, respectivement dans le cas dun dmarrage froid et dans le cas dune mise jour conscutive une modication de la topologie du rseau. Comme pour la version centralise, on dmontre que la fonction de complexit est O(MxN). Cependant, lalgorithme converge parfois en plus de N-1 tapes. Cela peut se produire lors dune modication de la topologie du rseau. Le cas le plus grave appel comptage linni est illustr par la gure 34. De nombreux travaux ont t effectus en vue dacclrer la vitesse de convergence de la version distribue de lalgorithme de BELLMAN-FORD. Aucune des solutions proposes nest rellement satisfaisante. Certaines solutions sont inefcaces dans certaines congurations; dautres sont trop complexes mettre en oeuvre. Nanmoins, voici quelques-unes des solutions les plus utilises par les concepteurs de protocole de routage de type Distance-Vector : Mise jour dclanche Un vecteur de distance est envoy aux noeuds voisins toutes les T1 secondes. Un arc est considr comme rompu par un noeud lorsque celui-ci na reu aucun vecteur de distance depuis T2=nT1 secondes. Ce noeud envoie alors immdiatement son vecteur de distance modi sans attendre lexpiration de T1. Hold-on Un noeud ignore pendant n secondes les vecteurs de distance annonant la rupture dun arc. Split horizon Un noeud ne propage pas les couples (noeud, distance) provenant dun arc sur cet arc. Split horizon with poison reverse Un noeud propage les couples (noeud, distance) provenant dun arc sur cet arc en donnant une valeur innie aux distances. Route poison Un noeud nincrmente pas la distance un noeud avant davoir reu un 2me vecteur en conrmation sur le mme arc.
B 1 A 4 C 1 2
8 4 2
A D
B C E
A A A=0 A A B D
D 0
L loc
B B B=0
D 0
L loc
C C C=0
D 0
L loc
D D D=0
D 0
L loc
E E E=0
D 0
L loc
D 0 1 1
L loc ba da
B B A C E
D 0 1 1 1
L loc ab cb eb
C C B E
D 0 1 1
L loc bc ec
D D A E
D 0 1 1
L loc ad ed
E E B C D
D 0 1 1 1
L loc be ce de
A A B C D E
D 0 1 2 1 2
L loc ba ba da da
C C A B D E
D 0 2 1 2 1
L loc bc bc ec ec
D D A B C E
D 0 1 2 2 1
L loc ad ed ed ed
A D
B C E
A A B C D E
B B A C D E
C C A B D E
D 0 2 1 2 1
L loc bc bc ec ec
D D A B C E
D 0 1 2 2 1
L loc ad ed ed ed
E E A B C D
D 0 2 1 1 1
L loc de be ce de
A A B C D E
D 0 3 3 1 2
L loc da da da da
B B A C D E
D 0 3 1 2 1
L loc eb cb eb eb
C C A B D E
D 0 3 1 2 1
L loc ec bc ec ec
D D A B C E
D 0 1 2 2 1
L loc ad ed ed ed
E E A B C D
D 0 2 1 1 1
L loc de be ce de
A D
B C E
A A B C D E
D 0 3 3 1 2
L loc da da da da
D D A B C E
1er cas : RV de D arrive sur A avant lenvoi de RV de A => CONVERGENCE 2eme cas : RV de D arrive sur A apres lenvoi de RV de A
A A B C D E
D D A B C E
D 0 1 4 4 3
L loc ad ad ad ad
B 1 A 4 C 1 2
8 4 2
PERLMAN (1992) considre que les 2 premiers critres ne sont pas dterminants. Le dysfonctionnement dun routeur a des effets aussi nfastes pour les 2 algorithmes. En moyenne, les 2 algorithmes consomment des quantits de mmoire, CPU et bande passante comparables. Les 2 algorithmes se distinguent surtout par leur vitesse de convergence. La convergence est toujours assez rapide avec les protocoles de routage de type Link-State. En opposition, la convergence peut tre trs lente avec les protocoles de routage de type Distance-Vector, par exemple lors dun comptage linni.
Le host metteur sait, grce son subnet mask, sil peut atteindre directement le host destinataire ou sil doit passer par un routeur. Cette information couple au type de liaison de donnes de son interface IP dtermine les oprations restantes. Liaison PPP directe ou Liaison PPP ncessitant un routeur : passer le paquet IP lentit PPP encapsuler le paquet IP dans une trame PPP ayant ladresse de broadcast FF comme adresse destinataire
Liaison Ethernet directe : passer le paquet IP lentit Ethernet encapsuler le paquet IP dans une trame Ethernet dont ladresse MAC du host destinataire a t pralablement dtermine laide du protocole ARP
passer le paquet IP lentit Ethernet encapsuler le paquet IP dans une trame Ethernet dont ladresse MAC du routeur destinataire a t pralablement dtermine laide du protocole ARP
Dans ce dernier cas, le host doit imprativement connaitre ladresse IP dun routeur sur le segment Ethernet. Pour ce faire, le host peut utiliser une des 3 mthodes suivantes : utiliser un chier de conguration Cette mthode existe dans toutes les implmentations TCP/IP. Le chier de conguration est lu au dmarrage du logiciel rseau. Linconvnient majeur de cette mthode est la ncessit pour lingnieur rseau de maintenir manuellement le chier. dcouvrir le(s) routeur(s) en coutant les messages de routage Cette mthode existe dans la plupart des implmentations TCP/IP mais uniquement pour certains protocoles de routage (RIP). Linconvnient majeur de cette mthode est la rigidit impose dans lutilisation des protocoles de routage. dcouvrir le(s) routeur(s) grce ICMP Cette mthode dcrite dans le RFC 1256 nexiste que dans quelques implmentations TCP/IP. Cest pourtant la mthode la plus satisfaisante. Les routeurs sannoncent aux hosts sur le segment Ethernet par lenvoi priodique dun message ICMP appel Router Advertisement. Le paquet IP contenant ce message a comme adresse destinataire soit ladresse multicast 224.0.0.1 identiant lensemble des hosts du segment Ethernet, soit ladresse broadcast 255.255.255.255. La mthode retenue dans IPv6 sinspire du RFC 1256.
Notons que ces 3 mthodes nassurent aucunement que le routeur choisi par le host soit le meilleur pour atteindre une destination donne. Si le host ne choisit pas le meilleur routeur, alors il doit recevoir de la part de celui-ci un message redirect ICMP indiquant quel est le meilleur routeur.
4.2 ROUTEUR
Le routeur recevant le paquet/fragment IP effectue toujours les oprations successives suivantes : passer le paquet IP lentit IP calculer et vrier le checksum de lentte vrier la version IP
TTL>0 : TTL=TTL-1 excuter les options si ncessaire dterminer le port de sortie fragmenter le paquet/fragment IP si ncessaire calculer et crire le nouveau checksum
Le routeur sait, grce son subnet mask, sil peut atteindre directement le host destinataire ou sil doit passer par un routeur. Comme pour le host metteur, cette information couple au type de liaison de donnes de son interface IP dtermine les oprations restantes. Liaison PPP directe ou Liaison PPP ncessitant un routeur : passer le paquet/fragment IP lentit PPP encapsuler le paquet/fragment IP dans une trame PPP ayant ladresse de broadcast FF comme adresse destinataire
Liaison Ethernet directe : passer le paquet/fragment IP lentit Ethernet encapsuler le paquet/fragment IP dans une trame Ethernet dont ladresse MAC du host destinataire a t pralablement dtermine laide du protocole ARP
Liaison Ethernet ncessitant un routeur : passer le paquet/fragment IP lentit Ethernet encapsuler le paquet/fragment IP dans une trame Ethernet dont ladresse MAC du routeur destinataire a t pralablement dtermine laide du protocole ARP
5.1 RIP
RIP est le protocole de routage intra-domaine IP le plus ancien. Il est le rsultat de travaux de luniversit de Berkeley visant adapter le protocole de routage XNS IP. Il est implment dans le process routed. Initialement fourni dans Unix BSD, routed est depuis port sur de nombreuses plateformes. RIP existe en 2 versions. La version 1 est dcrite par le RFC 1058 et la version 2 par le RFC 1388. Son anciennet et sa simplicit de mise en oeuvre en font encoreaujourdhui le protocole de routage IP le plus rpandu. Dun point de vue architectural, RIP est une application (voir gure 23). Les ports UDP source et destination ont la valeur 520. RIP est un protocole de routage de type Distance-Vector des plus rudimentaires : Mtrique pauvre Le cot dun arc est x 1. Par consquent, le cot dun chemin est gal au nombre darcs traverss. Ce cot ne peut pas dpasser la valeur 15, soit 15 arcs traverss. La valeur 16 est synonyme dinni. Path splitting impossible Lquilibrage de charge entre 2 chemins de mme cot nexiste pas. RIP choisit arbitrairement un des 2 chemins. Routage de niveau 2 impossible Le domaine de routage ne peut pas tre dcoup en plusieurs areas.
Un noeud RIP peut tre congur comme actif ou passif. Un noeud actif coute les messages RIP, met jour sa table de routage et met ses propres messages RIP. Un noeud passif coute les messages de routage, met jour sa table de routage mais nmet aucun message RIP.
Les routeurs sont toujours des noeuds RIP actifs. Les hosts peuvent ne pas tre des noeuds RIP ou bien tre des noeuds RIP actifs ou passifs. Lorsquun host prsent sur un LAN est un noeud RIP, il dcouvre le(s) routeur(s) voisin(s) grce lcoute des messages RIP. Dans le cas contraire, il faut soit lui indiquer manuellement le(s) routeur(s) dans sa table de routage, soit quil utilise la mthode dcrite par le RFC 1256 (voir paragraphe 4.1). Un message RIP peut tre une requte ou une rponse. Une requte est une demande dinformations mise par un noeud RIP actif par exemple lors de son dmarrage. Les rponses sont envoyes en rponse une requte mais aussi lors dune mise jour dclanche ou dune mise jour priodique (toutes les T1 secondes). La version 1 de RIP se caractrise par : Adresse IP destinataire = Adresse de broadcast T1 = 30 secondes T1 tant le timer de mise jour priodique. T2 = 3 mn T2 tant la dure de vie maximale dun enregistrement dans la table de routage. Mise jour dclanche La mise jour dclanche nest pas immdiate pour viter un orage de broadcasts. Le noeud actif effectue un tirage au sort entre 1 et 5 secondes et attend la dure choisie avant dmettre. Split horizon Poison reverse
Le format du message RIP version 1 est donn par la gure 51. Le champ Command indique si le message est une requte (Command=1) ou une rponse (Command=2). Le champ Version indique RIP version 1 (Version=1). Le champ AFI indique IPv4 (AFI=2). La taille maximale dun message RIP version 1 est de 512 octets ce qui correspond au plus 25 couples (Address, Metric). Si le vecteur de distance est constitu de plus de 25 couples (Address, Metric), le noeud actif met plusieurs messages successifs. RIP version 2 apporte plusieurs amliorations importantes : Scurit Un mcanisme dauthentication par mot de passe est propos en option. Ce mcanisme introduit une scurit limite. Message Ladresse de broadcast est remplace par ladresse multicast 224.0.0.9 ce qui rduit les situations dorage de broadcast. IGMP nest pas ncessaire car ladresse multicast ne sert quen local. Support de prxes dadresse IP de longueur variable Le mask associ ladresse IP est propag en dehors du network ce qui permet la fois du routage de subnets et de supernets (CIDR).
Notication de routes externes La notication de routes externes permet de propager des routes en dehors du domaine de routage. Ces informations peuvent tre utilises par un protocole de routage inter-domaine dans les routeurs inter-domaines.
Le mcanisme dauthentication et lutilisation dune adresse multicast entrainent la perte dinteroprabilit entre les 2 versions de RIP. Le format du message RIP version 2 est donn par la gure 51. Le champ Command prend les mmes valeurs quen version 1. Le champ Version indique RIP version 2 (Version=2). Le bloc dauthentication se dcompose en un champ cod FFFF, le champ Type qui indique une authentication par mot de passe (Type=2) et le champ Authentication qui contient le mot de passe. Le champ AFI prend la mme valeur quen version 1. Le champ RouteID indique une route externe pour lEGP. Le bloc de routage se dcompose en Address, Subnet mask, Relay et Metric.
RIP version 1
RIP version 2
Reserved Reserved
Reserved Type
IP Address Reserved Authentification Reserved Metric IP Address Subnet Mask Relay Metric
5.2 IGRP
IGRP est un protocole de routage antrieur integrated IS-IS et OSPF. Il a t conu par Cisco pour remdier aux dfauts les plus criants de RIP. IGRP existe en 2 versions (IGRP version 2 est aussi appele EIGRP). IGRP tant un protocole de routage propritaire (brevets Cisco), il est actuellement progressivement abandonn au prot dOSPF ou mme dintegrated IS-IS. Dun point de vue architectural, chaque message IGRP est encapsul dans un paquet IP (voir gure 23). Le champ Protocol du paquet IP a la valeur 88. IGRP est un protocole de routage de type Distance-Vector beaucoup plus sophistiqu que RIP : Mtrique composite La mtrique est une fonction de 4 mtriques de base notes D, B, F et L (tableau 51). En jouant sur les coefcients de cette fonction, il est possible de pondrer le rle respectif de chaque mtrique de base dans la mtrique rsultante. Path splitting Lorsquune destination peut tre atteinte par plusieurs chemins de cots diffrents, la charge est partage entre ces chemins en fonction de leurs cots respectifs. Par exemple, sil existe 2 chemins A et B de cots respectifs 1 et 3 pour une destination donne, 3 paquets IP sont envoys via A pour un paquet via B.
IGRP version 1 lutte beaucoup plus efcacement que RIP contre les situations de comptage linni. Le protocole introduit une priode de quarantaine lors dune mise jour ce qui limine la plupart des situations de comptage linni. Nanmoins, cela se traduit aussi par une dgradation de la vitesse de convergence dans les situations sans comptage linni. IGRP version 1 a les caractristiques gnrales suivantes : T1=90 secondes et T2=3mn Mise jour dclanche Split horizon
IGRP version 2 apporte plusieurs amliorations majeures : Routage de niveau 2 Le domaine de routage peut tre dcoup en plusieurs areas par agrgation de prxes dadresses. Notication de routes externes La notication de routes externes permet de propager des routes en dehors du domaine de routage. Ces informations peuvent tre utilises par un protocole de routage inter-domaine dans les routeurs inter-domaines. Suppression des situations de comptage linni Les situations de comptage linni disparaissent totalement grce un algorithme appel DUAL (GARCIA-LUNES ACEVES, 1989). Support de prxes dadresse IP de longueur variable Le mask associ ladresse IP est propag en dehors du network ce qui permet la fois du routage de subnets et de supernets (CIDR).
Le contre-coup de ces amliorations est une forte augmentation de la complxit du protocole et donc des ressources consommes sur le routeur. Notons que IGRP version 2 peut fonctionner dans un mode dgrad assurant linteroprabilit entre les 2 versions.
Dun point de vue architectural, les messages IS-IS sont des paquets OSI CLNP (voir gure 23). A la diffrence des paquets IP et ARP, ces paquets sont encapsulables dans des trames IEEE 802.3 et non pas Ethernet V2. Ceci explique en partie pourquoi IS-IS na t port que tardivement dans gated. Lanalyse comparative dIS-IS et OSPF dans les grands rseaux IP est encore aujourdhui le sujet de dbats souvent polmiques (pour une analyse sereine, voir PERLMAN (1991) et SHARON (2001)). LIETF prconisant OSPF, les entreprises choisissent dsormais majoritairement OSPF sauf lorsque leurs rseaux sont la foisIP et OSI. Lorsque le rseau est la fois IP et OSI, lingnieur rseau peut adopter une des 2 stratgies suivantes : Ship-in-the-night Chaque routeur comporte 2 ensembles (process de routage, Link-State database, Forwarding database) distincts. Un ensemble est utilis pour router IP par exemple grce OSPF et lautre pour router OSI grce IS-IS. Integrated Chaque routeur ne comporte quun seul ensemble (process de routage, Link-State database, forwarding database). Cet ensemble est utilis pour router IP et OSI grce IS-IS.
Dans la pratique, lingnieur rseau adopte le plus souvent la stratgie Integrated parce quelle est moins consommatrice de ressources sur les routeurs et surtout parce quelle diminue de moiti le travail de conguration et de gestion des routeurs.
Chapitre 6 OSPF
OSPF 61
Support de prxes dadresse IP de longueur variable Le mask associ ladresse IP est propag en dehors du network ce qui permet la fois du routage de subnets et de supernets (CIDR).
OSPF introduit les concepts de noeud terminal et de pseudo-node pour simplier la topologie du rseau (gure 61 et tableau 61). Cette simplication diminue le temps de calcul du spanning tree (proportionnel MlogN) et la taille de la Link-State database (M link states). Les noeuds terminaux sont les subnetworks qui portent le(s) host(s) et pas les hosts euxmmes. Le routeur ne prend en compte que la partie NetId-SubnetId de ladresse de destination du paquet IP. Un LAN est assimil un pseudo-node lorsquil porte N routeurs permettant datteindre des hosts extrieurs lui. Le pseudo-node participant activement au protocole, un des routeurs du LAN est lu pour assurer les fonctions du pseudo-node. Ce routeur est appel routeur design. Un second routeur est lu routeur backup. Ce routeur prend automatiquement la place du routeur dsign lorsque celui-ci tombe.
62 OSPF
OSPF 63
Chaque annonce est constitue dun entte de format commun aux 5 types suivi du ou des link states dont le format dpend du type de lannonce. La gure 62 dcrit les 20 octets de lentte. Le champ Age exprim en secondes coules est lage de lannonce. Le champ Options a le format 000000ET. Le bit E arm indique que le routeur metteur est capable de notier des routes externes. Le bit T desarm indique lutilisation de la seule mtrique de base. Le champ Type a une valeur comprise entre 1 5 et indique le type de lannonce. Le champ RouterID est une des adresses IP du routeur metteur. Le champ LinkStateID est un identieur de lenregistrement; il est choisi par le routeur metteur (en gnral une adresse IP). Le champ SeqNumber est le numro de squence du message lorigine de lannonce (numrotation en sucette). Le champ Checksum est un checksum identique celui dIP et porte sur la totalit de lannonce. Le champ Length exprim en octets est la longueur totale de lannonce. La combinaison des champs Type, RouterID et LinkStateId identie lannonce de manire unique. Le champ Age permet dliminer une annonce devenue obsolte. Le champ SeqNumber permet de choisir entre 2 versions dune mme annonce celle qui est la plus rcente.
64 OSPF
AGE
TYPE
CHECKSUM
LENGTH
OSPF 65
Chaque message commence par un entte de format commun aux 5 types. La gure 63 dcrit les 24 octets de cet entte. Le champ Version est la version dOSPF utilise (Version=2). Le champ Type a une valeur comprise entre 1 5 et indique le type du message. Le champ Length exprim en octets est la longueur totale du message. Le champ RouterID est ladresse IP du routeur metteur. Le champ AreaID est larea du routeur metteur (0 tant rserv au backbone). Le champ Checksum est un checksum identique celui dIP et porte sur la totalit du message. Le champ Auth indique le mcanisme dauthentication utilis (0=rien, 1=mot de passe). Le champ Data contient les donnes dauthentication (le mot de passe quand Auth=1). OSPF est un protocole de routage complexe qui se compose de 3 procdures distinctes : Hello Echange Inondation
66 OSPF
VERSION
LENGTH
CHECKSUM
AUTH
DATA
OSPF 67
Pour ce faire, chaque routeur envoie toutes les HelloInt secondes un message Hello sur chacune de ses liaisons de donnes. Ce message Hello est encapsul dans un paquet IP dont ladresse de destination est une adresse multicast identiant tous les routeurs OSPF sur la liaison de donnes. La gure 64 dcrit le message Hello. Le champ SubnetMask est le subnet mask de linterface IP du routeur metteur. Le champ Options est identique au champ Options de lentte dune annonce (gure 62). Le champ Priority a une valeur comprise entre 0 et 255 et indique la priorit du routeur metteur. Le champ DeadInt exprim en secondes est le temps au bout duquel un routeur voisin ne stant pas manifest est considr comme mort. Le champ DesignatedID est ladresse IP du routeur dsign (0=aucun lu). Le champ BackupID est ladresse IP du routeur backup (0=aucun lu). Les champs Neighbor sont les adresses IP des routeurs voisins. Une liaison de donnes est considre comme oprationnelle si des messages Hello ayant le mme bit E ont pu tre changs dans les 2 sens avant DeadInt secondes. Un routeur peut se proposer soit comme routeur dsign, soit comme routeur backup. Sil y a plusieurs candidats au poste de routeur backup, le routeur lu est celui qui a la valeur Priority-RouterID la plus leve parmi ces candidats. Sil ny a pas de candidats au poste de routeur backup, llection a lieu parmi tous les routeurs. Sil y a plusieurs candidats au poste de routeur dsign, le routeur lu est celui qui a la valeur Priority-RouterID la plus leve parmi ces candidats. Sil ny a pas de candidats au poste de routeur dsign, le routeur backup est promu routeur dsign et un autre routeur est lu routeur backup la place vacante. Si le routeur dsign disparait, le routeur backup est promu routeur dsign et un autre routeur backup est lu la place vacante. Si le routeur backup disparait, un autre routeur est lu routeur backup la place vacante. Lorsquun routeur apparait sur une liaison de donnes, il sannonce immdiatement par des messages Hello. Cependant, il sinterdit dtre candidat aux postes de routeur dsign et routeur backup durant DeadInt secondes.
68 OSPF
OSPF 69
Llection du matre et de lesclave est triviale. Le routeur dsirant initier un change envoie un message DD vide son voisin. Ce message DD a I=1, M=1, S=1 et un SeqNumber "unique". Le routeur acquite par un message DD vide avec I=1, M=1, S=0 et le mme SeqNumber. Le routeur linitiative de lchange est alors le matre et le routeur voisin lesclave. Si 2 routeurs initient simultanment un change entre eux, le routeur ayant ladresse IP la plus grande devient le matre. Une fois matre et esclave lus, le routeur matre envoie au routeur esclave des messages DD avec I=0, M=1 (M=0 uniquement pour le dernier message), S=1, un SEqNumber qui sincrmente et les Headers provenant de sa Link-State database. Le routeur esclave acquite chaque message DD reu par un message DD avec I=0, M=1 (M=0 uniquement pour le dernier message), S=0, le mme SeqNumber que celui du message DD reu et les Headers provenant de sa Link-State database. Si un des 2 routeurs a plus de messages DD envoyer que son partenaire, celui-ci continue nanmoins envoyer des messages DD vides tant que cela est ncessaire. Un routeur dtecte quun message DD est perdu soit par timeout, soit par desquencement. Il met alors nouveau son dernier message DD valide. Chaque Header reu est compar avec les enttes des annonces de la Link-State database du routeur. Sil ny a aucune correspondance, le Header est mmoris dans une base de donnes appele lUpdate database. Par consquent, lUpdate database liste les link states mettre jour.
610 OSPF
RESERVED
OPTIONS SeqNumber
FLAGS
HEADER
OSPF 611
612 OSPF
OSPF 613
Chapitre 7 BGP
Dun point de vue architectural, BGP est une application sappuyant sur TCP. Le port TCP destination a la valeur 179. BGP est un protocole de routage de type Distance-Path. Comme le Distance-Vector, le Distance-Path utilise lalgorithme distribu de BELLMAN-FORD mais en liminant les situations de comptage linni. BGP-4 supporte CIDR en permettant les prxes dadresse de longueur variable ainsi que lagrgation de ces prxes.
BGP 71
7.2 PROCEDURES
BGP est constitu de 4 procdures : Ouverture Mise jour Sonde Notication
La procdure douverture consiste en ltablissement dune connexion TCP entre 2 routeurs BGP adjacents appels speakers, suivi de lassociation entre ces 2 speakers. La connexion TCP peut tre externe (entre 2 speakers appartenant des domaines de routage diffrents) ou interne (entre 2 speakers appartenant au mme domaine de routage). Les connexions externe et interne sont appeles respectivement eBGP et iBGP (voir gure 71). Lassociation consiste en lenvoi dun message de demande dassociation par un des speakers. Le speaker rcepteur authentie le message en vriant la version BGP, en contrlant labsence de collision... avant de rpondre au speaker metteur par un message de sonde si lassociation est accepte ou par un message de notication si lassociation est rejete. Le rejet de lassociation est suivi de la fermeture de la connexion TCP. La procdure de mise jour consiste en lenvoi de messages de mise jour entre speakers aprs la procdure douverture ou lors dune modication du rseau. Un message de mise jour contient une liste de prxes dadresse supprimer, une liste de prxes dadresse valides et les attributs associs ces prxes. La procdure de sonde consiste en lenvoi par un speaker dun message de sonde intervalle de temps rgulier pour tester laccessibilit de son voisin. Lintervalle de temps est appel temps de garde et a 2 minutes comme valeur par dfaut. La procdure de notication permet lenvoi de messages entre speakers indiquant une erreur ou une fermeture de connexion TCP. Pour ce faire, le message utilise un code et un sous-code. Par exemple, 2-1 indique une version BGP non supporte, 4 un temps de garde coul et 6 la fermeture dune connexion TCP...
72 BGP
AS1
ASt
AS2
eBGP
iBGP
eBGP
BGP 73
7.3 ATTRIBUTS
BGP-4 dnit 7 attributs associs chaque prxe dadresse : Origin Dnition: origine du prxe dadresse (IGP=appris dun IGP, EGP=appris de BGP ou INCOMPLETE=route statique). Proprit: obligatoire AS-Path Dnition: liste de domaines de routage traverss lors de la propagation du message de mise jour (2 composants sequence {...} et set {...} utiliss pour lagrgation de prxes dadresses (voir gure 72)). Proprit: obligatoire Next-Hop Dnition: Adresse IP du routeur le plus proche pour atteindre le prxe dadresse. Proprit: obligatoire Multi-Exit-Discriminator (MED) Dnition: mtrique permettant de choisir un chemin lorsque 2 domaines de routage ont plusieurs liens entre eux. Proprit: facultatif et non transitif Local-Pref Dnition: mtrique permettant de choisir entre plusieurs chemins Proprit: facultatif Atomic-Aggregate Dnition: indication que le prxe dadresse est un agrgat Proprit: facultatif Aggregator Dnition: routeur et domaine de routage o seffectue lagrgation Proprit: facultatif et transitif
Lalgorithme Distance-Path utilise ces attributs pour calculer les plus courts chemins : 1. 2. 3. 4. Si plusieurs Si plusieurs Si plusieurs Si plusieurs Hop 5. ... chemins chemins chemins chemins possibles, choisir celui ayant la valeur Local-Pref la plus forte possibles, choisir celui ayant le plus court AS-Path possibles, choisir celui ayant la valeur MED la plus faible possibles, choisir celui ayant le cot minimum pour atteindre Next-
74 BGP
ASx
197.8.2.0/24
192.8.0.0/23
197.8.3.0/24
ASt
ASz
ASz
ASy
BGP 75
76 BGP
8.1 CONCEPTS
La plupart des applications actuelles sont de type point--point (une source, un destinataire). Cependant, quelques applications de type point--multipoint (une source, N destinataires) commencent apparatre dans les rseaux des entreprises mais aussi dans Internet (visioconfrence, distribution audio et video...). Les applications point--multipoint ont tout intrt sappuyer sur du multicasting qui est la manire la plus efcace de distribuer de linformation dune source vers N destinataires. En effet, le multicasting permet de rduire : le nombre de PDUs mises par la source La source nmet quune PDU multicast au lieu de N PDUs unicasts correspondants aux N destinataires. le nombre de PDUs transitant dans le rseau Les chemins de la source vers les destinataires sont optimiss car calculs par un protocole de routage multicast.
Le multicasting IP est bas actuellement sur un modle "ouvert" labor par DEERING (1989). Les applications multicasts sappuient sur UDP. Tout utilisateur dune application multicast est libre de crer un groupe multicast. Tout host est libre de se dclarer membre dun groupe multicast. Un groupe multicast est identi par une adresse de classe D. Un host se dclare membre du groupe multicast auprs des routeurs qui lui sont adjacents par le protocole IGMP; il devient par l mme destinataire des paquets IP adresss au groupe multicast. Les routeurs grce un protocole de routage multicast se chargent dacheminer chaque paquet IP multicast de la source vers tous les destinataires.
ROUTAGE MULTICAST 81
Le modle de DEERING a un certain nombre dinconvnients qui le rendent peu attractif pour les entreprises dsirant proposer des applications multicasts (par exemple, les ISPs). DIOT C. et al. (2000) identient principalement 3 inconvnients : possibilit de collision dadresse multicast absence de contrle daccs des sources et destinations multicasts surcot gnr par le protocole de routage multicast
En consquence, le multicasting nest actuellement quasiment pas utilis lexception du rseau exprimental MBONE au sein dInternet et de quelques applications le plus souvent limites aux rseaux locaux. 2 modles alternatifs SIM et EXPRESS ont t proposs rcemment pour pallier aux inconvnients du modle de DEERING, sans succs jusqu prsent.
82 ROUTAGE MULTICAST
Il en est supprim uniquement lors dune modication de la Link-State database. MOSPF offre la possibilit de faire du routage multicast de niveau 2. DVMRP, PIM-Dense et dans une moindre mesure MOSPF sont des protocoles adapts un rseau o les routeurs ont une probabilit non ngligeable de servir des membres dun groupe multicast donn (mode dense) mais peu adapts un rseau tel quInternet o cette probabilit est faible (mode clairsem). En mode clairsem, les messages dinondation et dlagage provoquent un overhead trop important. De plus, ces protocoles qui calculent un arbre recouvrant par couple {source, groupe multicast} ont une scalabilit faible. CBT et PIM-Sparse sont conus pour pallier aux inconvnients de DVMRP, PIM-Dense et MOSPF en mode clairsem. Cela se fait malheureusement au dtriment des chemins calculs qui ne sont pas toujours optimaux. Seul PIM-Parse est implment actuellement dans certains routeurs. Comme PIM-Dense, il utilise la table de routage du protocole de routage unicast quelque soit celui-ci. Il fonctionne de la manire suivante : Chaque groupe multicast est associ un routeur RP Chaque membre du groupe multicast senregistre auprs du RP en lui envoyant un message. Ces messages sont utiliss par les routeurs traverss pour calculer un arbre recouvrant dont la racine est le RP et les feuilles les routeurs qui ont des membres du groupe multicast servir. Chaque source senregistre auprs du RP en lui envoyant son premier paquet multicast encapsul dans un paquet unicast. Le RP extrait le paquet multicast et lenvoie aux membres du groupe multicast travers larbre recouvrant calcul prcdemment. Puis le RP rpond la source par un message. Ce message est utilis par les routeurs traverss pour tablir un chemin entre la source et le RP. Les sources enregistres auprs du RP lui envoient leurs paquets multicasts que le RP envoie son tour aux membres du groupe multicast via larbre recouvrant.
ROUTAGE MULTICAST 83
S 1 1 2 flood prune 2
D S arbre recouvrant 1 1
84 ROUTAGE MULTICAST
ROUTAGE MULTICAST 85
R1
A1
R4
R5 R6 R3
A2
R2 R7 R8
Lintroduction de contraintes change radicalement le processus de forwarding du routeur. En routage traditionnel, chaque routeur travers dtermine le port de sortie du paquet grce ladresse de destination; le forwarding est dit hop-by-hop. Ce nest plus le cas en routage par contraintes, puisque ladresse de destination nest pas toujours sufsante dterminer le port de sortie. Seul le routeur dentre dans le rseau connait le chemin du paquet; le forwarding est dit explicit. Le forwarding explicit est beaucoup plus facile mettre en oeuvre en mode connect (ATM) quen mode non connect (IP). Cest pour cette raison que le routage par contraintes napparait en environnement IP quassoci la technologie MPLS (Davie B. and Rekhter Y., 2000). En IP/MPLS, le routeur dentre attribue au paquet IP (i) un LSP qui est le meilleur chemin dtermin par le protocole de routage par contraintes et (ii) le label correspondant; les autres routeurs traverss utilisent ce label pour dterminer le port de sortie.
Notons que le routage par contraintes a non seulement un impact sur le protocole de routage mais aussi sur le protocole de signalisation qui tablit le chemin. En effet, aprs tablissement dun chemin avec une bande passante garantie de x Kbits/s, le protocole de signalisation doit indiquer au protocole de routage de diminuer de x Kbits/s la valeur de lattribut Bande_ passante_disponible des arcs traverss. En environnement IP/MPLS, le protocole de signalisation qui tablit le LSP est soit RSVP, soit LDP. Il a donc fallu adapter RSVP et LDP au routage par contraintes. Ces adaptations sappellent respectivement RSVP-TE et CR-LDP.
Annexe A BIBLIOGRAPHIE
BERTSEKAS D. and GALLAGER R. (1992) Ed. Prentice Hall Data Networks CALLON R. (1990) IETF RFC 1195 Use of OSI IS-IS for routing in TCP/IP and dual environments DAVIE B. and REKHTER Y. (2000) Ed. Morgan Kaufmann Publishers MPLS technology and applications DEERING S. (1989) IETF RFC 1112 Host extensions for IP multicasting DEERING S. (1991) IETF RFC 1256 ICMP router discovery messages DIOT C. et al. (2000) IEEE Network 14(1) pp. 78-88 Deployment issues for the IP multicast service and architecture GARCIA-LUNES ACEVES J.J. (1989) ACM Computer Communication Review A unied approach to loop-free routing using distance vectors or link states HUITEMA C. (1995) Ed. Eyrolles Le Routage Internet MOY J. (1994) IETF RFC 2328 OSPF version 2 MOY J. (1994) Communications of the ACM 37(8) pp. 61-66 Multicast routing extensions for OSPF PERLMAN R. (1991) IEEE Network Magazine Sept. pp. 18-24 A comparison between two routing protocols : OSPF and IS-IS PERLMAN R. (1992) Ed. Addison Wesley Interconnexion: Bridges and routers
BIBLIOGRAPHIE A1
RAMALHO M. (2000) IEEE Communications surveys and tutorials 3(1) pp. 2-25 Intra- and inter-domain multicast routing protocols ROSEN E. et al. (2001) IETF RFC 3031 MPLS architecture SHARON O. (2001) IEEE Networks 15(1) pp. 56-65 Dissemination of routing information in broadcast networks: OSPF versus IS-IS
A2 BIBLIOGRAPHIE
Glossaire
AFI Address Family Identier [IETF] ARP Address Resolution Protocol [IETF] AS Autonomous System [IETF] ATM Asynchronous Transfert Mode [CCITT] BGP Border Gateway Protocol [IETF] BGMP Border Gateway Multicast Protocol [IETF] CBT Core Based Tree [IETF] CIDR Classless Internet Domain Routing [IETF] CRC Cyclic Redundancy Check DD Database Description [OSPF] DUAL Diffusing Update ALgorithm [Cisco] DVMRP Distance Vector Multicast Routing Protocol [IETF] EGP Exterior Gateway Protocol [IETF] ES End System [OSI] FCS Frame Check Sequence
Gloss.1
ICMP Internet Control Message Protocol [IETF] IGMP Internet Group Management Protocol [IETF] IGP Interior Gateway Protocol [IETF] IS Intermediate System [OSI] LAN Local Area Network LDP Label Distributed Protocol [MPLS] LSA Link State Acknowledge [OSPF] LSP Label Switch Path [MPLS] LSR Link State Request [OSPF] LSU Link State Update [OSPF] MAC Medium Access Control [IEEE] MBONE Multicast backBONE [IETF] MED Multi-Exit-Discriminator [BGP] MOSPF Multicast Open Short Path First [IETF] MPLS Multi-Protocol Label Swapping [IETF] MSDP Multicast Source Discovery Protocol [IETF] OSPF Open Short Path First [IETF]
Gloss.2
PIM Protocol Independent Multicasting [IETF] PNNI Private Network-to-Network Interface [ATM forum] PPP Point-to-Point Protocol [IETF] RIP Routing Information Protocol [IETF] RSVP ReSerVation Protocol [IETF] SIM SImple Multicast [IETF] TLV Type-Longueur-Valeur WAN Wide Area Network XNS Xerox Network Services [Xerox]
Gloss.3