Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
@ Michel Carpentier - Alain Gofflot
1. La couche réseaux BUT : La couche réseaux se charge d’acheminer des paquets tout au long d’un parcours, d’une source jusqu’à un destinataire. Gère le trafic à travers les nœuds de communication intermédiaire. @ Michel Carpentier - Alain Gofflot
2
Fonctions principales
Pour acheminer un paquet d’un émetteur vers un destinataire, il est impératif de connaître précisément la localisation de l’émetteur et du destinataire. Pour ce faire, la couche réseau introduit la notion d’adressage. @ Michel Carpentier - Alain Gofflot
3
Fonctions principales
Une fois la destination connue, il faut déterminer le chemin à parcourir pour s’y rendre. La couche réseau introduit donc la notion de routage. Le routage est le choix du meilleur chemin à prendre pour aller à la destination. @ Michel Carpentier - Alain Gofflot
4
Fonctions principales
Le réseau global peut être vu comme un réseau routier. Par conséquent, il est sensible aux mêmes problèmes d’embouteillages. La couche réseau assure le contrôle de flux et le contrôle de congestion pour limiter les dégâts de ces embouteillages. @ Michel Carpentier - Alain Gofflot
5
Le service à la couche transport
Les service offerts à la couche 4 doivent respecter les objectifs suivants : les services doivent être indépendants des technologies de routeur mises en œuvre sur le sous-réseau la couche réseau doit être indépendante du nombre et du type des routeurs, ainsi que de la topologie du réseau les adresses de réseau mises à la disposition de la couche transport doivent faire partie d’un plan de numérotation qui doit rester uniforme. @ Michel Carpentier - Alain Gofflot
6
Le service à la couche transport
Compte tenu de ces critères, les concepteurs de la couche réseaux avaient beaucoup de liberté pour rédiger les spécifications. Cette liberté donna lieu à d’assez grandes divergences : certains voulaient un service orienté connexion pour assurer une certaine qualité de service d’autres voulaient un service sans connexion, argumentant le fait que c’est aux stations d’assurer le service de connexion @ Michel Carpentier - Alain Gofflot
7
Service sans connexion
Dans ce mode, les paquets sont injectés dans le sous-réseau individuellement, et routés indépendamment les uns des autres. Dans ce contexte les paquets sont souvent appelés datagrammes Il est possible que les paquets n’arrivent pas dans l’ordre initialement émis ou n’arrive pas du tout @ Michel Carpentier - Alain Gofflot
8
Service avec connexion
Un chemin doit être établi au préalable du routeur source jusqu’au routeur de destination avant que les paquets ne soient envoyés Cette connexion est appelée Circuit Virtuel Il n’est dès lors plus nécessaire de prendre une décision de routage pour chaque paquet @ Michel Carpentier - Alain Gofflot
9
Couche réseau dans Internet
10 principes fondamentaux sont décrits dans la RFC 1958. s’assurer que tout fonctionne privilégier la simplicité faire des choix exploiter la modularité (faite des couches) anticiper l’hétérogénéité (plus c’est grand, plus il y a des éléments différents qui composent) éviter les options et les paramètres statiques 10 principes fondamentaux : S’assurer que tout fonctionne L’idée principale est de ne pas rédiger le standard de 1000 pages avant d’avoir un programme qui fonctionne. C’est le fondement principal qui distingue ISO de l’internet. Privilégier la simplicité En cas de doute, optez pour la solution la plus simple. Méfiez vous de l’abondance de fonctionnalités. Si une fonctionnalité n’est pas absolument indispensable, renoncez-y. Surtout si on peut faire la même chose en combinant plusieurs autres fonctionnalités de base. Faire des choix Lorsqu’il existe plusieurs manières de faire quelque chose, retenez en une seule. Exploiter la modularité Utilisez des piles de protocoles dans lesquelles chaque couche est indépendante des autres. Anticiper l’hétérogénéité Un grand réseau implique forcément différents types de matériels, d’équipements de communication et d’applications. Pour pouvoir gérer cette diversité d’éléments, la conception du réseau doit être simple, générale et souple. Eviter les options et les paramètres statiques Lorsque des paramètres doivent être fixés, il est préférable que l’émetteur et le récepteur définissent une valeur plutôt que de configurer une valeur statique. @ Michel Carpentier - Alain Gofflot
10
Couche réseau dans Internet
rechercher une conception efficace, mais pas parfaite être sévère lors de l’envoi et tolérant lors de la réception penser à l’évolutivité considérer les performances et les coûts S’assurer que tout fonctionne L’idée principale est de ne pas rédiger le standard de 1000 pages avant d’avoir un programme qui fonctionne. C’est le fondement principal qui distingue ISO de l’internet. Privilégier la simplicité En cas de doute, optez pour la solution la plus simple. Méfiez vous de l’abondance de fonctionnalités. Si une fonctionnalité n’est pas absolument indispensable, renoncez-y. Surtout si on peut faire la même chose en combinant plusieurs autres fonctionnalités de base. Faire des choix Lorsqu’il existe plusieurs manières de faire quelque chose, retenez en une seule. Exploiter la modularité Utilisez des piles de protocoles dans lesquelles chaque couche est indépendante des autres. Anticiper l’hétérogénéité Un grand réseau implique forcément différents types de matériels, d’équipements de communication et d’applications. Pour pouvoir gérer cette diversité d’éléments, la conception du réseau doit être simple, générale et souple. Eviter les options et les paramètres statiques Lorsque des paramètres doivent être fixés, il est préférable que l’émetteur et le récepteur définissent une valeur plutôt que de configurer une valeur statique. Rechercher une conception efficace, mais pas parfaite Les concepteurs disposent souvent de conceptions efficaces mais qui ne permettent pas de gérer certaines configurations particulières. Dans ce cas, il ne faut pas modifier les conceptions : la charge de trouver une solution particulière incombe aux personnes concernées par cette solution particulière. Etre sévère lors de l’envoi et tolérant lors de la réception N’envoyez que des paquets qui respectent strictement les standards. Attendez vous à ce que les autres ne fassent pas pareil. Penser à l’évolutivité S’il est prévu que le système doit supporter des millions d’utilisateurs et de machines, il n’est pas question de faire une base de données centralisée. On doit privilégier un système où la charge doit être répartie. Considérer les performances et les coûts Si les performances sont médiocres ou les coûts trop importants, personne ne l’utilisera. @ Michel Carpentier - Alain Gofflot
11
@ Michel Carpentier - Alain Gofflot
IP - Plan Le format de datagramme IP L’adressage La fonction de routage @ Michel Carpentier - Alain Gofflot
12
IP – Le format de datagramme
Entête : Version Identification Durée de vie (TTL) Adresse source Adresse de destination Options (0 ou plusieurs mots) LET Type de Service Position du fragment Longueur Totale D F M F Protocole Total de contrôle d’en-tête @ Michel Carpentier - Alain Gofflot
13
@ Michel Carpentier - Alain Gofflot
Vocabulaire Little endian = lecture des informations de droite à gauche, soit le bit de poids faible en premier Exemple : un octet est transmis Big endian = lecture des informations de gauche à droite, soit le bit de poids fort en premier Exemple : un octet est transmis little endian : octet transmis big endian octet transmis @ Michel Carpentier - Alain Gofflot
14
IP – Le format de datagramme
L’entête est transmise sous forme big endian (adresse « d’abord ») Version : indique le numéro de version du protocole. Ainsi, on peut avoir plusieurs version de IP au même moment sur le réseau. Actuellement, la version est IPv4. Une transition vers IPv6 est en cours. @ Michel Carpentier - Alain Gofflot
15
IP – Le format de datagramme
LET : la Longeur de l’En-Tête est précisée ici sous la forme d’un nombre de mots de 32 bits. La valeur minimale est 5, sans options. La valeur maximale est de 15, soit 60 octets au maximum pour l’en-tête IP. @ Michel Carpentier - Alain Gofflot
16
IP – Le format de datagramme
Type de Service : sert à distinguer les différentes classes de services (combinaisons de fiabilité et de débit). A l’origine, ces 6 bits représentaient : 3 bits de priorité (0 = normale, 7 = haute) 1 bit D(elay) = importance sur le délais 1 bit T(hroughput) = importance sur le débit 1 bit R(eliability) = importance sur la fiabilité Dans la pratique actuelle, le type de service est ignoré par les routeurs @ Michel Carpentier - Alain Gofflot
17
IP – Le format de datagramme
Longueur totale : donne la longueur totale du datagramme (en-tête + données) Actuellement, le maximum est octets. Ce nombre risque de devenir trop petit dans les futurs réseaux Gigabits. Identification : permet à l’hôte destinataire de déterminer à quel datagramme appartient un fragment reçu. Tous les fragments d’un datagramme contiennent la même valeur d’identification. @ Michel Carpentier - Alain Gofflot
18
IP – Le format de datagramme
DF (Don’t Fragment) : un bit qui permet de demander aux routeurs intermédiaires de ne pas fragmenter le datagramme. Dans certains cas, le destinataire n’est pas en mesure de recomposer les datagrammes qui seraient fragmentés. MF (More Fragments) : ce bit est positionné à 1 pour tous les fragments sauf le dernier. @ Michel Carpentier - Alain Gofflot
19
IP – Le format de datagramme
Position de Fragment : indique la position (déplacement, offset) du fragment dans le datagramme courant (même identification). Tous les fragments (à l’exception du dernier) doivent avoir un multiple de 8 octets. Ce champ contient 13 bits, soit une valeur maximale de (= 2^13) fragments par message (unité du niveau 4) x 8 = octets au total. @ Michel Carpentier - Alain Gofflot
20
IP – Le format de datagramme
Durée de Vie (TTL Time To Live) : compteur qui sert à limiter la durée de vie des datagrammes. Lorsqu’un datagramme traverse un routeur, celui-ci décrémente la valeur du TTL. Ceci permet d’empêcher que des datagrammes n’errent sans fin (boucle sans fin) dans le réseau. En effet, un paquet pourrait « jouer » au ping-pong entres routeurs et ce en fonction des informations de routage que ces derniers possèdent (état des lignes, métriques, …) @ Michel Carpentier - Alain Gofflot
21
IP – Le format de datagramme
Protocole : spécifie à quel processus de la couche transport doit on passer le datagramme La numérotation des protocoles est globale sur l’internet (fixée par la RFC1700) et consultable sur le site @ Michel Carpentier - Alain Gofflot
22
IP – Le format de datagramme
Total de contrôle d’en-tête : permet de détecter les erreurs générées par des mots mémoire erronés dans un routeur. Ce total de contrôle doit être recalculé dans chaque routeur. Pourquoi ? car au moins le TTL change à chaque passage dans un routeur. @ Michel Carpentier - Alain Gofflot
23
IP – Le format de datagramme
L’adresse source et l’adresse destination : contiennent respectivement les adresses IP des machines source et destination. Ces adresses seront détaillées ultérieurement. @ Michel Carpentier - Alain Gofflot
24
IP – Le format de datagramme
Options : le champ options a été prévu pour introduire de nouveaux éléments dans le protocole sans devoir revoir complètement la spécification. On peut également placer dans les options des éléments rarement exploitables. @ Michel Carpentier - Alain Gofflot
25
IP – Le format de datagramme
Les options sont de longueur variables, et sont constituées de : un champ de code d’option un champ de longueur d’option (facultatif) un ou plusieurs octets de données Le champ option doit être un multiple de 4 octets @ Michel Carpentier - Alain Gofflot
26
IP – Le format de datagramme
5 options on été définies au départ : Sécurité : renseigne sur le degré de confidentialité des données, par exemple pour interdire le routage de paquets confidentiels au travers de certains pays. En pratique, c’est ignoré Routage strict par la source : Le chemin entre la source et la destination est écrit, et le datagramme doit suivre ce chemin. Utile pour envoyer des messages lorsque les tables de routage sont corrompues @ Michel Carpentier - Alain Gofflot
27
IP – Le format de datagramme
Routage lâche par la source : Permet de spécifier quelques routeurs que le datagramme doit traverser pour rejoindre sa destination. Utile par exemple pour éviter de traverser certains pays en demandant un passage par d’autres Enregistrement de route : Demande aux routeurs intermédiaires d’insérer leur adresse IP dans le champ d’option pour que l’administrateur puisse déterminer le parcourt du datagramme Horodatage : chaque routeur intermédiaire doit introduire une date et heure pour permettre un debuggage du parcours effectué par le datagramme @ Michel Carpentier - Alain Gofflot
28
@ Michel Carpentier - Alain Gofflot
Time To Live Le paquet est délivré TTL=4 TTL=1 TTL=2 TTL=3 @ Michel Carpentier - Alain Gofflot
29
@ Michel Carpentier - Alain Gofflot
Time To Live TTL=1 TTL=0 Le paquet est détruit TTL=4 TTL=2 TTL=3 @ Michel Carpentier - Alain Gofflot
30
@ Michel Carpentier - Alain Gofflot
IP – Les adresses Chaque carte réseau possède une adresse MAC unique au monde, constituée de 48 bits. Malheureusement, il n’y a aucune logique dans la localisation des adresses MAC : l’adresse B-72-0D-58 peut se trouver à Luxembourg et l’adresse B-72-0D-59 se trouver à New York Il est donc impossible d’utiliser ces adresses pour acheminer les datagramme au niveau mondial. @ Michel Carpentier - Alain Gofflot
31
@ Michel Carpentier - Alain Gofflot
IP – Les adresses A chaque ordinateur, routeur, … connecté à l’Internet on va attribuer au moins une adresse IP. Une adresse IP est constituée de 32 bits et contient : Un numéro de réseau Un numéro d’hôtes A chaque carte réseau peut-être associée une adresse IP. @ Michel Carpentier - Alain Gofflot
32
@ Michel Carpentier - Alain Gofflot
IP – Les adresses Pendant plusieurs décennies, les adresses IP ont été divisées en 5 classes : L’adressage par classes Le tableau suivant reprend les 5 classes : @ Michel Carpentier - Alain Gofflot
33
IP – Les adresses 32 Bits Réseau 10 110 1111
Réservé pour une utilisation future 1110 Adresse Multicast Hôte A B C D E @ Michel Carpentier - Alain Gofflot
34
@ Michel Carpentier - Alain Gofflot
IP – Les adresses Classe A : Adresses de à 128 réseaux différents 16 millions d’hôtes différents par réseau Classe B : Adresses de à 16384 réseaux différents 65536 d’hôtes différents par réseau Classe C : Adresses de à Plus de 2 millions de réseaux 256 d’hôtes différents par réseau @ Michel Carpentier - Alain Gofflot
35
@ Michel Carpentier - Alain Gofflot
IP – Les adresses Classe D : Adresses de à Adresses multicast utilisées pour envoyer des datagrammes à plusieurs destinataires simultanément. Classe E : Adresses de à Réservé pour un usage ultérieur @ Michel Carpentier - Alain Gofflot
36
@ Michel Carpentier - Alain Gofflot
IP – Les adresses La gestion des adresses IP au niveau mondial est faite par l’ICANN (Internet Corporation for Assigned Names and Numbers) S’occupe de veiller à ce qu’une adresse IP (routable) ne soit pas utilisée 2 fois sur la planète Délégation de la gestion de groupes d’adresses à des autorités régionales Exemple : RESTENA – @ Michel Carpentier - Alain Gofflot
37
@ Michel Carpentier - Alain Gofflot
IP – Les adresses Représentation d’une adresse IP : Notation décimale pointée Exemple : Les 4 octets qui constituent l’adresse sont séparés par un point Chaque octet peut prendre une valeur de 0 à 255. Exemple : C @ Michel Carpentier - Alain Gofflot
38
@ Michel Carpentier - Alain Gofflot
IP – Les adresses Certaines adresses ont une signification particulière : Cet hôte : adresse utilisée au démarrage de la machine ( ) Broadcast : adresse utilisée pour diffuser un paquet à toutes les stations d’un LAN @ Michel Carpentier - Alain Gofflot
39
@ Michel Carpentier - Alain Gofflot
IP – Les adresses Un hôte sur ce réseau : permet de désigner un hôte sans tenir compte du numéro du réseau local (NB : il faut quand même connaître la classe du réseau) Diffusion broadcast sur réseau distant : permet d’envoyer un paquet en broadcast sur un réseau non local. Numéro hôte Numéro réseau @ Michel Carpentier - Alain Gofflot
40
@ Michel Carpentier - Alain Gofflot
IP – Les adresses Bouclage : permet d’effectuer un test de fonctionnement de la pile de protocoles sans utiliser le réseau physique = localhost Valeur quelconque = 127 @ Michel Carpentier - Alain Gofflot
41
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Tous les hôtes appartenant à un même réseau doivent avoir le même numéro de réseau Cependant, l’utilisation d’une classe A ou B pose rapidement un problème : on ne peut pas stocker hôtes ou plus dans un espace physique adressable par un réseau Ethernet (en coaxial, la limite des 4 répéteurs est rapidement atteinte) @ Michel Carpentier - Alain Gofflot
42
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Il est donc nécessaire de faire une légère modification au système d’adressage : partitionner le réseau en plusieurs entités à usage interne. Vu de l’extérieur, rien ne change : le réseau est toujours vu comme une seule entité. Exemple : RESTENA dispose d’une classe B ( ), et attribue des parties de cette classe aux lycées luxembourgeois. @ Michel Carpentier - Alain Gofflot
43
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Les réseaux résultant du partitionnement sont appelés des « sous-réseaux » ou « subnets » Comment un routeur d’entrée peut-il transmettre un paquet qui arrive pour une machine appartenant à un subnet ? @ Michel Carpentier - Alain Gofflot
44
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Première solution : Tenir en mémoire une table de tous les hôtes des différents subnets. Cette solution n’a pas été retenue, car elle implique une table volumineuse en mémoire et un travail de maintenance important (ajout, déplacement, retrait de stations). @ Michel Carpentier - Alain Gofflot
45
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Seconde solution : utiliser des bits de la partie « hôte » de l’adresse IP pour déterminer le subnet. Exemple : RESTENA dispose d’une classe B ( ) subdivisée en subnet pour les instituts d’enseignement. Ici pour l’IST ( ) 158 64 76 Partie réseau Partie subnet Partie hôte @ Michel Carpentier - Alain Gofflot
46
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Cette implémentation requiert l’utilisation d’un « masque de sous-réseau » ou « Subnet mask ». Il identifie les portions numéro de réseau / numéro de sous-réseau (tous les bits à 1) et le numéro d’hôte. (tous les bits à 0) 158 64 76 Partie réseau Partie subnet Partie hôte IP NetMask @ Michel Carpentier - Alain Gofflot
47
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Remarque : dans notre exemple, le masque de sous réseau comporte 24 bits à 1, ce qui est équivalent à une adresse de classe C. Dans la réalité, le masque de sous réseau peut prendre un nombre quelconque de bits à 1 : corollaire : si le nombre de subnets augmente, le nombre de machines dans ceux-ci diminue @ Michel Carpentier - Alain Gofflot
48
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Exemple : 158 64 Partie réseau Partie subnet Partie hôte IP NetMask Dans ce cas, les adresses IP du sous réseau vont de à @ Michel Carpentier - Alain Gofflot
49
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Le masque de sous réseau peut se représenter de 2 manières différentes : Sous la même forme qu’une adresse IP Pour l’exemple précédent : Sous la forme d’un nombre de bits à 1 placé à coté de l’adresse du réseau Pour l’exemple précédent : / 20 @ Michel Carpentier - Alain Gofflot
50
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Pour un sous réseau, certaines valeurs des adresses ont une signification particulière : Adresse réseau : constituée d’un numéro réseau et d’un numéro d’hôte égal à 0. Elle donne la référence du sous réseau. Adresse broadcast : constituée d’un numéro de réseau et d’un numéro d’hôte dont tous les bits sont à 1. Elle permet d’envoyer un paquet à toutes les machines du sous réseau. @ Michel Carpentier - Alain Gofflot
51
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Calcul : Adresse IP : Masque de sous réseau : Quelle est l’adresse du réseau ? Quelle est l’adresse de broadcast ? Combien de machines peut-on adresser dans ce sous réseau ? @ Michel Carpentier - Alain Gofflot
52
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Représentation de l’exercice : 158 64 66 75 Partie réseau Partie subnet Partie hôte IP NetMask @ Michel Carpentier - Alain Gofflot
53
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Pour calculer l’adresse du réseau, il faut mettre tous les bits de la partie hôte à 0. 158 64 66 75 Partie réseau Partie subnet Partie hôte IP NetMask Adresse Réseau @ Michel Carpentier - Alain Gofflot
54
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Pour calculer l’adresse broadcast, il faut mettre tous les bits de la partie hôte à 1. 158 64 66 75 Partie réseau Partie subnet Partie hôte IP NetMask Adresse Réseau 79 255 @ Michel Carpentier - Alain Gofflot
55
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Le nombre de machines que l’on peut adresser dans le sous réseau est égal au nombre d’adresses IP différentes (avec la même partie réseau) moins l’adresse réseau et l’adresse broadcast. Cela revient à calculer le nombre de nombres que l’on peut écrire avec les bits de la partie hôte, puis soustraire 2. 12 bits pour la partie hôte (32 – 20) 4096 nombres différents avec ces 12 bits Donc, 4094 hôtes dans le sous réseau @ Michel Carpentier - Alain Gofflot
56
@ Michel Carpentier - Alain Gofflot
IP – Les sous-réseaux Exercices : Calculez l’adresse réseau, l’adresse broadcast et le nombre de machine par sous réseau pour les adresses suivantes. /25 /20 /12 /25 126 hôtes : 2^7 /20 4094 hôtes /12 hôtes @ Michel Carpentier - Alain Gofflot
57
@ Michel Carpentier - Alain Gofflot
IP – En pratique Déterminer l’adresse IP d’une machine Windows : @ Michel Carpentier - Alain Gofflot
58
@ Michel Carpentier - Alain Gofflot
IP – En pratique Déterminer l’adresse IP d’une machine Unix : @ Michel Carpentier - Alain Gofflot
59
Routage : Introduction
Comme nous l’avons vu, la couche réseau a pour but d’acheminer les paquets (datagrammes) d’un hôte émetteur vers un hôte destinataire (distant). @ Michel Carpentier - Alain Gofflot
60
Routage : Introduction
Le réseau global peut être vu comme suit : deux machines distantes sont reliées par un ensemble de routeurs formant un maillage complexe. R1 R2 R3 R4 @ Michel Carpentier - Alain Gofflot
61
Routage : Introduction
En conséquence, il existe plusieurs chemins pour un datagramme pour aller de l’émetteur vers le récepteur. R1 R2 R3 R4 @ Michel Carpentier - Alain Gofflot
62
Routage : Introduction
Le routeur est un dispositif qui permet de déterminer la route qu’un datagramme doit suivre pour arriver à destination. Ce processus s’appelle routage. @ Michel Carpentier - Alain Gofflot
63
Routage : Introduction
Globalement, le routeur peut être vu comme une boite noire avec un certain nombre d’interface. Chaque interface pourra être connectée à un réseau (local) réseau 4 réseau 5 Routeur if 1 if 4 if 3 if 5 if 2 réseau 1 interface 1 réseau 2 interface 2 ... réseau 5 interface 5 réseau n interface n @ Michel Carpentier - Alain Gofflot
64
Routage : Introduction
A l’intérieur du routeur, un algorithme examine chaque datagramme en provenance d’une interface. En fonction de la table de routage et de l’adresse de destination, il détermine l’interface que le datagramme doit emprunter pour continuer sa route vers sa destination. @ Michel Carpentier - Alain Gofflot
65
Routage : table de routage
La table de routage est une liste contenant un certain nombre de combinaisons : Adresse IP (réseau, 0 ou réseau, hôte) Masque de sous réseau Interface de sortie Cette liste permet de déterminer quelle interface de sortie doit emprunter un datagramme qui arrive au routeur. Nous allons montrer comment le routage fonctionne au travers d’un exemple : @ Michel Carpentier - Alain Gofflot
66
@ Michel Carpentier - Alain Gofflot
Routage : exemple Soit 3 universités qui demandent un accès à l’Internet : Cambridge demande 2000 adresses IP et reçoit le bloc d’adresses de à avec le masque Oxford demande 4000 adresses IP et reçoit le bloc d’adresses de à avec le masque Un bloc de 4096 adresses doit être aligné sur la valeur 4096. @ Michel Carpentier - Alain Gofflot
67
@ Michel Carpentier - Alain Gofflot
Routage : exemple Edimbourg demande 1000 adresses IP et reçoit le bloc d’adresses de à avec le masque Dans le tableau suivant, on constate donc qu’un ensemble d’adresse IP sont disponibles de à @ Michel Carpentier - Alain Gofflot
68
@ Michel Carpentier - Alain Gofflot
Routage : Exemple Université Première adresse Dernière adresse Nombre d’adresses Masque de sous réseau Cambridge 2048 Edimbourg 1024 (Disponible) Oxford 4096 @ Michel Carpentier - Alain Gofflot
69
@ Michel Carpentier - Alain Gofflot
Routage : Exemple Les tables de routage des routeurs sont mises à jour avec ces informations. Dans chaque routeur on trouvera l’adresse réseau et le masque de sous réseau : Y associer le port de sortie Université Adresse réseau Masque de sous réseau Cambridge Edimbourg Oxford @ Michel Carpentier - Alain Gofflot
70
@ Michel Carpentier - Alain Gofflot
Routage : Exemple Voyons ce qui se passe lorsqu’un routeur reçoit un paquet dont l’adresse de destination est En binaire, cette adresse est : Le routeur va effectuer un ET logique avec les masques de chaque ligne de la table de routage. @ Michel Carpentier - Alain Gofflot
71
@ Michel Carpentier - Alain Gofflot
Routage : Exemple Pour la première ligne (Cambridge) : Cette adresse ne correspond pas à l’adresse IP du réseau de Cambridge. @ Michel Carpentier - Alain Gofflot
72
@ Michel Carpentier - Alain Gofflot
Routage : Exemple Pour la seconde ligne (Edimbourg) : Cette adresse ne correspond pas à l’adresse IP du réseau de Edimbourg. @ Michel Carpentier - Alain Gofflot
73
@ Michel Carpentier - Alain Gofflot
Routage : Exemple Pour la troisième ligne (Oxford) : Le résultat correspond à l’adresse du réseau de Oxford. @ Michel Carpentier - Alain Gofflot
74
@ Michel Carpentier - Alain Gofflot
Routage : Exemple Si aucune correspondance plus longue n’est trouvée, le datagramme est envoyé par l’interface correspondante pour la ligne trouvée dans la table de routage. @ Michel Carpentier - Alain Gofflot
75
@ Michel Carpentier - Alain Gofflot
Routage : Exemple Prenons ensuite le cas d’un routeur situé à Omaha, au Nebraska. Ce routeur ne dispose que de 4 interfaces vers : Minneapolis New York Dallas Denver @ Michel Carpentier - Alain Gofflot
76
@ Michel Carpentier - Alain Gofflot
Routage : Exemple Lorsque ce routeur prend connaissance des 3 nouvelles lignes à insérer dans sa table de routage, il constate qu’il peut les combiner en une seule règle : / 19 vers l’interface New York. L’adresse : Le masque de sous réseau : @ Michel Carpentier - Alain Gofflot
77
@ Michel Carpentier - Alain Gofflot
Routage : Exemple Cette entrée dit d’envoyer tous les paquets destinés à n’importe quelle des 3 universités à New York En combinant ces entrées, le routeur de Omaha simplifie sa table de routage et donc améliore ses performances. On appelle cette technique l’agrégation de routes. @ Michel Carpentier - Alain Gofflot
78
@ Michel Carpentier - Alain Gofflot
Routage : Exemple L’entrée agrégée du routeur de Omaha dirige aussi vers New York les datagrammes destinés aux adresses non assignées. Si ces adresses étaient attribuées à l’université de Californie, il faudrait ajouter une entrée supplémentaire : Exemple : / 22 vers Dallas @ Michel Carpentier - Alain Gofflot
79
@ Michel Carpentier - Alain Gofflot
Routage : LAN ou WAN ? Le même principe du ET logique est utilisé par les stations d’un LAN pour déterminer si le datagramme qu’elles envoient doit être délivré sur le LAN ou envoyé à un routeur pour une expédition sur un WAN. @ Michel Carpentier - Alain Gofflot
80
@ Michel Carpentier - Alain Gofflot
Routage : LAN ou WAN ? Exemple : voici la configuration d’une machine. IP : Netmask : Gateway : @ Michel Carpentier - Alain Gofflot
81
@ Michel Carpentier - Alain Gofflot
Routage : LAN ou WAN ? Cette machine envoie un datagramme vers On effectue un ET logique entre l’adresse de destination et le masque de sous réseau. Cette adresse correspond à l’adresse réseau calculée à partir de l’adresse IP de la machine. Le datagramme doit donc être délivré sur le LAN. @ Michel Carpentier - Alain Gofflot
82
@ Michel Carpentier - Alain Gofflot
Routage : LAN ou WAN ? Cette machine envoie un datagramme vers On effectue un ET logique entre l’adresse de destination et le masque de sous réseau. Cette adresse ne correspond pas à l’adresse réseau calculée à partir de l’adresse IP de la machine. Le datagramme doit donc être délivré au routeur @ Michel Carpentier - Alain Gofflot
83
@ Michel Carpentier - Alain Gofflot
Routage : la gateway La default gateway notée dans la configuration de la machine exemple est en fait la destination par défaut pour tous les datagrammes ne trouvant pas une ligne qui leur correspond. On peut assimiler cela au panneau « Toutes directions ». Il s’agit d’une entrée de la table de routage @ Michel Carpentier - Alain Gofflot
84
@ Michel Carpentier - Alain Gofflot
Routage : les outils Consultation de la table de routage sous Windows : Route print Netstat -nr Consultation de la table de routage sous Unix : Netstat –nr Route (nécessite les droits root) @ Michel Carpentier - Alain Gofflot
85
@ Michel Carpentier - Alain Gofflot
Routage : les outils @ Michel Carpentier - Alain Gofflot
86
@ Michel Carpentier - Alain Gofflot
Routage : les outils @ Michel Carpentier - Alain Gofflot
87
Routage : Modifications
Au niveau de la configuration d’une machine, il n’y a qu’une seule route par défault (default gateway). @ Michel Carpentier - Alain Gofflot
88
Routage : Modifications
Dans certains cas, cela peut poser des problèmes. Exemple : Routeur par défaut Réseau Réseau Tous les datagrammes à destination de seront envoyés au routeur par défaut. @ Michel Carpentier - Alain Gofflot
89
Routage : Modifications
Pour modifier la table de routage d’un PC Windows : Ajout d’une route : route add mask Suppression d’une route : route delete mask Plus d’infos : « route /? » @ Michel Carpentier - Alain Gofflot
90
Routage : Modifications
Pour modifier la table de routage d’une machine Unix : Ajout d’une route : route add -net netmask dev eth0 Suppression d’une route : route del -net netmask dev eth0 Plus d’infos : « man route » @ Michel Carpentier - Alain Gofflot
91
Routage : Modifications
En modifiant la table de routage du PC, on peut router directement les datagrammes vers le routeur du réseau Routeur par défaut Réseau Réseau route add mask @ Michel Carpentier - Alain Gofflot
92
Routage : Modifications
Dans les deux cas (Windows et Unix), les modifications apportées de la sorte aux tables de routage ne seront valides que pour la session courante. Pour une modification permanente, il faut ajouter ces lignes dans les scripts de démarrage de la machine. @ Michel Carpentier - Alain Gofflot
93
@ Michel Carpentier - Alain Gofflot
Liaison couche 2 & 3 Nous avons vu précédemment que la couche 2 utilise des adresses MAC pour transmettre des informations d’une station à une autre. Avec l’arrivée de la couche 3, nous avons introduit les adresses IP pour assurer l’acheminement mondial des datagrammes. Comment effectuer le lien entre adresse MAC et adresse IP ? @ Michel Carpentier - Alain Gofflot
94
@ Michel Carpentier - Alain Gofflot
Ce lien va être assuré par ARP (Address Resolution Protocol). ARP va convertir les adresses IP en adresse MAC (ethernet ou token ring) La machine source envoie un paquet en broadcast sur le LAN. Ce paquet contient l’adresse MAC source, l’adresse IP source et l’adresse IP destination. @ Michel Carpentier - Alain Gofflot
95
@ Michel Carpentier - Alain Gofflot
Chaque machine connectée au réseau local reçoit ce paquet, mais seule la machine dont l’adresse IP est spécifiée correspond à l’adresse IP destination du paquet répond. Cette machine envoie alors à l’adresse MAC source trouvée dans le paquet, l’information demandée : son adresse MAC. @ Michel Carpentier - Alain Gofflot
96
@ Michel Carpentier - Alain Gofflot
Je suis ! Qui est ? @ Michel Carpentier - Alain Gofflot
97
@ Michel Carpentier - Alain Gofflot
Les informations ainsi obtenues sont stockées dans une mémoire temporaire On peut consulter ces informations à l’aide de la commande : arp -a @ Michel Carpentier - Alain Gofflot
98
@ Michel Carpentier - Alain Gofflot
Routage : Exercice Donnez, pour chaque segment impliqué la valeur des adresses ethernet source et destination la valeur des adresses IP source et destination utilisées pour une communication entre PC1 et PC2, puis PC1 et PC3, PC1 et PC4. Vous utiliserez la notation suivante : adresse ethernet source adresse ethernet destination adresse IP source adresse IP destination @ Michel Carpentier - Alain Gofflot
99
@ Michel Carpentier - Alain Gofflot
Routage : Exercice Le tableau suivant reprend les adresses des machines : Nom de machine Adresse IP Adresse MAC PC1 @PC1 PC2 @PC2 PC3 @PC3 PC4 @PC4 R1 interface 1 @R1-1 R1 interface 2 @R1-2 R1 interface 3 @R1-3 R2 interface 1 @R2-1 R2 interface 2 @R2-2 @ Michel Carpentier - Alain Gofflot
100
@ Michel Carpentier - Alain Gofflot
Routage : Exercice Les tableaux suivants reprennent les tables de routage PC1 Adresse & Masque Interface Gateway / 0 Eth0 / 24 PC2 Adresse & Masque Interface Gateway / 0 Eth0 / 24 PC3 Adresse & Masque Interface Gateway / 0 Eth0 / 24 PC4 Adresse & Masque Interface Gateway / 0 Eth0 / 16 R1 Adresse & Masque Interface Gateway / 24 2 / 16 3 / 0 1 R2 Adresse & Masque Interface Gateway / 24 2 / 0 1 @ Michel Carpentier - Alain Gofflot
101
@ Michel Carpentier - Alain Gofflot
Routage : Exercice / 16 / 24 / 24 1 2 3 PC1 PC2 PC3 PC4 R1 R2 @ Michel Carpentier - Alain Gofflot
102
@ Michel Carpentier - Alain Gofflot
Routage : Exercice Transmission de datagramme de PC1 à PC2. On effectue un ET logique entre l’adresse IP de destination et le masque du sous réseau de la première entrée de la table de routage de PC1 : ET = La route convient, mais on continue à parcourir la table de routage pour trouver une éventuelle meilleure solution. La seconde ligne nous donne le calcul suivant : ET = La route convient également. De plus, la correspondance est plus longue (plus de bits correspondants), elle est donc privilégiée. @ Michel Carpentier - Alain Gofflot
103
Routage : Exercice On recherche donc l’adresse MAC de PC2 en envoyant un paquet ARP en broadcast sur le LAN. La station PC2 répond en donnant son adresse Le paquet peut donc circuler sur le LAN avec les informations suivantes : adresse ethernet source adresse ethernet destination adresse IP source adresse IP destination @PC1 @PC2 @ Michel Carpentier - Alain Gofflot
104
@ Michel Carpentier - Alain Gofflot
Routage : Exercice Transmission d’un datagramme de PC1 à PC3. Parcours de la table de routage de PC1 : ET = La route convient. On continue… ET = La route ne convient pas, car l’adresse trouvée ne correspond pas à l’entrée. La première ligne est donc utilisée. Elle renseigne qu’il faut envoyer le datagramme à la gateway On recherche donc l’adresse MAC de ce routeur via ARP. L’adresse nous est fournie @ Michel Carpentier - Alain Gofflot
105
Routage : Exercice On obtient donc :
adresse ethernet source adresse ethernet destination adresse IP source adresse IP destination @PC1 @R1-2 Le datagramme arrive donc dans R1 par l’interface 2. Le routeur consulte sa table de routage pour déterminer le traitement à apporter à ce datagramme. ET = La route ne convient pas. ET = La route ne convient pas. @ Michel Carpentier - Alain Gofflot
106
Routage : Exercice ET = La route convient et on est arrivé au bout de la table de routage. La ligne en question indique qu’il faut transmettre le datagramme à la gateway via l’interface 1 du routeur En utilisant ARP, on détermine l’adresse MAC correspondant à cette adresse IP Le datagramme est donc transmis : adresse ethernet source adresse ethernet destination adresse IP source adresse IP destination @PC1 @R1-2 @R1-1 @R2-1 @ Michel Carpentier - Alain Gofflot
107
@ Michel Carpentier - Alain Gofflot
Routage : Exercice Le datagramme arrive dans R2 par l’interface 1 Le routeur consulte sa table de routage pour déterminer le traitement à apporter à ce datagramme. ET = La route convient. ET = La route convient, mais la correspondance est plus courte, on conserve donc la première ligne comme route à utiliser. Cette ligne nous indique d’utiliser l’interface 2 pour transmettre le datagramme En utilisant ARP, on détermine l’adresse MAC correspondant à cette adresse IP @ Michel Carpentier - Alain Gofflot
108
Routage : Exercice Le datagramme est donc transmis :
adresse ethernet source adresse ethernet destination adresse IP source adresse IP destination @PC1 @R1-2 @R1-1 @R2-1 @R2-2 @PC3 Le datagramme est arrivé à destination. @ Michel Carpentier - Alain Gofflot
109
@ Michel Carpentier - Alain Gofflot
Routage : Exercice Transmission d’un datagramme de PC1 à PC4. Parcours de la table de routage de PC1 : ET = La route convient. On continue… ET = La route ne convient pas, car l’adresse trouvée ne correspond pas à l’entrée. La première ligne est donc utilisée. Elle renseigne qu’il faut envoyer le datagramme à la gateway On recherche donc l’adresse MAC de ce routeur via ARP. L’adresse nous est fournie @ Michel Carpentier - Alain Gofflot
110
Routage : Exercice On obtient donc :
adresse ethernet source adresse ethernet destination adresse IP source adresse IP destination @PC1 @R1-2 Le datagramme arrive donc dans R1 par l’interface 2. Le routeur consulte sa table de routage pour déterminer le traitement à apporter à ce datagramme. ET = La route ne convient pas. ET = La route convient. On continue… @ Michel Carpentier - Alain Gofflot
111
Routage : Exercice ET = La route convient et on est arrivé au bout de la table de routage. Cependant, la précédente solution est plus longue, donc utilisée. La ligne en question indique qu’il faut utiliser l’interface 3 pour délivrer le datagramme sur le LAN. En utilisant ARP, on détermine l’adresse MAC correspondant à cette l’adresse IP de PC4 Le datagramme est donc transmis : adresse ethernet source adresse ethernet destination adresse IP source adresse IP destination @PC1 @R1-2 @R1-3 @PC4 @ Michel Carpentier - Alain Gofflot
112
@ Michel Carpentier - Alain Gofflot
Routage : Exercices Conseils pour la réalisation : Attention aux tables de routage ! Ne pas se focaliser sur le schéma du réseau Travailler de manière méthodique en suivant l’algorithme de routage. @ Michel Carpentier - Alain Gofflot
113
@ Michel Carpentier - Alain Gofflot
Routage : Exercice 2 Dans la réalité, le travail de l’administrateur réseau est de trouver la bonne configuration pour chaque routeur. L’exercice suivant colle à cette réalité. Trouvez une proposition d’adressage pour les stations et les routeurs, puis donnez les tables de routage de chacun d’entre eux. @ Michel Carpentier - Alain Gofflot
114
@ Michel Carpentier - Alain Gofflot
Routage : Exercice 2 PC4 / 16 3 1 1 R2 R1 2 2 / 24 / 24 PC1 PC2 PC3 @ Michel Carpentier - Alain Gofflot
115
@ Michel Carpentier - Alain Gofflot
Routage : Exercices 2 Attribution des adresses IP à chaque interface de station / routeur. Placez les adresses IP sur le schéma Déterminer le routage pour chaque routeur. A remplir dans les tables suivantes. @ Michel Carpentier - Alain Gofflot
116
@ Michel Carpentier - Alain Gofflot
Routage : Exercice 2 PC1 Adresse & Masque Interface Gateway PC2 Adresse & Masque Interface Gateway PC3 Adresse & Masque Interface Gateway PC4 Adresse & Masque Interface Gateway R1 Adresse & Masque Interface Gateway R2 Adresse & Masque Interface Gateway @ Michel Carpentier - Alain Gofflot
117
@ Michel Carpentier - Alain Gofflot
NAT Les adresses IP sont devenues une denrée rare de nos jours Une solution consiste à allouer des adresses de manière temporaire aux personnes qui se connectent à l’Internet par une ligne téléphonique. Cette solution n’est malheureusement pas miraculeuse car les entreprises veulent une connexion permanente, de même que les clients au service ADSL. @ Michel Carpentier - Alain Gofflot
118
@ Michel Carpentier - Alain Gofflot
NAT C’est pour cela qu’est née la technique de traduction d’adresses de réseau (Network Address Translation - NAT) On assigne à chaque organisation une seule adresse IP (ou un petit groupe). Tous les ordinateurs reçoivent une adresse unique interne. Lorsqu’un datagramme doit être envoyé sur le réseau externe, la traduction d’adresse intervient. @ Michel Carpentier - Alain Gofflot
119
@ Michel Carpentier - Alain Gofflot
NAT Pour réaliser cela, 3 plages d’adresses IP ont été réservées : / hôtes / hôtes / hôtes Ces adresses peuvent être utilisées librement à la condition qu’aucune d’elle ne doit être transmise sur Internet. @ Michel Carpentier - Alain Gofflot
120
NAT Paquet après la traduction 198.2.4.7 10.0.0.1 NAT
Routeur de l’entreprise Routeur de l’ISP Paquet avant la traduction @ Michel Carpentier - Alain Gofflot
121
NAT ? ?.?.?.? Paquet réponse 144.4.4.8 ? ? ? ? Routeur de l’entreprise
Routeur de l’ISP ? Que faire d’un paquet entrant dans le réseau de l’entreprise ? ? @ Michel Carpentier - Alain Gofflot
122
@ Michel Carpentier - Alain Gofflot
NAT On ne peut modifier l’entête IP pour y ajouter une information pour NAT, et il ne reste plus qu’un seul bit disponible ! Les concepteurs de NAT ont constaté que la majorité des paquets IP incluent une charge utile TCP ou UDP. @ Michel Carpentier - Alain Gofflot
123
@ Michel Carpentier - Alain Gofflot
NAT Nous verrons plus tard (cours 1081) que TCP et UDP utilise un numéro de port source et un numéro de port destination pour orienter les paquets vers les bons processus (tant chez l’émetteur que le récepteur). Les numéros de 0 à 1023 sont réservés à des services identifiés. Exemple : le port http est 80. Ces numéros de port sont codés sur 16 bits. @ Michel Carpentier - Alain Gofflot
124
@ Michel Carpentier - Alain Gofflot
NAT Par analogie, on pourrait comparer ces numéros de ports aux extensions téléphoniques d’une entreprise. Le numéro de la centrale serait l’adresse IP, tandis que les extensions des employés seraient les numéros de ports. @ Michel Carpentier - Alain Gofflot
125
@ Michel Carpentier - Alain Gofflot
NAT Lorsqu’un paquet est envoyé à l’extérieur, il traverse le dispositif NAT : L’adresse IP interne ( ) est remplacée par l’adresse publique de la société ( ) Le champ port source TCP (ou UDP) est remplacé par une référence à une entrée dans une table de traduction de adresses du dispositif NAT. @ Michel Carpentier - Alain Gofflot
126
@ Michel Carpentier - Alain Gofflot
NAT Cette table contient : Le numéro IP de la machine source Le numéro de port de la machine source Les sommes de contrôle sont recalculées et le paquet est transmis. Il est impératif de remplacer le port source par un port choisi, car au sein du réseau, deux machines pourraient établir une communication vers l’extérieur avec le port 5000 comme source au même moment. @ Michel Carpentier - Alain Gofflot
127
@ Michel Carpentier - Alain Gofflot
NAT Lorsque la réponse arrive au dispositif NAT de l’extérieur, le port TCP (ou UDP) est extrait du paquet et utilisé pour retrouver dans la table de correspondance du dispositif NAT, le numéro de port et l’adresse IP de la machine destinatrice. Une fois l’entrée localisée, le paquet reconstitué (avec recalcul des sommes de contrôle), il peut être envoyé au destinataire. @ Michel Carpentier - Alain Gofflot
128
@ Michel Carpentier - Alain Gofflot
NAT (exemple sans NAT) Sans Dispositif NAT Packet TCP reçu IP Src : Port Src : 1842 IP Dest : Port Dest : 80 Packet TCP émis IP Src : Port Src : 1842 IP Dest : Port Dest : 80 Packet TCP réponse reçue IP Src : Port Src : 80 IP Dest : Port Dest : 1842 Packet TCP réponse IP Src : Port Src : 80 IP Dest : Port Dest : 1842 @ Michel Carpentier - Alain Gofflot
129
@ Michel Carpentier - Alain Gofflot
NAT (exemple avec NAT) Dispositif NAT Packet TCP reçu IP Src : Port Src : 1842 IP Dest : Port Dest : 80 Packet TCP NATé IP Src : Port Src : 5689 IP Dest : Port Dest : 80 Packet TCP reçu IP Src : Port Src : 5689 IP Dest : Port Dest : 80 Packet TCP émis IP Src : Port Src : 1842 IP Dest : Port Dest : 80 Insert line Table NAT Numéro IP Src Port Src 5689 1842 Packet TCP réponse reçue IP Src : Port Src : 80 IP Dest : Port Dest : 1842 Packet TCP réponse IP Src : Port Src : 80 IP Dest : Port Dest : 5689 Consult line Packet TCP dé-NATé IP Src : Port Src : 80 IP Dest : Port Dest : 1842 Packet TCP reçu IP Src : Port Src : 80 IP Dest : Port Dest : 5689 @ Michel Carpentier - Alain Gofflot
130
@ Michel Carpentier - Alain Gofflot
NAT Cette technique a cependant ses problèmes : NAT ne respecte pas le modèle architectural qui dit que chaque machine est identifiée par son adresse IP NAT altère le réseau en faisant d’un réseau sans connexion une sorte de réseau avec connexions. En cas de plantage du routeur toutes les connexions en cours sont perdues. @ Michel Carpentier - Alain Gofflot
131
@ Michel Carpentier - Alain Gofflot
NAT NAT enfreint la règle la plus essentielle de l’organisation en couches : la couche k n’est absolument pas concernée par ce que la couche k+1 place dans son champ de données. La version 2 de TCP risque de poser beaucoup de problèmes. Les processus de l’Internet ne sont pas strictement obligés d’utiliser TCP ou UDP. Avec NAT, ils perdent cette liberté. @ Michel Carpentier - Alain Gofflot
132
@ Michel Carpentier - Alain Gofflot
NAT Certaine application insèrent des adresses IP dans le corps des données transmises. Le récepteur peut ensuite les extraire pour s’en servir. Exemple : FTP, H323. Étant donné que le champ port source est codé sur 16 bits, un maximum de machines peuvent être associées. Ceci peut être contourné en réalisant le NAT avec plusieurs adresses externes. @ Michel Carpentier - Alain Gofflot
133
Les protocoles de contrôle
Outre IP qui sert à la transmission de données, l’Internet dispose d’un certain nombre de protocoles destinés au contrôle du réseau : ICMP – Internet Control Message Protocol ARP – Address Resolution Protocol RARP – Reverse Address Resolution Protocol BOOTP - Bootstrap DHCP – Dynamic Host Configuration Protocol @ Michel Carpentier - Alain Gofflot
134
@ Michel Carpentier - Alain Gofflot
ICMP ICMP (Internet Control Message Protocol) sert à : Signaler des événement inattendus sur le réseau Tester le fonctionnement du réseau Une dizaine de messages ICMP ont été définis et peuvent être transmis au sein d’un paquet IP. @ Michel Carpentier - Alain Gofflot
135
@ Michel Carpentier - Alain Gofflot
ICMP Type de message Description Destination inaccessible Le paquet n’a pas pu être délivré Délai expiré Le champ d’entête TTL a atteint 0 Problème de paramètre Champ d’entête invalide Ralentissement de la source Paquet de rétention Redirection Indication d’une meilleure route Demande d’écho Demande à une machine si elle est active Envoi d’écho La machine distante est active Demande d’horodate Identique à une demande d’écho, mais inclus en plus une horodate Envoi d’horodate Identique à un envoi d’écho, mais inclus en plus une horodate @ Michel Carpentier - Alain Gofflot
136
@ Michel Carpentier - Alain Gofflot
ICMP Destination inaccessible est utilisé lorsque le sous réseau, ou un routeur ne parvient pas à localiser la destination. Ce paquet peut également être envoyé par un routeur qui ne peut transmettre une donnée pour laquelle le champ DF de l’entête est positionné à 1. @ Michel Carpentier - Alain Gofflot
137
@ Michel Carpentier - Alain Gofflot
ICMP Délai expiré est émis lorsqu’un paquet est éliminé car son compteur de durée de vie a atteint la valeur 0. TTL=1 ICMP Mon paquet a été perdu TTL=0 ICMP Le paquet est détruit TTL=4 TTL=2 ICMP ICMP TTL=3 ICMP @ Michel Carpentier - Alain Gofflot
138
@ Michel Carpentier - Alain Gofflot
ICMP Problème de paramètre indique qu’une valeur illégale a été détectée dans un champ d’entête. Il signifie un bug dans un logiciel IP. Ralentissement de source était destiné initialement à ralentir l’émetteur trop rapide. Il n’est plus utilisé car le contrôle de flux est maintenant assuré en couche 4. (Cours 1081) @ Michel Carpentier - Alain Gofflot
139
@ Michel Carpentier - Alain Gofflot
ICMP Redirection est émis par un routeur lorsqu’il lui semble qu’un paquet n’est pas correctement routé. Il signale à l’hôte émetteur la probabilité d’une erreur. Les messages demande d’écho et envoi d’écho permettent de déterminer si une destination donnée est accessible et active. @ Michel Carpentier - Alain Gofflot
140
@ Michel Carpentier - Alain Gofflot
Ping Ping permet d’utiliser ces paquet ICMP demande d’écho et envoi d’écho. @ Michel Carpentier - Alain Gofflot
141
@ Michel Carpentier - Alain Gofflot
Ping @ Michel Carpentier - Alain Gofflot
142
@ Michel Carpentier - Alain Gofflot
Ping Ping possède quelques options interessantes… @ Michel Carpentier - Alain Gofflot
143
@ Michel Carpentier - Alain Gofflot
ICMP D’autres messages on été définis. Leur liste se trouve maintenue à l’adresse @ Michel Carpentier - Alain Gofflot
144
@ Michel Carpentier - Alain Gofflot
ICMP & ARP : Exercice Comment déterminer l’adresse MAC d’une station distante ? Solution en 2 étapes : Effectuer un PING vers la station Consulter la table d’adresses MAC via ARP. @ Michel Carpentier - Alain Gofflot
145
@ Michel Carpentier - Alain Gofflot
ICMP & ARP : Exercice Quelle est l’adresse MAC de la station ? Cette adresse n’est pas en mémoire : @ Michel Carpentier - Alain Gofflot
146
@ Michel Carpentier - Alain Gofflot
ICMP & ARP : Exercice On effectue un PING vers cette station : @ Michel Carpentier - Alain Gofflot
147
@ Michel Carpentier - Alain Gofflot
ICMP & ARP : Exercice On regarde le contenu de la table ARP : @ Michel Carpentier - Alain Gofflot
148
@ Michel Carpentier - Alain Gofflot
RARP Nous avons vu que ARP permet de découvrir l’adresse MAC d’une station dont on connaît l’adresse IP Dans certains cas, l’inverse est également intéressant : certaines stations « disk-less » doivent demander au réseau l’attribution d’une adresse IP, connaissant leur adresse MAC. @ Michel Carpentier - Alain Gofflot
149
@ Michel Carpentier - Alain Gofflot
RARP RARP (Reverse Address Resolution Protocol) assure cette fonction. RFC 903 Une station effectue une requête RARP en broadcast avec sa propre adresse MAC. Le serveur RARP répond en donnant l’adresse IP qu’il souhaite attribuer à cette station @ Michel Carpentier - Alain Gofflot
150
RARP Votre IP est ! Je suis 00-0D-56-E9-14-0F. Quelle IP dois-je utiliser ? @ Michel Carpentier - Alain Gofflot
151
@ Michel Carpentier - Alain Gofflot
RARP Inconvénient : Le broadcast est effectué en plaçant tous les bits de l’adresse de destination à 1. Une telle frame ne traverse pas le routeur qui délimite le segment de la station émettrice. En conséquence, il faut un serveur RARP par segment de réseau. @ Michel Carpentier - Alain Gofflot
152
@ Michel Carpentier - Alain Gofflot
BOOTP BOOTP (Bootstrap) contourne l’inconvénient de RARP en utilisant des messages UDP pour effectuer les requêtes. Dès lors, les routeurs peuvent être franchis. RFC 951, 1048, 1084 @ Michel Carpentier - Alain Gofflot
153
@ Michel Carpentier - Alain Gofflot
BOOTP Inconvénient : Sur le serveur BOOTP, chaque station doit être décrite sous la forme : Adresse ethernet -> Adresse IP La gestion d’une telle table est source de lourdeur et de risque potentiels de mauvaise configuration. @ Michel Carpentier - Alain Gofflot
154
@ Michel Carpentier - Alain Gofflot
DHCP En répondant à ce dernier inconvénient, le protocole BOOTP a changé de nom : DHCP (Dynamic Host Configuration Protocol). Basé sur RFC 2131 et RFC 2132 Le fonctionnement est basé sur le mode client – serveur. @ Michel Carpentier - Alain Gofflot
155
@ Michel Carpentier - Alain Gofflot
DHCP Client DHCP Client DHCP Voici ton adresse IP Donne moi une adresse IP Serveur DHCP @ Michel Carpentier - Alain Gofflot
156
@ Michel Carpentier - Alain Gofflot
DHCP Un serveur DHCP peut envoyer des informations diverses : adresse IP masque de sous-réseau valeurs optionelles : routeur par défaut serveur(s) DNS options spécifiques au client. @ Michel Carpentier - Alain Gofflot
157
@ Michel Carpentier - Alain Gofflot
DHCP Lorsque l’attribution d’adresses se fait automatiquement, il faut s’assurer que les adresses qui ne sont plus utilisées sont restituées au serveur. Pour assurer cela, on utilise le mécanisme du bail (leasing) Chaque adresse est « prettée » pour une certaine période. A la fin de cette période, elle peut être renouvelée ou remise à disposition. @ Michel Carpentier - Alain Gofflot
158
@ Michel Carpentier - Alain Gofflot
DHCP Il existe plusieurs formes de requêtes DHCP : DHCPDISCOVER (pour localiser les serveurs DHCP disponibles) DHCPOFFER (réponse du serveur à un paquet DHCPDISCOVER, qui contient les premiers paramètres) DHCPREQUEST (requête diverse du client pour par exemple prolonger son bail) DHCPACK (réponse du serveur qui contient des paramètres et l'adresse IP du client) DHCPNAK (réponse du serveur pour signaler au client que son bail est échu ou si le client annonce une mauvaise configuration réseau) DHCPDECLINE (le client annonce au serveur que l'adresse est déjà utilisée) DHCPRELEASE (le client libère son adresse IP) DHCPINFORM (le client demande des paramètres locaux, il a déjà son adresse IP) @ Michel Carpentier - Alain Gofflot
159
@ Michel Carpentier - Alain Gofflot
DHCP Le serveur envoie une proposition au client Client DHCP Client DHCP DHCPOFFER IP : Mask : Lease : 48h Mac client : C6-2A-C8-AC IP Server : DHCPDISCOVER Source : Destin. : FF.FF.FF.FF Le poste client demande une adresse IP au(x) serveur(s) DHCP Serveur DHCP @ Michel Carpentier - Alain Gofflot
160
@ Michel Carpentier - Alain Gofflot
DHCP Le serveur confirme l’attribution de l’adresse Client DHCP Client DHCP DHCPACK IP : Mask : Lease : 48h Mac client : C6-2A-C8-AC IP Server : DHCPREQUEST Source : Destin. : FF.FF.FF.FF IP : … Le poste client accepte la première proposition qu’il a reçue en informant tous les serveurs. Serveur DHCP @ Michel Carpentier - Alain Gofflot
161
@ Michel Carpentier - Alain Gofflot
DHCP Client DHCP du serveur 2 Client DHCP du serveur 1 ERREUR à à Serveur DHCP2 Serveur DHCP1 @ Michel Carpentier - Alain Gofflot
162
Le routage dans l’Internet
Nous avons vu jusqu’à présent un certain nombre de protocoles de contrôle d’Internet : ICMP ARP, RARP DHCP … Voyons à présent les protocoles de routage de ce réseau fédérateur Les onduleurs (UPS) sont des appareils électriques qui permettent de pallier aux micro-coupures, coupures de courant et même brusques sautes de courant occasionnelles. Leur usage devient indispensable dès que des machines qui peuvent être sérieusement endommagées en cas de rupture de courant ou de fluctuations importantes de la tension sont utilisées. En effet, une coupure de courant, qui résulte forcément dans un arrêt non contrôlé des machines, peut avoir des conséquences néfastes (perte de données sur les serveurs, par exemple). Certains systèmes d'exploitation disposent d'un module logiciel pour l'alimentation de secours. Dans ce cas, l'onduleur est relié au PC, en général par l'intermédiaire d'une connexion série ou par le réseau local. Le PC est informé de toute panne de courant et le programme de surveillance se prépare à un arrêt du système : il effectue toutes les opérations y nécessaires telles que clôture des fichiers, sauvegarde des paramètres d'urgence, etc... Dans le cas de configuration en réseau, les 'clients' sont déconnectés du serveur et le serveur effectue aussi les opérations nécessaires à un arrêt propre du système. @ Michel Carpentier - Alain Gofflot
163
Le routage dans l’Internet
Par réseau fédérateur il faut comprendre d’Internet est composé d’un très grand nombre de systèmes autonomes (SA) gérés par des acteurs (sociétés, …) indépendants : un SA est ensemble de réseaux qui sont sous un même contrôle administratif : ex : RESTENA, BELNET, UUNET, … chacun de ces acteurs a la liberté du choix, dans son système (en interne) de son protocole de routage un nombre potentiellement élevé de protocoles différents @ Michel Carpentier - Alain Gofflot
164
Le routage dans l’Internet
Les différents SA sont interconnectés entre eux en ce qui concerne BELNET : connexion directe avec plusieurs AS « belges » via BNIX : connexion directe avec plusieurs AS « hollandais » via AMSIX : connexion directe avec plusieurs réseaux de la recherche : SURFNET (NL), TEN-155 (Europe) connexion directe avec des ISPs internationaux @ Michel Carpentier - Alain Gofflot
165
Le routage dans l’Internet
Quid de l’interconnexion : la définition de normes facilite grandement le travail de tous en effet, si certaines règles sont respectées, l’implémentation de l’interfaçage frontière entre ces différents SA est considérablement facilitée : standardisation des règles de communication réutilisation du code … @ Michel Carpentier - Alain Gofflot
166
Le routage dans l’Internet
Le routage dans l’Internet commence donc par le routage dans un système autonome : nous parlerons des protocoles de routage interne Nous verrons ensuite le routage entre systèmes autonomes : nous parlerons des protocoles de routage externe @ Michel Carpentier - Alain Gofflot
167
Le routage dans l’Internet
Exterior Gateway Protocol : Distribue les routes globalement en considérent chaque SA comme une boîte noir Interior Gateway Protocol : Topologie interne de l’AS et des liens externes @ Michel Carpentier - Alain Gofflot
168
Les protocoles de routage interne
Ou routage intradomaine : Différents types de routage : statique : cfr dynamique : avec vecteur de distance : RIP avec états de liaison : OSPF, IS-IS Abordons ces deux dernières catégories @ Michel Carpentier - Alain Gofflot
169
@ Michel Carpentier - Alain Gofflot
Routage : pourquoi ? L’objectif principal de la couche 3 est, comme nous l’avons déjà vu, d’acheminer des paquets de la source vers la destination Dans un réseau, comment trouver le chemin d’un point A à un point B ? c’est le travail des algorithmes de routage en général, chaque routeur se base sur sa table de routage pour déterminer le port qu’il va attribuer pour véhiculer le paquet @ Michel Carpentier - Alain Gofflot
170
@ Michel Carpentier - Alain Gofflot
Routage : exemple Routing table A : local D : Sud B : Est C : Est [via B] E : Est [via B] A : Ouest [via B] D : Sud Ouest [via E] B : Ouest C : Local E : Sud Ouest A : Ouest D : Sud [via E] B : Local C : Sud [via E] E : Sud A : Nord D : Local B : Nord [via A] C : Est [via E] E : Est A : Nord [via B] D : Ouest B : Nord C : Nord Est E : Local A B C D E @ Michel Carpentier - Alain Gofflot
171
Détermination de la route
Principe d’optimalité si le routeur J se trouve sur le meilleur chemin de I à K, alors le meilleur chemin de J à K suit la même route que le meilleur chemin de I à K on peut donc trouver le meilleur chemin de façon incrémentale Dans un réseau, l’ensemble des meilleurs chemins partants d’un routeur est un arbre dont la racine est ce routeur @ Michel Carpentier - Alain Gofflot
172
Algorithmes de routage
Meilleur chemin dans un réseau ? plus court chemin [le moins de lignes à traverser] chemin avec le délai le plus court chemin avec le débit le plus élevé en général, on caractérise chaque ligne par un nombre [métrique] Comment construire les tables de routage ? Routage statique Routage dynamique @ Michel Carpentier - Alain Gofflot
173
@ Michel Carpentier - Alain Gofflot
Routage statique Principe un ordinateur spécialisé calcule les tables des routage pour tous les routeurs du réseau Calcule des tables de routage algorithme pour trouver le chemin le plus court algorithmes plus complexes pour optimiser l’utilisation du réseau en fonction du trafic @ Michel Carpentier - Alain Gofflot
174
@ Michel Carpentier - Alain Gofflot
Routage statique Avantages du routage statique : facile à utiliser dans un petit réseau optimisation possible des tables de routages Désavantages pas d’adaptation dynamique à l’évolution du trafic comment faire quand en cas de en panne ? @ Michel Carpentier - Alain Gofflot
175
@ Michel Carpentier - Alain Gofflot
Routage dynamique Principe : les routeurs coopèrent pour mettre à jour leurs tables de routage de façon dynamique avec un algorithme distribué utilisé dans quasiment tous les réseaux Méthodes : routage avec vecteurs de distance routage avec états de liaison @ Michel Carpentier - Alain Gofflot
176
@ Michel Carpentier - Alain Gofflot
Routage dynamique Avantage : adaptabilité Désavantage : beaucoup plus complexe à implémenter que routage statique @ Michel Carpentier - Alain Gofflot
177
Routage - vecteurs de distance
Principe : chaque routeur transmet périodiquement un vecteur comprenant pour chaque destination connue du routeur : 1. adresse de la destination 2. distance depuis le routeur qui transmet le vecteur jusqu’à la destination le vecteur de distance est en fait un résumé de la table de routage du routeur @ Michel Carpentier - Alain Gofflot
178
Routage - vecteurs de distance
Chaque routeur reçoit les vecteurs transmis par ses voisins immédiats et se base sur cette information pour construire sa table de routage Lorsqu’il démarre, un routeur ne connaît que lui−même @ Michel Carpentier - Alain Gofflot
179
Vecteurs de distance : exemple 1
réseau simple avec lignes de distance unitaire Routing table A : 0 local C : 0 Local B : 0 Local D : 0 Local E : 0 Local A B C D E A = 0 A = 0 @ Michel Carpentier - Alain Gofflot
180
Vecteurs de distance : exemple 2
Initialement, un routeur ne connaît que lui−même et il peut se joindre avec une distance de 0 Vecteur de distance de A : A=0 envoyé sur les port Est et Sud de A (tous) @ Michel Carpentier - Alain Gofflot
181
Vecteurs de distance : exemple 3
B et D connaissent maintenant l’existence de A Routing table B : 0 Local A : 1 Ouest Routing table A : 0 local Routing table C : 0 Local A B C D=0; A=1 Routing table D : 0 Local A : 1 Nord Routing table E : 0 Local D D=0; A=1 E @ Michel Carpentier - Alain Gofflot
182
Vecteurs de distance : exemple 4
Vecteur de distance pour D : D=0 ; A=1 envoyé sur les ports Nord et Est de D @ Michel Carpentier - Alain Gofflot
183
Vecteurs de distance : exemple 5
E connaît maintenant A et D Routing table B : 0 Local A : 1 Ouest Routing table A : 0 local D : 1 Sud Routing table C : 0 Local A B C=0 C C=0 Routing table D : 0 Local A : 1 Nord Routing table E : 0 Local D : 1 Ouest A : 2 Ouest D E @ Michel Carpentier - Alain Gofflot
184
Vecteurs de distance : exemple 6
Supposons que C décide d’envoyer son vecteur : vecteur de distance pour C à ce moment : C=0 envoyé sur les ports Ouest et Sud−Ouest @ Michel Carpentier - Alain Gofflot
185
Vecteurs de distance : exemple 7
B et E connaissent l’existence de C Routing table B : 0 Local A : 1 Ouest C : 1 Est Routing table A : 0 local D : 1 Sud Routing table C : 0 Local A B C E=0;D=1;A=2;C=1 E=0;D=1;A=2;C=1 Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est Routing table D : 0 Local A : 1 Nord E=0;D=1;A=2;C=1 D E @ Michel Carpentier - Alain Gofflot
186
Vecteurs de distance : exemple 8
Nouveau vecteur de distance pour E : E=0 ; D=1 ; A=2 ; C= 1 envoyé sur tous les ports de E @ Michel Carpentier - Alain Gofflot
187
Vecteurs de distance : exemple 9
B reçoit le vecteur de E : nouvelle route pour E et D route plus mauvaise pour A et C Routing table B : 0 Local A : 1 Ouest C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest A B C B=0;A=1;C=1;D=2;E=1 B=0;A=1;C=1;D=2;E=1 Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B=0;A=1;C=1;D=2;E=1 D E @ Michel Carpentier - Alain Gofflot
188
Vecteurs de distance : exemple 10
Nouveau vecteur de distance de B : B=0 ; A=1 ; C=1; E = 1 ; D=2 @ Michel Carpentier - Alain Gofflot
189
Vecteurs de distance : exemple 11
Routing table B : 0 Local A : 1 Ouest C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 1 Est C : 2 Est E : 2 Est Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 2 Ouest B : 1 Ouest A B C A=0;B=1;C=2;D=1;E=2 Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord D E Nouveau vecteur de distance de A : A=0 ; D=1 ; B=1 ; C=2 ; E=2 envoyé sur tous les ports de A … @ Michel Carpentier - Alain Gofflot
190
Vecteurs de distance : exemple 12
Routing table B : 0 Local A : 1 Ouest C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 1 Est C : 2 Est E : 2 Est Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 2 Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est B : 2 Nord Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord D E @ Michel Carpentier - Alain Gofflot
191
Vecteurs de distance : exemple 13
A cet instant, tous les routeurs savent comment joindre n’importe quel autre routeur du réseau Les tables de routage sont stables : la réémission d’un vecteur de distance ne provoquera pas de changement dans une table de routage @ Michel Carpentier - Alain Gofflot
192
Routage avec VdD : problème
Que faire en cas de panne d’une ligne ? Supprimer dans la table de routage de A et B les destinations que l’on pouvait joindre via la ligne en panne : cela ne suffit pas, il faut également propager dans le réseau l’information concernant la panne de la ligne A B C D E @ Michel Carpentier - Alain Gofflot
193
Routage avec VdD : problème
Idée : une ligne en panne = ligne avec distance infinie envoyer un nouveau vecteur de distance indiquant une distance infinie pour les destinations que l’on pouvait joindre via la ligne qui est tombée en panne @ Michel Carpentier - Alain Gofflot
194
Vecteurs de distance : situation stable
Routing table B : 0 Local A : 1 Ouest C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 1 Est C : 2 Est E : 2 Est Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 2 Ouest B : 1 Ouest A B C Apparition d’une panne Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est B : 2 Nord Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord D E @ Michel Carpentier - Alain Gofflot
195
VdD : réaction aux pannes (1)
Routing table B : 0 Local A : ∞ C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : ∞ C : ∞ E : ∞ Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 2 Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est B : 2 Nord Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord A=0;B=∞;C=∞;D=1;E=∞ D E Nouveau vecteur de distance de A : A=0 ; D=1 ; B=∞ ; C=∞ ; E=∞ envoyé sur le port Sud de A @ Michel Carpentier - Alain Gofflot
196
VdD : réaction aux pannes (2)
D apprend la panne. Il réagit en ajustant ses tables de routage : D passait par A pour aller à B A annonce maintenant une distance infinie pour B D ne sait plus joindre B en passant par A D émet alors un nouveau vecteur de distance : D=0 ; A=1 ; E=1 ; C=2 ; B=∞ @ Michel Carpentier - Alain Gofflot
197
VdD : réaction aux pannes (3)
Routing table B : 0 Local A : ∞ C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : ∞ C : ∞ E : ∞ Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 2 Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est B : ∞ Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord D=0;B=∞;A=1;C=2;E=1 D E @ Michel Carpentier - Alain Gofflot
198
VdD : réaction aux pannes (4)
Chaque routeur doit « réapprendre » la topologie : A découvre une route vers C et vers E via D A et D ne peuvent toujours pas joindre B C croit toujours pouvoir joindre A via B B émet un nouveau vecteur de distance : B=0 ; A= ∞ ; C=1 ; E=1 ; D=2 @ Michel Carpentier - Alain Gofflot
199
VdD : réaction aux pannes (5)
Routing table B : 0 Local A : ∞ C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : ∞ C : 3 Sud E : 2 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 2 Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est B : ∞ Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord B=0;A=∞;C=1;E=1;D=2 D E @ Michel Carpentier - Alain Gofflot
200
VdD : réaction aux pannes (6)
C apprend, à son tour, qu’il ne peut pas joindre A via B : il ajuste donc sa table de routage E émet également un nouveau vecteur de distance : E=0 ; D=1 ; A=2 ; C=1 ; B=1 ce dernier est envoyé sur tous ses ports @ Michel Carpentier - Alain Gofflot
201
VdD : réaction aux pannes (7)
Routing table B : 0 Local A : ∞ C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : ∞ C : 3 Sud E : 2 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : ∞ B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est B : ∞ Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord E=0;D=1;A=2;C=1;B=1 E=0;D=1;A=2;C=1;B=1 D E @ Michel Carpentier - Alain Gofflot
202
VdD : réaction aux pannes (8)
D apprend de E une route vers B B apprend de E une route vers A C apprend de E une route vers A leurs tables de routage respective sont mises à jour D enverra son vecteur de distance et annoncera à A la route permettant de joindre B via D @ Michel Carpentier - Alain Gofflot
203
VdD : réaction aux pannes (9)
Routing table B : 0 Local A : 3 Sud C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : ∞ C : 3 Sud E : 2 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est B : 2 Est Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord D E D enverra son vecteur de distance et annoncera à A la route permettant de joindre B via D @ Michel Carpentier - Alain Gofflot
204
VdD : situation stable après une panne
Routing table B : 0 Local A : 3 Sud C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 3 Sud C : 3 Sud E : 2 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est B : 2 Est Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord D E @ Michel Carpentier - Alain Gofflot
205
@ Michel Carpentier - Alain Gofflot
VdD : nouvelle panne Une nouvelle panne survient sur la ligne entre D et E : quid de la réaction d’ajustement des tables par propagation de nouveaux vecteurs ? @ Michel Carpentier - Alain Gofflot
206
@ Michel Carpentier - Alain Gofflot
VdD : nouvelle panne D découvre l’existence de la panne : D sait maintenant que la distance vers E, C et B est infinie si c’est D qui envoie son vecteur de distance, tout se passe bien. Aucun problème Le problème vient quand A transmet en premier un vecteur de distance… @ Michel Carpentier - Alain Gofflot
207
@ Michel Carpentier - Alain Gofflot
VdD : Nouvelle panne Routing table B : 0 Local A : 3 Sud C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 3 Sud C : 3 Sud E : 2 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 1 Est C : 2 Est B : 2 Est Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord D E @ Michel Carpentier - Alain Gofflot
208
@ Michel Carpentier - Alain Gofflot
VdD : nouvelle panne (1) Routing table B : 0 Local A : 3 Sud C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 3 Sud C : 3 Sud E : 2 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : ∞ C : ∞ B : ∞ Routing table E : 0 Local D : ∞ A : ∞ C : 1 Nord-Est B : 1 Nord A=0;D=1;B=3;C=3;E=2 D E Vecteur de distance de A : A=0 ; D=1 ; B=3 ; C=3 ; E=2 envoyé sur tous les ports de A @ Michel Carpentier - Alain Gofflot
209
@ Michel Carpentier - Alain Gofflot
VdD : nouvelle panne (2) Le vecteur de distance de A permet à D d’avoir à nouveau une route vers B, C et E Le nouveau vecteur de distance pour D est : D=0 ; A=1 ; E=3 ; C=4 ; B=4 il est envoyé sur tous les ports de D @ Michel Carpentier - Alain Gofflot
210
@ Michel Carpentier - Alain Gofflot
VdD : nouvelle panne (3) Routing table B : 0 Local A : 3 Sud C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 3 Sud C : 3 Sud E : 2 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 3 Nord C : 4 Nord B : 4 Nord Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord D=0;A=1;E=3;C=4;B=4 D E @ Michel Carpentier - Alain Gofflot
211
@ Michel Carpentier - Alain Gofflot
VdD : nouvelle panne (4) Mauvaise nouvelle pour A : sa route vers B, C et E est plus longue d’une unité mise à jour de sa table et envoi des infos à ses voisins Le nouveau vecteur de distance pour A est : A=0 ; D=1 ; B=4 ; C=4 ; E=3 envoyé sur tous les ports @ Michel Carpentier - Alain Gofflot
212
@ Michel Carpentier - Alain Gofflot
VdD : nouvelle panne (5) Routing table B : 0 Local A : 3 Sud C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 4 Sud C : 4 Sud E : 3 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 3 Nord C : 4 Nord B : 4 Nord Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord A=0;D=1;B=4;C=4;E=3 D E @ Michel Carpentier - Alain Gofflot
213
@ Michel Carpentier - Alain Gofflot
VdD : nouvelle panne (6) Mauvaise nouvelle pour D : sa route vers B, C et E est plus longue d’une unité qu’avant Le nouveau vecteur de distance pour D est : A=1 ; D=0 ; B=5 ; C=5 ; E=4 envoyé sur tous les ports Problème : il y a une boucle @ Michel Carpentier - Alain Gofflot
214
@ Michel Carpentier - Alain Gofflot
VdD : nouvelle panne (7) Routing table B : 0 Local A : 3 Sud C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 4 Sud C : 4 Sud E : 3 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : 4 Nord C : 5 Nord B : 5 Nord Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord A=1;D=0;B=5;C=5;E=4 D E @ Michel Carpentier - Alain Gofflot
215
@ Michel Carpentier - Alain Gofflot
VdD : nouvelle panne (8) Origine du problème : comptage à l’infini car un routeur annonce sur une ligne des routes qu’il a appris via cette même ligne Comment éviter ? horizon partagé (split horizon) principe : construire un vecteur de distance pour chaque ligne sur une ligne, ne pas annoncer les destinations que l’on ne parvient pas à joindre via cette ligne @ Michel Carpentier - Alain Gofflot
216
@ Michel Carpentier - Alain Gofflot
VdD : horizon partagé Routing table B : 0 Local A : 3 Sud C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 3 Sud C : 3 Sud E : 2 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : ∞ C : ∞ B : ∞ Routing table E : 0 Local D : ∞ A : ∞ C : 1 Nord-Est B : 1 Nord A=0 D=0;B=∞;E=∞ D E @ Michel Carpentier - Alain Gofflot
217
@ Michel Carpentier - Alain Gofflot
Horizon partagé Le vecteur de distance de A envoyé vers D : A=0 Le vecteur de distance de D envoyé vers A : D=0 ; E=∞ ; B=∞ @ Michel Carpentier - Alain Gofflot
218
@ Michel Carpentier - Alain Gofflot
Horizon partagé A apprend de D la mauvaise nouvelle : le problème du comptage infini est résolu Routing table B : 0 Local A : 3 Sud C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : ∞ C : ∞ E : ∞ Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : ∞ C : ∞ B : ∞ Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord D E @ Michel Carpentier - Alain Gofflot
219
Horizon partagé avec empoisonnement
Amélioration à horizon partagé : horizon partagé avec empoisonnement principe construire un vecteur de distance pour chaque ligne sur une ligne donnée annoncer les destinations que l’on parvient à atteindre via d’autres lignes normalement annoncer les destinations que l’on parvient à atteindre via cette ligne en indiquant une distance infinie Avantage : permet d’annoncer plus rapidement les mauvaises nouvelles que split horizon simple @ Michel Carpentier - Alain Gofflot
220
Horizon partagé avec empoisonnement (1)
Retour à l’exemple précédent : Vecteur envoyé par A : A=0 ; D=∞ ; B=∞ ; C=∞ ; E=∞ Routing table B : 0 Local A : 3 Sud C : 1 Est E : 1 Sud D : 2 Sud Routing table A : 0 local D : 1 Sud B : 3 Sud C : 3 Sud E : 2 Sud Routing table C : 0 Local E : 1 Sud-Ouest D : 2 Sud-Ouest A : 3 Sud-Ouest B : 1 Ouest A B C Routing table D : 0 Local A : 1 Nord E : ∞ C : ∞ B : ∞ Routing table E : 0 Local D : 1 Ouest A : 2 Ouest C : 1 Nord-Est B : 1 Nord A=0;D=∞;B=∞;C=∞;E=∞ D E @ Michel Carpentier - Alain Gofflot
221
Limitation à horizon partagé (avec ou sans empoisonnement)
Routing table A : 0 local B : ∞ C : ∞ E : ∞ Routing table C : 0 Local E : 1 Sud-Ouest A : 2 Ouest B : 1 Ouest Routing table B : 0 Local A : ∞ C : 1 Est E : 1 Sud A B C A=∞;B=0;C=1;E=1 Routing table E : 0 Local A : 2 Nord C : 1 Nord-Est B : 1 Nord A=2;B=1;C=0;E=∞ E @ Michel Carpentier - Alain Gofflot
222
Limitation à horizon partagé (avec ou sans empoisonnement)
B envoie ses vecteurs de distance : le vecteur arrive en E Avant que le vecteur de B n’arrive en C, C envoie son vecteur à E @ Michel Carpentier - Alain Gofflot
223
Limitation à horizon partagé (avec ou sans empoisonnement)
Routing table A : 0 local B : ∞ C : ∞ E : ∞ Routing table C : 0 Local E : 1 Sud-Ouest A : 2 Ouest B : 1 Ouest Routing table B : 0 Local A : ∞ C : 1 Est E : 1 Sud A B C Routing table E : 0 Local A : 2 Ouest C : 1 Nord-Est B : 1 Nord A=∞;B=0;C=1;E=∞ A=2;B=1;C=0;E=∞ E @ Michel Carpentier - Alain Gofflot
224
Limitation à horizon partagé (avec ou sans empoisonnement)
Routing table A : 0 local B : ∞ C : ∞ E : ∞ Routing table C : 0 Local E : 1 Sud-Ouest A : 2 Ouest B : 1 Ouest Routing table B : 0 Local A : 1 Ouest C : 1 Est E : 1 Sud A B C Routing table (E) Routing table après vecteur de B : E : 0 Local A : ∞ C : 1 Nord-Est B : 1 Nord Routing table après vecteur de C : A : 3 Nord-Est A=∞;B=0;C=1;E=∞ A=2;B=1;C=0;E=∞ E E enverra son vecteur de distance : B découvrira une route vers A via E et l’annoncera à C Nouveau problème de comptage à l’∞ @ Michel Carpentier - Alain Gofflot
225
Routage avec état de liaison
Idée : plutôt que d’envoyer uniquement la distance vers chaque destination, diffuser sur tous les routeurs une carte complète du réseau Comment construire cette carte ? chaque routeur doit découvrir ses voisins chaque routeur doit mesurer le délai de la ligne vers chacun de ces voisins chaque routeur envoie un paquet indiquant ses proches voisins à tous les routeurs du réseau les routeurs assemblent les paquets reçus et utilisent Dijkstra pour calculer le chemin +court @ Michel Carpentier - Alain Gofflot
226
Découverte des voisins
Comment un routeur peut-il découvrir ses voisins ? Message HELLO : envoyer périodiquement un paquet spécial HELLO qui indique l’adresse du routeur sur chaque ligne les voisins répondent en envoyant leur adresse l’envoi périodique permet de vérifier que la ligne reste active A: HELLO A B B: HELLO E: HELLO E @ Michel Carpentier - Alain Gofflot
227
@ Michel Carpentier - Alain Gofflot
Mesure du délai Comment mesurer le délai des lignes ? via le mécanisme HELLO permet de mesurer le délai aller−retour en divisant par 2 on obtient le délai de la ligne le délai doit−il tenir compte de la charge actuelle de la ligne ? : si oui, le routage pourra prendre la charge indirectement en compte, mais le routage risque d’être instable si non, le routage sera plus stable, mais certaines lignes risquent d’être mal utilisées @ Michel Carpentier - Alain Gofflot
228
Buffer de sortie du routeur
Mesure du délai Comment tenir compte de la charge de la ligne dans la mesure du délai ? A B Placement du paquet Hello à la tête du buffer : délai mesuré par Hello sera indépendant de la charge de la ligne à la queue du buffer : (comme s’il s’agissait d’un paquet normal) : délai par Hello mesuré sera fonction de la charge de la ligne Buffer de sortie du routeur contient des paquets en attente de transmission Si la charge est élevée, le buffer contiendra beaucoup de paquets en attente en moyenne Si la charge est faible, le buffer contiendra peu de paquets en moyenne @ Michel Carpentier - Alain Gofflot
229
Détermination de la topologie
Comment déterminer la topologie du réseau ? en découvrant ses voisins, chaque routeur découvre une petite partie de la topologie en assemblant ces petites parties, on peut construire la topologie complète chaque routeur résume sa topologie locale en un link state packet (LSP) contenant : identification du routeur couples (voisin,délai pour atteindre ce voisin) @ Michel Carpentier - Alain Gofflot
230
Détermination de la topologie
Quand construire les LSPs ? périodiquement en cas de problèmes (ligne devenant active ou en panne ou délai changeant fortement) Comment distribuer la topologie ? en s’appuyant sur les tables de routage : impossible car ces tables n’existent pas ou risquent d’être incohérentes lorsque l’on commence à diffuser la topologie @ Michel Carpentier - Alain Gofflot
231
Détermination de la topologie
Sans tenir compte de la table de routage la topologie doit être reçue par chaque routeur du réseau première solution : Chaque routeur place sa topologie locale dans un paquet spécial (LSP) et envoie ce paquet sur toutes ses lignes de sortie tout routeur qui reçoit un LSP d’un autre routeur stocke le contenu en mémoire et diffuse ce LSP sur ses lignes de sortie (sauf celle d’où le LSP provient évidemment) @ Michel Carpentier - Alain Gofflot
232
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs Liaisons A-B : 1 A-D : 1 Liaisons B-C : 1 C-E : 1 Liaisons A-B : 1 B-E : 1 B-C : 1 A B C Liaisons A-D : 1 D-E : 1 LSP : E[D:1];[B:1];[C:1] LSP : E[D:1];[B:1];[C:1] Liaisons E-D : 1 E-B : 1 E-C : 1 D E LSP : E[D:1];[B:1];[C:1] E diffuse le premier son LSP sur ses ports : format : émetteur [topologie locale] : E[D:1];[B:1];[C:1] @ Michel Carpentier - Alain Gofflot
233
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs Liaisons A-B : 1 B-E : 1 B-C : 1 E-D : 1 E-C : 1 Liaisons A-B : 1 A-D : 1 Liaisons B-C : 1 C-E : 1 B-E : 1 D-E : 1 LSP : E[D:1];[B:1];[C:1] A B C Liaisons A-D : 1 D-E : 1 B-E : 1 E-C : 1 LSP : E[D:1];[B:1];[C:1] Liaisons E-D : 1 E-B : 1 E-C : 1 D E Chaque routeur rediffuse le LSP reçu sur toutes ses lignes sauf celles d’où le LSP provient Comment éviter qu’un LSP ne boucle en permanence ? @ Michel Carpentier - Alain Gofflot
234
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs Comment résoudre le problème du bouclage ? il faut qu’un routeur évite de rediffuser un LSP qu’il a déjà reçu précédemment sur une autre ligne : pour cela, un routeur doit conserver le dernier LSP émis par chaque routeur du réseau principe : chaque LSP contient : un numéro de séquence incrémenté par l’émetteur à chaque nouveau LSP une identification de l’émetteur du LSP les couples [routeur:distance] pour tous les routeurs voisins du routeur qui émet le LSP @ Michel Carpentier - Alain Gofflot
235
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs chaque routeur stocke le LSP le plus récent reçu de chaque routeur du réseau un LSP est traité et rediffusé uniquement si il est plus récent que le LSP qui était dans la mémoire du routeur @ Michel Carpentier - Alain Gofflot
236
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs Liaisons A-B : 1 B-E : 1 B-C : 1 LSPs Liaisons A-B : 1 A-D : 1 LSPs Liaisons B-C : 1 C-E : 1 LSPs A B C Liaisons A-D : 1 D-E : 1 LSPs LSP : E-0[D:1];[B:1];[C:1] LSP : E-0[D:1];[B:1];[C:1] Liaisons E-D : 1 E-B : 1 E-C : 1 E-0[D:1];[B:1];[C:1] D E LSP : E-0[D:1];[B:1];[C:1] Initialement la table des LSPs est vide E envoie son LSP sur tous ses ports @ Michel Carpentier - Alain Gofflot
237
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs Liaisons A-B : 1 B-E : 1 B-C : 1 E-D : 1 E-C : 1 E-0[D:1];[B:1];[C:1] Liaisons B-C : 1 C-E : 1 B-E : 1 D-E : 1 E-0[D:1];[B:1];[C:1] Liaisons A-B : 1 A-D : 1 LSPs LSP : E-0[D:1];[B:1];[C:1] A B C Liaisons A-D : 1 D-E : 1 B-E : 1 E-C : 1 E-0[D:1];[B:1];[C:1] LSP : E-0[D:1];[B:1];[C:1] Liaisons E-D : 1 E-B : 1 E-C : 1 E-0[D:1];[B:1];[C:1] D E @ Michel Carpentier - Alain Gofflot
238
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs Grâce à la table des LSPs : A peut détecter qu’il reçoit le même LSP via D et via B B peut détecter qu’il reçoit un ancien LSP via C C peut détecter qu’il reçoit me même LSP de E et via B @ Michel Carpentier - Alain Gofflot
239
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs Problème : un routeur se plante puis redémarre il envoie son LSP avec numéro de séquence = 0 si un ancien LSP de ce routeur existait dans le réseau, les autres routeurs ne propageront pas le nouveau LSP @ Michel Carpentier - Alain Gofflot
240
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs Solution : ajouter un champ "age" dans les LSPs le champ age est décrémenté toutes les N secondes même à l’intérieur des tables de LSPs des routeurs un LSP avec age=0 est trop vieux et supprimé chaque routeur envoie périodiquement un nouveau LSP age>0 pour garantir la présence du LSP dans le réseau Principe de la ligne du temps pour expliquer l’age @ Michel Carpentier - Alain Gofflot
241
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs Améliorations : éviter qu’un LSP passe deux fois sur une ligne : lorsqu’un LSP est reçu, le routeur attend quelques secondes avant de le rediffuser : si le même LSP arrive d’une autre ligne, on a évité une diffusion si après ce temps le LSP n’est pas arrivé, on le diffuse un routeur qui démarre peut demander à un voisin de recevoir les LSPs stockés par ce voisin @ Michel Carpentier - Alain Gofflot
242
@ Michel Carpentier - Alain Gofflot
Diffusion des LSPs garantir la transmission correcte des LSPs : CRC dans chaque LSP pour détecter les erreurs de transmission la réception de chaque LSP est acquittée par le routeur qui le reçoit sur la ligne où il l’a reçu : si l’acquit n’arrive pas, le LSP est réémis @ Michel Carpentier - Alain Gofflot
243
Construction de la table de routage
Principe : sur base des LSPs reçus, chaque routeur calcule un arbre de recouvrement minimum en se considérant comme la racine de l’arbre à partir de l’arbre de recouvrement minimum, il est très facile de déduire la table de routage @ Michel Carpentier - Alain Gofflot
244
Construction de la table de routage
R1 : Ouest R2 : Nord R4 : Est R5 : Est R6 : Est @ Michel Carpentier - Alain Gofflot
245
Algorithme de Dijkstra
Construction de l’arbre de recouvrement minimum : initialement, l’arbre comprend uniquement la racine les routeurs adjacents sont placés avec les coûts de leur ligne dans une liste de candidats le routeur candidat avec le coût le plus faible est ajouté à l’arbre @ Michel Carpentier - Alain Gofflot
246
Algorithme de Dijkstra
on examine les voisins du routeur candidat choisi et on modifiera la liste des candidats si : un des voisins ne se trouvait pas dans la liste des candidats un des voisins est un routeur de la mise des candidats, mais avec un chemin plus court que celui qui est dans la liste actuelle l’algorithme se poursuit avec la nouvelle liste des candidats et s’arrête avec tous les routeurs dans l’arbre @ Michel Carpentier - Alain Gofflot
247
Algorithme de Dijkstra
1) Routeurs : [R1, R2, R4, R5,R6] ; Candidats : [ − ] ; Arbre : R3 2) Routeurs : [R5, R6] ; Candidats : [R1(5) ; R2(3) ; R4 (1) ] -> candidat choisi : R4 Nouvel Arbre : R3 − R4 Nouveaux Candidats ? [R1(5) ; R2 (3) ; R5(R4−4) ; R6(R4−7) ] 3) Routeurs [ − ] Candidat choisi : R2 ; Nouvel Arbre : R2 − R3 − R4 Nouveaux Candidats ? [R1(5) ; R5(R4−4) ; R6 (R4−7) ] 4) Candidat choisi : R5 ; Nouvel Arbre : R2 − R3 − R4 − R5 Nouveaux candidats ? [R1(5) ; R6(R4−7) ] @ Michel Carpentier - Alain Gofflot
248
@ Michel Carpentier - Alain Gofflot
Routage hiérarchique Dans un gros réseau, la table de routage peut devenir très grande et la distribution des LSPs consommer beaucoup de débit Il faut donc une alternative visant à réduire cette complexité/masse de données : routage hiérarchique @ Michel Carpentier - Alain Gofflot
249
@ Michel Carpentier - Alain Gofflot
Routage hiérarchique Principe : diviser le réseau en région à l’intérieur d’une région tous les routeurs connaissent la topologie complète les routeurs ne connaissent qu’un résumé de la topologie à l’extérieur de leur région réduit un petit peu l’efficacité du routage, mais facilite grandement la diffusion des LSPs : utilisé dans quasiment tous les grands réseaux @ Michel Carpentier - Alain Gofflot
250
@ Michel Carpentier - Alain Gofflot
Protocole OSPF RIP fût le premier protocole de routage interne de l’Internet. basé sur les vecteurs de distance OK pour les systèmes de taille modeste KO pour des systèmes plus étendus : problème de la valeur infinie problème d’une convergence lente Remplacé dès 1979 par un protocole à état de lien @ Michel Carpentier - Alain Gofflot
251
@ Michel Carpentier - Alain Gofflot
Protocole OSPF En 1988, l’IETF introduisit OSPF (Open Shortest Path First). En 1990, OSPF fût normalisé : dès ce moment, OSPF devint le protocole de routage intra AS dominant RFC 2328 @ Michel Carpentier - Alain Gofflot
252
@ Michel Carpentier - Alain Gofflot
Protocole OSPF OSPF est conçu pour répondre à une longue liste d’exigences : protocole ouvert. Il appartient au domaine public. le O de son nom support d’une grande variété de métrique : distance physique délai transmission … dynamique s’adapter automatiquement et rapidement aux changements de topologie @ Michel Carpentier - Alain Gofflot
253
@ Michel Carpentier - Alain Gofflot
Protocole OSPF routage en fonction du type de service demandé : exigence nouvelle une partie du trafic routé en temps réel est-ce possible sur IP, comment ? reste du trafic gestion de l’équilibrage des charges : plus efficace en répartissant le trafic sur plusieurs liaisons support des systèmes hiérarchiques : nécessaire car le développement d’Internet dès 1988 est tel qu’aucun routeur ne peut connaître la topologie toute entière @ Michel Carpentier - Alain Gofflot
254
@ Michel Carpentier - Alain Gofflot
Protocole OSPF prise en charge d’un minimum de sécurité : pour éviter que des pirates ne trompent des routeurs en leur envoyant des informations de routage erronées OSFP supporte trois types de connexions et de réseaux : liaisons point-à-point entre deux routeurs réseaux à accès multiple avec diffusion broadcast ex. la plupart des LAN réseaux à accès multiple sans diffusion broadcast ex. la plupart des WAN : commutation de paquets @ Michel Carpentier - Alain Gofflot
255
@ Michel Carpentier - Alain Gofflot
Protocole OSPF LAN 1 WAN 1 WAN 2 WAN 3 LAN 2 A B C G H I J E F D @ Michel Carpentier - Alain Gofflot
256
Protocole OSPF : détails
Un des objectifs est le support des grands réseaux : éviter des grosses tables de routage Solution : division du réseau en régions (areas) région backbone : cœur du réseau tous les routeurs connectés à deux areas ou plus en font partie toutes les autres areas doivent se connecter au backbone @ Michel Carpentier - Alain Gofflot
257
Protocole OSPF : détails
Le routage doit permettre de n’importe quelle area vers une autre à travers le backbone @ Michel Carpentier - Alain Gofflot
258
Protocole OSPF : fonctionnement
OSPF = protocole avec états de liaison démarrage d’un routeur envoi de messages HELLO pour découvrir ses voisins et construire la topologie mise à jour des tables de routages : envoi de LSPs : acquits, numéros de séquence et âge envoi périodique et lorsque une ligne change fortement database description : indique les numéros de séquence des différents LSP stockés par le routeur utile lorsqu’une ligne ou un routeur deviennent actifs @ Michel Carpentier - Alain Gofflot
259
Protocole OSPF : fonctionnement
link state request : utilisé par un routeur pour demander à un routeur adjacent un LSP particulier @ Michel Carpentier - Alain Gofflot
260
Protocole OSPF : fonctionnement
Problème : comment représenter un réseau local sous la forme d’un graphe ? R1 : R1 : R1 : R1 : @ Michel Carpentier - Alain Gofflot
261
Protocole OSPF : fonctionnement
Inconvénients : beaucoup de lignes à inclure dans le graphe beaucoup de message HELLO : topologie complexe ne représente pas vraiment la réalité : si le LAN tombe en panne : toutes les lignes entre routeurs tombent en panne également @ Michel Carpentier - Alain Gofflot
262
Protocole OSPF : fonctionnement
Comment réduire la taille du graphe ? représenter le réseau local comme un nœud virtuel autour auquel tous les routeurs sont connectés : routeur désigné : il y a toujours un et un seul routeur désigné par LAN (dialogue avec l’extérieur) routeur adjacent LAN @ Michel Carpentier - Alain Gofflot
263
Protocole OSPF : fonctionnement
Intérieur d’une area : distribution de la topologie de l’area les routeurs ne connaissent rien de la topologie des autres areas chaque routeur sait comment rejoindre le backbone R1 R2 R3 R4 D R5 AREA 1 RA AREA 0 RC R7 R8 RB Intérieur du backbone : distribution de la topologie du backbone chaque routeur sait joindre les areas propagation des routes inter- areas AREA 2 R9 D R10 @ Michel Carpentier - Alain Gofflot
264
BGP : routage interdomaine
BGP : Border Gateway Protocol Objectif : déterminer les routes entre AS, tout en permettant de spécifier des politiques de routage : exemples : Belgacom refuse de faire transiter du trafic destiné à France Telecom mais accepte le trafic destiné à WIN le trafic entre deux bâtiments de Microsoft ne doit jamais passer par un bâtiment d’IBM les politiques de routage sont aujourd’hui spécifiées manuellement dans chaque routeur : politique routage = choix stratégique Elles ne font par partie du protocole BGP @ Michel Carpentier - Alain Gofflot
265
BGP : routage interdomaine
Routage hiérarchique Pour BGP, l’Internet se résume aux différents AS et aux routeurs se trouvant au bord de ces AS : BGP ne connaît pas le détail interne de la topologie de chaque AS Deux routeurs BGP directement connectés s’échangent les informations de routage de façon fiable (protocole TCP) @ Michel Carpentier - Alain Gofflot
266
Types de réseaux AS100 : Réseau de transit Transit ISP (AS100) AS5
accepte les paquets de et vers n’importe quelle destination Transit ISP (AS100) AS1 StubASY AS5 AS4 StubAS9 AS3 AS7 AS6 AS2 IX2 IX1 AS9 : Réseau stub réseau connecté à un seul AS AS4 : Réseau multi-homed réseau connecté à plusieurs AS mais ne permet pas le transit. Seuls les paquets de ou vers des adresses IP de ce réseau sont acceptés @ Michel Carpentier - Alain Gofflot
267
@ Michel Carpentier - Alain Gofflot
BGP Principe de fonctionnement : routage avec vecteurs de distance : chaque vecteur contient le chemin complet (liste d’AS) et pas seulement l’adresse de la destination chaque AS choisit lui-même la route qu’il utilise sur base des vecteurs de distance reçus : la route choisie n’est pas nécessairement la plus courte @ Michel Carpentier - Alain Gofflot
268
@ Michel Carpentier - Alain Gofflot
BGP Avantage : permet d’éviter les problèmes du vecteur de distance : possible de détecter les boucles lorsque l’on connaît le chemin complet permet de connaître les AS par lesquels un paquet passera avant d’ arriver à la destination : nécessaire pour supporter du routage politique @ Michel Carpentier - Alain Gofflot
269
@ Michel Carpentier - Alain Gofflot
BGP : exemple Routing table AS3 : Sud AS2 : Est AS5 : Est [AS2-AS5] AS4 : Est [AS2-AS4] Routing table AS1 : Ouest [AS2-AS1] AS2 : Ouest AS3 : Est [AS2-AS4-AS3] AS4 : Sud-Ouest Routing table AS3 : Sud [AS4-AS3] AS1 : Ouest AS5 : Est AS4 : Sud AS1 AS2 AS5 AS2 : AS2 AS1 : AS2-AS1 AS5 : As2-AS5 AS3 : AS2-AS1-AS3 AS5 : AS5 AS2 : As5-AS2 AS1 : AS5-AS2-AS1 AS4 : Sud-Ouest AS3 D AS4 Routing table AS3 : Ouest AS2 : Nord AS5 : Nord-Est AS1 : Nord [AS2-AS1] Routing table AS4 : Est AS1 : Nord AS5 : Nord [AS1-AS2-AS5] AS2 : Nord [AS1-AS2] AS3 : AS3 AS1 : As3-AS1 AS5 : AS3-AS1-AS2-AS5 AS2 : AS3-AS2-AS1 @ Michel Carpentier - Alain Gofflot
270
@ Michel Carpentier - Alain Gofflot
BGP : exemple /24 /24 /16 /24 AS30 AS20 AS10 Un routeur BGP annonce aux routeurs extérieurs les sous-réseaux qui peuvent être atteints via lui : /24 /16 /23 @ Michel Carpentier - Alain Gofflot
271
@ Michel Carpentier - Alain Gofflot
BGP : exemple /8 : AS300 AS300 Multihomed /8 /8 : AS300 Transit /8 AS100 AS200 Transit /16 /24 : AS400 AS400 Stub /24 /16 : AS200 /8 : AS300 /8 : AS200-AS100 /8 : AS100-AS300 : AS100 Choix de la meilleure route : éliminer les routes interdites par la politique de routage route la plus courte (# d’AS intermédiaires) si plusieurs routes de même longueur, choix d’une d’entres elle suivant un critère quelconque @ Michel Carpentier - Alain Gofflot
272
@ Michel Carpentier - Alain Gofflot
Politiques de routage Support des politiques de routage : chaque routeur BGP choisit quelles routes il annonce aux AS voisins : tous les AS voisins ne reçoivent pas nécessairement les mêmes routes permet de contrôler le trafic qu’un AS accepte chaque routeur BGP choisit parmi toutes les routes qu’il a reçu de l’extérieur celle qui est la meilleure : permet de contrôler quelle direction prend le trafic qui sort d’un AS @ Michel Carpentier - Alain Gofflot
273
Politique de routage : exemple
Transit WIN /8 Belgacom /8 France Telecom /8 Annonce : /8 ; /8 Annonce : /8 Annonce : /8 Annonce : /8 ; /8 @ Michel Carpentier - Alain Gofflot
274
Interactions OSPF - BGP
A l’intérieur d’un AS : OSPF distribue la topologie interne BGP choisit le meilleur chemin interdomaine vers chaque destination externe Que faire si un AS a plusieurs liens externes ? les routeurs connectés à ces liens doivent se coordonner pour annoncer correctement les bonnes routes externes à l’intérieur de l’AS @ Michel Carpentier - Alain Gofflot
275
Interactions OSPF - BGP
Synchronisation des routeurs externes : liaison iBGP interne (à l’intérieur de l’AS) entre les routeurs connectés à l’extérieur : permet aux routeurs de déterminer les meilleurs routes chaque routeur diffuse les routes passant par lui via OSPF vers l’intérieur de l’AS @ Michel Carpentier - Alain Gofflot
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.