Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > a412ceb851151854794ced2a242192bb > files > 3786

howto-html-fr-20080722-1mdv2010.0.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ARP</title><link href="style.css" rel="stylesheet" type="text/css" /><meta content="DocBook XSL Stylesheets V1.73.2" name="generator" /><link rel="start" href="index.html" title="HOWTO du routage avancé et du contrôle de trafic sous Linux" /><link rel="up" href="ch03.html" title="Chapitre 3. Introduction à iproute2" /><link rel="prev" href="ch03s04.html" title="Explorer votre configuration courante" /><link rel="next" href="ch04.html" title="Chapitre 4. Règles - bases de données des politiques de routage" /></head><body><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">ARP</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ch03s04.html">Précédent</a> </td><th align="center" width="60%">Chapitre 3. Introduction à iproute2</th><td align="right" width="20%"> <a accesskey="n" href="ch04.html">Suivant</a></td></tr></table><hr /></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="lartc.iproute2.arp" />ARP</h2></div></div></div><p><acronym class="acronym">ARP</acronym> est le Protocole de Résolution d'Adresse
(<em class="wordasword">Address Resolution Protocol</em>).
Il est décrit dans le 
<a class="ulink" href="http://www.faqs.org/rfcs/rfc826.html" target="_top">RFC 826</a>.
<acronym class="acronym">ARP</acronym> est utilisé par une machine d'un réseau local pour 
retrouver l'adresse matérielle (la localisation) d'une autre machine sur le 
même réseau.
Les machines sur Internet sont généralement connues par leur nom auquel 
correspond une adresse IP. C'est ainsi qu'une machine sur le réseau 
<code class="literal">foo.com</code> est capable de communiquer avec une autre machine 
qui est sur le réseau <code class="literal">bar.net</code>.
Une adresse IP, cependant, ne peut pas vous indiquer la localisation
physique de la machine.
C'est ici que le protocole <acronym class="acronym">ARP</acronym> entre en jeu.
</p><p>Prenons un exemple très simple.
Supposons que j'aie un réseau composé de plusieurs machines, dont la machine
<code class="literal">foo</code> d'adresse IP <code class="literal">10.0.0.1</code> et la machine
<code class="literal">bar</code> qui a l'adresse IP <code class="literal">10.0.0.2</code>. 
Maintenant, <code class="literal">foo</code> veut envoyer un <span class="command"><strong>ping</strong></span> 
vers <code class="literal">bar</code> pour voir s'il est actif, mais 
<code class="literal">foo</code> n'a aucune indication sur la localisation de 
<code class="literal">bar</code>.
Donc, si <code class="literal">foo</code> décide d'envoyer un <span class="command"><strong>ping</strong></span> 
vers <code class="literal">bar</code>, il a besoin d'envoyer une requête 
<acronym class="acronym">ARP</acronym>.
Cette requête <acronym class="acronym">ARP</acronym> est une façon pour <code class="literal">foo</code>
de crier sur le réseau « <span class="quote">Bar (10.0.0.2) ! Où es-tu ?</span> ».
Par conséquent, toutes les machines sur le réseau entendront
<code class="literal">foo</code> crier, mais seul <code class="literal">bar</code> 
(<code class="literal">10.0.0.2</code>) répondra.
<code class="literal">Bar</code> enverra une réponse <acronym class="acronym">ARP</acronym> directement à
<code class="literal">foo</code> ; ce qui revient à dire :
« <span class="quote">Foo (10.0.0.1) ! je suis ici, à l'adresse 00:60:94:E:08:12</span> ».
Après cette simple transaction utilisée pour localiser son ami sur le réseau,
<code class="literal">foo</code> est capable de communiquer avec <code class="literal">bar</code>
jusqu'à ce qu'il (le cache <acronym class="acronym">ARP</acronym> de <code class="literal">foo</code>) 
oublie où bar est situé (typiquement au bout de 15 minutes sur Unix).
</p><p>Maintenant, voyons comment cela fonctionne.
Vous pouvez consulter votre cache (table) <acronym class="acronym">ARP</acronym> 
(<em class="wordasword">neighbor</em>) comme ceci :
</p><pre class="screen">[root@espa041 /home/src/iputils]# ip neigh show
9.3.76.42 dev eth0 lladdr 00:60:08:3f:e9:f9 nud reachable
9.3.76.1 dev eth0 lladdr 00:06:29:21:73:c8 nud reachable
</pre><p>Comme vous pouvez le voir, ma machine <code class="literal">espa041</code> 
(<code class="literal">9.3.76.41</code>) sait où trouver <code class="literal">espa042</code>
(<code class="literal">9.3.76.42</code>) et <code class="literal">espagate</code> 
(<code class="literal">9.3.76.1</code>).
Maintenant, ajoutons une autre machine dans le cache <acronym class="acronym">ARP</acronym>.
</p><pre class="screen">[root@espa041 /home/paulsch/.gnome-desktop]# ping -c 1 espa043
PING espa043.austin.ibm.com (9.3.76.43) from 9.3.76.41 : 56(84) bytes of data.
64 bytes from 9.3.76.43: icmp_seq=0 ttl=255 time=0.9 ms

1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.9/0.9/0.9 ms

[root@espa041 /home/src/iputils]# ip neigh show
9.3.76.43 dev eth0 lladdr 00:06:29:21:80:20 nud reachable
9.3.76.42 dev eth0 lladdr 00:60:08:3f:e9:f9 nud reachable
9.3.76.1 dev eth0 lladdr 00:06:29:21:73:c8 nud reachable
</pre><p>Par conséquent, lorsque <code class="literal">espa041</code> a essayé de contacter
<code class="literal">espa043</code>, l'adresse matérielle de <code class="literal">espa043</code> 
(sa localisation) a alors été ajoutée dans le cache <acronym class="acronym">ARP</acronym>.
Donc, tant que la durée de vie de l'entrée correspondant à 
<code class="literal">espa043</code> dans le cache <acronym class="acronym">ARP</acronym> n'est pas 
dépassée, <code class="literal">espa041</code> sait localiser <code class="literal">espa043</code>
et n'a plus besoin d'envoyer de requête <acronym class="acronym">ARP</acronym>.
</p><p>Maintenant, effaçons <code class="literal">espa043</code> de notre cache 
<acronym class="acronym">ARP</acronym>.
</p><pre class="screen">[root@espa041 /home/src/iputils]# ip neigh delete 9.3.76.43 dev eth0
[root@espa041 /home/src/iputils]# ip neigh show
9.3.76.43 dev eth0  nud failed
9.3.76.42 dev eth0 lladdr 00:60:08:3f:e9:f9 nud reachable
9.3.76.1 dev eth0 lladdr 00:06:29:21:73:c8 nud stale
</pre><p>Maintenant, <code class="literal">espa041</code> a à nouveau oublié la 
localisation d'<code class="literal">espa043</code> et aura besoin d'envoyer une autre 
requête <acronym class="acronym">ARP</acronym> la prochaine fois qu'il voudra communiquer avec
lui.
Vous pouvez aussi voir ci-dessus que l'état d'<code class="literal">espagate</code>
(<code class="literal">9.3.76.1</code>) est passé en <em class="wordasword">stale</em>.
Cela signifie que la localisation connue est encore valide, mais qu'elle devra
être confirmée à la première transaction avec cette machine.
</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch03s04.html">Précédent</a> </td><td align="center" width="20%"><a accesskey="u" href="ch03.html">Niveau supérieur</a></td><td align="right" width="40%"> <a accesskey="n" href="ch04.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">Explorer votre configuration courante </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> Chapitre 4. Règles - bases de données des politiques de routage</td></tr></table></div></body></html>