À l’aide du sniffer Etherpeek Analyse IP À l’aide du sniffer Etherpeek
Modèle OSI Netscape, Explorer, … vtcp.386, vudp.386 vip.386 Application Présentation Session vtcp.386, vudp.386 Transport Réseau vip.386 Liaison Pilote carte réseau média Physique
Internet Protocol (IP) Le protocole IP définit : les règles qui mettent en oeuvre l’échange de paquets pour passer d’un hôte à l’autre la fonction de routage (quel chemin prendre?)
Le datagramme IP L'unité de transfert de base dans un réseau internet est le datagramme (généralement appelé paquet IP) qui est constitué d'un entête et d'un champ de données. 4 8 16 19 24 31 VERS HLEN Type de service Longueur totale Identification Flags Offset fragment Durée de vie Protocole Somme de contrôle Header Adresse IP Source Adresse IP Destination Options IP (eventuellement) Padding Données
Les champs du Paquet IP VERS : numéro de version de protocole IP, actuellement version 4, HLEN : longueur de l'en-tête en mots de 32 bits, généralement égal à 5 (pas d'option), Longueur totale : longueur totale du datagramme (en-tête + données) Type de service : indique comment le datagramme doit être géré (priorité, délai, etc.)
Les champs du Paquet IP D M ? FLAGS : composé de trois bits Le bit D « do not fragment »(010) signifie que le réseau doit traiter le paquet dans son intégrité ou pas du tout. Le bit M « more fragments » (001) signifie d'autres fragments à suivre et permet au destinataire final de reconstituer le datagramme initial en identifiant les différents fragments (milieu ou fin du datagramme initial). Si M=0, alors c’est le dernier fragment. Le premier bit ? est inutilisé et doit être à zéro.
Les champs du Paquet IP IDENTIFICATION : entier qui identifie le datagramme initial (utilisé pour la reconstitution à partir des fragments qui ont tous la même valeur). FRAGMENT OFFSET : indique le déplacement des données contenues dans le fragment par rapport au datagramme initial. Ce champs est utilisé lors du réassemblage du paquet. Chaque fragment a une structure identique à celle du datagramme initial, seul les champs FLAGS et FRAGMENT OFFSET sont spécifiques. C'est un multiple de 8 octets.
Les champs du Paquet IP Durée de vie (time to live (TTL)) Ce champ indique en secondes la durée maximale de transit du datagramme sur l'internet. À chaque routeur rencontré, le compteur est décrémenté. Lorsque expirée, le datagramme est détruit et un message d'erreur est renvoyé à l'émetteur. Ce mécanisme permet d’empêcher qu’un paquet perdu se balade indéfiniment sur l’Internet. La valeur est déterminée par la station source.
Les champs du Paquet IP Protocole Ce champ identifie le protocole de niveau supérieur dont le message est véhiculé dans le champ données du datagramme : 6 : TCP 17 : UDP 1 : ICMP
Les champs du Paquet IP Somme de contrôle de l’entête (checksum) Ce champ permet de détecter les erreurs survenant dans l'entête du datagramme, et par conséquent l'intégrité du datagramme. Adresse source et destination Identifie la station émettrice et la station destinatrice.
Les champs du Paquet IP OPTIONS Padding (remplissage) Le champ OPTIONS est facultatif et de longueur variable. Les options concernent essentiellement des fonctionnalités de rapport d’erreurs, de débogage et de redirection de route Padding (remplissage) Sert à compléter le champ options pour obtenir un multiple de 32 bits.
Fragmentation Limite de taille des paquets par le MTU (maximum transfer unit) 1500 octets pour Ethernet, 576 pour réseaux sur grandes distances, etc. Limite Physique des machines Ethernet courantes, spécifiée par le protocole Ethernet d’autrefois C’est le niveau Réseau (IP) qui fait la fragmentation -> TCP et UDP s’attendent d’avoir des paquets complets La fragmentation est faite par les routeurs, lorsque l’on passe dans un réseau ayant un MTU plus petit que la taille du paquet à envoyer Le rassemblage se fait par le receveur et non par les routeurs de la couche inférieure (couche liaison) Sinon, les routeurs auraient trop de travail à faire. Le flag M = 0 signifie que c’est le dernier fragment
Pourquoi faire des petits paquets IP quand on peut en faire des gros? Pour satisfaire la grosseur maximale physique de Ethernet (1500) Dans certains cas réseaux (traffic etc), c’est mieux Coût élevé si on perd 1 seul paquet De nos jours, dans la plupart cas, avoir un plus grand MTU pour Ethernet serait mieux Moins de bande passante utilisée pour les headers Moins d’analyse de headers Peut maintenant facilement faire des machines traitant plus de 1500 octets à la fois Projets de réforme du standard Ethernet
Fragmentation Si un paquet a le Flag “ne pas fragmenter” à 1, et qu’il arrive dans un réseau où il doit être fragmenté pour satisfaire le MTU, le paquet est rejeté et un message d’erreur est donné à l’envoyeur
Fragmentation et réassemblage Envoi d’un datagramme de 1420 octets (ayant 20 octets pour l’entête) Réseau 1 Réseau 2 P2 P1 MTU=620 MTU=1500 MTU=1500 Données 1400 octets F1 600 octets F1 600 octets Entête datagramme F2 600 octets F2 600 octets F1 et F2 ont le bit More (M) positionné. Le déplacement (depl) est relatif aux données du datagramme initial et est exprimé en bytes (8 octets), donc on divise par 8 600 / 8 = 75 F3 200 oct. F3 200 oct. En-tête fragments: M=0; depl=150 En-tête fragments: M=1; depl=75 En-tête fragments: M=1; depl=00
Routage Le routage est le processus permettant à un datagramme d’être acheminé vers le destinataire lorsque celui-ci n’est pas sur le même réseau physique que l’émetteur. Le routage consiste à trouver le meilleur chemin pour acheminer le paquet. Le paquet transite de routeur à routeur jusqu’à la station destination.
Routage Les stations et les routeurs participent au routage : les stations doivent déterminer si le datagramme doit être délivré sur le réseau physique sur lequel elles sont connectées ou bien si le datagramme doit être acheminé vers une passerelle (routeur par défaut). netstat –r (commande DOS affichant la table de routage) les routeurs effectuent le choix de la meilleure route en consultant les informations de leur table de routage.
Table de Routage d’une station Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique 0.0.0.0 0.0.0.0 132.208.135.240 132.208.135.85 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 132.208.135.0 255.255.255.0 132.208.135.85 132.208.135.85 1 132.208.255.255 255.255.255.255 132.208.135.85 132.208.135.85 1 224.0.0.0 224.0.0.0 132.208.135.85 132.208.135.85 1 La destination réseau 0.0.0.0 signifie tout réseau inconnu de la machine, appelé généralement la route ou le réseau par défaut. Métrique: nombre arbitraire d'unité qui indique le degré de préférence d'un lien particulier, en fonction de la distance, accessibilité etc.