Tp r4.3 ip réseaux informatiques - réseaux informatiques - t

Réseaux Informatiques : Tp r4.3 ip réseaux informatiques

Télécharger PDF

Obtenir 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.

pack complet des cours, TDs, TPs et examens exercices sur Réseaux Informatiques

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 Front­Cover Texts, and with no Back­Cover.

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 02111­1307 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 02111­1307 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’en­tê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'en­tê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'en­tête (16 bits) contient le "complément à un" du total "en complément à un" de tous les mots de 16 bits de l'en­tê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 aller­retour 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'en­tê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 sous­caté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'en­tê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 :.0­8 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 cut­off 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.9­10 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 en­tê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 en­tête IP.13­14 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.15­16 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.17­18 Les messages Address Mask Request sont utilisés parallèlement à l'adressage en sous réseau pour découvrir le masque de sous­ré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:

En­tê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

Est­ce qu'un paquet ICMP de cette taille peut­il ê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 ci­dessous.

4 . Un des fragments, encapsulé par IP, est émis dans une trame Ethernet. Indiquer les différentes longueurs sur le schéma ci­dessous.

5 . Indiquer le type des messages envoyés et reçus par la commande ping.

6 . Y aurait­il 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 ww­in­f104.google.com (209.85.229.104): icmp_seq=1 ttl=238 (truncated)

Travaux Pratiques8 / 13© 2008 ­ tvEn­tête IP

DATA EthernetEn­tête EthernetEn­tê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 ci­dessous en précisant : le numéro de trame, la longueur du fragment et le décodage de l'en­tê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 . Est­ce 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 augmente­t­elle avec la fragmentation ?

Remarque:

Remettre un MTU de 1500 à l'interface eth0 à la fin de cette séquence.

Travaux Pratiques9 / 13© 2008 ­ tvEn­tête IP

DATA EthernetEn­tête Ethernet

N° de trame: _____IDDFMF Offset

Décodage IPEn­tête IP

DATA EthernetEn­tête Ethernet

N° de trame: _____IDDFMF Offset

Décodage IPEn­tête IP

DATA EthernetEn­tête Ethernet

N° de trame: _____IDDFMF Offset

Décodage IPEn­tête IP

DATA EthernetEn­tê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 taille­paquet] [ ­t ttl] [ ­w heure­limite] [ ­F ét iquette­flux] [ ­I interface] [ ­M conseil] [ ­Q tos] [ ­S tampon­émission] [ ­T option­horodate] [ 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 en­tê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 aller­retour.

∙ 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 sous­couche 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

Partagez vos remarques, questions ou propositions d'amélioration ici...

Enregistrer un commentaire (0)
Plus récente Plus ancienne

Publicité 1

Publicité 2