Réseaux Informatiques : Tp r4.3 ip réseaux informatiques
Télécharger PDFObtenir le pack complet des cours, TDs, examens sur Réseaux Informatiques!
Vous souhaitez maîtriser Réseaux Informatiques ? Ne cherchez plus, nous avons le pack bien choisi pour vous.
Accédez à une collection complète des supports de cours, des travaux dirigés (TD) corrigés, examens...
Télécharger pack.: TP R4.3 : IP :. Copyright 2008 tv <thierry.vaira@laposte.net> Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no FrontCover Texts, and with no BackCover.
You can obtain a copy of the GNU General Public License : write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA
Permission est accordée de copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License), version 1.1 ou toute version ultérieure publiée par la Free Software Foundation ; sans Sections Invariables ; sans Texte de Première de Couverture, et sans Texte de Quatrième de Couverture. Vous pouvez obtenir une copie de la GNU General Public License : écrire à la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA Table des matières
Le paquet IP.............................................................................................................................................................2
Le protocole ICMP (Internet Control Message Protocol).......................................................................................3
Format du paquet ICMP............................................................................................................................................4
La fragmentation.....................................................................................................................................................6
Séquence 1 MTU (Maximum Transfer Unit) et Analyse de trames Ethernet......................................................7
Séquence 2 – Fragmentation et Analyse de paquets IP et ICMP............................................................................8
Séquence 3 – Champ TTL (Time To Live)...........................................................................................................10
Annexe 1 La trame 802.3 (FRAME 802.3)........................................................................................................12
Annexe 2 La trame Ethernet_II...........................................................................................................................12
Annexe 3 La commande ifconfig........................................................................................................................13
Travaux Pratiques1 / 13© 2008 tv© .: TP R4.3 : IP :.
Le paquet IP
Le format unique du paquet IP, ou datagramme IP, est organisé en champs de 32 bits :
0781516232431
VersionIHLTOS
Total lengthId. 0D FM F
Fragment offset
TTLProtocole
Header checksum Adresse Source Adresse Destination
Options + paddingDONNEES •Le champ "Version" (4 bits) identifie la version du protocole IP. Elle est fixée actuellement à 4.
•Un champ "Internet Header Length" (4 bits) spécifie la longueur de l’entête en mots de 32 bits. Cette longueur IHL varie de 5 à 15, 5 étant la longueur normale lorsqu'aucune option n'est utilisée.
•Le champ "Type de service" TOS (8 bits) définit la priorité du paquet et le type de routage souhaité. Cela permet à un logiciel de réclamer différents types de performance pour un datagramme : délai court, haut débit, haute fiabilité ou bas prix.
•Le champ "Total Length" (16 bits) définit le nombre d'octets contenus dans le paquet y compris l'entête IP. Puisque ce champ est codé sur 16 bits, la taille max. d'un paquet IP est de 65535 octets (64 KO). •Le champ "Identification" (16 bits) contient une valeur entière utilisée pour identifier les fragments d'un datagramme. Ce champ doit être unique pour chaque nouveau datagramme.
•"Flags" (3 bits) est utilisé pour contrôl er la fragmentation des paquets. Le bit de poids faible à zéro indique le dernier fragment d'un datagramme et est baptisé "More Flag" ou MF bit. Le bit du milieu est appelé "Do not Fragment flag" ou DF bit. Le bit de poids fort n'est pas utilisé.
• "Fragment Offset" (13 bits) sert à indiquer la position qu'occupait les données de ce fragment dans le message original. •Le TTL ou "Time To Live" (8 bits) est l'expression en secondes de la durée maximale de séjour du paquet dans un réseau. Il existe 2 manières de faire baisser cette valeur : lors du réassemblage du paquet dans un routeur, sa valeur est décrémentée chaque seconde ou alors chaque routeur qui traite ce paquet décrémente le TTL d'une unité (compteur de routeurs). Si le TTL devient nul, son paquet IP n'est plus relayé : c'est souvent l'indication d'une erreur de paquet qui boucle. Une utilisation détournée de ce champ permet de tracer la route empruntée par un paquet. En mettant le champ TTL à 0, le premier routeur rencontré rejette le paquet et signale sa présence en retournant un paquet ICMP d'erreur vers l'émetteur. On renvoie alors le paquet avec le champ TTL à 1 afin d'atteindre le routeur suivant et ainsi de suite. A chaque fois, on récupère l'adresse IP du routeur. •Le champ "Protocole" (8 bits) identifie la couche de transport propre à ce datagramme : 17 pour UDP, 6 pour TCP, 1 pour ICMP, 8 pour EGP, 89 pour OSPF , ... (voir /etc/protocols)
•Le "Header checksum" ou champ de contrôl e de l'entête (16 bits) contient le "complément à un" du total "en complément à un" de tous les mots de 16 bits de l'entête. •Les adresses IP source et destination sont codées sur 32 bits
•A la rubrique "Options", sont stockées des demandes spéciales pour requérir un routage particulier pour certains paquets. + le champ "padding" (bourrage) est habituellement rempli de 0 de manière à aligner le début des données sur un multiple de 32 bits.
Travaux Pratiques2 / 13© 2008 tv
.: TP R4.3 : IP :.
Le protocole ICMP (Internet Control Message Protocol)
Le protocole ICMP (Internet Control Message Protocol RFC 792) utilise les datagrammes IP pour transporter ses messages. Le protocole ICMP permet par exemple :
•le contrôl e de flux : le récepteur débordé par un émetteur trop rapide, envoie un message ICMP Source Quench pour arrêter temporairement l’émission
•la détection de destinations inaccessibles dénoncée par un message Destination Unreachable
•la redirection de routes pour avertir une machine hôte d’utiliser un autre gateway. ICMP fournit d'intéressantes données pour le diagnostic d'opérations du réseau. ICMP utilise des datagrammes IP pour véhiculer des messages allerretour entre noeuds concernés. Un message d'erreur ICMP est généré par une machine hôte réalisant qu'il y a un problème de transmission et renvoyé à l'adresse de départ du datagramme ayant provoqué le problème.
Le protocole ICMP est utilisé notamment par la commande ping qui :
•emet un paquet ICMP "demande d'écho" (type=8 et code=0) et •reçoit, si la machine distante est active (alive), un paquet ICMP "réponse d'écho" (type=0 et code=0).
Travaux Pratiques3 / 13© 2008 tv
DestinationCRCDataType (0800)Source
IP DataIP header... ICMP
CodeType
.: TP R4.3 : IP :.
Format du paquet ICMP
Le paquet ICMP (Internet Control Message Protocol RFC 792), encapsulé dans un pâque IP (dont le champ protocole vaut 1 pour ICMP) , a la structure suivante :081624 31
typecode
checksum
... données complémentaires (n° id et n° seq) ...
entête internet et données émises dans le paquet ICMP
L'entête d'un paquet ICMP a une longueur de 8 octets dont les champs sont les suivants :
•Le champ type sur 1 octet, définis par les RFC 792 et 1256, dont les valeurs indiquant le type de message sont :
0Réponse d'écho
3Destination inaccessible
4Source Quench
5Redirection
8Echo request
9Annonce de routeur
10Sollicitation de routeur
11TTL expiré
12Problème de paramètre
13Requête Horodatage
14Réponse d'horodatage
15Demande d'information
16Réponse d'information
17Requête de masque d'adresse
18Réponse de masque d'adresse
•Le champ code sur 1 octet indique la souscatégorie du message
•Le champ somme de contrôle (chechsum) sur 2 octets permet de valider les données
•Le champ donnée complémentaire sur 4 octets est divisé en deux champs de 16 bits contenant :
un numéro d'identification du paquet (pour distinguer 2 ping simultanément) ;
un numéro de séquence pour mesurer les temps aller et retour sur le réseau et les pertes.
Les données du paquet ICMP contient d'abord l'entête du paquet IP à l'origine du message (de 20 à 60 octets) puis des données quelconques.
Travaux Pratiques4 / 13© 2008 tv
.: TP R4.3 : IP :.08 Les messages ICMP les plus courants sont le couple de type 0 et 8 générés par le programme de test "ping". Ping envoie un datagramme de type 8 (echo request) à un noeud dont il attend en retour un message de type 0 (echo reply) renvoyant les données incluses dans la requête.3 Quand le "type" est par exemple 3 pour destination inaccessible, le "code" précise si c'est le réseau, l'hôte, le protocole ou le port qui sont inaccessibles :
0Network unreachable
1Host unreachable
2Protocol unreachable
3Port unreachable
4Fragmentation needed and do not fragment bit set
5Source route failed
7Destination Host unknown
11Network unreachable for type of service
12Host unreachable for type of service
13Communication administratively prohibited
14Host precedence violation
15Precedence cutoff in effect4 Un datagramme Source Quench est identique à celui du type Destination Unreachable. Il sert à contrôler un flux d'informations. Si un routeur détecte que son réseau ou son processeur ne peut suivre le débit d'une machine hôte émettrice, il envoie à celle ci un message ICMP incluant la cause du dépassement de capacité.
0Redirect datagram to go to that network 1Redirect datagram to reach that host
2Redirect datagram for that network with that TOS3Redirect datagram for that host with that TOS5 Le datagramme Route change request est utilisé par les routeurs qui connaissent une meilleure route pour atteindre une destination particulière.910 Le Router discovery protocol permet à un système d'être averti dynamiquement de la présence de tous les routeurs disponibles immédiatement sur un réseau LAN. Les messages de type 9, router advertisement, permettent à des routeurs de s'annoncer sur un réseau à intervalles de 7 à 10 minutes suite à un message de type 10, router sollicitation, émis par une machine hôte. 11
Le message Time exceeded for datagram utilise un datagramme identique à celui du type Destination Unreachable. Un routeur l'utilise pour signaler à la machine source que la valeur TTL (Time To Live) d'une entête IP a été décrémentée jusqu'à la valeur d'expiration 0, ce qui revient à dire que le paquet a été écarté probablement à cause d'une boucle infinie dans le routage.12 Le message ICMP Parameter Problem indique qu'un argument invalide a été utilisé dans le champ Options d'une entête IP.1314 Le type ICMP 13 pour Time Stamp Request et 14 pour Time Stamp Reply sont utilisés pour interroger l'horloge d'un système distant afin de s'y synchroniser ou récolter des informations statistiques.1516 Les messages Information Request est envoyé pour obtenir l'adresse réseau d'une machine hôte donnée. C'est la méthode utilisée par le protocole SLIP (Serial Line IP) pour allouer une adresse IP à la machine appelante.1718 Les messages Address Mask Request sont utilisés parallèlement à l'adressage en sous réseau pour découvrir le masque de sousréseau d'une machine hôte.
Travaux Pratiques5 / 13© 2008 tv
.: TP R4.3 : IP :.
La fragmentation
Sur toute machine ou passerelle mettant en oeuvre TCP/IP, une unité maximale de transfert MTU (Maximum Transfer Unit) définit la taille maximale d'un datagramme transporté sur le réseau physique correspondant.
Si on prend comme exemple un réseau Ethernet, on aura un MTU par défaut de 1500 octets, ce qui correspond à la longueur maximale du champ DATA d'une trame Ethernet (le minimum étant de 46 octets). On peut modifier la valeur du MTU pour une interface eth0 avec la commande ifconfig.
Ce n'est pas le rôl e de la couche Liaison du modèle OSI (ou Interface pour le modèle DoD) de réaliser la fragmentation, mais c'est elle qui fixe la valeur du MTU puisqu'elle a en charge le transport des trames sur le support physique.
Lorsque la taille du datagramme initial est plus grand que la valeur du MTU, la machine ou la passerelle le fragmente en un certain nombre de fragments transportés par autant de trames sur le support physique. Le destinataire final reconstitue le datagramme initial à partir de l'ensemble des fragments reçus. On rappelle que les datagrammes peuvent emprunter des chemins différents pour atteindre une machine destinatrice.
Remarques:
La taille de ces fragments correspond au plus petit MTU emprunté sur le réseau.
Si un seul des fragments est perdu, le datagramme initial est considéré comme perdu.
Dans un datagramme IP, les champs propres a la fragmentation sont :
•IDentification : entier sur 16 bits qui identifie le datagramme initial.
•FRAGMENT OFFSET : valeur sur 13 bits indiquant le déplcement des données contenues dans le fragment par rapport au datagramme initial. Cette valeur est toujours un multiple de 8 octets, la taille du fragment est donc aussi un multiple de 8 octets.
•FLAGS : 3 bits dont le bit de poids fort n'est pas utilisé x DF MF
•DF : Don't Fragment
•MF : More Fragments, MF = 1 il y a d'autres fragments
MF = 0 dernier fragment
Chaque fragment a donc une structure identique à celle du datagramme initial, seul les champs FLAGS et FRAGMENT OFFSET sont spécifiques à chaque fragment.
Travaux Pratiques6 / 13© 2008 tv
.: TP R4.3 : IP :.
Séquence 1 - MTU (Maximum Transfer Unit) et Analyse de trames Ethernet
Vous possédez un poste sur le réseau suivant :
1 . Relever la valeur par défaut affectée au paramètre MTU (Maximum Transfer Unit) pour l'interface eth0. La repérer sur le schéma de la trame Ethernet_II. Expliquer le rôl e de ce paramètre.
Valeur MTU:
Entête Ethernet_II
@ MAC DEST@ MAC SRCTYPEDATA Rôl e:
2 . Modifier la valeur du paramètre MTU (Maximum Transfer Unit) pour l'interface eth0 à 100. Donner la commande exacte.
3 . On va maintenant envoyer des paquets ICMP avec 300 octets de données : # ping __.__.__.__ -s 300
Estce qu'un paquet ICMP de cette taille peutil être envoyé dans une seule trame Ethernet de MTU 100 ?
4 . Lancer une capture avec tcpdump (ou ethereal) en isolant le transfert généré par le ping précédent. Combien de trames Ethernet sont émises ?
Exemple de commande tcpdump: tcpdump -e -vvv ether src 00:0C:6E:32:42:3EBilan 5 . Expliquer l'influence de la valeur du MTU sur un transfert de 100 MO. Vous pouvez faire le test avec un fichier.
6 . Quel peut être l'interêt d'un provider Internet de diminuer la valeur du MTU de ces routeurs ?
Travaux Pratiques7 / 13© 2008 tvPOSTE ___.___.___.___POSTE ___.___.___.___
.: TP R4.3 : IP :.
Séquence 2 – Fragmentation et Analyse de paquets IP et ICMP
On va envoyer des paquets d'une taille de 272 octets de données à l'aide de la commande ping. Le MTU de l'interface est toujours de 100 octets. Avec l'analyseur ethereal, on va observer la fragmentation des datagrammes.
1 . Emettre 2 paquets avec 272 octets de données. Expliquer la valeur (300) qui est affichée et donc d'où proviennet ces 28 octets ?
Exemple : PING (209.85.229.103) 272(300) bytes of data.
2 . Lancer une capture avec ethereal en isolant le transfert généré.
3 . Indiquer les différentes longueurs du paquets ICMP et des différents fragments sur le schéma cidessous.
4 . Un des fragments, encapsulé par IP, est émis dans une trame Ethernet. Indiquer les différentes longueurs sur le schéma cidessous.
5 . Indiquer le type des messages envoyés et reçus par la commande ping.
6 . Y auraitil eu fragmentation avec un MTU de 1500 ?
Remarque : on peut découvrir son MTU « idéal » à partir de cette méthode en demandant que les paquets ne soient pas fragmentés (M do). Voir aussi la commande tracepath.
Exemple pour un MTU optimal de 1500 :
# ping M do s 1473 www.google.fr
PING (209.85.229.104) 1473(1501) bytes of data.
From 192.168.52.2 icmp_seq=1 Frag needed and DF set (mtu = 1500)
# ping M do s 1472 www.google.fr
PING (209.85.229.104) 1472(1500) bytes of data.
64 bytes from wwinf104.google.com (209.85.229.104): icmp_seq=1 ttl=238 (truncated)
Travaux Pratiques8 / 13© 2008 tvEntête IP
DATA EthernetEntête EthernetEntête ICMP
DATA ICMP
.: TP R4.3 : IP :.
7 . En vous aidant de la capture réalisée avec ethereal, compléter le schéma cidessous en précisant : le numéro de trame, la longueur du fragment et le décodage de l'entête IP. On analysera l'envoi du paquet ICMP.
8 . Indiquer dans quel ordre les datagrammes seront réassemblées par la machine distante. Répondre en donnant le numéro des trames contenant les datagrammes correspondants.Bilan 9 . Estce que l'ordre de réception des datagrammes a une importance pour la reconstitution du datagramme initial ?
10 . Quels sont les champs d'un datagramme qui permettent de réassembler le datagramme initial ?
11 . La probabilité de perte de datagrammes augmentetelle avec la fragmentation ?
Remarque:
Remettre un MTU de 1500 à l'interface eth0 à la fin de cette séquence.
Travaux Pratiques9 / 13© 2008 tvEntête IP
DATA EthernetEntête Ethernet
N° de trame: _____IDDFMF Offset
Décodage IPEntête IP
DATA EthernetEntête Ethernet
N° de trame: _____IDDFMF Offset
Décodage IPEntête IP
DATA EthernetEntête Ethernet
N° de trame: _____IDDFMF Offset
Décodage IPEntête IP
DATA EthernetEntête Ethernet
N° de trame: _____IDDFMF Offset
Décodage IP
.: TP R4.3 : IP :.
Séquence 3 – Champ TTL (Time To Live)
Dans cette séquence, on va mettre en évidence le rôl e du champ TTL du protocole IP.
Extrait du man ping :NOM ping, ping6 envoyer des datagrammes ICMP ECHO REQUEST à des hôtes sur un rés eau
SYNOPSIS
ping [ LRUbdfnqrvVaA] [ c nombre] [ i intervalle] [ l préc hargement] [ p motif] [ s taillepaquet] [ t ttl] [ w heurelimite] [ F ét iquetteflux] [ I interface] [ M conseil] [ Q tos] [ S tamponémission] [ T optionhorodate] [ saut ...] destination
DESCRIPTION
ping utilise le datagramme obligatoire ECHO REQUEST du protocole ICMP pour requérir une réponse ICMP ECHO RESPONSE d'un hôte ou d'une passerelle. Les datagrammes ECHO REQUEST (« pings ») comportent les entêtes IP et ICMP, suivis d'une « struct timeval » et d'un nombre arbitraire d'octets de bourrage utilisés pour remplir le paquet.OPTIONS ...
t ttl Spécifier le champ IP Time to Live.... DÉTAILS SUR LE TTL
La valeur TTL (Time To Live, temps de vie) d'un paquet IP représente le nombre maximum de routeurs IP que ce paquet est autorisé à
traverser avant d'être jeté. Dans la pratique, vous pouvez vous attendre à ce que chaque routeur sur Internet décrémente le champ TTL d'exactement une unité.
La spécification TCP/IP précise que le champ TTL destiné aux « paquets » TCP devrait être fixé à 60, mais beaucoup de systèmes utilisent des valeurs plus petites (BSD 4.3 utilise 30, la version 4.2 utilisait 15).
La valeur maximale pour ce champ est de 255, et la plupart des systèmes Unix fixent le champ TTL des paquets ICMP ECHO REQUEST à 255. C'est pourquoi vous pouvez « pinger » certains hôtes, mais pas les atteindre via telnet(1) ou ftp(1).
Normalement, ping affiche la valeur TTL du paquet qu'il reçoit. Quand un système distant reçoit un paquet ping, il peut faire 3 choses avec le champ TTL dans sa réponse :
∙ Ne pas le modifier ; [...] Dans ce cas, la valeur TTL du
paquet reçu sera de 255 moins le nombre de routeurs traversés sur le
chemin allerretour.
∙ Le fixer à 255 ; [...] Dans ce cas, la valeur TTL du paquet reçu sera de 255 moins
le nombre de routeurs traversés sur le chemin venant du système dis
tant vers l'hôte effectuant le ping.
∙ Le fixer à une autre valeur. Certaines machines utilisent la même
valeur pour les paquets ICMP que pour les paquets TCP, par exemple 30
ou 60.
D'autres peuvent utiliser des valeurs complètement
aléatoires.
Travaux Pratiques10 / 13© 2008 tv
.: TP R4.3 : IP :.
Si le TTL devient nul, son paquet IP n'est plus relayé (c'est souvent l'indication d'une erreur de paquet qui boucle). Une utilisation détournée de ce champ permet de tracer la route empruntée par un paquet (commande traceroute sous Unix/Linux et tracert sous Window$) : en mettant le champ TTL à 0, le premier routeur rencontré rejette le paquet et signale sa présence en retournant un paquet ICMP d'erreur vers l'émetteur. on renvoie alors le paquet avec le champ TTL à 1 afin d'atteindre le routeur suivant et ainsi de suite. A chaque fois, on récupère l'adresse IP du routeur. 1 . A partir du résultat de la commande ping __.__.__.__ et de la valeur TTL reçu, en déduire le nombre de routeurs traversés.
2 . Vérifier le nombre de routeurs traversés avec la commande traceroute -nI __.__.__.__ (faire un man traceroute pour justifier les options utilisés ici).
3 . Refaire le ping __.__.__.__ en modifiant la valeur du champ TTL et expliquer :
a . en mettant un TTL = nombre de routeurs traversés
b . en mettant un TTL = nombre de routeurs traversés 1
Travaux Pratiques11 / 13© 2008 tv
.: TP R4.3 : IP :.
Annexe 1 - La trame 802.3 (FRAME 802.3)
Le bloc d'information ou trame au niveau de la souscouche MAC (de la couche 2 LIAISON) est le suivant :
PréambuleDélimiteur de trame
Adresse destination
Adresse source
Longueur des donnéesDonnées FCSCRC 7 octets1 octet6 octets6 octets2 octets
46 à 1500 octets
4 octets
Remarques :
•Le préambule, composé d'une succession de 1 et de 0, assure la synchronisation du récepteur sur la trame émise.
•Le délimiteur de trame 10101011 permet de trouver le début du champ d'adresses (les 2 derniers bits émis sont à 1).
On a tendance à considérer que le préambule fait 8 octets et qu'il ne fait pas partie de la trame : il n'est pas capturé par les analyseurs réseaux et on n'en tient logiquement pas compte dans le calcul du CRC.
Annexe 2 - La trame Ethernet_II
Le bloc d'information ou trame est le suivant :
PréambuleDélimiteur de trame
Adresse destination
Adresse sourceType protocole de niveau supérieurDonnées (MTU)FCS CRC
7 octets1 octet6 octets6 octets2 octets
46 à 1500 octets
4 octets
Quelques valeur du champ type :
TypeProtocole
0x0800I