par Sebray » 29 Jan 2003 17:13
Salut à tous !
<BR>
<BR>Je commencerais d'ailleurs par une petite chose : Mea Culpa, Mea Culpa, Mea Maxima Culpa ! Bon après cette démonstration de tous ce que je sais de Latin je m'en vais vous conter mes erreurs et les justifier (bah oui bon, on fait des erreurs mais qui n'en a jamais fait me jette la première pierre ! Mais aïe euh, vous aviez pas droit ! <IMG SRC="images/smiles/icon_eek.gif">) )
<BR>
<BR>D'abord les miennes : effectivement les routeurs ne route pas les adresses MAC... enfin pas tout à fait. (Stooooop ! On n'a dit pas de cailloux !) Il ne les route pas parce que comme chacun l'a signalé (à sa manière!) il travaille au niveau de la couche 3 (couche réseau du modèle OSI), c'est à dire qu'il ne travaille qu'avec des adresses IP. Mais cependant il travaille quand même avec les adresses MAC pour la simple raison qu'il est connecté sur le réseau par un média : il recoit donc bien une trame au format ethernet (voir mon post précédent) qui contient une adresse MAC source et une adresse MAC destination et quelque soit le port de sorti, il fait bien repartir une trame ethernet avec une @MAC source et une @MAC destination (oui je sais, tant qu'il n'y a pas de changement de protocole réseau, mais on parle d'un routeur simple, pas d'une passerelle !) C'est donc de là que venait mon erreur. En fait, un routeur R, recoit une trame ethernet avec ces données là :
<BR>@ MAC Destination = @ Mac de R
<BR>@ MAC source = @ MAC du poste source ou du routeur précédent
<BR>et fait repartir cette trame après analyse sous ce format là :
<BR>@ MAC destination = @ MAC du poste destinataire ou du prochain routeur
<BR>@ MAC source = @ MAC de R
<BR>
<BR>Donc effectivement, l'@ MAC source est bien perdue au passage d'un routeur.
<BR>
<BR>Je vais donc "étayer", pour répondre à Antolien, bien que je trouve son post un peu agressif (mais on a l'habitude ;o) ) et a qui je conseillerai peut être de prendre le temps de poster sa propre version plutôt que de dire uniquement que l'autre à tort (ce qui est vrai certes, mais qui ne fait pas avancer le schmilblick).
<BR>
<BR>Pourquoi avoir inventer l'adresse IP ? Euh c'est pas que l'adresse IP qui fait tous le protocole, hein ! Bah je sais pas moi, peut être que les militaires américains s'ennuyaient un jour et qu'ils ont voulus faire quelques chose avec leur dix doigts... non je plaisante! le protocole TCP/IP à été inventé par les militaires américains pour répondre à un besoin réel de vérification des données. Car si maintenant notre plus grand souci c'est de sécuriser l'envoi de ces données, il y a une trentaine d'année le plus important était d'en recevoir l'intégralité lors des connexions réseaux. Il y avait de plus un besoin de pouvoir router les trames afin de pouvoir segmenter des réseaux en unités logiques (imaginer une seule seconde si vous pouviez voir dans votre voisinage réseau tous les ordinateurs connectés dans le monde au même moment). Enfin il y avait le besoin de créer un véritable adressage, à la fois logique, évolutif et qui pourrait durer. Il aura duré plus de 30 ans avant que l'on dise que bon, il va falloir passer à IP v6. Combien de temps on aurait tenu avec du Netbios limité à 15 caractères ????
<BR>
<BR>Après c'est un peu plus compliqué que " les équipements rézo voient les @ mac en local mais ne les diffusent pas sur le réseau public" et je l'explique plus bas !
<BR>
<BR>Sinon j'ai appris ca à l'école, en BTS Info Gestion Admin Rézo, mais comme je l'ai expliqué plus haut, mon erreur vient d'une confusion dans mon petit esprit (donc merci à West et àtoi pour m'avoir fait me remettre en question !)
<BR>
<BR>Alors voici mon étaiement, et comme un dessin vaut mieux qu'un long discours, je vous fais... un long discours ! (bah oui, on peut pas faire autrement dans un forum <IMG SRC="images/smiles/icon_eek.gif">P ) Mais je vais prendre un exemple : On a donc un poste A (d'adresse IP locale 192.168.0.1 et d'adresse IP dynamique 193.124.214.214) qui veut envoyer un message sur la machine forum.ixus.net (qu'on appelera B, d'adresse 214.1.1.1) et pour ce faire il doit passer les routeurs R1 (son proxy Web) et R2 (le proxy web de B).
<BR>Je rappelle les 4 couches du protocole TCP/IP (Modèle DOD)
<BR>1 - Interface réseau : i.e. Ethernet, Token Ring, ATM, ... (Couche OSI 1 et 2)
<BR>2 - Internet : IP, ICMP, IGMP, ARP (couche OSI 3)
<BR>3 - Transport : TCP et UDP (couche OSI 4)
<BR>4 - Application : HTTP, FTP, ... (couche OSI 5,6 et 7)
<BR>
<BR>Donc on va décomposer la communication et là attention, il va falloir suivre :
<BR>
<BR>1- A veut envoyer son message sur le forum. Il est donc en couche 4 (DOD). On sait aussi que il va utiliser TCP pour communiquer (couche 3 DOD). Donc TCP encapsule donc les données dans une trame TCP.
<BR>
<BR>2 - Il connait pas l'@ de B, juste son @ DNS. Il demande donc à son DNS la correspondance qui répond en lui disant : forum.ixus.net = 214.1.1.1.
<BR>
<BR>3 - A vérifie dans sa table de routage comment faire pour envoyer quelque chose à 214.1.1.1 et voit qu'il doit passer par son adresse dynamique et par R1, qui a pour adresse 193.214.214.254. c'est IP qui s'occupe de ça (donc couche 2 DOD) IP encapsule donc la trame TCP das une trame IP. Mais le souci c'est que A ne connait pas l'adresse MAC de R1.
<BR>
<BR>4 - A envoie donc une trame ARP en disant : " Moi c'est A(193.124.214.214), d'@ MAC AA:AA:AA:AA:AA:AA, quelle est l'@ MAC de RI(193.124.214.254)" et R1 répond par une trame RARP "Pour A(193.124.214.214),je suis R1(193.124.214.254), et mon @MAC c'est D1:D1:D1:D1:D1:D1". A va donc enfin pouvoir balancer sa trame Ethernet (couche 1 DOD) en encapsulant dedans les données d'IP.
<BR>
<BR>5 - R1 recoit la trame ethernet et l'ouvre jusqu'au niveau de voir les @IP sources et destinataires, il regarde l'@ IP destinataire, vérifie qu'elle ne correspond à aucun de ses ports directs et suit alors ce que lui dise ces itinéraires statiques ou ces routes par défaut. Dans notre exemple, il sait que pour atteindre le réseau 214.1.1.0 (le réseau de B) il doit passer par R2. Si il ne connait pas l'@ MAC de R2, il balancera alors à son tour une trame ARP et R2 répondra par une RARP. R1 pourra donc ensuite tout réencapsuler comme nous l'avons vu au début (en remplacant les @ MAC sources et destination) dans une trame ethernet et balancer sur le port ou il sait que R2 est branché.
<BR>
<BR>6 - Quand R2 recoit le paquet, il décortique à son tour, voit que l'adresse du réseau destinataire correspond à de ses ports directs et balance ne réencapsulant. (c'est le même principe que le point 5)
<BR>
<BR>7 - B recoit de R2 sa trame et lorsqu'il l'ouvre, il peut voir que son expediteur est A d'@ IP 193.124.214.214. Si il veut lui répondre, il devra tout refaire en sens inverse.
<BR>
<BR>Voilà voilà, je pense que ce post aura été ma plus grande contribution, quelque soit mon pseudo sous Ixus, mais bon, il était important de rectifier les erreurs.
<BR>
<BR>Ciao et @ peluche
<BR>
<BR>Seb
<BR> <IMG SRC="images/smiles/icon_bise.gif">
<BR>
<BR>---- L'édition (29/01/03) a permis la correction de quelques fautes d'orthographe et une remise en page du post----<BR><BR><font size=-2></font>