Post on 31-Jan-2021
RLI 2009 - IP et Routage 1
RLIRéseaux Locaux et
InterconnexionsL3 Informatique
Enseignants :Cours : Jean-Jacques Pansiot
pansiot@unistra.frTD/TP : Vincent Lucas
lucas@clarinet.u-strasbg.fr
RLI 2009 - IP et Routage 2
Objectifs
• Fonctionnement protocole IP (base d’Internet)– Principes et pratique
• Adressage, Configuration, routage• Routeurs et interconnexion par des routeurs
• Réseaux Locaux– Principales méthodes d’accès
• Principes et pratique (ethernet, wifi)– Interconnexion par des ponts (switchs, …)
• Bases des réseaux locaux actuels
• TP sur des équipements réseaux• Routeurs, ponts
RLI 2009 - IP et Routage 3
Interconnexionniveau 2 ou 3 ?
transport
réseau (A)
liaison liaison
réseau
liaison liaison
réseau (B)
transport
physique physique physiquephysique
extrémité 1 lien 1 routeur lien 2 pont lien 3 extrémité 2Réseau local LAN
Application Application
TCP
IP
Ethernet
RLI 2009 - IP et Routage 4
$ traceroute -q 1 www.ucla.edu 1 130.79.199.253 (130.79.199.253) 14.781 ms 2 193.51.184.42 (193.51.184.42) 1.392 ms 3 193.51.189.85 (193.51.189.85) 26.091 ms 4 193.51.189.161 (193.51.189.161) 8.366 ms 5 renater.rt1.par.fr.geant2.net (62.40.124.69) 8.985 ms 6 so-7-3-0.rt1.gen.ch.geant2.net (62.40.112.29) 17.233 ms 7 so-7-2-0.rt1.fra.de.geant2.net (62.40.112.22) 25.381 ms 8 abilene-wash-gw.rt1.fra.de.geant2.net (62.40.125.18) 118.324 ms 9 so-0-0-0.0.rtr.atla.net.internet2.edu (64.57.28.6) 132.617 ms10 so-3-2-0.0.rtr.hous.net.internet2.edu (64.57.28.43) 155.551 ms11 so-3-0-0.0.rtr.losa.net.internet2.edu (64.57.28.44) 187.797 ms12 hpr-lax-hpr--i2-newnet.cenic.net (137.164.26.132) 189.675 ms13 ucla--lax-hpr1-ge.cenic.net (137.164.27.6) 188.358 ms14 border--core-1-10ge.backbone.ucla.net (169.232.4.100) 187.795 ms
RLI 2009 - IP et Routage 5
Bibliographie
• Réseaux, Andrew Tanenbaum, Pearson Education– en particulier chapitre 4 : LAN, bridging– chapitre 5 : couche réseau (IP, routage)
• Les Réseaux, Guy Pujolle, Eyrolles– en particulier chapitres 16 (ethernet), 17 (IP et
routage)
RLI 2009 - IP et Routage 6
Première partie
Le protocole IPmécanismesadressageroutage
routage à état des liens et OSPFrouteurs
RLI 2009 - IP et Routage 7
Routage et IP
transport
réseau (A)
liaison liaison
réseau
liaison liaison
réseau (B)
transport
physique physique physiquephysique
extrémité 1 lien 1 routeur lien 2 pont lien 3 extrémité 2Réseau local LAN
Application Application
RLI 2009 - IP et Routage 8
Service fourni à la couche transport
– Deux modes pour la couche réseau• services en mode connecté (Tel., X25, RNIS, ATM)
– Service « sophistiqué »– service fiable– établissement d’une connexion– Paquets utilisent un circuit (créé à la connexion)– possibilité négociation paramètres de Qualité de Service QoS
et de coût» débit, délai, gigue, …
– Réseau complexe (mais terminal simple : tel.)
• services en mode non connecté (Internet)– qualité au mieux « best effort » (non fiable)– la fiabilisation est assurée par la couche transport– chaque paquet comporte l’adresse complète de destination
RLI 2009 - IP et Routage 9
Service fourni à la couche transport (2)
– services en mode non connecté• complexité au niveau Transport (bout en bout)• « Réseau simple et terminaux complexes »
– Contraire du réseau téléphonique usuel• réseau déchargé des mécanismes de contrôle• adapté aux services « asynchrones » (données) ou aux
transactions (requêtes / réponses)• Qualité de Service plus difficile à garantir
– Fonctionnement mode non connecté (datagramme)• paquets (datagrammes) routés indépendamment les uns des
autres• routeurs ont une table avec une ligne pour chaque (groupe de)
destination• plus robuste (résistance aux pannes)
RLI 2009 - IP et Routage 10
Protocole IP (Internet Protocol, 1981)
• Défini dans le RFC 791 http://www.ietf.org/rfc/rfc0791.txt– envoi de datagrammes (paquets IP)
• de bout en bout à travers des (sous-)réseaux interconnectés (internet)• sous réseaux hétérogènes (débit, taille trames, adressage)
– IP = couche unificatrice• IP au dessus de tout protocole (LAN, WAN, satellite, connecté ou non, …)• règles d’encapsulation du paquet IP pour chaque type de liaison
– peu de fonctions complexes (sauf fragmentation)• dans le plan de données• pas de retransmission (non fiable)• déséquencement possible• pas ou peu de contrôle de flux/congestion• modèle de service usuel : « best effort »
– complexité dans le plan de contrôle/signalisation• protocoles de routage
– fonctions évoluées dans la couche transport (ex : TCP)
RLI 2009 - IP et Routage 11
Paquet IP
• Paquet IP (datagramme) :– Entête obligatoire (20 octets)– options facultatives– données (total < 216 octets : 64K)
Fonctions IP champs de l’entête
RLI 2009 - IP et Routage 12
Format entête IP
Eventuelles options + bourrage : N * 32 bits, N ≥ 06+
Adresse IP destination5
Adresse IP source4
total de contrôle entêteprotocoleTTL3
Flags (3b), Offset fragment (13 bits)identification2
Longueur totaleToS/DSCP, ECNLg_entversion1
28-3124-2720-2316-1912-158-114-70-3
RLI 2009 - IP et Routage 13
Format du paquet IP
Entête paquet IPv4• version : n° de version courante (4)• Lg_ent : longueur de l’en-tête (y compris option) en mots
de 32 bits ( sans options 20 octets : 5)• type de service (ToS) : priorité du paquet et type de
routage souhaité (par défaut non utilisé). Maintenantutilisé pour le champ DSCP (diffserv) et pour les bitsECN
• longueur totale : du paquet ou fragment en nombred’octets
• identification, flags, offset fragment : utilisés par lesprocédures de fragmentation et réassemblage
RLI 2009 - IP et Routage 14
Entête IP (suite)
• durée de vie (TTL) : durée de vie maximale d’un paquet en nombrede secondes
– en pratique décrémenté de 1 dans chaque routeur traversé– si TTL = 0 et paquet non arrivé => message
» ICMP Time-to-live exceeded in transit.• protocole : n° du protocole (de transport) auquel il faut remettre le
paquet IP, lorsque la destination est atteinte– ex TCP(6), UDP(17), DCCP(33), ICMP(1), IGMP(2), OSPF (89)
• total de contrôle d’en-tête (checksum) : contrôle de redondance surl’en-tête : code détecteur arithmétique
• adresse IP source (4 octets) unicast• adresse IP destination (4 octets) unicast, multicast, broadcast• options IP (éventuelles)• bourrage : permet que la longueur de l’en-tête soit un multiple de
32 bits
RLI 2009 - IP et Routage 15
IP : Type de service ToS
– ToS : signification d’origine• priorité :
– valeurs codées de 0 à 7» 6 et 7 pour signalisation réseau (= dans la bande)
• bits D, T, R : qualité de service d’acheminement désirée– D = 1 : demande un délai d’acheminement court– T = 1 : demande un débit de transmission élevé– R = 1 : demande une grande fiabilité
• En pratique ToS souvent ignoré par les routeurs– Maintenant utilisé par Diffserv
– architecture à Différentiation de services– le champ DSCP code la classe de service dans ToS
– Bits 6 et 7 maintenant utilisés pour indication de congestion ECN– ECN : Explicit Congestion Notification (voir RFC3168)
RLI 2009 - IP et Routage 16
IP : Fragmentation et réassemblage
• Un paquet IP est encapsulé dans des trames adaptées auxdifférents sous-réseaux qu’il traverse
• chaque sous-réseau autorise une taille maximum :– MTU (Maximum Transfer Unit)– MTU Ethernet : 1500 octets, MTU FDDI : 4470 octets
• la fragmentation vise à assurer l’indépendance entre le paquet IP etle MTU des sous-réseaux traversés
– MTU minimum : 576 octets• Un fragment peut être lui même re-fragmenté• Le réassemblage se fait à l’arrivée
– des fragments peuvent se perdre– des fragments peuvent arriver dans le désordre
• fragmentation et réassemblage diminuent les performances– calculs dans les routeurs
RLI 2009 - IP et Routage 17
IP : Fragmentation et réassemblage (2)
– Entête et fragmentation• Drapeaux :
– bit DF « Don ’t fragment » :» si DF = 1 alors le paquet ne doit pas être fragmenté» si DF = 0 alors la fragmentation est autorisée
– bit MF « More fragments » :» si MF = 1 alors il y a encore des fragments derrière» si MF = 0 alors c’est le dernier fragment
• Pour un fragment le champ offset (dep_fragment) indique saposition dans le paquet d’origine
• Tous les fragments du même paquet ont le mêmeidentificateur
• remarque : offset = 0 et MF = 0 => paquet non fragmenté
RLI 2009 - IP et Routage 18
RéassemblageArrivée d’un paquet
si MF=0 ET offset=0paquet non fragmenté => livrer paquet couche supérieure (TCP …)
sinonsi premier fragment avec cet ident
allouer buffer assemblage, armer timeoutfinsiinsérer fragment dans paquet à position offsetsi paquet complet /* test ? */
livrer paquet, libérer buffer, désarmer timeoutfinsi
finsiSi timeout
libérer buffer, envoyer message erreur ICMP( Fragment reassembly time exceeded)
finsi
RLI 2009 - IP et Routage 19
IP (suite et fin)
– Eviter la fragmentation• découverte du PMTU : « Path MTU discovery »• Minimum des MTU le long du chemin (route)
– des paquets de taille décroissante sont émis avec DF= 1– un paquet trop gros avec DF = 1 est abandonné par routeur
» envoi message d’erreur ICMP à la source (avec MTU)– dès que l’on ne reçoit plus d’erreur ICMP, on a trouvé le PMTU– voir RFC 1191
– Options d’IP :• source routing (indique la liste des routeurs intermédiaires)• route recording : enregistre les routeurs intermédiaires
– limite sur la taille des options• Router Alert• options souvent ignorées à cause du coût de traitement• les routeurs traitent plus rapidement des paquets IP dont l’en-tête est
de longueur fixe (sans option)• Slow path ≠ fast path
RLI 2009 - IP et Routage 20
Exemple paquet IP
RLI 2009 - IP et Routage 21
Paquet IGMP avec option IP : Router Alert
RLI 2009 - IP et Routage 22
ICMP
• ICMP Internet Control Message Protocol RFC 792 (et ext.)– Messages ICMP transportés dans IP (avec protocole 1)– Messages d’erreur ou bien requête/réponse– Messages d’erreur
• destination inaccessible (type 3) (envoyé par routeur ou dest.)– Divers codes suivant type inaccessibilité– réseau, port, protocole, filtrage administratif, …
• temps dépassé (en transit ou réassemblage)• tarir la source (Source quench) : tentative de contrôle de flux
– envoyé par routeur• exemple de traceroute
– Messages requête/réponse• echo(type 8) réponse (type 0) (voir commande ping)• demande masque/réponse• etc …
RLI 2009 - IP et Routage 23
Ping : message echo request
RLI 2009 - IP et Routage 24
ICMP : Exemple message d’erreur
contient le début du paquet en erreur
envoyé par routeur
RLI 2009 - IP et Routage 25
ARP
• ARP Address Resolution Protocol RFC 826– En général adressage différent aux niveaux 2 et 3– ARP : correspondance entre
• adresse de niveau 3 connue (par exemple IP)• adresse de niveau 2 (par exemple ethernet)• requête envoyée en broadcast de niveau 2 (ethernet)• réponse en unicast vers adresse Mac demandeur
– protocole au même niveau que IP
• remarque : il existe aussi RARP : Reverse ARP (RFC 903)– correspondance adresse Mac => adresse IP– moins utilisé
• au démarrage de machines ignorant leur adresse IP
RLI 2009 - IP et Routage 26
Exemple requête ARP
RLI 2009 - IP et Routage 27
Table arp
• Cache conservant la correspondance @IP @ ethernet– pendant un certain délai– Voir commande arp
$ arp -acrc.u-strasbg.fr (130.79.201.129) at 0:15:60:aa:fd:2 on en0 [ethernet]ricoh.u-strasbg.fr (130.79.201.154) at 0:0:74:9e:11:22 on en0 [ethernet]crc-rc1-ge-1-2-0-5.u-strasbg.fr (130.79.201.253) at 0:5:85:8a:1b:f1 on en0
[ethernet]r-crc-5.u-strasbg.fr (130.79.201.254) at 0:0:5e:0:1:33 on en0 [ethernet]
Si adresse IP pas dans la table : envoyer requête ARP
RLI 2009 - IP et Routage 28
Adressage IP
• Adresse IP (IPv4) codée sur 32 bits– notation décimale 130.79.200.1– une adresse identifie une interface (pas un hôte)
• plusieurs interfaces => plusieurs adresses– Initialement notion de réseau et de classe– adresse découpée Réseau(R) | Hôte(H)
• classe A, premier bit = 0, 7 bits pour R, 24 pour H• classe B, 2 premiers bits 10, 14 bits pour R, 16 pour H• classe C, 3 premiers bits 110, 21 bits pour R, 8 pour H• classe D, 4 premiers bits 1110, adresses multicast• classe E commence par 1111 : non utilisées
RLI 2009 - IP et Routage 29
Adressage : sous réseaux
• adresse découpée en 3 parties– réseau | sous-réseau | hôte
• permet un découpage fin : sous-réseau de 2i adresses• découpage ne peut être deviné à partir de l’adresse• nécessite un masque de (sous-)-réseau (netmask)
– les bits à 1 désignent réseau + sous-réseau– ceux à 0 le numéro de l’hôte dans le sous-réseau
• en pratique masque formé de n « 1 » contigus à gauche– peut être représenté par un préfixe
130.79.90.0/23 130.79.90.0 255.255.254.0• masque ou préfixe doit être configuré par interface
– permet déterminer si une adresse ∈ même sous-réseau
RLI 2009 - IP et Routage 30
Adressage : cas particuliers
• Broadcast– 255.255.255.255 :
• toutes les machines du sous-réseau– Broadcast dans un (sous)-réseau spécifié
• tous les bits de H mis à 1• 130.79.90.0/ 23 => 130.79.91.255
– Multicast• 224.0.0.0/4• Représentent un groupe de machines (interfaces)• Nécessite un protocole d’adhésion (IGMP)
RLI 2009 - IP et Routage 31
Adressage : cas particuliers (2)
• Adresses privées– 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
• non routables à travers internet• => peuvent être réutilisées indépendamment• souvent utilisées avec NAT
– Network Address Translation
– 169.254.0.0/16• Spécifiques au lien (link local)• Adresses configurées automatiquement• Non routables à travers internet
RLI 2009 - IP et Routage 32
Adressage : « super réseaux » et CIDR
• CIDR : Classless InterDomain Routing– RFC 1518 et 1519 (1993)
• constat début années 1990– mauvaise utilisation des classes d’adresses
» classe A : 224 machines !!» peu de réseaux de classe A et de classe B
– beaucoup de classe C» entreprise a besoin de plusieurs classes C
• => épuisement des N° réseaux disponibles• => explosion tables de routage
– une ligne par réseau attribué de classe A, B ou C
RLI 2009 - IP et Routage 33
Voir http://www.potaroo.net/tools/ipv4/index.html
RLI 2009 - IP et Routage 34
CIDR (suite)
• Solution à long terme : IPv6• espace d’adressage sur 128 bits• facilité renumérotation
• Solution à court terme (mais qui dure) : CIDR– Plus de classes– Réseau représenté par un préfixe
• ex : 200.16.0.0/14• même principe que les sous-réseaux• toute taille 2i possible : meilleure utilisation adresses• réseau = un seul préfixe (au lieu de plusieurs classe C)
– => table routage plus petite
RLI 2009 - IP et Routage 35
Exemple table propagation IP
Gateway of last resort is 130.79.208.230 to network 0.0.0.0
130.79.0.0/16 is variably subnetted, 9 subnets, 3 masksC 130.79.48.128/25 is directly connected, GigabitEthernet0/1.48C 130.79.48.96/28 is directly connected, GigabitEthernet0/1.486C 130.79.48.80/28 is directly connected, GigabitEthernet0/1.485C 130.79.48.64/28 is directly connected, GigabitEthernet0/1.484C 130.79.48.48/28 is directly connected, GigabitEthernet0/1.483C 130.79.48.32/28 is directly connected, GigabitEthernet0/1.482C 130.79.48.16/28 is directly connected, GigabitEthernet0/1.481C 130.79.208.224/29 is directly connected, GigabitEthernet0/0C 130.79.48.0/28 is directly connected, GigabitEthernet0/1.480S* 0.0.0.0/0 [1/0] via 130.79.208.230
RLI 2009 - IP et Routage 36
Exemple table propagation IP
Exemple de préfixes (routage entre réseaux )
4.0.0.0/84.2.40.0/214.2.52.0/224.2.64.0/204.17.1.0/244.17.1.253/324.17.106.0/244.23.112.0/224.24.148.128/25
RLI 2009 - IP et Routage 37
IP sur une station
• Informations nécessaires– Configuration
• statique (ifconfig/ipconfig)• dynamique (DHCP)
– adresse IP, S et masque M (par interface)– adresse IP, G du routeur par défaut (gateway)– adresse ethernet s (par interface) connue
statiquement– table ARP
• construite dynamiquement (ARP)
RLI 2009 - IP et Routage 38
Algorithme simplifié : envoi paquet
/* IP dest. = D (fournie par appli), IP source = S (interface) */
Si ( D ∧ M = S ∧ M ) /* D appartient au réseau local */alors si D ∉ Table ARP alors envoyer requête ARP(D) en broadcast ethernet si réponse ARP(D,d) alors mettre (D, d) dans la table ARP finsi finsi si (D, d) ∈ table ARP alors
envoyer paquet dans une trame ethernet source s et destination d sinon échec /* pas de réponse ARP */ finsi
sinon /* D n’appartient pas au sous-réseau local */envoyer le paquet dans une trame ethernet source s et destination g/* g est l’adresse ethernet de G contenue dans la table ARP et apprise par ARP */
finsi
RLI 2009 - IP et Routage 39
2. Routage et routeur
Routage des paquets : plusieurs phases1) obtenir des informations sur le réseau
topologie, ressources (débit disponible, …)2) déterminer une route pour atteindre destination (préfixe) => table de routage (RIB : Routing Information Base)3) configurer les routeurs (acheminement)
=> table de commutation (FIB : Forwarding Information Base)4) commuter les paquets
1 à 3 : plan de contrôle (signalisation : protocoles de routage)4 : plan de données1-3 et 4 se déroulent en parallèle et en permanence
mais avec des fréquences différentes
RLI 2009 - IP et Routage 40
Routeur IP simplifié
RIB
FIB
Signalisation
Données
A, donnéesentrée
FC
Algo routage
sortiepaquet
configuration
IP destination
Calcul FIBMessages de routage
longest match
Plan de contrôle
Plan de donnéesfile d’attente
RLI 2009 - IP et Routage 41
FIB et commutation
• FIB :• informations minimale pour commuter
– préfixe, interface sortie, prochain saut• doit être très rapide
– paquet de 1000 bits sur réseau 10Giga < 100 ns• principe du longest match
– étant donnée destination D– trouver dans FIB plus long préfixe correspondant à D
» plus long = plus spécifique– plus complexe que exact match– exemple : arbres binaires de recherche
RLI 2009 - IP et Routage 42
FIB et routage saut par saut
• Dans internet– chaque routeur construit sa RIB puis sa FIB
• un paquet est commuté– saut par saut (hop by hop)
» interrogation des FIB successives– => aucun routeur ne connaît la route exacte empruntée par
un paquet (risque de boucle d’où le TTL)• si changement RIB
– 2 paquets successifs (même flux) => routes différentes• si file d’attente pleine : paquet jeté
RLI 2009 - IP et Routage 43
Algorithmes de routage
Objectifs du routagepermettre construction RIB puis FIB tel que :• assurer acheminement paquet à destination
– sans boucle
• minimiser le délai de transmission• maximiser le débit• prévenir la congestion• assurer l’équité entre utilisateurs• optimiser utilisation ressources du réseau
RLI 2009 - IP et Routage 44
Objectifs du routage (2)
• gérer les défaillances du réseau• s’adapter aux modifications du réseau• stabilité
– certains critères peuvent être contradictoires :– justice et optimisation– minimiser le délai moyen de traversée des paquets et
maximiser le flux total du réseau
– solution de compromis :– ex : RIP :
» minimiser le nombre de sauts (routeurs traversés)
RLI 2009 - IP et Routage 45
Techniques distribuées
• En général routage adaptatif global
– chaque routeur adapte sa table de routage en fonctiond’information locales, mais aussi globales,
» => signalisation de routage avec les autres noeuds
• Routage à vecteur de distance distance vector– chaque routeur possède une vue partielle du réseau– ex RIP : Routing Information Protocol
• Routage par informations d’état des liens link state– chaque routeur possède une vue globale du réseau– ex OSPF (Open Shortest Path First), IS-IS
RLI 2009 - IP et Routage 46
Routage à vecteur de distance– chaque routeur dispose d’une table de routage précisant, pour
chaque destination, la meilleure distance connue et par quelleligne l’atteindre
– vecteur de distance : sous-ensemble de la table de routage :ensemble des couples (destination, coût)
– les routeurs s’échangent périodiquement leurs vecteurs dedistance
– algorithme de Bellman-Ford ou Ford-Fulkerson» chaque arête a un poids positif» longueur d’un chemin = somme des poids des arêtes» calcul distribué du plus court chemin
– utilisé par RIP (Internet), IPX (Novell) et réseaux Appletalk– métrique souvent utilisée : nombre de sauts
» => arêtes de poids 1
RLI 2009 - IP et Routage 47
Routage à vecteur de distance (2)
• Algorithme de Bellman-Ford distribué– d(i,j) : distance entre deux entités adjacentes i et j– D(i,j) : distance minimale entre deux entités quelconques i et j– D(i,j) = Min k [ d(i,k) + D(k,j) ] pour i ≠ j (principe localité)– converge vers une estimation correcte de D(i,j) en un temps fini en
l’absence de changements topologiques– est exécuté par tous les routeurs– se déroule de façon asynchrone
• Chaque routeur i envoie périodiquement son vecteur de distance àtous ses voisins :
{ (k, D(i,k)), pour toute destination connue k }où D(i,k) est l’estimation actuelle calculée par i
Chaque routeur i maintient une table (RIB) :(k, r, n) où r = D(i,k) et n est le prochain saut calculé vers k
RLI 2009 - IP et Routage 48
Routage à vecteur de distance (2)• Algorithme de Bellman-Ford (suite)• Lorsque le routeur R reçoit un vecteur en provenance d’un
voisin R’’ :• Pour tout couple (A, n’’) du vecteur
– calculer n’ = n’’ + d(R, R’’)– si la table de R contient une ligne (A, R’, n)– alors
» 1. si R’ = R’’ et n = n’ alors pas de changement» 2. si R’ = R’’ et n ≠ n’ alors mise à jour de la distance
(qu’elle soit inférieure ou supérieure)» 3. si R’ ≠ R’’ et n ≤ n’ alors pas de changement (stabilité)» 4. si R’ ≠ R’’ et n > n’ (nouvelle route meilleure) alors remplacer (A, R’, n) par (A, R’’, n’)
– sinon» ajouter une ligne (A, R’’,n’)
RLI 2009 - IP et Routage 49
Routage à vecteur de distance (2)
• Exemple de RIP (Routing Information Protocol,RFC 1058)
– RIP utilise UDP sur le port n° 520» donc non fiable
– intervalle de transmission des tables : 30 sec» perte d’un message compensée par le suivant
– durée du timer associé à chaque destination : 3 min» après ce délai sans rafraîchissement» => destination inaccessible (distance = ∞ )
– Dans RIP ∞ = 16
RLI 2009 - IP et Routage 50
Apparition de D puis de R1-R4
R1
R3
R2
R4
D
D, R1,1
D,R1,2 D,R2,3
D,R1,2D,1
D,2D,1
D,2
D,3
D,0D,2
D,3
D,2
D,R3,4 D,4
D,4
RLI 2009 - IP et Routage 51
Coupure D-R1 et comptage à l’infini
R1
R3
R2
R4
DD, -,∞
D,R1,2 D,R2,3
D,R1,2
D,5
D,2
D,3
D,0X D, R1,1D,∞ D,-, ∞
D, ∞
D,∞
D,-, ∞
D,R3, 4D,4D, R2,5
D,R1,6 D,6
D,R4,7
D,7
D,R4,3vecteurs tournent en rond, +4 par tourpaquets pour D tournent sens inverse: boucle
RLI 2009 - IP et Routage 52
RIP
• On observe– comptage à l’infini
• limiter la métrique maximum (16 pour RIP)– boucle transitoire de routage
• horizon partagé /retour empoisonné– évite les boucles longueur 2 :– envoyer une distance ∞ à notre prochain saut vers D
– problème long à se résorber• échange toutes les 30 secondes• => mises à jour déclenchées
RLI 2009 - IP et Routage 53
Algorithmes à état des liens
• Principe– lien = connectivité entre
• routeur et réseau ou entre 2 routeurs• = arête d’un graphe• sommet du graphe : routeurs et réseaux
– chaque routeur détermine• état des liens (EL) adjacents (local)
– A chaque changement d’état d’un lien local• routeur initie diffusion de proche en proche du nouvel
EL à tous les routeurs du réseau
RLI 2009 - IP et Routage 54
Algorithmes à état des liens (2)
• Diffusion de proche en proche– doit être fiable
• transfert état des liens acquittés, numéro de séquence
– tous les routeurs ont la même base d’état de tousles liens du réseau (BEL)
• au délai de diffusion des EL près
• A chaque changement de la base BEL– chaque routeur calcule
• + court chemin de lui-même vers toutes les destinations
RLI 2009 - IP et Routage 55
Algorithmes à état des liens (3)
• Graphe (BEL) avec poids positifs– calcul d’un arbre des + courts chemins
• => algorithme de Dijkstra• ex-aequo départagés par identificateurs• racine de l’arbre = routeur qui calcule• prochain saut N vers D = fils dans le sous-
arbre qui contient D• => RIB (puis FIB)
RLI 2009 - IP et Routage 56
Exemple d’OSPF
• Open Shortest Path First– RFC 2328 (ospf v2, avril 98, 240p), standard 54– Caractéristiques
• Protocole à état des liens• intra-domaine : routage à l’intérieur d’un réseau
– FAI, entreprise, …• Découverte automatique des voisins• Election d’un routeur désigné par sous-réseau (LAN)• Diffusion fiable des EL• Possibilité de découper le réseau en aires (area)
– hiérarchisation pour les grands réseaux• traitement des routes extérieures au réseau
RLI 2009 - IP et Routage 57
Grandes Phases d’Ospf
• découvrir les voisins et établir adjacences– et surveiller adjacences établies
• à chaque changement adjacence– calculer BEL, diffuser nouveaux EL
• à chaque changement BEL– calculer RIB intra -aire– calculer RIB inter-aires : dest. hors aire
• et diffuser EL inter aires
– calculer RIB externe (dest. hors domaine)
RLI 2009 - IP et Routage 58
Modèle de graphe Ospf
• Deux types de nœuds :– routeur– réseau (par exemple LAN)
• Liens entre 2 nœuds orientés– lien bidirectionnel : chaque sens annoncé par
routeur différent– état du lien annoncé par
• routeur origine du lien, si origine est un routeur– EL type routeur, poids positif (exemple 108 / D )
• routeur désigné (élu) du réseau si l’origine est un réseau– EL type réseau, poids nul
RLI 2009 - IP et Routage 59
Voisins
• messages hello périodiques• envoyés en multicast
– ALL-OSPF-ROUTERS = 224.0.0.5– période HelloInterval 10s par défaut (LAN)
• contient les identifiants des voisins vus• je vois que tu me vois = voisinage bidirectionnel
– nouveaux voisins connus automatiquement– panne voisin ou coupure lien
• apprise automatiquement• délai de plusieurs HelloInterval
RLI 2009 - IP et Routage 60
Routeurs Désignés
• Par réseau multi-routeurs (ex : LAN)– élection d’un routeur désigné
• Designated Router DR– élection d’un routeur désigné de secours
• Backup Designated Router BDR– parmi les routeurs voisins bidirectionnels basée :
• priorité (configurable)• identité du routeur
– résultat calcul annoncé dans messages Hello– élection stable :
• valable jusqu’à disparition DR / BDR
RLI 2009 - IP et Routage 61
Adjacences
• Adjacence établie entre 2 routeurs– permet l’échange de LSA
• Link State Advertisement
– lien point-à-point => adjacence– lien multipoint (ex LAN)
• adjacence entre tous routeurs et DR et BDR• limite nombre adjacences si routeurs nombreux• ex : 10 routeurs : 17 au lieu de 45• états des liens de type réseaux annoncés par DR du
réseau
RLI 2009 - IP et Routage 62
Annonces
• Chaque routeur– maintient une annonce de type routeur
• liste tous les liens adjacents (sortant) du routeur– interfaces physiques : lien vers LAN– Hello : lien PàP vers autre routeur
– pour chaque réseau dont il est DR• maintient une annonce de type réseau• liste tous les routeurs connectés à ce réseau
– appris grâce messages Hello
RLI 2009 - IP et Routage 63
Annonces : contenu
• Une AEL– Annonce d’états des liens , LSA Link State Adver.– contient entre autres
• identité routeur annonçant• identifiant (adresse IP routeur ou LAN)• N° séquence AEL : détection + récent• un âge max (défaut 1 heure)• un type : routeur, réseau, récapitulation de réseau,
récapitulation externe, externe• un total de contrôle (checksum)• puis liste des EL de l’AEL (adresse, masque, métrique)
RLI 2009 - IP et Routage 64
Diffusion annonces
• échanges– OSPF directement au dessus de IP (proto 89)– des AEL avec checksum et acquittement– => fiable– proposition (AEL, id, seq) puis envoi
• Nouvelle adjacence– synchronisation des bases EL entre routeurs
RLI 2009 - IP et Routage 65
Diffusion annonces (2)
• changement EL– adjacence, interface…– construction nouvel AEL– proposition aux voisins (adjacents)– puis reproposée cycliquement (défaut 30 ‘)
• réception d’un AEL– mise dans BEL– proposée à tous les voisins (adjacents)
• AEL périmée : supprimer de BEL
RLI 2009 - IP et Routage 66
OSPF : schéma du réseau
R1
R5
R4R3
R2
N1
N2N4
N3
N510
1
1
1
10
10
10
10
11
En rouge : coût des interfaces, par exemple 108 / D, 1= 100M, 10 = 10M
RLI 2009 - IP et Routage 67
OSPF : graphe et état des liens
R1
R5
R4R3
R2
N1
N2N4
N3
N5 R1 annonce R1->N5(10), R1->N1(1)
R2 annonce R2->N1(1), R2->N3(10)
R3 annonce R3->N1(1), R3->N4(10),
R3->R5(1)
R4 annonce R4->N1(1), R4,N2(10)
R5 annonce R5->R3(10), R5,N2(10)
DR1 annonce N1->R1(0), N1->R2(0),
N1->R3(0), N1->R4(0)
DR2 annonce N2->R4(0), N2->R5(0)
DR1 est élu parmi R1,R2,R3,R4
DR2 est élu parmi R4,R5
10
1
1
1
10
10
10
10
11
0
00
0
01
0
RLI 2009 - IP et Routage 68
OSPF : calcul RIB
• A chaque changement BEL– dans le graphe orienté extrait BEL– calcul arbre + court chemin
• du routeur local vers tous les réseaux• utilise algorithme de Dijkstra• variante possible :
– calculer plusieurs chemins de coût minimal» ECMP : Equal Cost Multi Path
• RIB : prochain saut dans l’arbre versdestination
RLI 2009 - IP et Routage 69
OSPF : Dijkstra : calcul de R1
R1
R5
R4R3
R2
N1
N2N4
N3
N5
Base EL
R1->N5(10), R1->N1(1)
R2->N1(1), R2->N3(10)
R3->N1(1), R3->N4(10), R3->R5(1)
R4->N1(1), R4,N2(10)
R5->R3(10), R5,N2(10)
N1->R1(0), N1->R2(0),
N1->R3(0), N1->R4(0)
N2->R4(0), N2->R5(0)
1
1 1
10
10
11
2
11 11
RIB de R1N1 R1 1N2 R4 11N3 R2 11N4 R3 11N5 R1 10
CandidatsN1(1), N5(10)R2(1),R3(1),R4(1) N5(10)R3(1),R4(1), N5(10),N3(11)R3(1),N5(10),N3(11),N2(11)R5(2),N5(10),N3(11),N2(11),N4(11)N5(10),N3(11),N2(11),N4(11)N3(11),N2(11),N4(11)N2(11),N4(11)N2(11)
RLI 2009 - IP et Routage 70
OSPF : exemple coupure lien R4-N2
• Détection• par R4 => annonce R4->N1(1) (plus R4,N2(10) )• par R5 (DR2) DR2 annonce N2->R5(0) (plus N2->R4(0))
• chaque routeur diffuse ces annonces (car plus récente)⇒ coupure découverte implicitement
(pas de message « coupure »)
• changement BEL => chaque routeur recalcule Dijkstra et RIB
• voir si R4 recalcule avant R1– R1 => R4 => R3 => N2
• autre cas : partition
RLI 2009 - IP et Routage 71
Modèle OSPf : exemple
Routeur1.1 .1
Routeur2.254 .1
192.168.11.0 192.168.10.0192.168.12.0
N1 R1 N2 R2 N31 1 0 1
0 1
schéma réseau
graphe OSPF1 = lien 100M
initialement
désactivé
RLI 2009 - IP et Routage 72
interfaces ospf routeur R2
Loopback0 is up, line protocol is up (vers N3) Internet Address 192.168.12.1/32, Area 0 Process ID 100, Router ID 192.168.12.1, Network Type LOOPBACK, Cost: 1 Loopback interface is treated as a stub HostFastEthernet0/1 is up, line protocol is up (vers N2 et R1) Internet Address 192.168.10.254/24, Area 0 Process ID 100, Router ID 192.168.12.1, Network Type BROADCAST, Cost: 1 Transmit Delay is 1 sec, State BDR, Priority 1 Designated Router (ID) 192.168.11.1 (R1), Interface address
192.168.10.1 Backup Designated router (ID) 192.168.12.1 (R2), Interface address
192.168.10.254 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 00:00:01 Index 1/1, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 0 msec, maximum is 4 msec Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 192.168.11.1 (Designated Router) Suppress hello for 0 neighbor(s)
N1
R1
N2
R2
N3
1 1 0 10 1
RLI 2009 - IP et Routage 73
Voisins ospf de R2
• Voisins (R1)
Neighbor ID Pri State Dead Time Address Interface192.168.11.1 (R1) 1 FULL/DR 00:00:33 192.168.10.1 FastEthernet0/1
• Etats des liens
OSPF Router with ID (192.168.12.1) (Process ID 100) Router Link States (Area 0)Link ID ADV Router Age Seq# Checksum Link count192.168.11.1 192.168.11.1(R1)259 0x8000010B 0xEF64 1(N2)192.168.12.1 192.168.12.1(R2)761 0x80000100 0x2DAA 2(N2,N3)
Net Link States (Area 0)(réseau N2)Link ID ADV Router Age Seq# Checksum192.168.10.1 192.168.11.1(R1)1251 0x800000FE 0xEC79
N1
R1
N2
R2
N3
1 1 0 1
0 1
RLI 2009 - IP et Routage 74
Exemple Net Link State
Net Link States (Area 0) (N2)
Routing Bit Set on this LSA LS age: 1301 Options: (No TOS-capability, DC) LS Type: Network Links Link State ID: 192.168.10.1 (address of Designated Router) Advertising Router: 192.168.11.1 LS Seq Number: 800000FE Checksum: 0xEC79 Length: 32 Network Mask: /24 (donne sous-réseau avec le link state ID) Attached Router: 192.168.11.1 (N2-R1) Attached Router: 192.168.12.1 (N2-R2)
N1
R1
N2
R2
N3
1 1 0 1
0 1
RLI 2009 - IP et Routage 75
Exemple Router Link State
Router Link States (Area 0) (R1) LS age: 346 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 192.168.11.1 Advertising Router: 192.168.11.1 LS Seq Number: 8000010B Checksum: 0xEF64 Length: 36 Number of Links: 1
Link connected to: a Transit Network (Link ID) Designated Router address: 192.168.10.1 (Link Data) Router Interface address: 192.168.10.1 Number of TOS metrics: 0 TOS 0 Metrics: 1 (R1-N2)
N1
R1
N2
R2
N3
1 1 0 1
0 1
RLI 2009 - IP et Routage 76
Ex Router Link State (2)
LS age: 848 (R2) Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 192.168.12.1 Advertising Router: 192.168.12.1 LS Seq Number: 80000100 Checksum: 0x2DAA Length: 48 Number of Links: 2 Link connected to: a Stub Network (un seul routeur) (Link ID) Network/subnet number: 192.168.12.1 (Link Data) Network Mask: 255.255.255.255 Number of TOS metrics: 0 TOS 0 Metrics: 1 (R2-N3) Link connected to: a Transit Network (Link ID) Designated Router address: 192.168.10.1 (Link Data) Router Interface address: 192.168.10.254 Number of TOS metrics: 0 TOS 0 Metrics: 1 (R2-N2)
N1
R1
N2
R2
N3
1 1 0 1
0 1
RLI 2009 - IP et Routage 77
Table routage R2
router2#sho ip routeCodes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B -
BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS
inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route
Gateway of last resort is not set
192.168.12.0/32 is subnetted, 1 subnetsC 192.168.12.1 is directly connected, Loopback0C 192.168.10.0/24 is directly connected, FastEthernet0/1 (réseau N1 192.168.11.0/24 n’apparaît pas)
N1
R1
N2
R2
N3
1 1 0 1
0 1
RLI 2009 - IP et Routage 78
Après activation N1 sur R1
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count192.168.11.1 192.168.11.1 70 0x8000010C 0x527A 2
192.168.12.1 192.168.12.1 988 0x80000100 0x2DAA 2
Numéro de séquence augmenté (+1) et nombre de link augmenté(+1)
Pas de nouveau Net Link State car N1 est « stub »
N1
R1
N2
R2
N3
1 1 0 1
0 1
RLI 2009 - IP et Routage 79
Nouveau Router Link State
LS age: 89 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 192.168.11.1 Advertising Router: 192.168.11.1 LS Seq Number: 8000010C Checksum: 0x527A Length: 48 Number of Links: 2 Link connected to: a Stub Network (N1 stub) (Link ID) Network/subnet number: 192.168.11.1 (Link Data) Network Mask: 255.255.255.255 Number of TOS metrics: 0 TOS 0 Metrics: 1 (nouveau lien R1-N1) Link connected to: a Transit Network (Link ID) Designated Router address: 192.168.10.1 (Link Data) Router Interface address: 192.168.10.1 Number of TOS metrics: 0 TOS 0 Metrics: 1
N1
R1
N2
R2
N3
1 1 0 1
0 1
RLI 2009 - IP et Routage 80
Nouvelle table de routage de R2
router2#sho ip routingCodes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static routeGateway of last resort is not set
192.168.12.0/32 is subnetted, 1 subnetsC 192.168.12.1 is directly connected, Loopback0C 192.168.10.0/24 is directly connected, FastEthernet0/1 192.168.11.0/32 is subnetted, 1 subnetsO 192.168.11.1 [110/2] via 192.168.10.1, 00:01:50, FastEthernet0/1
N1
R1
N2
R2
N3
1 1 0 1
0 1
RLI 2009 - IP et Routage 81
Routage inter-zones
• But : gérer des réseaux plus grands– diminuer informations (EL) à diffuser
• Découper réseau en zones (aires, area)– une zone backbone (area 0)– une ou plusieurs zones connectées au backbone– connexion entre zones par un routeur frontière
• BR : Border Router• au moins une interface dans backbone• au moins une interface dans une ou plusieurs autres
zones• => frontière traverse le routeur
RLI 2009 - IP et Routage 82
Routage inter-zones (2)
• Chaque BR– exécute un processus intra-zone indépendant par
zone à laquelle il est connecté– les AEL de type Router (type 1) et Link (type 2)
ne sont pas diffusés entre zones• Nouveaux types d’AEL
– AEL résumé (summary LSA)• type 3 : préfixe interne au domaine
» pour le routage inter-zones• type 4 : routeur frontière du domaine (ASBR)
» pour le routage externe
RLI 2009 - IP et Routage 83
Routage inter-zones (3)
• Principe simplifié– BR calcule RIB zones adjacentes
• diffuse résumé dans autres zones adjacentes• résumés toutes zones => tout BR
– chaque BR calcule meilleures routes• pour zones non adjacentes
– envoie résumé dans zone non backbone• inutile dans zone backbone car déjà connu
RLI 2009 - IP et Routage 84
Routage inter-zones(4)
• Remarques– route inter-zones passe toujours via area 0– route entre 2 réseaux d’une zone
• ne passe que par cette zone• => pas toujours la plus courte
– calcul RIB et diffusion AEL mixé :• diffusion AEL intra• calcul RIB intra• diffusion AEL résumé (inter)• calcul RIB inter• du point de vue Dijkstra : nœuds et arêtes intra traités
avant nœuds et arêtes inter
RLI 2009 - IP et Routage 85
Exemple inter-zone
R1
R2 R4
R3
zone 1 zone 2zone 0
R5N
Intra : R1-N=d1, R2-N=d2, R3-R1=d3, R3-R2=d4,R4-R1=d5,R4-R2=d6,R5-R3=d7,R5-R4=d8 : routes intra
R1envoie résumé R1-N, R2 envoie résumé R2-N dans zone 0
R3 calcule route vers N = min(d3+d1, d4+d2) = d9 et envoie dans zone 2
R4 calcule route vers N = min(d5+d1, d6+d2) = d10 et envoie dans zone 2
R5 calcule route vers N = min (d7+d9, d8+d10) : route inter-zone
RLI 2009 - IP et Routage 86
Routage externe
• Modèle– Internet découpé en domaines
• ou Autonomous Systems AS– 1 domaine = réseau d’une seule entité
• opérateur, entreprise, …– 1 routeur appartient à un seul AS
• frontière passe entre les routeurs• annonces échangées via BGP (Border Gateway
Protocol)• choix de la meilleure route sur plusieurs critères
– politique de routage (pas forcément la plus courte)
RLI 2009 - IP et Routage 87
Routage externe et Ospf
• Un ou plusieurs ASBR– AS border router : routeur frontière d’AS– ASBR apprend routes externes
• par ex. via BGP : Border Gateway Protocol– redistribution des routes
• construit des AEL externes (type 5)• ces AEL externes sont diffusés dans toutes les zones• les BR diffusent des AEL résumées type 4 correspondant aux
routes vers les ASBR• Remarque : redistribution OSPF => BGP
• Routeur construit RIB externe– après RIB intra-zone– après RIB inter-zone (dont routes vers les ASBR)
RLI 2009 - IP et Routage 88
Routage externe : exemple
R1
R2 R4
R3
R6
R5
zone1 zone0Internet :autres AS
P
R5 annonce à R3 une route vers P (via BGP)R3 diffuse dans tout réseau AEL type 5 pour P (quelle métrique ?)R6 annonce à R4 une route vers P (via BGP)R4 diffuse dans tout le réseau AEL type 5 pour P (quelle métrique ?)R1 annonce dans zone 1 routes vers R3 et R4 (résumé type 4: route vers ASBR)R2 annonce dans zone 1 routes vers R3 et R4 (idem)R0 calcule meilleure route vers R3 et R4 (routage interzone)R0 calcule meilleure route vers P : min (d(R0,R3)+ d(R3,P), d(R0,R4) +d(R4,P))
R0
intra : Ospf inter : BGP
AS
RLI 2009 - IP et Routage 89
Ospf : synthèse
• Convergence + rapide que RIP– pas de comptage à l’infini– pas de boucle
• sauf pendant synchro Base Etats des Liens
– trafic plus faible• pas de vecteurs toutes 30s
– meilleure prise en compte métriques– possibilité ToS multiple (en théorie)
RLI 2009 - IP et Routage 90
Routeur IP/Ospf
RIB
FIB
Signalisation
Données
A, donnéesentrée
FC
Algo routage
sortiepaquet
configuration
IP destination
Base état des liens
DijkstraOspf ELHello
SynchroBDEL
longest match
Plan de contrôle
Plan de donnéesfile d’attente
RLI 2009 - IP et Routage 91
Traitement des paquets dans un routeur
– paquets classifiés en entrée• prioritaires ou non• conformes ou non, (si réservations) etc, …
– en fonction de la classification et du routage (FIB)• mis dans une file d’attente (parmi n) (en fin généralement)• ou éliminés (non conformes par exemple ou file d’attente pleine
: tail drop )• éventuellement remplacent un autre paquet dans une file
– Si une seule file (classe) / sortie : FIFO (plus courant)– Si plusieurs files pour une sortie
• politique d’ordonnancement des paquets– priorité (file prioritaire vidée avant d’utiliser file moins prioritaire)– ordonnancement équitable : files à tour de rôle– nombreuses variantes
RLI 2009 - IP et Routage 92
Conclusion globale
• Routage :– meilleur contrôle des routes que bridging– plus coûteux en CPU
• échanges et calcul des routes– à performances égales
• routeur + coûteux que switch• plus de configurations
RLI 2009 - IP et Routage 93
Evolutions
• Demande pour des garanties de Qualité deService– VoIP, visioconférence– => mécanisme complexes
• classification, ordonnancement, réservation• ingénierie de trafic
– ou surdimensionnement des réseaux• toujours plus de débit