Professional Documents
Culture Documents
C. Pain-Barre
IUT INFO Année 2008-2009
1 Commande arp
La commande permettant de consulter ou de modifier le cache ARP, sous Unix (Linux) et Windows, est arp.
- Le répertoire /sbin tout comme /usr/sbin contiennent des commandes destinées normalement
aux administrateurs. Ces répertoires ne sont donc pas contenus par défaut dans le PATH des utilisa-
teurs. Il faudra donc les rajouter pour faire ce TP.
$ PATH="$PATH:/sbin:/usr/sbin"
$ man arp
i Vous n’avez pas (pas plus que moi d’ailleurs) les autorisations nécessaires pour modifier la
configuration de allegro. De ce fait, si vous tentez de taper la commande répondant à cette
question, vous aurez certainement un affichage du genre :
SIOCSARP : Opération non permise
1. Comme nous le verrons plus tard, l’adresse de allegro est 139.124.187.4 et son masque est
255.255.255.0. Pensez-vous que son cache puisse contenir une association pour l’adresse
139.124.5.51 ?
2. Trouvez-vous dans le manuel de arp une option permettant d’obtenir l’adresse physique d’un hôte (station
ou routeur) non présent dans le cache ?
[Corrigé]
i Il est sûrement inutile d’indiquer que cette invite de commandes tourne sur le PC et non sur
allegro. . .
C:> arp /?
i Il est utile d’augmenter la mémoire de la fenêtre MS-DOS et avoir un ascenseur pour voir le début
de l’affichage des commandes. Pour cela, effectuer un clic droit sur la barre du haut de la fenêtre
MS-DOS puis sélectionner Propriétés. Dans l’onglet Configuration, on peut spécifier le nombre de
lignes de la fenêtre en modifiant le champ Hauteur de la taille de la zone de mémoire tampon écran
(mettre environ 200 lignes).
Quelle est la commande MS-DOS permettant d’obtenir la liste de toutes les associations présentes dans le
cache ARP de votre PC ?
- Sous Windows, le chemin menant aux commandes réseau est déjà dans le PATH (qui est une variable
existant aussi sous Windows). On peut d’ailleurs voir le contenu de cette variable en tapant :
[Corrigé]
Sur Unix, une interface correspond à un point d’entrée dans le noyau (cœur du système). Envoyer des messages
via les interfaces réseaux revient à passer des données à des procédures spéciales du noyau chargées d’effectuer
les opérations d’entrées-sorties physiques. Une interface est généralement identifiée par un nom logique indiquant
le type d’interface et le numéro d’ordre de la carte. Par exemple, sous Linux, une carte Ethernet classique sera
identifiée par :
• eth0 pour la première carte,
• eth1 pour la seconde,
• etc.
Sur SunOS 7.0 (Unix de Sun MicroSystems), une carte Ethernet sera identifiée par :
• le0 pour la première,
• le1 pour la seconde,
• etc.
Une exception concerne l’interface loopback identifiée par lo suivi ou non d’un numéro. Cette interface
correspond aux adresses IP commençant par 127. La plus communément utilisée étant l’adresse 127.0.0.1. Gé-
néralement, les stations sont configurées pour que cette interface puisse être désignée par le nom localhost
(cas des stations Unix et Windows). L’interface loopback n’est pas rattachée à une carte réseau. C’est en fait une
adresse permettant de tester en local uniquement des programmes utilisant TCP/IP, sans même disposer d’une
liaison réseau. Cela permet donc de réaliser des tests sans pour autant provoquer de transmission sur le réseau, ou
d’utiliser localement des services réseaux.
Une interface possède (généralement) une adresse physique. C’est cette adresse qui est utilisée pour les com-
munications dans le réseau. Pour que cette interface puisse être une destination dans l’Internet, il faut lui associer
une adresse IP (une seule suffit). Ainsi, une station va posséder une seule adresse IP alors qu’un routeur va pos-
séder une adresse IP par réseau auquel il est connecté, via une interface. Pour réaliser cette association, il faut
configurer l’interface.
- La commande permettant de configurer une interface sous Unix est ifconfig (interface
configuration), qui se trouve aussi dans le répertoire /sbin. Son homologue sous Windows est
ipconfig.
• l’adresse IP de diffusion (si possible) dans le réseau concerné. Un datagramme envoyé vers cette adresse
est aussi destiné à cette interface.
2.1.2 Exercices
$ man ifconfig
i Comme pour arp, vous n’êtes pas autorisés à modifier la configuration de allegro ; il faut
être root pour cela. Même si la commande tapée est correcte, elle provoquera des erreurs de
type :
SIOCSIFNETMASK : Permission non accordée
SIOCGIFADDR : Aucun périphérique de ce type
SIOCSIFBROADCAST : Permission non accordée
SIOCSIFBRDADDR : Permission non accordée
eth1 : interface inconnue : Aucun périphérique de ce type
eth1 : interface inconnue : Aucun périphérique de ce type
SIOCSIFADDR : Permission non accordée
eth1 : interface inconnue : Aucun périphérique de ce type
6. Quelle est la ligne de commande permettant d’utiliser comme adresse physique (MAC)
00:0F:1B:13:34:9A qui est différente de celle “fondue” dans la carte (si ! si ! c’est possible si le
pilote le permet) ?
[Corrigé]
C:> ipconfig /?
i Ainsi qu’il a été dit au TP 3, il est possible d’interdire une destination en utilisant l’option reject.
$ man route
3. Quelle est la commande permettant d’ajouter le routeur 139.124.187.251, accessible par l’interface
eth0, avec pour destination le sous-réseau 194.199.220.128, où l’identifiant de sous-réseau a été
prélevé aux 2 premiers bits de l’identifiant station pour réaliser le subnetting du réseau 194.199.220.0 ?
4. Quelle est la commande permettant de supprimer la route précédente ?
5. Quelle est la commande permettant d’ajouter les adresses de l’interface loopback ainsi qu’elle est définie
dans la table ?
[Corrigé]
i La colonne Indic (ou flags, selon l’installation) contient une combinaison d’indicateurs donnant
quelques renseignements sur la route. Parmi les indicateurs possibles, il y a U, H, G, D, M et ! :
• U : la route est en service (activée).
• H : la destination est un ordinateur (host). Sans cet indicateur, la destination est un réseau.
• G : la route n’est pas directe et la passerelle est un routeur (gateway). Sans cet indicateur,
la destination est directement accessible.
• D : la route a été créée par une redirection (message ICMP).
• M : la route a été modifiée par une redirection (message ICMP).
• ! : la route est rejetée (option reject).
Dans certaines implémentations, la table de routage peut contenir les adresses de la station elle-
même. Par exemple, pour la station d’adresse 139.124.287.4, on pourrait avoir comme table :
Destination Passerelle Genmask Indic Metric Ref Use Iface
139.124.187.4 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
139.124.187.0 0.0.0.0 255.255.255.0 U 10 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 139.124.187.1 0.0.0.0 UG 10 0 0 eth0
C:> route /?
i Sous Windows non plus, vous ne pouvez pas modifier la configuration de la station. Ainsi,
même si la commande tapée est correcte, elle provoquera des erreurs de type :
L’ajout de l’itinéraire a échoué : Accès au réseau refusé.
3. Quelle est la commande permettant de modifier la route précédente afin d’utiliser plutôt le routeur
139.124.187.253 ?
4. Quelle est la commande permettant de supprimer la route précédente ?
[Corrigé]
Pour cela, elle utilise le protocole ICMP en envoyant des messages (ICMP) de type "Demande d’ECHO"
qui requièrent de la part de l’ICMP destinataire de répondre par un "Réponse d’ECHO". Sur certains systèmes,
ping effectue plusieurs envois puis s’arrête en fournissant des statistiques sur le temps de propagation aller-retour
(Round Trip Time). Sur d’autres systèmes (comme Linux), il faut arrêter ping en tapant Ctrl-C .
Ainsi, lorsqu’une réponse arrive, on est assuré que l’ordinateur qu’on utilise est correctement configuré, de
même que l’ordinateur intérrogé, que les réseaux qui les séparent sont opérationnels et que les routeurs intermé-
diaires sont correctement configurés.
$ man ping
C:> ping /?
C:> ping
Sur Windows :
1. Utiliser arp pour consulter le cache ARP de votre station.
2. Identifier une station allumée de votre salle de TP (par exemple d’un de vos voisins) qui ne figure pas dans
le cache.
3. Utiliser ping pour tester l’accessibilité de cette station.
4. Consulter à nouveau le cache ARP de votre station. La station précédente y figure-t-elle ? Pourquoi ?
5. Pensez-vous qu’en éffectuant un ping en broadcast, votre cache ARP contiendra toutes les adresses MAC
des stations accessibles du réseau du Département Informatique ?
6. Tester un ping en broadcast (uniquement 2 tentatives) et consulter le cache. Vous n’obtiendrez certainement
pas toutes les adresses MAC mais probablement un certain nombre quand même. Pourquoi ?
[Corrigé]
En effet, traceroute commence par envoyer un datagramme UDP1 véhiculé par un datagramme IP avec un
TTL positionné à 1. Le premier routeur rencontré détruit le datagramme et renvoie une erreur ICMP de TTL
expiré. On obtient ainsi l’adresse du premier routeur de la route. traceroute envoie ensuite un datagramme UDP
dans un datagramme IP avec un TTL à 2 pour connaître le second routeur, et ainsi de suite, jusqu’à atteindre la
destination spécifiée (mais sur un port non attribué pour recevoir un message ICMP de port inaccessible2 ).
1
UDP est un protocole de transport que nous étudierons au second semestre.
2
On verra la notion de port au second semestre quand nous étudierons la couche transport de TCP/IP. On dira pour le moment que le
datagramme UDP est censé être destiné à une application n’existant pas, ce qui provoque une erreur.
$ man traceroute
i Certainement à des fins de confidentialité, certains routeurs ne renvoient pas d’erreur ICMP.
Cela se traduit dans traceroute par un timeout pour l’envoi et l’affichage d’une étoile plutôt
que de l’adresse (ou le nom) du routeur. Puisque, pour chaque routeur, traceroute fait 3
tentatives, il y aura alors 3 étoiles (3 timeout). traceroute est alors considérablement ralenti.
Si, à partir d’un certain point, plusieurs routeurs de suite ne répondent pas, c’est probablement
que les messages sont filtrés et qu’il n’y aura pas d’espoir d’en savoir davantage. On peut alors
arrêter traceroute.
i Il existe des versions graphiques de traceroute, notamment xtraceroute (qui n’est pas installé sur
allegro) mais la localisation géographique des routeurs est loin d’être vraiment précise. . .
C:> tracert
i Sur Windows, des outils gratuits comme Neotrace permettent une visualisation graphique de la
route.
Certains sites comme celui de visualware permettent aussi de visualiser une route (à partir de leur serveur)
en utilisant une applet Java. Enfin, un bon nombre de sites comme http://www.traceroute.org/ proposent
de tracer la route depuis certains serveurs dont on choisit le pays d’appartenance vers une adresse que l’on peut
spécifier. D’autres serveurs comme http://network-tools.com/ proposent un service de traceroute parmis
d’autres (comme ping).
1. Essayer la démo VisualRoute de visualware pour tracer la route depuis leur serveur jusqu’à votre station.
2. Essayer le service de http://www.traceroute.org/ afin de tracer la route jusqu’à votre station depuis
un serveur situé au Japon (certaines pages peuvent ne s’afficher qu’en japonais, mais on arrive à s’en
sortir. . .).
[Corrigé]
On exécute des commandes sur trois machines A, B et C (stations ou routeurs) d’un ou plusieurs réseaux
physiques, dont voici les résultats :
Machine A :
C:>route print
===========================================================================
Liste d’Interfaces
0x1 ........................... MS TCP Loopback interface
0x2 ...00 07 e9 83 0f 6b ...... Intel(R) PRO/100 VE Network Connection -
Miniport d’ordonnancement de paquets
===========================================================================
===========================================================================
Itinéraires actifs :
Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique
0.0.0.0 0.0.0.0 130.26.144.245 130.26.148.10 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
130.26.144.0 255.255.240.0 130.26.148.10 130.26.148.10 20
130.26.64.0 255.255.224.0 130.26.149.20 130.26.148.10 20
130.26.148.10 255.255.255.255 127.0.0.1 127.0.0.1 20
130.26.159.255 255.255.255.255 130.26.148.10 130.26.148.10 20
224.0.0.0 240.0.0.0 130.26.148.10 130.26.148.10 20
255.255.255.255 255.255.255.255 130.26.148.10 130.26.148.10 1
Passerelle par défaut : 130.26.144.245
===========================================================================
Itinéraires persistants :
Aucun
C:>tracert 130.26.80.200
Itinéraire déterminé.
C:>ping 130.26.64.1
Machine C :
$ ifconfig
eth0 Lien encap:Ethernet HWaddr 00:0F:1F:10:11:12
inet adr:139.26.80.200 Bcast:139.26.95.255 Masque:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Paquets Reçus:12345 erreurs:0 jetés:0 débordements:0 trames:0
Paquets transmis:6543 erreurs:0 jetés:0 débordements:0 carrier:0
collisions:0 lg file transmission:100
Interruption:19 Adresse de base:0x4000
Faire le schéma de cette interconnexion de réseaux en précisant tous les équipements (stations et routeurs) dé-
ductibles de ces commandes, les interfaces, les adresses IP attribuées à ces interfaces, les noms de machines, si
possible leurs OS, ainsi que les adresses réseaux. Le cas échéant, faire ressortir le routeur menant à Internet.
Afin de vous aider, vous pouvez utiliser le tableau de la page suivante contenant les conversions décimal-
binaire de toutes les valeurs possibles sur un octet (vous pouvez effectuer une rotation de l’affichage pour le
visualiser en format paysage). Il est aussi disponible dans un fichier à part.
[Corrigé]
Déc. Binaire Déc. Binaire Déc. Binaire Déc. Binaire Déc. Binaire Déc. Binaire Déc. Binaire Déc. Binaire
0 00000000 32 00100000 64 01000000 96 01100000 128 10000000 160 10100000 192 11000000 224 11100000
1 00000001 33 00100001 65 01000001 97 01100001 129 10000001 161 10100001 193 11000001 225 11100001
2 00000010 34 00100010 66 01000010 98 01100010 130 10000010 162 10100010 194 11000010 226 11100010
3 00000011 35 00100011 67 01000011 99 01100011 131 10000011 163 10100011 195 11000011 227 11100011
4 00000100 36 00100100 68 01000100 100 01100100 132 10000100 164 10100100 196 11000100 228 11100100
5 00000101 37 00100101 69 01000101 101 01100101 133 10000101 165 10100101 197 11000101 229 11100101
17 00010001 49 00110001 81 01010001 113 01110001 145 10010001 177 10110001 209 11010001 241 11110001
18 00010010 50 00110010 82 01010010 114 01110010 146 10010010 178 10110010 210 11010010 242 11110010
19 00010011 51 00110011 83 01010011 115 01110011 147 10010011 179 10110011 211 11010011 243 11110011
20 00010100 52 00110100 84 01010100 116 01110100 148 10010100 180 10110100 212 11010100 244 11110100
21 00010101 53 00110101 85 01010101 117 01110101 149 10010101 181 10110101 213 11010101 245 11110101
22 00010110 54 00110110 86 01010110 118 01110110 150 10010110 182 10110110 214 11010110 246 11110110
23 00010111 55 00110111 87 01010111 119 01110111 151 10010111 183 10110111 215 11010111 247 11110111
24 00011000 56 00111000 88 01011000 120 01111000 152 10011000 184 10111000 216 11011000 248 11111000
25 00011001 57 00111001 89 01011001 121 01111001 153 10011001 185 10111001 217 11011001 249 11111001
26 00011010 58 00111010 90 01011010 122 01111010 154 10011010 186 10111010 218 11011010 250 11111010
27 00011011 59 00111011 91 01011011 123 01111011 155 10011011 187 10111011 219 11011011 251 11111011
28 00011100 60 00111100 92 01011100 124 01111100 156 10011100 188 10111100 220 11011100 252 11111100
29 00011101 61 00111101 93 01011101 125 01111101 157 10011101 189 10111101 221 11011101 253 11111101
30 00011110 62 00111110 94 01011110 126 01111110 158 10011110 190 10111110 222 11011110 254 11111110
31 00011111 63 00111111 95 01011111 127 01111111 159 10011111 191 10111111 223 11011111 255 11111111
C. Pain-Barre, 2000-2008
TP 4 Réseaux