Routage Hiérarchique

Download Report

Transcript Routage Hiérarchique

Couche réseau

Objectifs :   Comprendre les principes sous-jacents de la couche réseau :    routage (choix du chemin) Passage à l’échelle Comment fonctionne un routeur Description du routage dans Internet

Sommaire :

      Services de couche réseau Principes du routage Routage hiérarchique IP Protocole de routage dans Internet  intra-domaine  inter-domaine Architecture de routeur ? 4 : Network Layer 4a-1

Fonctionnalités de la couche réseau

  Transporter des paquets de l’émetteur vers le récepteur Les protocoles de couche réseau s’exécutent dans dans chaque hôte et routeur. Trois fonctions principales :   

Choix du chemin : routage

route suivie par les paquets de la source à la dest. Algorithmes de

Commutation :

transporter les paquets du port d’ entrée vers le bon port de sortie.

Mise en place de l’appel :

couche réseau. Dans les réseaux à commutation de circuits, la mise en place du circuit est effectuée par la application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical 4 : Network Layer 4a-2

Modèle de service de la couche réseau

Q : Quel est le

modèle de service

pour les canaux transportant des paquets de la source à la destination ?

  Bande passante garantie ?

Préservation du délai inter paquet (pas de gigue) ?

   Transmission sans pertes ?

Réception dans l’ordre ?

Annoncer une indication de congestion à l’émetteur ?

L’abstraction que donne la couche réseau : 4 : Network Layer 4a-3

Circuits virtuels

Le « chemin » de la source à la destination se comporte comme un circuit téléphonique     Avant d’émettre des données, le circuit doit être mis en place Chaque paquet contient un identificateur de VC (et non pas l’adresse de la destination) Chaque routeur maintient un « état » pour chaque connexion qui traverse le routeur  Les connexions dans la couche transport ne mettent en jeu que les systèmes terminaux Des ressources du lien (bande passante) ou du routeur (mémoire) peuvent être allouées au VC  Pour garantir des performances 4 : Network Layer 4a-4

Circuits virtuels : protocoles de signalisation

   Utilisés pour mettre en place et gérer un VC Utilisés dans ATM, frame-relay et X.25

Ne sont pas utilisés (du moins de façon visible) dans l’Internet actuel application transport network data link physical 5. Data flow begins 4. Call connected 1. Initiate call 6. Receive data 3. Accept call 2. incoming call application transport network data link physical 4 : Network Layer 4a-5

Réseaux Datagramme :

le modèle Internet    Pas de mise en place de circuit routeurs : aucun état mémorisé au sujet des connexions  Pas de notion de connexion au niveau réseau Les paquets sont typiquement routés en fonction de l’adresse de destination  Des paquets avec la même source et destination peuvent suivre des trajets différents application transport network data link physical 1. Send data 2. Receive data application transport network data link physical 4 : Network Layer 4a-6

Modèle de service de la couche réseau

Architecture Réseau Internet Modèle de Service Au mieux Bande Passante aucun Garanties ?

pertes Ordre Délai non non non ATM CBR Constante oui oui oui ATM ATM ATM VBR ABR UBR Débit garantie Minimum garantie Aucun oui non non oui oui oui oui non non  Extension au modèle Internet : Intserv, Diffserv Feedback de Congestion non (inférence par les pertes) Pas de congestion Pas de congestion oui non 4 : Network Layer 4a-7

Datagramme ou VC ?

Internet   Échange de données entre ordinateurs  Service “élastique”, pas de contrainte de délai stricte Systèmes terminaux intelligents  Pouvant s’adapter, contrôler leur émission et faire de la compensation de pertes  Réseau simple, complexité aux extrémités ATM   Évolution de la téléphonie Parole humaine :    Systèmes terminaux “simplistes”  téléphones  Contrainte de délai stricte Besoin de qualité de services garanties La complexité est interne au réseau 4 : Network Layer 4a-8

Routage

Protocole de routage Objectif : choisir un « bon chemin » (suite de routeurs) dans le réseau de la source à la destination.

Abstraction du réseau en graphe   Les nœuds sont des routeurs Les liens sont les liaisons physiques  Coût du lien : délai, prix du lien ou niveau de congestion A 2 1 5 B D 2 3 C 1 3 E 1 5 F 2  «Bon chemin» :   Typiquement un chemin de coût minimal Autres définitions possibles 4 : Network Layer 4a-9

Classification des algorithmes de routage

Information globale ou locale ?

Globale :   Chaque routeur connaît toutes les informations de topologie, de coût des liens, etc.

Algorithme “link state (LS)” Locale :    Le routeur ne connaît que le côut des liens vers les voisins. Calcul itératif et échange régulier d’infos avec les voisins Algorithmes “distance vector (DS)” Statique ou dynamique ?

Statique :  Les routes ne changent pas dans le temps Dynamique :  Les routes changent régulièrement   Mise à jour régulière En réponse aux changement de coût des liens 4 : Network Layer 4a-10

Un Algorithme de routage Link-State

Algorithme de Dijkstra La topologie et le coût des  liens sont connus de tous les nœuds   Calculer le plus court chemin (le chemin le moins coûteux) d’un nœud à tout les autres  Génère la table de  accompli avec une diffusion de l’état des liens Tout les nœuds ont la même info routage du noeud De façon itérative : après k itérations, on connaît le chemin le plus cours vers K destinations Notation :     c(i,j) : coût du lien de i à j. Est infini si i et j ne sont pas voisins D(v) : Valeur courante du coût du chemin de la source à la destination V p(v) : dans le chemin de la source à v noeud précédant v N : Ensemble des nœuds dont on connaît le coût minimal 4 : Network Layer 4a-11

Algorithme de Dijksra

1

Initialisation :

2 N = {A} 3 Pour tout noeud v 4 si v est adjacent à A 5 alors D(v) = c(A,v) 6 Sinon D(v) = infinity 7 8

boucle

Trouver w  N tel que D(w) est minimal 10 ajouter w à N 11 Mettre à jour D(v) pour tout les nœuds v  12 D(v) = min( D(v), D(w) + c(w,v) ) 13

jusqu’à la fin des nœuds de N

N adjacents à w 4 : Network Layer 4a-12

Algorithme de Dijkstra : exemple

étapes 0 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A 2,A 2,A D(C),p(C) 5,A 4,D 3,E 3,E D(D),p(D) 1,A D(E),p(E) inf 2,D D(F),p(F) inf inf 4,E 4,E 4,E A 2 1 5 B D 2 3 C 1 3 E 1 5 F 2 4 : Network Layer 4a-13

Discussion

Complexité de l’algorithme : n noeuds  n*(n+1)/2 comparaisons : O(n**2)  implémentation plus efficace possible : O(nlogn) Oscillations possibles :  Ex : coût du lien = niveau de trafic 1 D 1 0 A 0 0 C e 1 A 0 1+e 1 C 0 0 B … recalculer le routage D 0 1 A 0 0 C 1+e … recalcul A 0 1+e 1 C e 0 B … recalcul 4 : Network Layer 4a-14

Algorithme de routage DV

itératif :   Continue jusqu’à ce que les nœuds ne s’échangent plus d’info Auto-terminaison : pas de «signal» d’arrêt asynchrone :  L’échange des infos ne nécessite pas d’horloge distribué :  Chaque nœud ne communique qu’avec ses voisins Structure de la Table de distance  Propre à chaque nœud    Une ligne par destination possible Une colonne par voisin exemple : dans le noeud X, pour la dest. Y via le voisin Z : X D (Y,Z) = = distance

de

X

à

Y,

via

Z w 4 : Network Layer 4a-15

Table de distance : exemple

B 1 C A 7 1 E 8 D 2 2 E D (C,D) = = 2+2 = 4 E D (A,D) E D (A,B) w = w = 2+3 = 5 boucle!

= w = 8+6 = 14 boucle!

co ût destination via A B D A 1 14 5 B 7 8 5 C 6 9 D 4 11 4 2 4 : Network Layer 4a-16

Table de routage

co ût destination via A B D A 1 14 5 B 7 8 5 C 6 9 D 4 11 4 2 Table de distance Lien sortant , co ût A B C D A,1 D,5 D,4 D,4 Table de routage 4 : Network Layer 4a-17

Algorithme de routage DV

Itératif, asynchrone : chaque itération locale est causée par :   Message d’un voisin du au changement de sa table de distance Distribué :  Changement de coût d’un lien adjacent Chaque nœud annonce à ces voisins seulement quand sa table de distance change Chaque noeud :

attend

(un changement dans le coût local ou un msg du voisin)

Recalcule

la table de distance Si la table de distance change,

annonce

aux voisins 4 : Network Layer 4a-18

Algorithme de routage DV

Dans chaque nœud, X : 1 Initialisation : 2 Pour tout nœud adjacent v : 5 pour toute destination y 6 envoyer min D (y,w) à tous les voisins w w 4 : Network Layer 4a-19

Algorithme de routage DV : exemple

X 2 Y 7 1 Z 4 : Network Layer 4a-20

Algorithme de routage DV : exemple

X 2 Y 7 1 Z X D (Y,Z) = Z c(X,Z) + min {D (Y,w)} w = 7+1 = 8 X D (Z,Y) = Y c(X,Y) + min {D (Z,w)} w = 2+1 = 3 4 : Network Layer 4a-21

Comparaison des algorithmes LS et DV

complexité   LS : avec n noeuds, E liens, O(nE) msgs sont envoyés DV : échange entre les voisins seulement  Le temps de convergence varie Vitesse de Convergence   LS :  O(n**2) Peut osciller DV : Le temps de convergence varie   Boucle possible Comptage à l’infini possible Robustesse : routeur tombe en panne ?

LS : Qu’arrive t’il si le  Le nœud peut annoncer un coût erroné  Chaque nœud ne calcule que sa propre table de routage DV :   Le nœud peut annoncer un coût erroné Tout les nœuds utilisent la table des autres nœuds • L’erreur se propage dans le réseau 4 : Network Layer 4a-22

Routage Hiérarchique

Jusqu’ici nous avons étudié un réseau idéal  Tous les routeurs sont identiques  Un seul réseau

… pas vrai en pratique

Facteur d’échelle : avec 50 millions de destinations :  On ne peut enregistrer toutes les destinations dans la table de routage!

autonomie administrative  internet = réseau des réseaux  Chaque administrateur de réseau veut contrôler le routage dans son réseau 4 : Network Layer 4a-23

Routage Hiérarchique

  Agréger les routeurs en régions autonomes, “autonomous systems” (AS) Les routeurs d’un même AS exécutent le même protocole de routage  protocole de routage “intra-AS” routeurs de passerelle    Routeurs spéciaux dans un AS Exécutent les protocoles de routage intra-AS Responsables du routage à des destinations extérieurs à l’AS  exécutent des protocoles de routage

inter-AS

avec d’autres routeurs de passerelle 4 : Network Layer 4a-24

Routage Intra-AS et Inter-AS

a C.b

C b A d A.a

a b A.c

c B.a

a B c b Passerelles : •Exécutent le routage inter-AS entre elles •Exécutent le routage intra-AS avec les autres routeurs de l’AS Routage inter-AS, intra-AS dans la passerelle A.c

Couche réseau Couche liaison Couche physique 4 : Network Layer 4a-25

Routage Intra-AS et Inter-AS

a Host h1 C C.b

b A d A.a

a b Routage Inter-AS entre A et B B.a

A.c

c Routage Intra-AS dans l’AS A a B c b Host h2 Routage Intra-AS Dans l’AS B 4 : Network Layer 4a-26

Couche réseau dans Internet

Couche Réseau Couche Transport : TCP, UDP Protocoles de Routage •Choix du chemin •RIP, OSPF, BGP Protocole IP •Adressage •Format des datagrammes •Traitement des paquets Table de routage Protocole ICMP •Rapport d’erreur •signalisation Couche de liaison Couche Physique 4 : Network Layer 4a-27

Routage Intra-AS

Plus connus sous le nom de Interior Gateway Protocols (IGP)

IGPs les plus utilisés :

RIP : Routing Information Protocol

OSPF : Open Shortest Path First

IGRP : Interior Gateway Routing Protocol (Cisco propr.)

4 : Network Layer 4a-28

RIP

     Algorithme Distance vector Inclu dans BSD-UNIX depuis 1982 métrique de coût : # de hops (max = 15 hops) Vecteurs de Distance : échangés toutes les 30 sec via des advertisements Chaque advertisement est envoyé à au plus 25 réseaux 4 : Network Layer 4a-29

OSPF

   “open” : dans le domaine public Algorithme Link State  Utilise l’ algorithme de Dijkstra’s Les advertisement OSPF sont envoyés à tout l’AS par inondation (flooding) 4 : Network Layer 4a-30

Fonctionnalités avancées d’OSPF

     Sécurité : tous les messages OSPF sont authentifiés ; des connexions TCP sont utilisées Multipath est autorisé (pas dans RIP) Pour chaque lien, plusieurs métriques de coût en fonction des TOS peuvent être définies Support intégré de l’unicast et du  multicast : Multicast OSPF (MOSPF) utilise la même topologie qu’OSPF OSPF Hiérarchique dans les grands domaines.

4 : Network Layer 4a-31

OSPF hiérarchique

4 : Network Layer 4a-32

Routage inter-AS : BGP

  BGP (Border Gateway Protocol) :

Protocole Path Vector

:    standard de facto similaire au protocole Distance Vector Chaque Border Gateway diffuse à ces voisins la totalité du chemin entire path (I.e, la suite des ASs) jusqu’à la destination Ex : la passerelle X envoie son chemin à la dest. Z : Path (X,Z) = X,Y1,Y2,Y3,…,Z 4 : Network Layer 4a-33

Routage inter-AS : BGP

Hypothèse :

la passerelle X envoie son chemin à la passerelle W  W peut choisir ou ne pas choisir le chemin offert par X  coût, politique (ne pas router via les autres ISPs)   Si W choisit le chemin annoncé par X, alors : Path (W,Z) = w, Path (X,Z) Note : X peut contrôler le trafic entrant en contrôlant ces advertisements  Ex : nous ne voulons pas router le trafic de Z -> ne rien annoncer à Z 4 : Network Layer 4a-34

Adresse IP : introduction

  Addresse IP : identificateur sur 32 bits  identifie pour chaque interface hôte et routeur 223.1.1.1

223.1.1.2

223.1.1.4

223.1.2.1

223.1.2.9

interface :

connexion entre un hôte ou routeur et la couche physique    223.1.1.3

223.1.3.27

223.1.2.2

Les routeurs ont typiquement plusieurs interfaces Les hôtes peuvent avoir plusieurs interfaces 223.1.3.1

223.1.3.2

Les adresses IP sont associées à une interface 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 4 : Network Layer 4a-35

Adresse IP

  Adresse IP   Partie réseau (bits de poids forts) Partie hôte (bits de poids faible)

Réseau ?

(du point de vue IP)   Les interfaces avec la même partie réseau de l’adresse IP Et qui peuvent communiquer sans avoir besoin d’un routeur de passerelle 223.1.1.1

223.1.2.1

223.1.1.2

223.1.1.4

223.1.2.9

223.1.1.3

223.1.3.1

223.1.3.27

223.1.2.2

LAN 223.1.3.2

Le réseau est constitué de 3 réseaux IP (Les 24 premiers bits sont l’adresse réseau) 4 : Network Layer 4a-36

Adresse IP

“classe” d’adressage : classe A 0réseau B 10 réseau C 110 réseau D 1110 hôte 32 bits hôte Adresse multicast hôte 1.0.0.0 to 127.255.255.255

128.0.0.0 to 191.255.255.255

192.0.0.0 to 223.255.255.255

224.0.0.0 to 239.255.255.255

4 : Network Layer 4a-37

Adresse IP

: CIDR

Adressage par classe :

  utilisation inefficace de l’espace d’adressage Ex : une adresse de classe B a assez de place pour pour 65K hôtes, même si il n’y a que 2K hôtes dans ce réseau    CIDR : C lassless I nter D omain R outing La taille de la partie réseau est arbitraire Format de l’adresse : a.b.c.d/x , où x est le # de bits dans la partie réseau de l’adresse network part host part 11001000 00010111 0001000 0 00000000 200.23.16.0/23 4 : Network Layer 4a-38

Adresse IP

:

the last word...

Q : Comment un ISP récupère-t-il un bloc d’adresses IP ?

R :

ICANN : I nternet C orporation for A ssigned N ames and N umbers  alloue les adresses   Gère le DNS Assigne les noms de domaines 4 : Network Layer 4a-39

Adressage hiérarchique : agrégation de route

Organisation 0 200.23.16.0/23 Organisation 1 200.23.18.0/23 Organisation 2 200.23.20.0/23 Organisation 7

..

200.23.30.0/23 Fly-By-Night-ISP “Envoie-moi tout ce dont l’adresse commence par 200.23.16.0/20” Internet ISPs-R-Us “Envoie-moi tout ce dont l’adresse commence par 199.31.0.0/16” 4 : Network Layer 4a-40

Envoyer un datagramme de la source à la dest.

table de routage de A Dest. Ner. next router Nhops Datagramme IP : Champs divers addr IP source addr IP dest data  Le datagramme reste inchangé durant sa traversé du réseau A B 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 223.1.1.1

223.1.1.2

223.1.1.4

223.1.2.1

223.1.2.9

223.1.1.3

223.1.3.27

223.1.2.2

E 223.1.3.2

223.1.3.1

4 : Network Layer 4a-41

Envoyer un datagramme de la source à la dest.

Champs divers 223.1.1.1 223.1.1.3

data    Regarder la partie réseau de l’adresse de B Vérifier si B est sur le même réseau que A La couche liaison envoie directement le datagramme à B  B et A sont directement connectés Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 A 223.1.1.1

223.1.2.1

223.1.1.2

223.1.1.4

223.1.2.9

B 223.1.1.3

223.1.3.27

223.1.2.2

E 223.1.3.1

223.1.3.2

4 : Network Layer 4a-42

Envoyer un datagramme de la source à la dest.

Champs divers 223.1.1.1 223.1.2.3

data    Regarder la partie réseau de l’adresse de E E est sur un réseau différent  A et E ne sont pas directement attachés  Regarder dans la table de routage 223.1.1.4 : le routeur suivant pour le réseau de E est La couche liaison envoie le datagramme au routeur 223.1.1.4

Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 A 223.1.1.1

223.1.2.1

223.1.1.2

223.1.1.4

223.1.2.9

B 223.1.1.3

223.1.3.27

223.1.2.2

E 223.1.3.1

223.1.3.2

4 : Network Layer 4a-43

Envoyer un datagramme de la source à la dest.

Champs divers 223.1.1.1 223.1.2.3

data     Arrivée à 223.1..1.4 d’un paquet destiné à 223.1.2.2

Regarde la partie réseau de l’adresse de E E est sur le même réseau que l’interface routeur 223.1.2.9

 Envoyer le paquet à ce routeur La couche liaison envoie le datagramme à 223.1.2.2 via l’interface 223.1.2.9

Le datagramme arrive à 223.1.2.2

!!!

Dest. next network router Nhops interface 223.1.1 223.1.2 223.1.3 1 1 1 223.1.1.4

223.1.2.9

223.1.3.27

A 223.1.1.1

223.1.2.1

223.1.1.2

223.1.1.4

223.1.2.9

B 223.1.1.3

223.1.3.27

223.1.2.2

E 223.1.3.1

223.1.3.2

4 : Network Layer 4a-44

Format de datagramme IP

IP protocol version number header length (bytes) “type” of data max number remaining hops (decremented at each router) upper layer protocol to deliver payload to 32 bits ver head.

len type of service 16-bit identifier time to live upper layer flgs length fragment offset Internet checksum 32 bit source IP address 32 bit destination IP address Options (if any) data (variable length, typically a TCP or UDP segment) total datagram length (bytes) for fragmentation/ reassembly E.g. timestamp, record route taken, pecify list of routers to visit.

4 : Network Layer 4a-45