CH4. LES PROTOCOLES

Objectifs

Fonctions de base des protocoles de routage :

déterminer et mettre à jour les tables de routage

répartition des charges pour éviter les congestions,

Évaluation des critères pour déterminer le coût d'une liaison (nombre de nœuds, temps de traversée, taille des files d'attente etc.)

Fonctions avancées, liées à la qualité de service :

définir des classes de trafic, ordonnancement,

instaurer la sécurité,

contrôle de flux et contrôle de congestion,

qualité de service: temps-réel, multimédia etc.

Internet : un routage hiérarchique

Internet Backbone : Dorsale Internet

Une dorsale Internet (ou épine dorsale) est un réseau longue distance très haut débit qui constitue le cœur du réseau Internet.

Le backbone est l’ensemble des supports de transmission et de commutation à partir du commutateur d’abonné ; il supporte la partie la plus importante du trafic avec une bande passante importante.

Le débit atteint 800 Gb/s en employant des liaisons à fibre optique. En théorie, ces liaisons peuvent atteindre plusieurs Tb/s (terabits par seconde).

Hiérarchie dans l’Internet

Trois niveaux de hiérarchie dans les adresses IP

adresse réseaux,

adresse sous-réseaux,

adresse de la machine.

Les réseaux de backbone ne publient les routes qu’aux réseaux, et pas aux sous-réseaux.

ex. 135.104.*, 192.20.225.*

Malgré cela, il y a environ 118,000 adresses de réseaux dans les routeurs de backbones (2003)

Les gateways (EG) communiquent avec le backbone pour trouver le meilleur noeud suivant pour chaque réseau dans l’Internet.

Les approches de routage

Vecteur de distance (Distance-Vector, DV)

chaque routeur ne connaît initialement que le coût de ses propres liaisons, les routeurs échangent entre eux des informations de coûts,

chaque routeur n'a qu'une vision partielle du réseau: coût vers chaque destination,

fonctionne bien sur des systèmes de petite taille.

Etat des liens (Link-State, LS)

chaque routeur construit une vision complète de la topologie du réseau à partir d'informations distribuées,

ne pas confondre connaître la topologie et connaître tous les noeuds terminaux,

fonctionne sur des grands réseaux.

Approche vecteur de distance

Chaque routeur ne connaît initialement que le coût de ses propres liaisons vers ses voisins direct.

C’est le vecteur initial

Chaque routeur va échanger son vecteur initial avec tous ses voisins

Après un certain nombre d’itérations, chaque routeur va connaître le coût vers chaque destination

Fonctionne bien sur des systèmes de petite taille

DV : exemple

Synchronisation pas nécessaire dans les envois de messages.

Algorithme DV (Bellman-Ford)

Condition de consistance: D(i,j) = c(i,k) + D(k,j)

L’algorithme DV évalue cette condition de manière récursive :

À l’itération mi, le critère de consistance est vérifié, en supposant que chaque nœud N “voit” les noeuds et les liens à (au moins) m-sauts de lui : une vision à m-m-sauts

Algorithme DV

A reçoit de B: DV(B,*)=(7,0,1, ∞,8)

Pour tout voisin k, si c(i,k) + D(k,j) < D(i,j), alors:

D(i,j) = c(i,k) + D(k,j)

prochain-saut(j) = k

Pour voisin B, si c(A,B)+D(B,C) < D(A,C), alors:

D(A,C) = c(A,B) + D(B,C)

prochain-saut(C) = B

Approche “état des liens”

Chaque routeur construit une vision complète de la topologie du réseau à partir d'informations distribuées,

Ne pas confondre connaître la topologie et connaître tous les noeuds terminaux,

Fonctionne sur des grands réseaux.

Approche itérative, et pivote autour des destinations j, et leur prédécesseurs k = p(j)

Une autre vision du critère de consistance est utilisée :

D(i,j) = D(i,k) + c(k,j)

Diffusion de la topologie

Chaque noeud i collecte tous les états c(*,*) d’abord puis exécute localement l’algorithme de plus court chemin (Dijkstra).

Un routeur décrit son voisinage avec un link state packet (LSP)

Diffusion de la topologie

Utilise une diffusion contrôlée pour distribuer l’information dans le réseau

Garde le LSP dans une base de données de LSP

Si nouvelle, transmet sur chaque interface, sauf l’interface entrante

Un réseau avec E sommets transmettra au plus 2E fois

Après chaque itération, l’algorithme découvre un nouveau noeud destination j et un plus court chemin vers ce noeud.

Après m itérations, l’algorithme a exploré les chemins à m sauts, ou moins, à partir du noeud i.

Il a une vision du réseau à m-saut (tel le cas de l’approche distance-vector)

Dijkstra

L’algorithme de Dijkstra au noeud i utilise deux ensembles :

l’ensemble V de tous les noeuds.

l’ensemble VT des noeuds pour lesquels les plus courts chemins ont été trouvés, et

Pour tout noeud k, deux valeurs sont calculées :

[k] = D(i,k): la valeur en cours de la distance entre i et k.

p(k): le noeud prédécesseur de k dans le chemin le plus court (connu) à partir de i

SPF-tree : arbre de parcours des plus courts chemins à partir d’un noeud A (the shortest-paths spanning tree rooted at A)

Dijkstra

Algorithme de Dijkstra : exemple

Comment calculer la métrique coût ?

Le choix du coût du lien détermine la charge du traffic :

Coût faible = probabilité élevée que le lien appartienne au SPT et va attirer du traffic

Tradeoff: convergence vs load distribution

Eviter les oscillations

Meilleure utilisation du réseau

Métriques statiques (weighted hop count)

Ne prend pas en compte la charge du traffic.

Métriques dynamiques

Coût évalué à partir de la taille des files d’attente, le délai, etc.

Très oscillatoire, difficile à évaluer

Métrique quasi-statique :

Se baser sur l’état de l’ensemble du réseau pour attribuer des métriques statiques (nécessite d’avoir une matrice des charges)

Organisation en systèmes autonomes

L’Internet est organisée en un ensemble de systèmes autonomes (Autonomous System)

Chaque AS est un ensemble de réseaux et de routeurs sous une administration commune

entreprise, campus, réseau régional…

toutes les parties d’un AS doivent être connexes

Les numéros d’AS sur 16 bits

Le routage entre AS est appelé routage externe (EGP)

IGP ?

Le vrai routage dans l’Internet

Le routage dans l'Internet

Interior Routing (IGP : Interior Gatway Protocol)

utilise RIP (Routing Information Protocol, DV), IGRP/EIGRP (cisco, DV), IS-IS (LS) et OSPF (Open Shortest Path First, LS). Ce dernier est le préféré car plus performant.

protocole d'échange de données de routage périodiques entre routeurs adjacents.

Exterior Routing

utilise EGP (Exterior Gateway Protocol, DV), BGP (Border Gateway Protocol, DV). Ce dernier est celui préféré.

connexion TCP entre les routeurs pour les échanges d'informations,

routage politique (accessibilité)

Exemple de routage interne et externe

Systèmes autonomes et routage externe

Les protocoles de routage interne

RIP (v1 et v2)

Routing Information Protocol

Nombre de saut comme métrique

Nombre de saut maximum = 15

Mise à jour des tables de routage toutes les 30s

IGRP

Interior Gateway Routing Protocol (Cisco)

Bande passante et délai comme métrique

Mise à jour des tables de routage toutes les 30s

OSPF

Open Shortest Path First

Notion de zones administratives

Utilise SPF (Dijkstra) pour calculer le plus court chemin

Le coût d’un lien dépend de la capacité (108/capacité)

Paquet HELLO toutes les 10s ou 30s

EIGRP

Enhanced IGRP (Cisco)

Utilise l’équilibrage

Utilise DUAL (Diffused Update Algorithm) pour calculer le plus court chemin

RIP: rappel

Se base sur un algorithme à vecteur de distance.

Ancien, il a été prévu initialement pour être mis en place sur des réseaux dont le diamètre est inférieur ou égal à 15, une distance de 16 représentant un distance infinie (c'est à dire une impossibilité d'atteindre la destination).

Il reprend les principales caractéristiques décrites dans le routage à vecteur de distance :

Chaque routeur possède une table de routage, dont les entrées indiquent la distance et le prochain saut pour atteindre un réseau.

Cette table de routage est périodiquement (30s + t) envoyée à tous les voisins (broadcast/multicast).

Lorsqu'un routeur reçoit le contenu de la table d'un voisin, il calcule les nouvelles distances estimées et met à jour sa propre table dans deux cas :

Si le nouveau coût est inférieur à celui indiqué par la table locale, et que le prochain saut est différent ;

Ou si le prochain saut est identique, même si le nouveau coût est supérieur à l'ancien.

RIP : rappel

D'autres caractéristiques sont ajoutées pour résoudre les problèmes relatifs à l'algorithme utilisé :

On considère qu'un routeur est tombé si on ne reçoit pas de nouvelles pendant plus de 180 secondes, et le coût pour l'atteindre est forcé à 16 (infini).

Pour accélérer la convergence de l'algorithme, si un routeur modifie sa table de routage, il n'attend pas l'expiration de son temporisateur pour envoyer le contenu de sa table : il l'émet immédiatement à tous ses voisins.

Point fort : simplicité

RIP : le message

RIP : le message

Commande : requête/réponse ou diffusion/mise à jour.

Version 1 pour RIPv1 et 2 pour RIPv2

Domaine de routage : permet de découper le réseau en sous-réseaux logiques.

Famille d’adresse (Address familly identifier - AFI) AF_INET pour IPv4.

Identifiant de route (Route tag - RIPv2) C’est un “ traceur ” ou marqueur pour :

identifier une route qui provient d’un autre IGP voire d’un autre EGP et qui est propagée par RIP.

distinguer les routes apprises en interne par RIP de celles apprises par d’autres protocoles (par exemple OSPF).

Adresse IPv4 Il s’agit de la destination à atteindre par le routeur qui émet cette annonce.

Masque de sous-réseau (RIPv2) C’est un des apports principaux de RIPv2 par rapport à RIPv1.

RIP : le message

Adresse IPv4 du prochain routeur (Next hop - RIPv2) En fonctionnement normal l’adresse 0.0.0.0 signifie que la route passe par celui qui l’annonce. Ici il s’agit d’une autre adresse IPv4, différente de celle de l’annonceur. Celui-ci n’utilise pas RIP (sinon il ferait l’annonce lui-même), mais sans doute un autre protocole de routage. Ce cas de figure arrive à la frontière entre deux réseaux, quand par exemple un routeur interne annonce une meilleure route via un routeur du même LAN.

Métrique distance de la route compris entre 1 et 15 (0 : hôte local ; 16 : infini non accessible)

RIP : la diffusion

RIP est encapsulé dans un paquet UDP avec 520 comme port de destination.

Le nombre maximum de routes est limité à 25

Il faut 20 octets pour décrire une route

La partie utile du datagramme fait au plus 4 + 25 × 20 = 504 octets et le datagramme complet 532 octets au maximum, le risque de fragmentation est nul sur des LANs et via les liaisons point à point (PPP).

S’il faut propager plus de 25 routes, il faut envisager l’émission d’autant de datagrammes que nécessaire !

RIP1 vs RIP2

Gestion des adresses de sous-réseaux (Routage CIDR)

Indication d’un prochain routeur qui n’est pas celui qui annonce la route

Indication de routes de provenances externes, ou Route tag

Usage de l’adresse multicast 244.0.0.9 pour propager des routes (plutôt qu’un limited broadcast IP 255.255.255.255, plus perturbateur parceque lu par tous les hôtes).

… et RIPng (next generation) : extension de RIP2 pour IPv6

RIP v1 : Comptage à l’infini (boucle de routage)

Table de routage de R1 :

S1 et S2 : distance 0

S3 : distance 1

S4 : distance 2

Table de routage de R3 :

S3 et S4 : distance 0

S1 : distance 2

S2 : distance 1

Après une coupure de S2 : R1 fait sa mise à jour donc n'envoie plus de route pour S1 vers R2

Or R3 connaît une route pour S1 donc R2 va la prendre en compte

Pour R2 : distance vers S1 sera 3, puis 4, puis ...

Pour R3 : distance vers S1 sera 4, puis 5, puis ...

RIP v2

3 algorithmes de plus :

split horizon : les données ne sont pas renvoyées vers le nœud d'où on les a appris

hold down : le routeur ignore les informations relatives à un réseau pendant une période fixe après réception d'un message qui en spécifie l'inaccessibilité.

poison reverse : si on détecte une route coupée et qu'on reçoit un message avec un coût très supérieur au coût initial, on ignore l'information (considérée revenue par une boucle).

Plus les améliorations suivantes :

masque de sous-réseau : sous-réseaux possibles + agrégation des routes

authentification (mot de passe en clair ou chiffré sur 16 octets)

RIP v2 : Split horizon (clivage d’horizon)

Une règle qui interdit à tout routeur d'annoncer un préfixe réseau via l'interface par laquelle il a appris l'existence de celui-ci ou par laquelle il passe pour accéder à ce réseau

Pourquoi ? Supposons que S2 ne soit plus disponible, R2 met à jour sa propre table et l'envoie à R3. En même temps, R3 envoie sa table à R2

R2 apprend qu'il existe une route pour S2 par R3

R3 apprend que S2 n'existe plus

Avec le split horizon, dans ce cas, nous n'aurions pas le comptage à l'infini

Mais le split horizon n'empêche pas toujours le comptage à l'infini comme dans l'exemple suivant (suppose que S2 est en panne, R3 fait une annonce...)

RIP v2 : Split horizon avec Poison-reverse

Cisco utilise une variante du Split horizon : antidote

Quand le réseau est stable, utilisation du split horizon classique

Quand une route vers un réseau est annoncée

avec une distance infinie, le destinataire de la

mise à jour l'annonce aussi avec une métrique

infinie sur toutes ces interfaces, y compris celles

protégées par le Split-horizon

RIP v2 : Temporisateur de retenue Hold-down

Le comptage à l'infini peut être résolu par cette fonction, appelée aussi mécanisme de gel.

Lorsqu'un routeur prend connaissance de l'indisponibilité d'une route : il doit ignorer toute information concernant un chemin vers ce sous-réseaux pendant une durée égale au temporisateur Hold-down

Ainsi, si une annonce arrive sur un routeur qui vient d'annoncer une défaillance pour un même sous-réseau

Ce routeur va attendre avant de prendre en compte cette annonce

L'annonce de distance infinie aura le temps de se propager

Mais : durant toute la période de gel :

boucle de routage maintenue

routes incorrectes conservées (même si route de remplacement existe)

RIP v2 : Fonction Route-poisoning

Dès qu'une ligne tombe en panne, un protocole de routage peut choisir de simplement arrêter de l'annoncer

Mais comment distinguer une panne réelle d'une absence de mise à jour perdue à cause de bruit sur la ligne ?

La fonction Route-poisoning impose au routeur

de faire une annonce pour la ligne en panne avec

une métrique infinie sur les mêmes interfaces

que celles par lesquelles elle a pu être annoncée.

RIP v2 : Mises à jour déclenchées

Dès qu'un routeur remarque un changement d'état sur le sous-réseau directement connecté, il expédie immédiatement ses nouvelles informations.

Cette technique couplée au routing-poisoning et

au Poison-reverse accélère la convergence des

algorithmes de routage

RIP : Équilibrage de charge

RIP est capable de gérer jusque 6 routes d'un même coût (équivalentes)

Quand un routeur reçoit une information via un algorithme de routage, il choisit toujours l'information avec la plus petite distance administrative.

La distance administrative est la préférence dans une table de routage des routes apprises par un protocole de routage par rapport aux mêmes routes apprises par un autre protocole de routage.

Plus la valeur est faible et plus le protocole est préféré.

Chaque protocole dispose de sa valeur par défaut sur les routeurs Cisco

RIP : discussion

Points forts

Simplicité de mise en œuvre ;

Simplicité du protocole permettant une compréhension aisée des échanges ;

Robustesse des implémentations.

Points faibles

Métrique : saut, pas adapté à des réseaux dont les nœuds sont séparés par des liaisons utilisant des bandes passantes disparates

Limitation à une profondeur de 15 ;

Problème de la vitesse de convergence (lente) de l’algorithme

La topologie des réseaux RIP reste à un seul niveau (pas de hiérarchie par exemple entre l’arête centrale d’un réseau (backbone) et des réseaux terminaux.

RIP : configuration

Pour activer le protocole de routage RIP sur un routeur, il suffit d'utiliser la commande router rip en mode de configuration global, puis de déclarer les réseaux connectés directement avec la commande network.

Chaque commande network active RIP sur un ensemble d'interfaces

envoie périodique de mises à jour

écoute régulière par le routeur des mises à jour reçues par cette interface

RIP : ip classless

network 10.0.0.0 affecte les 2 interfaces concernées

La commande network attend en paramètre un numéro de réseau et non pas un sous-réseau.

Dans le cas où vous tapez un numéro de sous-réseau, il sera automatiquement transformé en numéro de réseau

Attention : si le routeur fonctionne en no ip classless, c'est à dire que le routage se fait suivant la classe, un paquet à destination de 10.1.3.3 ne sera pas routé sur la route par défaut car aucun réseau 10.1.3.0/24 n'est connecté au routeur

En ip classless, il sera par contre routé sur la route par défaut

RIP : Configuration des options

RIPv2 utilise les techniques suivantes pour éviter les boucles et accélérer la convergence

Split horizon

Split horizon with poison reverse (ou Poison reverse)

Holddown

Mise à jour déclenchée

Pour désactiver le split horizon :

Router(config-if)# no ip split-horizon

Par défaut la valeur du holddown est de 180 secondes.

Dans certains cas, il peut être utile de diminuer cette valeur :

en configuration router :

timers basic update invalid holddown flush

Faire un no timers basic pour retrouver les valeurs par défaut

RIP : Configuration des options

Dans l'exemple, un holddown de 90 secondes est suffisant.

Avec des mises à jour toutes les 30 secondes, si S2 disparaît, R2 va recevoir une nouvelle route pour S2 de la part de R3 (par exemple) mais si R2 attend 90 secondes avant de faire sa mise à jour, S2 aura disparu des tables de routage de R4 et de R3

RIP : Configuration des options

Par défaut, les mises à jour sont faites toutes les 30 secondes

Valeur modifiable par :

Router(config-router)# update-timer seconds

Par la commande network, on « active » pour le routage toutes les interfaces sur le réseau spécifié. Pour qu'une interface n'envoie plus de mises à jour :

Router(config-router)# passive-interface interface

Attention : elle continue à les recevoir

RIP : Configuration des options

Comme RIPv1 envoie ses mises à jour par broadcast, il se peut que le routeur soit connecté à un routeur voisin qui n'accepte pas les broadcast de part le protocole d'interconnexion qu'il utilise. Dans ce cas, on peut spécifier directement l'adresse de ce voisin pour lui envoyer en unicast les mises à jour

Router(config-router)# neighbor ip_address

Par défaut, les routeurs Cisco reçoivent les paquets RIPv1 et v2 mais n'envoie que des paquets RIPv1. Pour spécifier quel est le protocole à utiliser sur les interfaces

Router(config-router)# version {1|2}

Router(config-if)#ip rip send version 1 OU ip rip send version 2 OU ip rip send version 1 2

Router(config-if)#ip rip receive version 1 OU ...

Vérification des protocoles utilisés

Pour visualiser les routes : Router# show ip route

Pour visualiser le protocole de routage utilisé:

Router# show ip protocols

Pour visualiser le détail d'une interface :

Router# show interface interface

ou Router# show interface pour visualiser toutes les interfaces

Pour visualiser une interface ip

Router# show ip interface

ou Router# show ip interface brief pour visualiser uniquement les informations importantes de toutes les interfaces

Pour visualiser la base de données RIP du routeur

Router# show ip rip database

OSPF : principe

Routage à état des liens (Link-State) : permettre au routeur d'avoir une vision globale du réseau et de sa topologie

une base de données sur chaque nœud représentant la topologie totale du réseau

détection de boucle

calcul de la route la plus courte par l'algorithme de Dijkstra

configuration pour chaque interface

métrique par type de coût (longueur de la file d'attente, débit, distance en saut, etc)

Ne diffuser que les modifications détectées dans la topologie (accessibilité et coût)

routage par type de service (champ TOS du datagramme)

notion d'aire de routage : introduit des notions de domaine et de zone dans le but de limiter la charge de calcul de chaque routeur

OSPF : principe

Le protocole Hello permet à chaque routeur d'échanger des informations concernant l'état de leurs liens, et de vérifier que les liaisons sont opérationnelles.

Deux mécanismes pour détecter les changements d'état de lien :

Les changements d'état d'interface : ces changements sont détectés localement par l’OS du routeur.

L'expiration du temporisateur pour un paquet Hello, indiquant qu'un voisin est inactif.

La détection d'un changement de topologie est suivie par l'inondation, sur toutes les interfaces, d'un paquet indiquant cette information.

Chaque routeur met à jour sa base de donnée et recalcule le plus court chemin pour chaque destination.

OSPF : Aire de routage

Un réseau OSPF est divisé en plusieurs aires (Area) qui se connectent à une aire centrale de distribution appelée dorsale (backbone).

Chaque aire est désignée par un identifiant de 32 bits mis sous la forme X.Y.Z.T. Cet identifiant ne correspond pas forcément à l'adresse réseau (même si par commodité, on le choisit souvent ainsi).

Pas plus d'une cinquantaine de routeurs maximum par aire.

Réduction du nombre de routeur par zone de diffusion

OSPF : Aire dorsale (area backbone)

L'aire dorsale :

• a pour identifiant 0.0.0.0 obligatoirement

• sert pour l'acheminement inter-aire

• est obligatoire  si le réseau n'a pas été

découpé en aire, il y en a qu'une seule et

c'est la dorsale d'id 0.0.0.0.

OSPF : routeurs

On distingue 3 types de routeurs dans OSPF :

routeur interne (Internal Router - IR) : qui annoncent les routes internes à leur aire

routeur de la dorsale (Backbone Router - BR) : qui annoncent les routes internes à la dorsale. (En fait ce sont des IR de l'aire "dorsale")

routeur frontière (Area Boundary Router - ABR) : qui assurent la connexion à la dorsale

routeur frontière de systèmes autonomes (Autonomous System Boundary Router - ASBR) : pour assurer l‘échange avec d'autres systèmes autonomes

OSPF : routeurs

OSPF : relation de voisinage et relation d'adjacence

Deux routeurs sont voisins s'ils appartiennent à une même zone et sont reliés par un même média (lien de diffusion « broadcast domain » ou à chaque extrémité d'un lien point-à-point).

Deux routeurs sont adjacents si ils sont voisins

et synchronisés, c'est-à-dire s'ils échangent des

informations sur la topologie du réseau pour

s'assurer du bon fonctionnement l'un de l'autre.

(Designated Router - DR)

Un seul routeur parmi les routeurs voisins est responsable.

le DR (et le BDR) assure la diffusion des messages vers les routeurs de la zone

évite d’établir n2 relations entre routeurs voisins et de dupliquer la même information

Le DR (designated router) sert de point central d‘échange.

Le BDR (backup designated router - DR de secours) surveille le DR et prend sa place s'il ne répond plus.

In document RÉSEAUX II. Dr. Assia Djabelkhir-Bentellis 4ème année Informatique Ecole Normale Supèrieure de Constantine (Page 87-186)

Related documents