{"id":348,"date":"2017-04-25T11:29:49","date_gmt":"2017-04-25T09:29:49","guid":{"rendered":"http:\/\/www.gatoux.com\/?page_id=348"},"modified":"2017-04-25T19:18:54","modified_gmt":"2017-04-25T17:18:54","slug":"le-routage","status":"publish","type":"page","link":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/le-routage\/","title":{"rendered":"Le routage"},"content":{"rendered":"<h2>Le routage c&rsquo;est quoi ?<\/h2>\n<p>La raison d&rsquo;\u00eatre d&rsquo;IP est bien d&rsquo;interconnecter des r\u00e9seaux physiques h\u00e9t\u00e9rog\u00e8nes ou non. Ce protocole de niveau 3 propose un format de paquets, un format d&rsquo;adressage et <strong>une logique d&rsquo;acheminement des paquets entre les r\u00e9seaux physiques.<\/strong> Cette derni\u00e8re fonction se nomme : <strong>Le routage<\/strong><\/p>\n<p>Cette fonction est r\u00e9alis\u00e9e, g\u00e9n\u00e9ralement, par des \u00e9quipements sp\u00e9cifiques appel\u00e9s des <strong>routeurs<\/strong>. Ces routeurs appliquent tous les m\u00eames r\u00e8gles de base pour que le transfert des paquets soit coh\u00e9rents. Ce sont les <strong>r\u00e8gles de routage<\/strong>.<\/p>\n<p>Avec IP, une notion tr\u00e8s importante est \u00e0 conna\u00eetre : <span style=\"color: #ff0000;\"><strong>IP route des r\u00e9seaux pas des machines<\/strong> <\/span>!<\/p>\n<p>Ceci veut dire, que seule la partie r\u00e9seau d&rsquo;une adresse est examin\u00e9e par les \u00e9quipements de routage pour d\u00e9terminer la direction \u00e0 prendre. L&rsquo;acheminement vers la machine est r\u00e9alis\u00e9e par la logique de traitement des paquets appliqu\u00e9e par les machines IP sur le LAN de destination.<\/p>\n<p>Pour imager le principe du routage, nous allons prendre l&rsquo;exemple d&rsquo;un utilisateur (Jules &#8230; Toujours lui !) qui souhaite afficher une page HTTP d&rsquo;un serveur distant. Pour simplifier nous dirons que l&rsquo;utilisateur tape dans la barre d&rsquo;adresse du navigateur, l&rsquo;adresse directe du serveur \u00e0 atteindre au lieu d&rsquo;entrer un nom mn\u00e9monique comme <strong>www.jebulle.com<\/strong>. Il entre l&rsquo;adresse : <strong>http:\/\/10.0.0.1\/site\/<\/strong>.<\/p>\n<h2>Trouver la sortie du r\u00e9seau physique<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-401 alignleft\" src=\"http:\/\/www.gatoux.com\/wp-content\/uploads\/2017\/04\/S2P8I2.gif\" alt=\"\" width=\"362\" height=\"147\" \/>Une application voulant transmettre des donn\u00e9es \u00e0 une autre, va <strong>transmettre ses donn\u00e9es aux couches inf\u00e9rieures<\/strong>. Pour notre exemple, le navigateur va transf\u00e9rer l&rsquo;adresse du serveur (10.0.0.1) \u00e0 IP (je vous fait gr\u00e2ce des r\u00e9solutions de proxy, DNS, TCP et autres &#8230;).<\/p>\n<p>Le stack IP du PC de Jules va <strong>examiner<\/strong> l&rsquo;adresse, et notamment <strong>la partie r\u00e9seau<\/strong>, il va remarquer que cette adresse n&rsquo;est pas du m\u00eame r\u00e9seau que lui. En effet, l&rsquo;adresse de Jules est : 12.0.0.2. Il sait, dans ce cas, qu&rsquo;il doit envoyer son paquet \u00e0 un \u00e9quipement install\u00e9 sur son r\u00e9seau physique (dor\u00e9navant nous dirons LAN) qui assure <strong>le transfert des paquets \u00e0 l&rsquo;ext\u00e9rieur du LAN<\/strong>. Cet \u00e9quipement est un <strong>routeur<\/strong> (ce pourrait \u00eatre un serveur type FireWall ! Mais ne compliquons pas les choses !). Dans la terminologie IP on appelle cet \u00e9quipement une \u00ab\u00a0<strong>Gateway<\/strong>\u00a0\u00bb ou \u00ab\u00a0<strong>Passerelle<\/strong>\u00a0\u00bb en fran\u00e7ais !<\/p>\n<p>Comment le PC de Jules conna\u00eet-il l&rsquo;adresse de la passerelle ? Et bien, si l&rsquo;administrateur du r\u00e9seau a bien fait son travail, il a du saisir l&rsquo;adresse IP de la passerelle dans un champ, appel\u00e9 \u00ab\u00a0Passerelle\u00a0\u00bb ou \u00ab\u00a0<strong>Gateway Default<\/strong>\u00a0\u00bb (Passerelle par d\u00e9faut), dans les \u00ab\u00a0Propri\u00e9t\u00e9s r\u00e9seaux\u00a0\u00bb du PC. Le nom de \u00ab\u00a0Passerelle par d\u00e9faut\u00a0\u00bb, signifie que le PC enverra par d\u00e9faut \u00e0 cette passerelle, tous les paquets qu&rsquo;il ne sait pas router. Or <strong><span style=\"color: #ff0000;\">une machine IP qui n&rsquo;est pas une passerelle ne sait pas router des paquets en dehors de son adresse r\u00e9seau<\/span><\/strong> !<\/p>\n<p>Si Jules avait envoy\u00e9 un paquet \u00e0 un serveur 12.0.0.1, son PC l&rsquo;aurait envoy\u00e9 directement au serveur, celui-ci \u00e9tant dans son r\u00e9seau.<\/p>\n<h2>Algorithme de traitement du routage<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-402 alignleft\" src=\"http:\/\/www.gatoux.com\/wp-content\/uploads\/2017\/04\/S2P8I3.gif\" alt=\"\" width=\"419\" height=\"571\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>La passerelle re\u00e7oit le paquet \u00e0 destination de 10.0.0.1. Quel traitement applique-t-elle \u00e0 ce paquet ? L&rsquo;organigramme suivant vous pr\u00e9sente la logique appliqu\u00e9e :<\/p>\n<p><span style=\"color: #ff0000;\"><strong>La passerelle extrait le paquet IP de la trame niveau 2<\/strong> <\/span>et examine le champ d&rsquo;adresse destination :<\/p>\n<ul>\n<li>si le paquet a pour adresse son adresse IP \u00e0 elle (<em>la passerelle<\/em> !), le paquet est envoy\u00e9 dans les couches hautes vers l&rsquo;application de la passerelle. Jules tente d\u2019acc\u00e9der \u00e0 l&rsquo;administration de la passerelle. C&rsquo;est ainsi que vous pouvez faire un TELNET sur un routeur par exemple !<\/li>\n<li>si le paquet a pour adresse un adresse diff\u00e9rente de celle de la passerelle, il est envoy\u00e9 au <strong>module routage<\/strong>. Le module routage examine la partie r\u00e9seau de l&rsquo;adresse de destination du paquet :<\/li>\n<\/ul>\n<p><span style=\"color: #663300;\">1 &#8211; <strong>si le r\u00e9seau demand\u00e9e est le m\u00eame que celui de provenance du paquet<\/strong> (m\u00eame r\u00e9seau que l&rsquo;adresse source), la passerelle renvoie le paquet sur l&rsquo;interface par laquelle elle l&rsquo;a re\u00e7ue et renvoie par la m\u00eame occasion \u00e0 la station \u00e9mettrice du paquet un ICMP Redirect (on en causera plus tard !). <\/span><\/p>\n<p><span style=\"color: #663300;\">2 &#8211; <strong>si le r\u00e9seau demand\u00e9e est diff\u00e9rent de celui de provenance<\/strong>, elle examine sa <strong>table de routage<\/strong>: <\/span><\/p>\n<ul>\n<li><span style=\"color: #663300;\">si dans sa table le r\u00e9seau existe : <\/span>\n<ul>\n<li><span style=\"color: #663300;\">elle examine le champ TTL et le d\u00e9cr\u00e9mente de 1. Si elle passe ainsi le TTL \u00e0 0, elle d\u00e9truit le paquet et \u00e9met \u00e0 la station \u00e9mettrice du paquet un ICMP Time Exceded (on en parlera aussi plus tard !). <\/span><\/li>\n<li><span style=\"color: #663300;\">si le champ TTL n&rsquo;est pas \u00e0 0, elle envoie le paquet \u00e0 la prochaine passerelle pour le r\u00e9seau. Cette passerelle est indiqu\u00e9e dans sa table de routage \u00e0 cot\u00e9 de l&rsquo;adresse r\u00e9seau.<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #663300;\">si le r\u00e9seau n&rsquo;existe pas dans sa table : <\/span>\n<ul>\n<li><span style=\"color: #663300;\">elle regarde si sa table propose une route par d\u00e9faut (0.0.0.0 via 14.0.0.1 sur interface S2). Si elle existe, elle applique le m\u00eame traitement sur le TTL que vu pr\u00e9c\u00e9demment, et envoie le paquet \u00e0 la passerelle indiqu\u00e9e.<\/span><\/li>\n<li><span style=\"color: #663300;\">si il n&rsquo;y a pas de route par d\u00e9faut, elle jette le paquet ! Ni vu ni connu, je t&#8217;embrouille (C&rsquo;est tout IP \u00e7a !), et elle \u00e9met un ICMP Destination Unreachable (j&rsquo;ai dit, qu&rsquo;on en parlerai plus tard !) \u00e0 la station \u00e9mettrice.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p dir=\"ltr\"><span style=\"color: #663300;\">La passerelle ne prend en compte que des paquets qui lui sont transmis dans des trames (niveau 2) qui lui sont adress\u00e9es. Nous reviendrons sur cette notion quand nous parlerons d&rsquo;ARP. Pour le moment, admettez que le PC de Jules \u00e0 r\u00e9ussi \u00e0 trouver l&rsquo;adresse niveau 2 de la passerelle, qu&rsquo;il a encapsul\u00e9 le paquet IP d&rsquo;adresse destination 10.0.0.1 dans cette trame adress\u00e9e au serveur. <\/span><\/p>\n<p dir=\"ltr\"><span style=\"color: #663300;\">Pour \u00e9mettre le paquet \u00e0 une autre passerelle, celui-ci est bien s\u00fbr r\u00e9encapsul\u00e9 dans une trame de niveau 2, correspondante au protocole de couche r\u00e9seau en vigueur sur le lien physique de l&rsquo;interface de sortie de la passerelle.<\/span><\/p>\n<h2 dir=\"ltr\">Table de routage<\/h2>\n<p dir=\"ltr\"><span style=\"color: #663300;\">La table de routage d&rsquo;une passerelle, nous venons de l&rsquo;apprendre, ne conna\u00eet que les adresses r\u00e9seaux du r\u00e9seau IP auquel elle appartient. Pour r\u00e9aliser le routage d&rsquo;un paquet, une passerelle examine l&rsquo;adresse destination du paquet, en extrait l&rsquo;adresse r\u00e9seau et liste sa table de routage pour trouver la ligne correspondante.<\/span><\/p>\n<p dir=\"ltr\"><span style=\"color: #663300;\">Sur cette ligne elle trouvera g\u00e9n\u00e9ralement un certain nombre d&rsquo;indications :<\/span><\/p>\n<ul>\n<li dir=\"ltr\"><span style=\"color: #663300;\"><strong>Source <\/strong>: indique comment la passerelle a appris la route (l&rsquo;adresse du r\u00e9seau destination). Il y a diff\u00e9rentes possibilit\u00e9s pour permettre \u00e0 une passerelle d&rsquo;avoir connaissance des r\u00e9seaux existants : la passerelle est <strong>directement connect\u00e9<\/strong> au r\u00e9seau physique associ\u00e9 au r\u00e9seau IP. Une de ses interfaces a donc une adresse machine personnelle dans ce r\u00e9seau, ce qui lui permet de d\u00e9tecter que le r\u00e9seau existe.<\/span><\/li>\n<li dir=\"ltr\"><span style=\"color: #663300;\">l&rsquo;administrateur du r\u00e9seau d&rsquo;interconnexion a <strong>d\u00e9clar\u00e9 manuellement l&rsquo;existence de ce r\u00e9seau<\/strong> dans la table de routage (on parle de routage <strong>statique<\/strong>).<\/span><\/li>\n<li dir=\"ltr\"><span style=\"color: #663300;\">un <strong>protocole de routage<\/strong> (RIP, IGRP, e-IGRP, OSPF, BGP4, etc&#8230;) existe entre les diff\u00e9rentes passerelles et leur permet de s&rsquo;\u00e9changer les adresses r\u00e9seaux que chacune connait. C&rsquo;est le <strong>routage dynamique<\/strong>. Nous reviendrons sur ces notions de routage avanc\u00e9es lors d&rsquo;un cours d\u00e9di\u00e9.<\/span><\/li>\n<li dir=\"ltr\"><span style=\"color: #663300;\"><strong>Adresse r\u00e9seau<\/strong> : indique l&rsquo;adresse (partie r\u00e9seau) du r\u00e9seau de destination<\/span><\/li>\n<li dir=\"ltr\"><span style=\"color: #663300;\"><strong>Adresse passerelle<\/strong> : si le r\u00e9seau n&rsquo;est pas directement connect\u00e9 \u00e0 la passerelle (sur une de ses interfaces), ce champ indique \u00e0 quelle passerelle il faut passer le paquet<\/span><\/li>\n<li dir=\"ltr\"><span style=\"color: #663300;\"><strong>Interface de sortie<\/strong> : indique sur quelle interface de la passerelle il faut envoyer le paquet pour lui permettre d&rsquo;atteindre la machine demand\u00e9e si le r\u00e9seau de destination est directement raccord\u00e9 \u00e0 la passerelle, ou pour atteindre la prochaine passerelle, si le r\u00e9seau de destination n&rsquo;est pas directement raccord\u00e9.<\/span><\/li>\n<\/ul>\n<p dir=\"ltr\"><span style=\"color: #663300;\">On trouvera \u00e9galement d&rsquo;autre champs comme un compteur indiquant depuis quand la passerelle conna\u00eet le r\u00e9seau, ou comme un indication de co\u00fbt de route, qui permet de choisir la route la plus rapide quand il existe plusieurs possibilit\u00e9s pour atteindre une destination.<\/span><\/p>\n<h2>Et le paquet de Jules ?<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-403 alignleft\" src=\"http:\/\/www.gatoux.com\/wp-content\/uploads\/2017\/04\/S2P8I4.gif\" alt=\"\" width=\"482\" height=\"326\" \/>Pour notre exemple, le paquet de Jules, \u00e9mis \u00e0 destination de 10.0.0.1 est analys\u00e9 par la passerelle comme \u00ab\u00a0\u00e0 destination du r\u00e9seau 10.0.0.0\u00a0\u00bb. La passerelle n&rsquo;est pas directement raccord\u00e9e au r\u00e9seau 10.0.0.0, elle n&rsquo;a pas dans sa table de r\u00e9seau 10.0.0.0 mais a une route par d\u00e9faut 0.0.0.0 via 14.0.0.1 (la passerelle X2). Cette passerelle est accessible par l&rsquo;interface S\u00e9rie2 de la passerelle X1 (<em>c&rsquo;est la table de routage qui le dit <\/em>!). X1 r\u00e9-encapsule le paquet IP dans une trame HDLC (protocole de niveau 2 du lien s\u00e9rie entre X1 et X2 !).<\/p>\n<p>X2 re\u00e7oit une trame sur son interface S\u00e9rie0. Comme c&rsquo;est un lien s\u00e9rie, toutes les trames qui arrivent sur ce lien lui sont forc\u00e9ment adress\u00e9es. Il r\u00e9cup\u00e8re donc le paquet IP plac\u00e9 \u00e0 l&rsquo;int\u00e9rieur et examine l&rsquo;adresse destination sur le m\u00eame algorithme que pr\u00e9sent\u00e9 pr\u00e9c\u00e9demment. Il en d\u00e9duit que le r\u00e9seau \u00e0 atteindre et le r\u00e9seau 10.0.0.0. Ce r\u00e9seau est d\u00e9crit dans sa table de routage, comme accessible par la passerelle 15.0.0.1 (X3) sur son interface Ethernet0. Il r\u00e9-encapsule le paquet dans une trame niveau 2 Ethernet, ayant pour adresse destination, l&rsquo;adresse niveau 2 de X3 (<em>je vous passe les d\u00e9tails sur la mani\u00e8re dont X2 a appris l&rsquo;adresse niveau 2 de X3, mais sachez qu&rsquo;ARP y est pour quelque chose<\/em> !).<\/p>\n<p>X3 re\u00e7oit une trame qui lui est adress\u00e9e sur son interface Ethernet2. Il examine son contenu (<em>Oh ! Joie ! Un paquet IP ! Merci X2<\/em> !). Il examine l&rsquo;adresse destination du paquet, en d\u00e9duit qu&rsquo;il est \u00e0 destination du r\u00e9seau 10.0.0.0. Surprise ! Son interface Ethernet0 est justement dans le r\u00e9seau 10.0.0.0 ! Comment le sait-il ? Parce que l&rsquo;adresse IP de son interface Ethernet0 est 10.0.0.254, d&rsquo;ailleurs dans sa table de routage il voit bien que 10.0.0.0 est annonc\u00e9 comme \u00ab\u00a0Connected\u00a0\u00bb sur son interface Ethernet0. Elle est donc dans le r\u00e9seau 10.0.0.0 ! Il sait donc que le serveur 10.0.0.1 se trouve quelque part sur ce r\u00e9seau Ethernet. Il va prendre le paquet IP et l&rsquo;encapsuler dans une trame Ethernet (<em>niveau 2, mais vous le savez non <\/em>?) \u00e0 destination du serveur Web 10.0.0.1 (<em>encore une fois, c&rsquo;est ARP qui aura indiqu\u00e9 au routeur quelle est l&rsquo;adresse niveau 2 du serveur<\/em> !).<\/p>\n<p>Le serveur re\u00e7oit donc une trame qui lui est adress\u00e9e, contenant un paquet IP qui lui est \u00e9galement adress\u00e9. On remonte donc dans les couches, on interpr\u00e8te le contenu du paquet IP, puis le serveur r\u00e9pond et on repart dans l&rsquo;autre sens &#8230; Mais vous en savez assez, maintenant, pour comprendre comment la r\u00e9ponse sera rout\u00e9e dans le r\u00e9seau. Examinez les tables de routage des routeurs sur le sch\u00e9ma !<\/p>\n<h2>Conclusion du chapitre<\/h2>\n<p>Pas trop d\u00e9rout\u00e9 par tout ce routage ? Vous commencez \u00e0 saisir la logique ?<\/p>\n<p>Retenez donc bien qu&rsquo;une passerelle route en examinant la partie r\u00e9seau d&rsquo;une adresse IP et pas la partie machine. Retenez \u00e9galement que le routage se fait de proche en proche :<\/p>\n<ul>\n<li>station vers passerelle de sortie (gateway default + ARP)<\/li>\n<li>puis de passerelle en passerelle (tables de routage + \u00e9ventuellement ARP)<\/li>\n<li>puis de derni\u00e8re passerelle \u00e0 station de destination (table de routage + ARP)<\/li>\n<\/ul>\n<p>Dans le chapitre pr\u00e9c\u00e9dent je vous ai pr\u00e9sent\u00e9 l&rsquo;adressage IP de base. Vous connaissez tout des 3 classes principales d&rsquo;adresses et des adresses sp\u00e9cifiques IP.<\/p>\n<p>Dans ce chapitre nous avons \u00e9tudi\u00e9 les bases du routage. Il est essentiel de maintenant comprendre comment d\u00e9finir un plan d&rsquo;adressage et quels sont les pi\u00e8ges !<\/p>\n<p>C&rsquo;est l&rsquo;objectif du chapitre suivant &#8230;<\/p>\n<h5 align=\"center\"><a href=\"http:\/\/www.gatoux.com\/index.php\/ladressage-ip\/\">Page Pr\u00e9c\u00e9dente<\/a> | <a href=\"http:\/\/www.gatoux.com\/index.php\/le-plan-dadressage\/\">Page suivante<\/a><\/h5>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le routage c&rsquo;est quoi ? La raison d&rsquo;\u00eatre d&rsquo;IP est bien d&rsquo;interconnecter des r\u00e9seaux physiques h\u00e9t\u00e9rog\u00e8nes ou non. Ce protocole de niveau 3 propose un format de paquets, un format d&rsquo;adressage et une logique d&rsquo;acheminement des paquets entre les r\u00e9seaux physiques. Cette derni\u00e8re fonction se nomme : Le routage Cette fonction est r\u00e9alis\u00e9e, g\u00e9n\u00e9ralement, par\u2026 <span class=\"read-more\"><a href=\"https:\/\/racine.gatoux.com\/lmdr\/index.php\/le-routage\/\">Lire la suite &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":23,"comment_status":"closed","ping_status":"closed","template":"page-templates\/full-width.php","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"class_list":["post-348","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/comments?post=348"}],"version-history":[{"count":5,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/348\/revisions"}],"predecessor-version":[{"id":432,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/348\/revisions\/432"}],"wp:attachment":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/media?parent=348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}