TR2 : Technologies de l'internet Chapitre V Routage à état de lien Algorithme de Dijkstra Routage OSPF Aires et routage hiérarchique 1
Routage à état de lien Chaque routeur détient les informations de la topologie de tout le réseau Tous les liens et leurs états (coûts, ) Tous les routeurs auront les même informations sur la topologie du réseau Tous les routeurs calculent eux-mêmes le meilleur chemin vers toute destination Algorithme centralisé : les routes sont complètement calculées dans un nœud Plus de problèmes de boucles de routage! Tout changement d état d un lien est diffusé dans tout le réseau 2
Etat des liens : principe A va recevoir de B la «carte» du réseau qu il connait, avec les masques associés A va apprendre puis calculer A vers 10.1.1.0/24 : par C, coût 220 A vers 10.1.1.0/24 : par D, coût 310 A retiendra la route par C vers 10.1.1.0/24 3
Phases de fonctionnement Constitution de la topologie du réseau complet Découverte des routeurs voisins et calcul des délais d acheminement (coûts) => constitution d une table des voisins Echange des informations sur la topologie locale avec les voisins et diffusion dans tout le réseau Stockage des informations découvertes et reçues dans une base de données topologique Chaque routeur calcule toutes ses routes optimales Calcul des meilleures routes grâce à sa base topologique par l Algorithme de Dijkstra (SPF) Enregistre la meilleure route vers chaque sousréseau dans une table de routage 4
Identification d un routeur Il est facile d'identifier un sous-réseau et son masque associé, par contre identifier un routeur est plus compliqué (pas d adresse IP unique) Doit permettre d'identifier, de façon unique sur le réseau un routeur par un identifiant appelé RID Si le routeur possède des adresses loopback, il prendra l'adresse la plus grande d entre elles Sinon, il choisira la plus grande adresse IP de ses interfaces opérationnelles Choix du RID OSPF à l'initialisation du routeur le RID ne change pas, même si une nouvelle interface s'active Changements que si OSPF est réinitialisé 5
Découverte des voisins paquets Hello Chaque routeur envoie périodiquement (10s sur un LAN) un paquet nommé Hello à tous ses voisins Contient des informations telles que son identifiant RID, et une liste des voisins déjà reconnus Envoi en multicast des paquets (224.0.0.5) sur toutes les interfaces du routeur Si un routeur A reçoit d'un routeur B un paquet Hello Il va prévenir B qu'il a bien reçu son message Hello en ajoutant B dans la liste de ses voisins dans le prochain message Hello qu'il lui expédiera Ensuite, B fera de même en ajoutant A dans la liste de ses voisins dans son prochain message Hello Dès qu un routeur voit son nom dans le message Hello d un de ses voisins, il sait qu il est en liaison avec lui 6
Calcul des délais d acheminement Les paquets Hello maintiennent le contact avec les voisins (keep alive) Si pas de réception de Hello d un voisin au bout de 40s (Dead interval) la liaison est considérée comme rompue Les paquets HELLO servent également à établir le coût des liaisons entre un routeur et ses voisins Délai d acheminement = Temps Aller-retour /2 Peut être utilisé dans la mesure du coût de la liaison Avantage : route mieux adaptée au moment de l utilisation (adaptation à la charge) 7
Calcul des délais d acheminement Placement du paquet Hello dans le Buffer de sortie En tête : délai mesuré indépendant de la charge En queue (comme un paquet normal) : délai mesuré fonction de la charge de la ligne 8
Etat des liens - paquets LSP, LSA En découvrant ses voisins, chaque routeur découvre une petite partie de la topologie :en assemblant ces parties on peut construire la topologie complète Chaque routeur résume sa topologie locale en un paquet LSP (Link State Packet) contenant L identification du routeur Les couples (voisin, coût = délai pour l atteindre) Le routeur envoie des annonces sur l état de ses liens LSA (Link State Avertissement) à tous les autres routeurs par «inondation» Pour contrôler l inondation, les LSA (qui échangent des paquets LSP) sont numérotés => chaque nœud va pouvoir vérifier qu il a reçu ou non le LSA 9
Flooding reliable Algorithme (inondation) Emission de paquets LSP Périodiquement (chaque 30 minutes) En cas de changement (ligne devenant active ou en panne, changement important de délais) Réception d un LSP : on recherche l enregistrement correspondant dans la base topologie Si non présent, on rajoute ce LSP à la base et on le diffuse à tous les voisins excepté celui qui nous l a envoyé Si présent, on compare le numéro de séquence LSA du paquet LSP reçu avec celui stocké Si numéro reçu > numéro stocké, maj de la base et diffusion du LSP aux voisins excepté l émetteur 10
Diffusion des LSPs E diffuse le 1 er son LSP (n 0) à ses voisins LSP : E-0 [D:1];[B:1];[C:1] 11
Diffusion des LSPs B,C et D diffusent le LSP à leurs voisins sauf E Pas de boucle entre B et C car même numéro de LSP => pas de rediffusion 12
Routeur désigné Afin de diminuer le trafic réseaux entre routeurs, dans certains cas, un routeur désigné est élu Le DR (routeur désigné) va recevoir toutes les informations sur les états des liens et les retransmettre aux autres routeurs Chaque routeur possède une priorité Le routeur qui envoie un message Hello avec la plus grande priorité est élu DR (ou en cas d égalité, avec le plus grand RID) Après désignation 13
Calcul des meilleures routes Après constitution de la topologie complète du réseau, chaque routeur calcule seul ses propres routes vers toutes les destinations Basé sur l Algorithme de Dijkstra Calcul du plus court chemin entre un nœud et toutes les autres destinations (SPF : Shortest Path First) Métrique fondée sur les coûts mesurés de la ligne (états des liens) Le meilleur chemin est celui qui a le coût total le moins cher, le plus faible Mathématicien néerlandais E.W. Dijkstra Algorithme publié en 1959, très utilisé 14
Calcul des meilleures routes Chaque routeur construit sa vision optimum du réseau sous forme d un arbre dont il est la racine, et qui minimise les distances des routes vers les autres nœuds (arbre de recouvrement minimum) 0 A 10 C 15 F 20 B 25 E 35 D 15
Algorithme de Dijkstra 1 Initialisation : Le nœud racine est marqué comme «à traiter», tous les autres n ont aucune marque 2 On choisit parmi la liste des nœuds «à traiter» celui qui est à la distance la plus faible de la racine Ce nœud choisi est marqué «en traitement» Chacun de ses voisins qui n est pas marqué «traité» est examiné successivement : Si le voisin n est pas marqué «à traiter», on le marque ainsi et on note sa distance à la racine Si le voisin est marqué «à traiter», mais que ce chemin de puis la racine est meilleur pour lui, on met à jour sa distance à la racine On marque le nœud choisi comme «traité» On réitère le point 2 jusqu à ce qu ils n y ait plus de nœuds marqués «à traiter» 16
Algorithme de Dijkstra : exemple 0 A 100 10 15 B C F On traite la racine A : On examine B, C et D On calcule leurs distances à A On les marque «à traiter» C est le prochain nœud à traiter (plus petite distance à A) 17
Algorithme de Dijkstra : exemple 0 A 100 10 15 B C F 20 110 20 B D F On traite le nœud C : On examine ses voisins non traités B, D et F (à traiter) On met à jour la distance de B car 10+10=20 < 100 mais pas celle de C car 10+10=20 > 15 F est le prochain nœud à traiter 18
Algorithme de Dijkstra : exemple 0 A 20 B 10 C 110 D 15 F 25 E On traite le nœud F : On examine son seul voisin non traité E (à traiter) On calcule sa distance à A 15+10 = 25 B est le prochain nœud à traiter 19
Algorithme de Dijkstra : exemple 0 A 20 B 10 C 110 D 15 F 25 E On traite le nœud B : Il n y a aucun voisin non traité E est le prochain nœud à traiter 20
Algorithme de Dijkstra : exemple 0 A 20 B 10 C 110 D 15 F 25 E 35 D On traite le nœud E : On examine son seul voisin non traité D On met à jour la distance de D car 25+10=35 < 110 D est le prochain nœud à traiter 21
Algorithme de Dijkstra : exemple 0 A 10 C 15 F 20 B 25 E 35 D On traite le nœud D : Il n y a aucun voisin non traité Il n y a plus de nœuds à traiter L algorithme est terminé 22
Protocole OSPF Principes OSPF = Open Shortest Path First Protocole de routage à état de liens Spécifications dans le domaine public (Open) Dans grand domaine (SA), chaque changement provoque des diffusions d états des liens et un recalcul des tables de routage de tous les routeurs Forte consommation de bande passante Charge CPU importante sur les routeurs Deux solutions : Diviser le domaine (système autonome) en aires Choisir un routeur chargé de centraliser la topologie : Routeur Désigné (DR) 23
OSPF Aires et routage hiérarchique OSPF utilise un routage hiérarchique Basé sur le découpage du réseau en aires (areas, codés sur 4 octets) (réseaux contigus) Une aire est un ensemble indépendant de réseau(x) La table d états des liens d un routeur d une aire ne contient que les liaisons de l aire L inondation s arrête aux frontières de l aire Les routeurs ne calculent que les routes internes à leur aire Les aires OSPF permettent d'isoler des parties du réseau afin de diminuer la taille de la topologie réseau à mémoriser sur chaque routeur 24
Aires OSPF et vision du réseau Aire 1 Aire 0 Vision du réseau dans l aire 1 Les routeurs de l aire 1 n ont pas accès à certains détails 25
La hiérarchisation et les routeurs Internal Router : intérieur de l AS AS Border: routeur frontière de l'as qui apprend les routes extérieures l AS par un EGP (ex : BGP) Area Border: routeur de bord appartenant plusieurs aires interfaces multiples > aires multiples Maintient des BD de topologie différentes pour chaque aire Designated Router : Routeur désigné au sein d une aire pour limiter les transactions entre les routeurs de cette aire 26
La hiérarchisation et les routeurs 27
Aire principale - Backbone Pour garder une cohérence globale, il existe une aire principale unique (backbone -Aire 0) qui : Relie toutes les aires entre elles (chemin obligatoire pour passer d une aire à l autre) Connaît toutes les infos de routage, mais ne diffuse que des condensés 28
Aires secondaire et terminales Les autres aires sont secondaire ou terminales et doivent être connectées à l aire principale Aires secondaires Tous les routeurs ont une vue complète de la carte du réseau Routeurs calculent localement la meilleure route entre 1 source et 1 destination. Aires terminales (stub area) Pas de vue complète de la carte du réseau Ajout d'une route par défaut Suppression des routes externes Travail identique des routeurs Routeurs de bord appartenant à plusieurs aires (aire et backbone en général), qui transmettent les informations récapitulatives des aires qu ils relient 29
OSPF - Routeur de bord les interfaces des routeurs de bord sont positionnés dans les différentes aires qu il relie network <Network ou IP address> <wildcard-mask> area <area-id> 30
OSPF - Le masque générique Un nombre de 32bits qui sert pour des opérations de comparaison. Tous les bits à 1 sont génériques (wildcard), c est à dire que la valeurs située aux positions correspondantes ne sont pas prises en compte Ce sont les bits à 0 qui déterminent quelles positions dans les nombres comparés doivent avoir une valeur identique. Ex: Masque générique : 0.255.255.255 Que le premier octet sera comparé Ex: Masque générique : 0.255.0.255 Les bits à 1 ne se suivent as obligatoirement pour pour le masque de sous réseau 31
OSPF Configuration du routeur de bord router OPSF 100 // router ospf <process-id> network 10.10.1.1 0.0.0.15 area 0 network 10.1.1.2 0.0.0.15 area 1 Le <process-id> est un numéro de processus arbitraire de signification locale uniquement (permet d'avoir plusieurs processus OSPF) 32
OSPF - Exemple de configuration 33
OSPF Configurer le loopback Le Router ID (RID) est déterminé par soit l'adresse de loopback, soit par l'adresse IP d'une interface Avantage d'uitliser une adresse de loopback Une interface de Loopback ne peut pas devenir défaillante Apporte une plus grande stabilité à OSPF Pour prendre en compte une modification de RID Router#clear ip ospf process 34
OSPF Visualiser le RID d un routeur show ip protocols 35
OSPF - Vérifier les configurations Visualiser les Neighbor adjacency table Router#show ip ospf neighbor L'absence de voisin est indiquée par Une absence de Router ID Un état FULL non affiché Conséquence d'une absence de voisin Aucune information LS ne sera échangée Les tables de routages ne seront pas justes 36
OSPF - Autres commandes disponibles 37
OSPF - La table de routage La commande show ip route permet de visualiser les routes apprises par OSPF Le O indique que la route a été apprise par OSPF, et IA que c est une route interne à une aire 38
OSPF Exemple d aire terminale 39
OSPF Exemple d aire terminale 40
OSPF Agrégation de routes Permet de minimiser le trafic en ne signalant qu une seule route. R1 n annonce que 10.1.0.0/18 car les 2 zones ont des adresses dont les 18 premiers bits sont communs area <area-id> range <@IP agrégée> <masque réseau agrégé> 41
OSPF - Lien virtuel Pour connecter (logiquement) une aire terminale à l aire principale quand la connexion physique ne peut être réalisée. Pour rétablir la continuité de l aire principale quand cette dernière n est plus assurée (solution de dépannage!) area <area-id> virtual-link <RID>, ares-id == transit area 42
La métriques OSPF Coût d'un lien en OSPF : 10 8 / bande passante La référence pour la bande passante est 100 Mb/s Possibilité de la modifier avec la commande auto-cost reference-bandwidth 43
Visualiser le cout d'un lien show interface affiche la bande passante 44
Modifier le cout d un lien Les 2 interfaces extrémités d'une liaison série doivent être configuré avec la même bande passante Router(config-if)#bandwidth bandwidth-kbps 45
Coût total d'une route Somme des couts de chaque lien 46
OSPF - Distance administrative 47
Complexité de OSPF Plusieurs bases de données Topologie du réseau Table de routage dans au sein d une aire Table de routage vers les réseaux des autres aires du domaine Table de routage vers les autres AS Beaucoup de fonctionnalités Inonder une aire avec des infos de routage Diffuser les tables de routage Construite par un routeur frontière Cacher la complexité aux autres Synchroniser / récupérer les informations Toutes les infos ne sont pas émises en permanence Élection du DR S assurer du fonctionnement des routeurs voisins 48