Réseaux
Protocole IP
Master Miage 1
Université de Nice - Sophia Antipolis
(Second semestre 2009-2010)
Sources bibliographiques
✓ Comer (D.E.) : TCP/IP architecture, protocoles, applications - 5ème édition - Dunod 2009/01
✓ Comer (D.E.) : Réseaux et Internet - CampusPress 2000
✓ Pujolle (G.) : Les réseaux - 6ème édition - Eyrolles 2007/09
✓ Servin (C.) : Réseaux et Télécoms - 3ème édition - Dunod 2009
✓ Siyan (K.S.) : TCP/IP - 2ème édition - CampusPress 2001
✓ Tanenbaum (A.S.) : Réseaux – 4ème édition - Pearson Education 2003
✓ RFC 791, 919, 922, 950, 1191, 1597
✓ Cours UREC du CNRS (www.urec.fr)
Principes du réseau Internet
Protocole IP fonctionnant en mode non connecté
Service IP = service de datagrammes échangés entre stations (hôtes) au travers d’un ou plusieurs réseaux de nature éventuellement différente et de
Interface X IP / ICMP TCP / UDP
T F T P F T P S M T P T e l n e t
Hôte A
Interface Y IP / ICMP TCP / UDP
T F T P F T P S M T P T e l n e t
Hôte B
Intf Y Intf X
IP / ICMP
Routeur
Réseau X Réseau Y
Evolution de l’Internet
Réseau ARPANET créé par DARPA (Defense Advanced Research Project Agency) dans les années 70, basé sur la commutation par paquets et architecturé selon des couches fonctionnelles
Mise en œuvre des protocoles de la famille TCP/IP sous UNIX (Berkeley)
Développement de normes de fait par le biais de RFC (Requests For Comments)
Fédération de réseaux (UseNet, BitNet…) par NSFnet (National Science Foundation network)
Expansion du réseau par les fournisseurs d’accès, qui permettent aux entreprises privées de se connecter à l’Internet
Ouverture au grand public avec l’avènement du Web
Protocoles de l’Internet (1/3)
IEEE 802.2, X.25, réseau radio, réseau satellite…
IP / ICMP + ARP / RARP
UDP TCP
TFTP SNMP
FTP TEL SMTP
NET
1 2 3 4 5 6 7
Interface réseau Inter-réseau
Transport Appli- cations
Modèle TCP/IP
Modèle OSI
Protocoles de l’Internet (2/3)
Protocoles d’application (exemples)
– Telnet (Remote Login) : protocole de présentation d’écran permettant la connexion et l’émulation de terminaux
– SMTP (Simple Mail Transfer Protocol) : protocole de messagerie électronique entre systèmes
– FTP (File Transfer Protocol) : protocole de transfert de fichiers ASCII, EBCDIC, binaires
– TFTP (Trivial File Transfer Protocol) : protocole pour transferts simples de données
– SNMP (Simple Network Management Protocol) : protocole de gestion de réseau à distance
– RIP (Routing Information Protocol) : protocole de routage de datagrammes IP au sein d’un système autonome
Protocoles de l’Internet (3/3)
Protocoles de transport
– TCP (Transmission Control Protocol) : fournit un service avec connexion entre ports (équivalent à la classe de transport 4 OSI). Protocole fiable de transfert de segments (taille maximale : 64 Koctets)
– UDP (User Datagram Protocol) : fournit un service sans connexion entre ports (équivalent à la classe de transport 0 OSI)
Protocoles inter-réseaux
– IP (Internet Protocol) : assure le transfert de datagrammes et fournit les fonctions de base pour l’interconnexion de réseaux hétérogènes
– ICMP (Internet Control Message Protocol) : assure l’échange de messages d’erreur et de service entre nœuds de communication
– ARP (Address Resolution Protocol) : permet d’obtenir l’adresse matérielle associée à une adresse IP
Fonctions du protocole IP
Adressage des paquets entre stations au travers de routeurs (adresses globales, de couche réseau)
Fragmentation et réassemblage des données
Routage des datagrammes vers une station ou un routeur, à l’aide de tables de routage
Acheminement des données sous forme de datagrammes (mode non connecté)
Autres caractéristiques :
– Protection de l’information de commande des datagrammes (en-tête) pour éviter des acheminements erronés
– Pas de protection des données contenues dans les datagrammes – Pas de contrôle de flux
– Pas de garantie de remise des datagrammes à leur destination (service « au mieux » ou Best Effort)
– Pas de garantie de remise en séquence
Adressage IP
Adresse IP définie sur 4 octets (32 bits)
2 parties dans l’adresse <net-id> <host-id>
– <net-id> : identificateur de réseau, attribué par un organisme
international (InterNIC), sans structure hiérarchisée (contrairement au téléphone, à ATM, à IPv6…)
– <host-id> : identificateur local de machine (ou hôte) dans le réseau
Adresse unique au monde
Adresse associée à une interface de réseau : – une seule (en général) pour une station
– une par interface de réseau pour un routeur
Notation décimale pointée, sous la forme w.x.y.z
(valeur de chaque nombre dans la gamme 0-255).
Adressage IP : Classes
Plusieurs classes d’adressage, selon la taille du réseau
Masque de (sous-)réseau (pour classes A, B, C) – nombre de 32 bits
– même format et même notation qu’une adresse
– spécifie les bits de <net-id> (bits à 1) et ceux de <host-id> (bits à 0)
format réservé E
adresse de groupe de diffusion D
8 bits 24 bits
C
16 bits 16 bits
B
24 bits 8 bits
A
<host-id>
<net-id>
Classe
Adressage IP : Classe A
Réseaux comportant un grand nombre d’hôtes
<net-id> sur 8 bits, commençant par ’0’ (octet w : 0-127)
<host-id> sur 24 bits
Exemples : 9 (IBM), 18 (MIT)
Capacité d’adressage : 126 (27-2) réseaux (net-Id 0 et 127 réservés, voir plus loin) de 224-2 hôtes max. chacun
Masque de (sous-)réseau : 255.0.0.0 ou /8 (8 bits de préfixe réseau)
0 7 bits 8 bits 8 bits 8 bits
w x y z
Net-id Host-id
Adressage IP : Classe B
Réseaux de taille moyenne ou grande
<net-id> sur 16 bits, commençant par ’10’ (octet w : 128-191)
<host-id> sur 16 bits
Exemples : 134.59 (Univ. Nice), 129.88 (IMAG)
Capacité d’adressage : 16384 (214) réseaux de 65534 (216-2) hôtes max.
chacun
Masque de (sous-)réseau : 255.255.0.0 ou /16 (16 bits de préfixe réseau)
1 0 6 bits 8 bits 8 bits 8 bits
w x y z
Net-id Host-id
1
Adressage IP : Classe C
Réseaux de taille modeste
<net-id> sur 24 bits, commençant par ’110’ (octet w : 192-223)
<host-id> sur 8 bits
Exemple : 193.54.48 (THESEUS)
Capacité d’adressage : 221 réseaux de 254 (28-2) hôtes max. chacun
Masque de (sous-)réseau : 255.255.255.0 ou /24 (24 bits de préfixe réseau)
1 1 0 5 bits 8 bits 8 bits 8 bits
w x y z
Net-id Host-id
Adressage IP : Classe D
Utilisation en multidiffusion (multicast)
Transmission point-à-multipoint
Groupe de diffusion identifié par un champ de 28 bits
Octet w d’adresse IP : 224-239
Pas de structuration du champ d’adresse car utilisé de manière ponctuelle, sans contrainte d’unicité
Protocole IGMP (Internet Group Management Protocol)
1 1 1 0 28 bits
w x y z
Adresses IP particulières (1/6)
<net-id> <0……0>
Identification du réseau <net-id> lui-même
Exemples :
9.0.0.0 = réseau 9
134.59.0.0 = réseau 134.59
193.54.48.0 = réseau 193.54.48
Utilisation dans les tables de routage (les routeurs ne connaissent généralement pas les hôtes eux-mêmes)
Conséquence : <host-id> doit être différent de 0…0
Adresses IP particulières (2/6)
<net-id> <1……1>
Diffusion (broadcast) vers toutes les stations du réseau <net-id>
Conséquence : <host-id> doit être différent de 1…1
Source : K.S. Siyan – TCP/IP – CampusPress 1999
Adresses IP particulières (3/6)
<1……1> <1……1>
Diffusion (broadcast) vers toutes les stations du réseau considéré.
Diffusion locale, qui ne traverse pas les routeurs
Source : K.S. Siyan – TCP/IP – CampusPress 1999
Adresses IP particulières (4/6)
<0……0> <host-id>
Identifie l’hôte <host-id> du réseau considéré, sans avoir à connaître la valeur de <net-id> (il faut cependant connaître la classe d’adresse)
Peu utilisé, éventuellement pendant les phases d’initialisation
Conséquence : <net-id> doit être différent de 0…0 (Classe A)
Source : K.S. Siyan – TCP/IP – CampusPress 1999
Adresses IP particulières (5/6)
<0……0> <0……0>
Identifie l’hôte considéré
Utilisé seulement pendant les phases d’initialisation (BOOTP/DHCP)
Cette adresse peut figurer dans le champ d’adresse de source, mais pas dans le champ d’adresse de destination
Adresses IP particulières (6/6)
<01111111> <x……x>
<127> <x……x> (souvent 127.0.0.1)
Adresse de rebouclage interne (loopback), sans présence de données sur le réseau
Conséquence : <net-id> doit être différent de 127 (Classe A)
Source : K.S. Siyan – TCP/IP – CampusPress 1999
Autres adresses IP réservées
RFC 1597
Adresses IP publiques réservées aux réseaux privés (Intranets) : – 1 réseau de classe A
10.0.0.0 – 10.255.255.255
– 1 bloc de 16 réseaux de classe B 172.16.0.0 – 172.31.255.255
– 1 bloc de 256 réseaux de classe C 192.168.0.0 – 192.168.255.255
Permet la séparation (via un pare-feu, par exemple) entre espace privé et espace d’accès public, lequel ne nécessite souvent qu’un nombre limité
Sous-réseaux IP
Possibilité de subdiviser le champ <host-id> en deux parties
3 parties dans l’adresse <net-id> < subnet-id> <host-id>
– <net-id> : identificateur de réseau
– <subnet-id> : identificateur de sous-réseau
– <host-id> : identificateur local de machine (ou hôte) dans le sous- réseau
Permet une meilleure structuration du réseau (technologies
éventuellement différentes) et une gestion décentralisée des adresses
Le choix du nombre de bits du champ <host-id> affectés à l’adressage des sous-réseaux est décidé par l’administrateur du réseau. Ce nombre doit être identique pour tout le réseau subdivisé
Masque de sous-réseau (Subnet Mask) : les bits à 1 couvrent <net-id> et <subnet-id>
La subdivision en sous-réseaux doit être prise en compte par les routeurs du réseau subdivisé
Masque de sous-réseau
Comme pour <net-id> et <host-id>, le champ <subnet-id> de l’adresse doit être différent de <0…0> (le sous-réseau lui-même) et de <1…1>
(diffusion vers toutes les stations du sous-réseau)
En conséquence j bits permettent de définir 2j – 2 sous-réseaux
Exemple :
– Adresse de réseau de classe B : 129.112.0.0
– Subdivision en 14 (max.) sous-réseaux de 4094 (max.) hôtes – Masque de sous-réseau : 255.255.240.0 (ou /20)
(11111111 11111111 11110000 00000000)
Agrégation d’adresses
Actuellement (2002), 65% des adresses de classe B sont allouées.
Cependant, beaucoup d’organisations qui disposent d’une adresse de classe B n’en utilisent pas tout l’adressage.
Inversement, 40% seulement des adresses de classe C sont allouées, mais la limitation à 254 adresses d’hôtes peut être contraignante. De plus, la fourniture de plusieurs adresses de classe C entraîne une multiplication d’entrées dans les tables de routage.
Situation actuelle : adresses de classe B réservées aux
organisations justifiant de plus de 4096 hôtes, et fourniture de 1,
2, 4, 8, 16, 32 ou 64 adresses de classe C contiguës et agrégées
(formant un bloc CIDR).
CIDR et sur-réseaux
CIDR (Classless Inter-Domain Routing)
Organisation des adresses de Classe C concernées :
Exemple d’une organisation européenne demandant 1500 adresses IP : fourniture d’un bloc de 8 adresses de classe C, de 194.32.136.0 à
194.32.143.255. Ce bloc, ou sur-réseau (supernet) est défini par :
– l’adresse la plus basse du bloc, soit 194.32.136.0 (11000010 00100000 10001000 00000000)
– le masque CIDR ou masque de sur-réseau (Supernet Mask) définissant les
à 193.255.255.255 à 195.255.255.255 à 197.255.255.255 à 199.255.255.255 à 201.255.255.255 à 203.255.255.255 à 205.255.255.255 à 207.255.255.255 de 192.0.0.0
de 194.0.0.0 de 196.0.0.0 de 198.0.0.0 de 200.0.0.0 de 202.0.0.0 de 204.0.0.0 de 206.0.0.0 Multi-régions
Europe Autres
Amérique du Nord Amérique Centre/Sud Pacifique
Autres Autres
En-tête IPv4
Source : D. E. Comer - Computer Networks and Internets - Prentice Hall 1999
Champs de l’en-tête IPv4 (1/4)
VersionVersion (4 bits) : valeur = 4 (4 bits) : valeur = 4
Longueur de l’en-têteLongueur de l’en-tête (4 bits) : taille, en mots de 32 bits, de l’en-tête, y (4 bits) : taille, en mots de 32 bits, de l’en-tête, y compris les options (valeur habituelle = 5)
compris les options (valeur habituelle = 5)
Type de serviceType de service (8 bits) : définit la qualité de service demandée (8 bits) : définit la qualité de service demandée (priorité, retard, débit, fiabilité). Champ inutilisé, sauf pour OSPF (priorité, retard, débit, fiabilité). Champ inutilisé, sauf pour OSPF
Longueur totale (16 bits) : taille totale du datagramme (en-tête + Longueur totale (16 bits) : taille totale du datagramme (en-tête + données). Valeur max = 65535 octets. Dans le réseau, la taille du données). Valeur max = 65535 octets. Dans le réseau, la taille du
datagramme ou celle de chacun de ses fragments n’est pas supérieure à datagramme ou celle de chacun de ses fragments n’est pas supérieure à
la taille de MTU
la taille de MTU (Maximum Transmission Unit)(Maximum Transmission Unit)
Champs de l’en-tête IPv4 (2/4)
Identification (16 bits) : numérotation du datagramme (tous ses fragments auront la même valeur de ce champ)
Drapeaux (3 bits) : indicateurs (dont un inutilisé) permettant la gestion des fragments :
– DF (Don’t Fragment) : protège le datagramme contre une fragmentation éventuelle
– MF (More Fragments) : indique si le fragment est le dernier
Position du fragment (13 bits) : décalage du fragment (en multiples de 8 octets) dans le datagramme d’origine. Tous les fragments d‘un
datagramme, sauf le dernier, doivent avoir une taille multiple de 8 octets
Champs de l’en-tête IPv4 (3/4)
Time To Live (8 bits) : durée de vie, permettant de limiter le temps de transit des datagrammes dans le réseau. Chaque routeur intermédiaire traversé décrémente la valeur de TTL. Le datagramme est détruit
lorsque de champ vaut 0. Ce champ représente en fait le nombre maximum de sauts (hops) restants
Protocole (8 bits) : identifie le protocole de la couche supérieure (Exemples : 6 pour TCP, 17 pour UDP, 1 pour ICMP, 4 pour l’encapsulation de IP dans IP, 89 pour OSPF) et permet le
démultiplexage en réception. Equivalent au NSAP dans le modèle OSI
Champ de vérification de l’en-tête (16 bits) : permet de valider l’en- tête (recalculé à chaque modification entre source et destination). Evite la remise d’un datagramme à un destinataire autre que celui prévu
Champs de l’en-tête IPv4 (4/4)
Adresse IP de la source (32 bits) : adresse IP de l’émetteur du datagramme
Adresse IP de la destination (32 bits) : adresse IP du ou des destinataires du datagramme
Options et bourrage : permettent des fonctions supplémentaires telles que marque de temps, liste de routeurs à traverser, niveau de sécurité.
Format de chaque option : TLV (type, longueur, valeur). Bourrage éventuel pour que l’en-tête ait une taille multiple de 32 bits
Fragmentation et réassemblage
La taille d’un datagramme peut ne pas convenir à un réseau particulier parmi ceux traversés. La station hôte de source ou un routeur traversé effectue alors une fragmentation.
Le réassemblage ne s’effectue que dans la station hôte de destination.
Les fragments peuvent arriver dans le désordre. Ils peuvent ne pas avoir tous la même taille (fragments de fragments). A l’arrivée d’un premier fragment, l’hôte récepteur crée une mémoire tampon et démarre un
temporisateur. Les données sont accumulées dans la mémoire tampon, à l’aide du champ ‘Décalage de fragment’, jusqu’à reconstitution
complète. L’ensemble des fragments est détruit en cas d’expiration du temporisateur (par exemple, si un fragment est perdu)
Note : IP ne fragmente pas les paquets dont la taille est inférieure ou égale à 576 octets
Fragmentation (exemple)
0 384 148
128 5
256 1
1044 1024
5
192 1
532 512
5
1 128 532
512 5
0 1
1044 1024
5
384 0
148 128
5
256 1
1044 1024
5
128 1
1044 1024
5
0 1
1044 1024
5
0 0 3220
3200 5
Pos_fragment (multiples de 8 octets) L_totale MF
(octets) Données
(octets) L_entête
(mots)
1024 512 512 1024 128
0 128 192 256 384
Routage IP
Les routeurs et les hôtes participent au routage (ils possèdent tous des tables de routage)
Sauf exception, les tables de routage ne spécifient que des réseaux entiers (identifiés par leur <net-id>), et non des hôtes
La route vers une destination n’est pas donnée en entier, mais sous la forme de l’adresse d’un prochain routeur (next hop) : routage de proche en proche, ou par bonds successifs
Les tables de routage peuvent être :
– statiques (élaborées manuellement) : surtout dans les hôtes
– dynamiques (générées et mises à jour
automatiquement par un protocole qui exécute un algorithme de routage) : surtout dans les routeurs
Tables de routage (1/2)
192.50.2.0 192.50.1.0
.1
.10 .10
S
R1
192.50.1.1 192.50.1.1 192.50.1.1
192.50.1.10 255.255.255.0
255.255.255.0 192.50.1.0
192.50.2.0
Interface Prochain routeur
Masque Réseau
192.50.1.10 192.50.2.10 192.50.1.10
192.50.2.10 255.255.255.0
255.255.255.0 192.50.1.0
192.50.2.0
Interface Prochain routeur
Masque Réseau
S
R1
Tables de routage (2/2)
192.50.1.1 192.50.1.1 192.50.1.1 192.50.1.1
192.50.1.10 192.50.1.10 255.255.255.0
255.255.255.0 255.255.255.0 192.50.1.0
192.50.2.0 192.50.3.0
Interface Prochain routeur
Masque Réseau
192.50.1.10 192.50.2.10 192.50.2.10 192.50.1.10
192.50.2.10 192.50.2.20 255.255.255.0
255.255.255.0 255.255.255.0 192.50.1.0
192.50.2.0 192.50.3.0
Interface Prochain routeur
Masque Réseau
S
R1
192.50.2.0 192.50.1.0
.1
.10 .10
S
R1
192.50.3.0
.20 R2 .20
Interface Prochain routeur
Masque Réseau
Routes par défaut (1/2)
192.50.1.1 192.50.1.1 192.50.1.1
192.50.1.10 255.255.255.0
0.0.0.0 192.50.1.0
0.0.0.0
Interface Prochain routeur
Masque Réseau
192.50.1.10 192.50.2.10 192.50.2.10 192.50.1.10
192.50.2.10 192.50.2.20 255.255.255.0
255.255.255.0 0.0.0.0
192.50.1.0 192.50.2.0 0.0.0.0
Interface Prochain routeur
Masque Réseau
S
R1
192.50.2.0 192.50.1.0
.1
.10 .10
S
R1
192.50.3.0
.20 R2 .20
192.50.2.20 192.50.3.20 192.50.2.20 192.50.2.20
192.50.3.20 192.50.2.10 255.255.255.0
255.255.255.0 0.0.0.0
192.50.2.0 192.50.3.0 0.0.0.0
Interface Prochain routeur
Masque Réseau
R2
Routes par défaut (2/2)
Problème si R2 est le routeur par défaut de R1 et de R3
Recommandation pour les routes par défaut :
– pour les hôtes : route par défaut (surtout s’il y a un seul routeur) – pour les routeurs : pas de route par défaut, mais une entrée de table
par réseau (c’est le cas pour les tables dynamiques, générées et mises à jour par un protocole de routage)
192.50.2.0 192.50.1.0
.1
.10 .10
S
R1
192.50.3.0
.20 R2 .20
192.50.4.0
.30 R3 .30
.1 T
Acheminement des datagrammes
Acheminement nécessaire dans deux cas : – une station hôte émet un datagramme
– un routeur reçoit un datagramme et doit le transmettre
De l’adresse IP de destination on extrait l’identificateur de réseau <net- id> par un ET logique avec le masque de sous-réseau
– s’il s’agit du même réseau, on encapsule le datagramme dans une trame dont le format (en particulier l’adressage) dépend de la nature physique de ce réseau
– sinon, la consultation de la table de routage (voir plus loin) permet de connaître le prochain routeur. Là encore, on encapsule le
datagramme dans une trame de ce réseau
Dans les deux cas, l’adresse physique (de l’hôte de destination ou du prochain routeur) peut être trouvée dans une table ou obtenue à l’aide d’un protocole de résolution d’adresse tel que ARP
Protocoles de routage IP
Un réseau complexe, de grande taille, peut être divisé en systèmes autonomes (AS, Autonomous Systems). Un AS est un ensemble de réseaux et de routeurs gérés par une administration unique (entreprise, campus, réseau régional, cœur d’un réseau national…). Les numéros d’AS (16 bits) sont délivrés par l’InterNIC
Exemples de protocoles de routage : – à l’intérieur d’un système autonome
✓ RIP (Routing Information Protocol)
✓ OSPF (Open Shortest Path First) – entre systèmes autonomes
✓ EGP (Exterior Gateway Protocol)
✓ BGP (Border Gateway Protocol)
Protocoles de routage externe
EGP (Exterior Gateway Protocol), remplacé graduellement par BGP (Border Gateway Protocol)
Protocoles permettant d’échanger de l’information de routage entre systèmes autonomes
Les routeurs de frontière s’échangent périodiquement des messages deux à deux. L’information échangée est une liste des réseaux
accessibles
Des boucles sont possibles avec EGP (couples de routeurs voisins seulement). BGP gère les boucles
Mise en place de stratégies de routage, selon des considérations politiques, économiques, de sécurité…
Protocole OSPF (1/2)
OSPF : Open Shortest Path First (RFC 1247)
Algorithme (Dijkstra) basé sur l’état des liens (link state)
Chaque routeur surveille l’état de toutes ses liaisons et diffuse, par inondation, cet état à tous les autres routeurs (LSA, Link State Advertisement) périodiquement ou lors d’un changement
Chaque routeur construit, à partir de cette information, une carte complète du réseau
On peut regrouper des réseaux et des routeurs en zones, ce qui permet un routage hiérarchique
Protocole OSPF (2/2)
Les routeurs calculent les routes de plus court chemin, selon plusieurs critères (TOS, Type Of Service) en fonction de :
– retard – débit – fiabilité – coût
Les paquets OSPF sont encapsulés dans IP, à la manière de ICMP (champ Protocole = 89)
Avantages de OSPF :
– chaque routeur calcule la carte du réseau de manière indépendante – le volume d’information est indépendant du nombre de réseaux
Inconvénient de OSPF : le calcul des routes peut être très complexe
Protocole RIP (1/2)
RIP : Routing Information Protocol (RFC 1058, 1387, 1388)
Algorithme (Bellmann-Ford) basé sur un vecteur de distance
Chaque routeur calcule la distance qui le sépare des destinations
connues, à partir de l’information reçue de ses voisins, et l’utilise pour construire la table de routage
Chaque routeur diffuse, toutes les 30 secondes, vers ses voisins : – la liste des réseaux qu’il sait atteindre
– leur distance (nombre de sauts à effectuer)
Protocole RIP (2/2)
Les paquets RIP sont encapsulés dans des datagrammes UDP (port 520)
Avantages de RIP : – simple, normalisé
– s’adapte automatiquement aux changements de configuration
Inconvénients de RIP :
– volume de l’information échangée proportionnelle au nombre de réseaux
– nombre maximal de sauts = 15 (16 représente l’infini)
– la distance est une information incomplète (rien sur charge, débit, retard…)
– convergence lente (certaines modifications peuvent prendre plusieurs cycles avant que tous les routeurs n’aient reçu
l’information adéquate)