IP, ARP, ICMP
Transcription
IP, ARP, ICMP
Réseaux 29/09/11 M2 CSSI Réseau TCP/IP : « modèle Internet » • But : Permettre à tout type d’ordinateur, quel que soit le système d’exploitation utilisé de pouvoir communiquer entre eux, à travers tout type de réseau • Début des recherches sur les ancêtres du protocole IP dans les années 1960 • Initialement, projet financé par le gouvernement américain DARPA • 1990 : pris la forme d’une interconnexion de réseau : l’Internet 1 M2 CSSI Réseau TCP/IP : le modèle en couches • Organisation en couches : modèle simplifié du modèle OSI Application Transport Ftp, http, telnet, ... TCP, UDP Réseau IP (ICMP, IGMP, ARP) Liaison Ethernet, Wifi, satellite, ... • Couche liaison : constituée d’un driver du système d’exploitation et de la carte réseau 2 M2 CSSI Réseau TCP/IP : le modèle en couches • Couche Réseau : gère la circulation des paquets à travers le réseau (IP) (Internet) • Couche Transport : gère les flux de données entre 2 machines • envoi vers la couche réseau des données émises par une application en segment de tailles appropriés • gère les acquittements des paquets reçus (TCP) • met en place des temporisation pour les retransmissions (TCP) => fiabilité des transferts 3 M2 CSSI UdS 1 Réseaux 29/09/11 M2 CSSI Réseau TCP/IP : le modèle en couches • Couche application : implémente les différentes applications application transport Processus utilisateur Protocole FTP Client FTP Serveur FTP Protocole TCP TCP Protocole IP réseau IP liaison Driver Ethernet noyau TCP IP Protocole Ethernet Driver Ethernet Ethernet 4 M2 CSSI Réseau TCP/IP : le modèle en couches application Client FTP transport TCP Protocole FTP Serveur FTP Protocole TCP TCP Routeur réseau IP liaison Driver Ethernet Protocole IP Protocole IP IP Protocole Ethernet Driver Ethernet Protocole token-ring Driver token-ring IP Driver token-ring Token ring Ethernet 5 M2 CSSI Réseau Les différents protocoles du monde IP Processus utilisateur Processus utilisateur Processus utilisateur Processus utilisateur UDP TCP ICMP IP IGMP ARP Interface matérielle RARP 6 M2 CSSI UdS 2 Réseaux 29/09/11 M2 CSSI Réseau Les différents protocoles du monde IP LAR dans IPv6 ftp Couche application Processus d'applications Librairie des sockets Espace utilisateur Espace Noyau Couche Transport TCP & UDP Couche Réseau IP, ICMP, IGMP Couche dépendant de la liaison ARP, RARP..... Couche liaison de données Ethernet, FDDI, ATM, WiFi,..... 7 M2 CSSI Réseau Les différents protocoles du monde IP • TCP : Transmission Control Protocol • UDP : User Datagram Protocol • IP : Internet Protocol • ICMP : Internet Control Message Protocol • IGMP : Internet Group Management Protocol • ARP : Address Resolution Protocol • RARP : Reverse Address Resolution Protocol 8 M2 CSSI Réseau Les adresses IP • Chaque interface doit avoir une adresse Internet (IP) unique • Ces adresses sont des nombres de 32 bits (4 octets) • Une adresse Internet possède une structure hiérarchique • Il existe (existait) 5 classes d’adresses IP différentes • Chaque adresse IP est représentée par convention par quatre nombres décimaux (un nombre pour chaque octet : 1 octet = 8 bits) – Ce type de notation est appelé : notation décimale pointée Exemple : 130.79.12.10 9 M2 CSSI UdS 3 Réseaux 29/09/11 M2 CSSI Réseau Les classes d’adresses IP 24 bits 7 bits Classe A 0 Ident. de réseau Classe B 1 0 Identifiant de machine 14 bits 16 bits Ident. de réseau Identifiant de machine 8 bits 21 bits Classe C 1 1 0 Classe D 1 1 1 0 Classe E 1 1 1 1 0 Ident. de réseau Ident. de machine 28 bits Identifiant de groupe multicast 27 bits (réservé à un usage futur) 10 M2 CSSI Réseau Les adresses IP Classe intervalle Description A 0.0.0.0 à 127.255.255.255 B 128.0.0.0 à 191.255.255.255 C 192.0.0.0 à 223.255.255.255 D 224.0.0.0 à 239.255.255.255 128 réseaux possibles et 16777216 machines possibles 16384 réseaux possibles et 65536 machines possibles 2097152 réseaux possibles et 256 machines possibles Adresses de groupes (multicast) E 240.0.0.0 à 247.255.255.255 Réservé à l'expérimentation De plus en plus les réseaux IP sont désignés par un préfixe qui peut avoir une longueur quelconque, disparition de la notion de classe (classless addressing) Noté sous la forme adresse_IP/longueur_préfixe Exemples 200.128.0.0/12 : réseau dont le numéro correspond aux 12 premiers bits (donc 2 20 machines possibles) Les anciennes classes A, B et C correspondent à des préfixes /8, /16 et /24 M2 CSSI 11 Réseau Les types d ’adresses IP • Il existe 3 types d’adresses IP – unicast : destinée à une seule machine – broadcast : destinée à toutes les machines d ’un réseau donné – multicast : destinée à un groupe de machines • Cas particuliers – adresse IP dont la partie « identifiant de machines » ne comprend que des zéros => la valeur zéro (sauf exception) ne peut être attribuée à une machine réelle : 130.79.0.0 désigne le réseau de classe B 130.79. 12 M2 CSSI UdS 4 Réseaux 29/09/11 M2 CSSI Réseau Les types d’adresses IP • Adresse IP où tout est à zéro, qui est utilisée au démarrage du système afin de connaître l'adresse IP => 0.0.0.0 (ne peut être utilisée comme adresse destination) • Adresse IP de re-bouclage (loopback) • Certaines adresses sont « privées » => 127.0.0.1 – = non accessible depuis internet – 192.168.x.y = 192.168.0.0/16 – 10.x.y.z = 10.0.0.0/8 – 172.16.0.0/12 13 M2 CSSI Réseau Adressage de sous-réseaux • Une adresse IP est composée de deux parties – un identifiant de réseau – un identifiant de machine dans ce réseau • L’identifiant de machine peut en fait être lui-même décomposé en deux parties – un identifiant de sous-réseau – un identifiant de machine 14 M2 CSSI Réseau Adressage de sous-réseaux • Le choix de découper en sous-réseau ou non est de la responsabilité de l’équipe en charge du réseau • Cette information ne sort généralement pas du réseau géré 14 bits Classe B 1 0 16 bits Ident. de réseau 14 bits Classe B 1 0 Identifiant de machine 8 bits Ident. de réseau Ident. de ss-réseau Ident. de machine • Sur cet exemple, le découpage autorise 254 sous-réseaux avec 254 machines par sous-réseau 15 M2 CSSI UdS 5 Réseaux 29/09/11 M2 CSSI Réseau Masque de sous-réseau • En plus d’une adresse IP, une machine stocke un masque de sous-réseau qui identifie le sous-réseau sur lequel se trouve la machine (l’interface) • Le masque de sous-réseau est un mot de 32 bits contenant des bits à 1 pour l ’identification de réseau et de sous-réseau et des bits à 0 pour l ’identification de machine 16 bits Classe B 1111111111111111 8 bits 8 bits 11111111 00000000 16 M2 CSSI Réseau Masque de sous-réseau • Un sous-réseau est donc représenté sous la forme – Adresse masque ex 130.79.90.0 255.255.254.0 ou – Adresse/préfixe ex 130.79.90.0/23 L’adresse est l’adresse de base (plus petite du sous-réseau) Classe B 1111111111111111 16 bits 11111110 8 bits 00000000 8 bits La plus grande adresse (tous les bits qui représentent la partie « machine » sont à 1 est l’adresse de diffusion (broadcast) ex : 130.79.91.255 = toutes les machines du sous-réseau 17 M2 CSSI Réseau Masque de sous-réseau • A partir de son adresse IP et de son masque de sous-réseau, une machine peut déterminer : – si un datagramme IP est destiné à une machine sur son propre sous-réseau – ou à une machine située sur un autre sous-réseau de son propre réseau – ou à une machine sur un réseau différent 18 M2 CSSI UdS 6 Réseaux 29/09/11 M2 CSSI Réseau Interface ifconfig en0 Interface physique en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 Adressage IP inet6 fe80::21e:c2ff:fe00:df7d%en0 prefixlen 64 scopeid 0x4 inet 130.79.91.217 netmask 0xfffffe00 broadcast 130.79.91.255 inet6 2001:660:4701:1001:21e:c2ff:fe00:df7d prefixlen 64 autoconf Adressage ethernet ether 00:1e:c2:00:df:7d media: autoselect (100baseTX <full-duplex>) status: active supported media: autoselect 10baseT/UTP <half-duplex> 10baseT/UTP <full-duplex> 10baseT/UTP <full-duplex,hw-loopback> 10baseT/UTP <full-duplex,flow-control> 100baseTX <half-duplex> 100baseTX <full-duplex> 100baseTX <full-duplex,hw-loopback> 100baseTX <full-duplex,flow-control> 1000baseT <full-duplex> 1000baseT <full-duplex,hwloopback> 1000baseT <full-duplex,flow-control> none 19 M2 CSSI Réseau Le système de nommage : DNS • Avoir une ou plusieurs adresses réseau permet de joindre une machine mais ce n’est pas très convivial • Associer aux adresses IP des noms de machines permet aux humains de ne pas avoir à retenir des numéros mais des noms • Dans le monde TCP/IP le « Système de Noms de Domaines » (DNS) permet de remplir ce rôle • Le DNS est une base de données distribuée qui fournit la correspondance entre les adresses IP et les noms des machines Exemple : www.fnac.fr -> 217.174.207.108 20 M2 CSSI Réseau Encapsulation des protocoles données utilisateur en-tête TCP en-tête applicatif données utilisateur application en-tête applicatif données utilisateur TCP données utilisateur IP segment TCP en-tête IP en-tête TCP en-tête applicatif Paquet IP en-tête ethernet en-tête IP en-tête TCP en-tête applicatif données utilisateur Driver Ethernet Trame Ethernet 46 <= taille <= 1500 octets 21 M2 CSSI UdS 7 Réseaux 29/09/11 M2 CSSI Réseau Démultiplexage firefox ftp TCP dhcp UDP démultiplexage basé sur la valeur du champ protocole de l ’en-tête IP IGMP ICMP démultiplexage basé sur le numéro de port destination IP ARP RARP driver Ethernet démultiplexage basé sur le champ type de trame de l ’en-tête Ethernet Trame entrante 22 M2 CSSI Réseau ARP : Address Resolution Protocol • Protocole de résolution d ’adresse • La résolution fournit une correspondance entre deux formes (et niveaux) différentes d’adresses : – des adresses de la couche réseau 32 bits (IP) – et n’importe quel type d’adresse utilisé par la couche lien de données. Adresse Internet sur 32 bits ARP RARP Adresse ethernet sur 48 bits Protocoles de résolution d'adresse : ARP et RARP 23 M2 CSSI Réseau ARP : pourquoi ? • La communication entre machines ne peut s'effectuer qu'à travers l'interface physique • Les applicatifs ne connaissant que des adresses IP – comment établir le lien adresse IP / adresse physique ? • ARP fournit une correspondance dynamique entre l’adresse IP et l’adresse matérielle correspondante 24 M2 CSSI UdS 8 Réseaux 29/09/11 M2 CSSI Réseau ARP : Technique utilisée • Diffusion d’une requête à destination de toutes les machines du réseau (broadcast ethernet) • La requête ARP contient l’adresse IP du destinataire – (mais pas physique, inconnue) • Le requête consiste à demander à toutes les machines du réseau : « si vous êtes le propriétaire de cette adresse IP, veuillez me répondre » • Le propriétaire de l’adresse IP répond en fournissant son adresse matérielle simultanément 25 M2 CSSI Réseau Le cache ARP • Le cache ARP maintient la correspondance entres les adresse Internet et les adresses matérielles récemment utilisées • Le délai normal d’expiration d’une entrée dans le cache est de 20 minutes après la création de cette entrée • Permet de gérer les machines changeant d’adresse IP – (carte réseau) 26 M2 CSSI Réseau Le cache ARP (exemple) arp -a lpricoh.u-strasbg.fr (130.79.90.13) at 0:0:74:e9:19:32 on en0 [ethernet] iggservis.u-strasbg.fr (130.79.90.85) at 0:11:d8:f4:2a:7e on en0 [ethernet] pamelia.u-strasbg.fr (130.79.90.108) at d4:9a:20:ee:f7:f8 on en0 [ethernet] papinet.u-strasbg.fr (130.79.90.170) at 0:23:7d:88:15:2a on en0 [ethernet] grominet.u-strasbg.fr (130.79.90.182) at 0:80:c8:47:7b:b0 on en0 [ethernet] bioinfo2.u-strasbg.fr (130.79.91.26) at 0:1b:fc:ce:c2:28 on en0 [ethernet] stagerp02net.u-strasbg.fr (130.79.91.29) at 0:c:29:dc:8:38 on en0 [ethernet] clarinet.u-strasbg.fr (130.79.91.200) at 0:19:e3:e8:37:76 on en0 [ethernet] api-rc1-ge-0-2-0-2.u-strasbg.fr (130.79.91.253) at 0:26:88:db:ff:c1 on en0 [ethernet] r-infoapi-2.u-strasbg.fr (130.79.91.254) at 0:0:5e:0:1:33 on en0 [ethernet] … 27 M2 CSSI UdS 9 Réseaux 29/09/11 M2 CSSI Réseau ARP: Schéma A B C Requête ARP de A sur l’adresse IP de E L ’adresse IPE m’appartient voici mon adresse Ethernet D E 28 M2 CSSI Réseau Format du message ARP 0 16 Type de matériel Taille matériel Taille protocole 32 Type de protocole Opération Adresse Ethernet de l’émetteur (6 octets) puis 28 octets Adresse IP de l’émetteur (4 octets) puis Adresse Ethernet cible ( 6 octets) puis Adresse IP cible (4 octets) Requête/Réponse ARP - RARP type de matériel = 1 si ethernet type de protocole = 0x800 pour adresse IP taille matérielle = 6 (octets) pour ethernet taille protocole = 4 (octets) pour adresse IP Opération = 1 (requête ARP), 2 (réponse ARP), 3 (requête RARP), 4 (réponse RARP) 29 M2 CSSI Réseau Le protocole IP (RFC791, 1981) • IP fournit un service non fiable • Délivrance de datagrammes sans connexion • Aucune garantie que le datagramme IP arrive à sa destination avec succès • Toute la fiabilité requise doit être assurée par les couches supérieures (en général TCP) • IP ne maintient aucune information d’état concernant les datagrammes successifs • Les datagrammes IP peuvent être délivrés en désordre 30 M2 CSSI UdS 10 Réseaux 29/09/11 M2 CSSI Réseau L’en-tête IP 32 bits Version longueur Type de service Ident Longueur totale (en octets) Flags Durée de vie (TTL) Protocole Fragment Offset Somme de contrôle 20 octets Adresse IP source Adresse IP destination options Données En-tête IPv4 31 M2 CSSI Réseau L’en-tête IP : les différents champs • Version (4 bits) : indique la version du protocole (IPv4) • Longueur (4bits) : nombre de mots de 32 bits (4 octets) figurant dans l’en-tête (options comprises) • Type de service (8bits) : décomposé en plusieurs champs • Longueur totale (16bits): taille en octets du datagramme IP • Flags et Fragmentation : découpage des datagrammes IP • TTL (Time To Live) : donne la limite supérieure au nombre de • Protocole : Permet de connaître le prochain protocole routeurs qu’un datagramme peut traverser (couche supérieure: 6 TCP - 17 UDP - 1 ICMP) 32 M2 CSSI Réseau L’en-tête IP : les différents champs (suite) • Somme de Contrôle : – Checksum, calculé sur le contenu de l’en-tête IP : détecte les erreurs d’entête – Ne vérifie pas les données du paquet • Adresse IP Source • Adresse IP Destination • Options : longueur variable, contient des informations facultatives (enregistrement de la route, routage strict, etc….) 33 M2 CSSI UdS 11 Réseaux 29/09/11 M2 CSSI Réseau Le routage IP • • Le routage IP est saut par saut (« hop by hop ») 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 • Si une machine destination est directement connectée à la machine ou sur un réseau partagé (ex : Ethernet), alors le datagramme IP est envoyé directement à cette destination • Sinon la machine envoie le datagramme à un routeur, et laisse le routeur délivrer le datagramme à sa destination. – Le paquet voyage de proche en proche vers la destination 34 M2 CSSI Réseau Le routage IP • Les routeurs forment une structure coopérative de telle manière qu’un datagramme transite de routeur en routeur jusqu’à ce que l’un d’entre eux le délivre à son destinataire • Un routeur possède deux ou plusieurs interfaces réseaux tandis qu’une machine possède généralement une seule interface • La couche IP gère une table de routage en mémoire qu’elle consulte à chaque fois qu’elle reçoit un datagramme à envoyer 35 M2 CSSI Réseau Le routage IP • Lorsqu’un datagramme est reçu via une interface réseau, IP vérifie d’abord si l’adresse IP de destination est l’une des adresses IP de la machine ou une adresse IP de broadcast • Si c’est la cas le datagramme est délivré au module de protocole spécifié par le champ protocole de l’en-tête IP • Si le datagramme n’est pas destiné à la couche IP locale, alors : – si la couche IP est configurée pour agir comme un routeur, la paquet est réémis vers le prochain saut – Sinon le datagramme est rejeté silencieusement 36 M2 CSSI UdS 12 Réseaux 29/09/11 M2 CSSI Réseau Le routage IP • Chaque entrée dans la table de routage contient les informations suivantes : – Adresse IP de destination : qui peut être une adresse de machine complète ou plus souvent une adresse réseau, comme le spécifie le champ flag pour cette entrée (classe A, B, C ou préfixe) – L’adresse IP du routeur du saut suivant (next hop router), ou l’adresse IP d’un réseau connecté directement – Des flags. Un flag indique si l’adresse IP de destination est l’adresse d’un réseau ou celle d’une machine – La spécification de l’interface réseau à laquelle le datagramme doit être passé pour être transmis 37 M2 CSSI Réseau Le routage IP • Le routage IP est effectué sur la base du saut par saut (hop by hop) • Un routeur IP ne connaît la route complète d’aucune destination (exceptées les destinations qui sont directement connectées à la machine émettrice) 38 M2 CSSI Réseau Le routage IP : Algorithme Route_Datagramme_IP(datagramme, table_de_routage) • Extraire l’adresse IP destination (ID) du datagramme, • Calculer l’adresse du réseau destination (IN) • Chercher dans la table l’adresse de réseau la plus spécifique qui correspond à ID • Si ce réseau est adjacent envoyer directement le paquet au destinataire • Sinon envoyer le datagramme au prochain saut (routeur) indiqué • Si aucun réseau mais il existe une route par défaut • sinon déclarer une erreur de routage (ICMP dest. unreach.) – Longest match – (requête ARP si nécessaire) envoyer le datagramme vers la passerelle (routeur) par défaut. 39 M2 CSSI UdS 13 Réseaux 29/09/11 M2 CSSI Réseau Exemple de routage IP Reseau A 130.79.0.0 122.12.0.2 129.210.0.2 130.79.0.1 Reseau Router vers (prochain saut) 122.12.0.0 C 122.12.0.1 129.210.0.1 Pour atteindre les machines du réseau Reseau B 129.210.0.0 130.79.0.0 129.210.0.0 129.210.0.1 direct Reseau 145.5.0.0 145.5.0.1 122.12.0.0 direct Table de routage de B M2 CSSI 145.5.0.0 122.12.0.2 40 Réseau Exemple Destination prochain saut 130.79.91.0/23 130.79.91.254 130.79.200.0/24 130.79.200.254 130.79.0.0/16 130.79.200.254 130.79.54.64/27 130.79.64.1 0.0.0.0/0 130.79.200.254 Schéma du réseau ? (routeurs voisins, …) Prochain saut pour 200.201.202.203, 130.79.90.1, 130.79.65.1 ? 41 M2 CSSI Réseau ICMP • Internet Control Message Protocol (RFC792) • ICMP communique les message d’erreurs et les autres circonstances qui réclament l’attention • Les messages ICMP sont transmis à l’intérieur de paquets IP Datagramme IP En-tête IP Message ICMP 20 octets 42 M2 CSSI UdS 14 Réseaux 29/09/11 M2 CSSI Réseau ICMP • Un message ICMP d’erreur contient toujours l’en-tête IP et les 8 premiers octets du datagramme IP qui a provoqué l’erreur ICMP • Cela permet au module ICMP récepteur d’associer le message qu’il reçoit à un protocole particulier (TCP ou UDP en fonction du champ protocole de l’en-tête IP) et à un processus utilisateur particulier ( à partir des numéros de port TCP ou UDP qui figurent dans l’en-tête TCP ou UDP, contenus dans les 8 premiers octets du datagramme IP). 43 M2 CSSI Réseau ICMP : Format du message 0 8 Type 16 31 Somme de contrôle Code Identifieur Numéro de séquence Données • Type : 8 bits type de message • Code : 8 bits informations complémentaires • Somme de contrôle : 16 bits champs de contrôle • Données : En-tête datagramme + 64 premiers bits des données. 44 M2 CSSI Réseau ICMP : Format du message TYPE 0 3 4 5 8 11 12 13 14 15 16 17 18 Message ICMP Echo Reply Destination Unreachable Source Quench (débit trop élevé) Redirect (change a route) Echo Request Time Exceeded (TTL) Parameter Problem with a Datagram (mauvais en-tête IP) Timestamp Request Timestamp Reply Information Request (obsolete) Information Reply (obsolète) Address Mask Request Address Mask Reply 45 M2 CSSI UdS 15 Réseaux 29/09/11 M2 CSSI Réseau ICMP : ce qui ne génère pas d’envoi de msg ICMP • Un message ICMP (Un message ICMP n’est pas généré en réponse à un message ICMP d’erreur (bouclage)) • Un message ICMP peut malgré tout être généré en réponse à un message de requête ICMP(ping). • Un datagramme destiné à une adresse IP de broadcast ou une adresse IP multicast • Un datagramme envoyé en tant que broadcast ethernet • Un fragment autre que le premier (voir fragmentation) • Un datagramme dont l’adresse de source ne désigne pas une machine unique. Cela signifie que l’adresse source ne peut pas être une adresse zéro, une adresse de bouclage, une adresse de broadcast ou une adresse multicast. 46 M2 CSSI Réseau Le programme PING • Historiquement PING = Packet INternet Groper • Il permet de vérifier l’accessibilité d’une machine • Envoi d’un message ICMP echo vers la machine cible • Et attente d’une réponse ICMP reply • Exemple : clarinet> ping mobinet.u-strasbg.fr PING mobinet.u-strasbg.fr (130.79.75.88): 56 data bytes 64 bytes from 130.79.75.88: icmp_seq=0 ttl=128 time=4.1 ms 64 bytes from 130.79.75.88: icmp_seq=1 ttl=128 time=0.6 ms 64 bytes from 130.79.75.88: icmp_seq=2 ttl=128 time=0.6 ms 64 bytes from 130.79.75.88: icmp_seq=3 ttl=128 time=1.0 ms 64 bytes from 130.79.75.88: icmp_seq=4 ttl=128 time=0.7 ms 47 M2 CSSI Réseau PING : Format des requêtes/réponses ICMP 0 8 (0 ou 8) 16 31 Somme de contrôle 0 Identifieur Numéro de séquence Données • les implémentations sous Unix de ping placent l’ID du processus dans le champ identification • Le numéro de séquence commence à 0 • Le programme enregistre à quelle heure il a envoyé un message • Lorsqu’il récupère une réponse à sa requête il peut en déduire le temps d’aller - retour 48 M2 CSSI UdS 16 Réseaux 29/09/11 M2 CSSI Réseau ICMP : Requête/Réponse de masque de réseau • Cette requête est faite dans l’intention d’obtenir le masque de sous réseau pour une machine sans disque au moment de démarrage de cette dernière • Le système demandeur émet sa requête ICMP sous forme de broadcast 49 M2 CSSI Réseau ICMP : Requête/Réponse TIMESTAMP (ESTAMPILLE HORAIRE) • Le requête ICMP estampille horaire autorise un système à en interroger un autre pour obtenir l’heure courante • La valeur devant être retournée est le nombre de millisecondes écoulées depuis minuit • Utilisable avec ping ping -M time crc ICMP_TSTAMP PING crc.u-strasbg.fr (130.79.202.1): 56 data bytes 76 bytes from 130.79.202.1: icmp_seq=0 ttl=63 time=0.918 ms tso=08:07:08 tsr=08:07:08 tst=08:07:08 76 bytes from 130.79.202.1: icmp_seq=1 ttl=63 time=0.907 ms tso=08:07:09 tsr=08:07:09 tst=08:07:09 76 bytes from 130.79.202.1: icmp_seq=2 ttl=63 time=1.074 ms tso=08:07:10 tsr=08:07:10 tst=08:07:10 50 M2 CSSI Réseau Option IP : enregistrement de la route • Ping permet d’enregistrer par quelle route les paquets sont acheminés pour atteindre leur destination • Cette possibilité est rendue possible grâce à l ’utilisation des options IP et notamment de l’option enregistrement de route (RR : Route Recording) • Les routeurs sur le chemin de retour ajoutent également leurs adresses dans cette option • Toutefois, la taille des options IP est limitée à 40 octets 51 M2 CSSI UdS 17 Réseaux 29/09/11 M2 CSSI Réseau Option IP : format de l’option RR code len ptr Adresse IP 1 ptr = 4 Adresse IP 2 ……. ptr = 8 Adresse IP 9 ptr = 36 ptr = 40 • Code (1 octet) : spécifie le type de l’option (RR = 7) • Len (1 octet) : indique le nombre total d’octets de l’option RR (= 39) • Ptr (1 octet) : index dans lequel se trouve l’adresse IP suivante (au départ ptr = 4) 52 M2 CSSI Réseau La fragmentation IP (1) • La couche physique impose une limite supérieure à la taille d’une trame transmise (ex: 1518 octets pour Ethernet) • Lorsqu’un routeur IP réceptionne un datagramme IP il détermine sur quelle interface il va ré-émettre le datagramme IP • Une fois l’interface identifiée, le routeur détermine le MTU (Maximum Transmit Unit) de l’interface • Le routeur IP compare le MTU de l’interface avec la taille du datagramme IP • Suivant le cas, il va être obligé de fragmenter le datagramme IP 53 M2 CSSI Réseau La fragmentation IP (2) • Un datagramme fragmenté, le reste jusqu’à atteindre sa destination finale – Il n’est pas ré-assemblé par un autre routeur sur le chemin en direction de la destination • La couche IP effectue le ré-assemblage au niveau de la destination • Un fragment IP peut être lui-même re-fragmenté • Les informations contenues dans l’en-tête IP permettent à la couche IP de ré-assembler des datagrammes fragmentés 54 M2 CSSI UdS 18 Réseaux 29/09/11 M2 CSSI Réseau La fragmentation IP (3) • Le champ identification contient une valeur identique pour chaque datagramme que l’émetteur transmet • La valeur de ce champ est recopiée dans chacun des fragments du datagramme • Le champ flags contient 3 bits • Bit 0: reserved, must be zero • Bit 1: (DF) 0 = May Fragment, 1 = Don't Fragment • Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments • Le champ fragment offset contient l’offset (= position) de ce fragment depuis depuis le début du datagramme original 55 M2 CSSI Réseau La fragmentation IP (4) • Si un datagramme IP est fragmenté, chaque fragment a son propre en-tête IP et il est routé indépendamment des autres fragments • Si un fragment se perd, tout le datagramme IP doit être ré-émis • IP ne gère ni retransmission ni timeout 56 M2 CSSI Réseau Le programme Traceroute • Outil de déboggage • Traceroute permet de visualiser la route empruntée par le datagramme IP • Traceroute utilise ICMP et le champ TTL de l’en-tête IP • Le champ TTL permet d’éviter qu’un datagramme ne boucle sur l’Internet • Traceroute tire partie de ce champ afin de visualiser la route que prend un datagramme 57 M2 CSSI UdS 19 Réseaux 29/09/11 M2 CSSI Réseau Traceroute (1) • Traceroute envoie un datagramme IP avec un TTL à 1 vers la destination finale • Le premier routeur va décrémenter le TTL de 1 • Or si le TTL passe à zéro, un routeur envoie un message ICMP « Time exceeded » à l’émetteur • Ce traitement permet à traceroute d’identifier le premier routeur • Traceroute ré-émet le même datagramme mais cette fois-ci avec un TTL de 2…… • Ainsi de suite jusqu’à atteindre la destination finale 58 M2 CSSI Réseau Traceroute (2) • Une fois la destination atteinte il n’y a pas d’émission de message ICMP « Time Exceeded » • Comment ça marche ? • Traceroute émet le datagramme à destination d’un port normalement inutilisé (supérieur à 30000) • La pile TCP/IP de la machine cible envoie alors à l’émetteur un message ICMP « port unreachable » 59 M2 CSSI Réseau traceroute -q 2 cn.japan-guide.com traceroute to cn.japan-guide.com (203.183.69.62), 64 hops max, 40 byte packets 1 api-rc1-ge-0-2-0-2 (130.79.91.253) 0.943 ms 0.370 ms 2 ** 3 te0-2-0-0-besancon-rtr-011.noc.renater.fr (193.51.189.122) 11.995 ms 14.149 ms 4 te0-1-0-0-dijon-rtr-011.noc.renater.fr (193.51.189.114) 12.166 ms 11.556 ms 5 te0-3-2-0-lyon1-rtr-001.noc.renater.fr (193.51.189.141) 9.576 ms 9.566 ms 6 xe-8-0-0.edge5.Paris1.Level3.net (212.73.207.173) 15.735 ms 15.734 ms 7 ae-33-51.ebr1.Paris1.Level3.net (4.69.139.193) 24.567 ms 19.072 ms 8 ae-47-47.ebr1.London1.Level3.net (4.69.143.109) 22.709 ms ae-48-48.ebr1.London1.Level3.net (4.69.143.113) 22.611 ms 9 ae-100-100.ebr2.London1.Level3.net (4.69.141.166) 22.664 ms 22.944 ms 10 ae-42-42.ebr1.NewYork1.Level3.net (4.69.137.70) 91.748 ms 91.580 ms 11 ae-61-61.csw1.NewYork1.Level3.net (4.69.134.66) 91.620 ms 91.653 ms 12 ae-72-72.ebr2.NewYork1.Level3.net (4.69.148.37) 91.617 ms 92.195 ms 13 ae-2-2.ebr4.SanJose1.Level3.net (4.69.135.185) 172.020 ms 162.511 ms 14 ae-74-74.csw2.SanJose1.Level3.net (4.69.134.246) 160.770 ms 170.483 ms 15 ae-12-79.car2.SanJose2.Level3.net (4.68.18.76) 339.706 ms 325.174 ms 16 JAPAN-TELEC.car2.SanJose2.Level3.net (4.59.4.6) 160.850 ms 160.832 ms 17 TYOrw-12-tengiga1-3.gw.odn.ad.jp (210.142.163.249) 262.611 ms 262.473 ms 18 TYOrk-05G5-0-0.nw.odn.ad.jp (143.90.163.49) 275.370 ms 276.728 ms 19 TYOrw-11T1-4.nw.odn.ad.jp (143.90.192.2) 277.049 ms 278.036 ms 20 106.211131232.odn.ne.jp (211.131.232.106) 279.347 ms 281.301 ms 21 124.83.128.33 (124.83.128.33) 272.938 ms 293.108 ms 22 te3/1.ostag01.idc.jp (154.34.238.2) 298.906 ms 298.725 ms 23 po1.l302.ost.eg.idc.jp (154.34.239.230) 274.445 ms 274.542 ms 24 158.205.199.22 (158.205.199.22) 277.310 ms 277.485 ms 25 * * 60 M2 CSSI UdS 20