Articles

La Table de routage (Administration Réseau TCP/IP, 3ème Édition)

Accueil du livre

Précédent Suivant

2.4. La table de routage

Les passerelles routent les données entre les réseaux, mais tous les périphériques réseau, les hôtes ainsi que les passerelles, doivent prendre des décisions de routage. Pour les hôtes, les décisions de routage sont simples:

  • Si l’hôte de destination est sur le réseau local, les données sont livrées à l’hôte de destination.

  • Si l’hôte de destination se trouve sur un réseau distant, les données sont acheminées vers une passerelle locale.

Les décisions de routage IP sont simplement des recherches de table. Les paquets sont routés vers leurs destinations selon les instructions de la table de routage (également appelée table de transfert). La table de routage mappe les destinations vers l’interface réseau routerand que l’adresse IP doit utiliser pour atteindre cette destination.L’examen de la table de routage sur un système Linux le montre.

Sur un système Linux, utilisez la commande route avec l’option -noption pour afficher la table de routage. L’option -n empêche la conversion des adresses IP en noms d’utilisateur, ce qui donne un affichage plus clair. Voici une table de routage à partir d’un exemple de système Red Hat :

La commande Setstat est utilisée pour examiner la table de routage sur les systèmes Solaris 8. Un exemple de Solaris est traité plus loin dansce chapitre.

# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface172.16.55.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0172.16.50.0 172.16.55.36 255.255.255.0 UG 0 0 0 eth0127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo0.0.0.0 172.16.55.1 0.0.0.0 UG 0 0 0 eth0

Sur un système Linux, la commande route-ncommand affiche la table de routage avec les champs suivants :

Destination

La valeur contre qui correspond à l’adresse IP de destination.

Passerelle

Le routeur à utiliser pour atteindre la destination spécifiée.

Masque d’adresse

Masque d’adresse utilisé pour faire correspondre une adresse IP à la valeur affichée dans le champ de destination.

Drapeaux

Certaines caractéristiques de cet itinéraire.Les valeurs d’indicateur Linux possibles sont:

Les drapeaux R, M, C, I et ! sont spécifiques à Linux. Les autres indicateurs sont utilisés sur la plupart des systèmes Unix.

U

Indique que l’itinéraire est opérationnel et opérationnel.

H

Indique qu’il s’agit d’une route vers un hôte spécifique (la plupart des routes sont vers des réseaux).

G

Indique que la route utilise une passerelle externe. Les interfaces réseau du système fournissent des routes versréseaux directement connectés. Toutes les autres routes utilisent des passerelles externes.Les réseaux directement connectés n’ont pas le drapeau G défini; toutes les autres routes le font.

R

Indique une route qui a été installée, probablement par un protocole de routage dynamique exécuté sur ce système, en utilisant l’option thereinstate.

D

Indique que cette route a été ajoutée en raison d’un message de redirection ICMP. Lorsqu’un système apprend qu’un routevia une redirection ICMP, il ajoute la route à sa table de routage afin que les paquets supplémentaires liés à cette destination n’aient pas besoin d’être redirigés. Le système utilise l’indicateur D pour marquer ces routes.

M

Indique une route qui a été modifiée, probablement par un protocole de routage adynamique exécuté sur ce système, en utilisant l’option themod.

A

Indique une route mise en cache qui a une associatedentry dans la table ARP.

C

Indique que cette route provient du cache kernelrouting. La plupart des systèmes utilisent deux tables de routage : la ForwardingInformation Base (FIB), qui est la table qui nous intéresse car elle est utilisée pour la décision de routage, et le kernel routingcache, qui répertorie la source et la destination des routes récemment utilisées. Cet indicateur est documenté, mais je n’ai jamais vu l’indicateur C dans une liste de table de routage, même lors de la liste du cache de routage.

L

Indique que la destination de cetteroute est l’une des adresses de cet ordinateur. Ces  » routes locales  » se trouvent uniquement dans le cache de routage.

B

Indique une route dont la destination est une adresse de diffusion. Ces « routes de diffusion » se trouvent uniquement dans le cache de routage. Solaris attribue l’indicateur aux adresses de diffusion et aux adresses réseau ; c’est-à-dire que 172.16.255.255 et 172.16.0.0 sont tous deux dotés de l’indicateur B par les systèmes Solaris qui vivent sur le réseau172.16.0.0/16.

I

Indique une route qui utilise l’interface de bouclage à d’autres fins que l’adressage du réseau de bouclage. Ces  » routes internes  » se trouvent uniquement dans le cache de routage.

!

Indique que les datagrammes liés à cette destination seront rejetés. Linux vous permet d’installer manuellement des routes  » négatives « . Ce sont des routes qui bloquent explicitement les données liées à une destination spécifique. Ceci est spécifique à Linux etrarement utilisé, mais c’est un paramètre de drapeau possible.

Metric

Le « coût » de l’itinéraire. La métrique est utilisée pourcourter les routes en double si elles apparaissent dans le tableau. Au-delà de cela, un protocole de routage adynamique est requis pour utiliser la métrique.

Ref

Le nombre de fois où la route a été référencée pour établir une connexion. Cette valeur n’est pas utilisée par les systèmes Linux.

Utilisez

Le nombre de fois que cette route a été consultée par IP.

Iface

Nom de l’interface réseau utilisée par cette route.

L’interface réseau est le matériel et le logiciel d’accès au réseau qu’IP utilise pour communiquer avec le réseau physique. Voir Chapitre 6, « Configuration de l’interface » pourdétails.

Chaque entrée de la table de routage commence par une valeur d’adestination. La valeur de destination est la clé par rapport à laquelle l’adresse IP est mise en correspondance pour déterminer si c’est la route correcte à utiliser pour atteindre l’adresse IP. La valeur de destination est généralement appelée « réseau de destination », bien qu’il ne soit pas nécessaire qu’il s’agisse d’une adresse réseau. La valeur de destination peut être une adresse d’hôte, une adresse de multidiffusion, un bloc d’adresses qui couvre une agrégation de nombreux réseaux, ou une valeur spéciale pour l’adresse de route ou de bouclage par défaut. Dans tous les cas, cependant, le champ de destination contient la valeur par rapport à laquelle l’adresse de destination du paquet IP est mise en correspondance pour déterminer si ifIP doit fournir le datagramme en utilisant cette route.

Le champ Genmask est le masque de bits qu’IP applique à l’adresse de destination du paquet pour voir si l’adresse correspond à la valeur de destination dans la table. Si un bit est activé dans le masque de bits, le bit correspondant dans l’adresse de destination est un formatage significatif de l’adresse. Ainsi, l’adresse 172.16.50.183 correspondrait à la deuxième entrée dans le tableau d’échantillon car l’adresse est 255.55.255.0 donne 172.16.50.0.

Lorsqu’une adresse correspond à une entrée de la table, le champ Gatewayfield indique à l’adresse IP comment atteindre la destination spécifiée. Si le champ Passerelle contient l’adresse IP d’arouter, le routeur est utilisé. Si le champ Passerelle contient tous les 0 (0.0.0.0 lorsque la route est exécutée avec -n) ou un astérisque (* lorsque la route est exécutée sans -n), le réseau de destination est un réseau directement connecté et la « passerelle » est l’interface réseau de l’ordinateur. Le dernier champ affiché pour chaque entrée de table est l’interface réseau utilisée pour la route. Dans l’exemple, il s’agit soit de la première interface Ethernetinterface (eth0), soit de l’interface de bouclage (lo). La destination, la passerelle, le masque et l’interface définissent l’itinéraire.

Les quatre champs restants (Ref, Use, Flags et Metric) affichent des informations de support sur l’itinéraire. Ces champs d’information n’ont qu’une valeur marginale. Certains systèmes gardent un compte précis dans le champ Ref; d’autres, comme Linux, ne l’utilisent pas vraiment. Linux utilise le champ d’utilisation pour compter le nombre de fois où aroute devait être consultée car elle n’était pas dans le cache de routage lorsque l’IP en avait besoin. Certains autres systèmes affichent le nombre de packetstransmis via la route dans le champ d’utilisation. Le champ de drapeaux affiche des informations souvent évidentes même sans les drapeaux : chaque route a le drapeau U défini, car chaque route de la table de routage est par définition en place, et en regardant le champ de passerelle vous indique si un chemin de passerelle externe est utilisé ou non sans rechercher le drapeau G. La valeur Metric n’est utilisée que si vous exécutez une version du protocole RIP (RoutingInformation Protocol) sur votre système. Ne vous laissez pas distraire par cette information. Le cœur de la table de routage est la route, qui est composée de la destination, du masque, de la passerelle et de l’interface.

IP utilise les informations de la table de routage (la table de transfert) pour construire les routes utilisées pour les connexions actives. Les routesassociées aux connexions actives sont stockées dans le routingcache. Sur les systèmes Linux, le cache de routage peut être examiné en ajoutant l’argument -C à la ligne de commande route:

$ route -CnKernel IP routing cacheSource Destination Gateway Flags Metric Ref Use Iface127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 0 lo192.203.230.10 172.16.55.3 172.16.55.3 l 0 0 0 lo172.16.55.1 172.16.55.255 172.16.55.255 ibl 0 0 243 lo172.16.55.2 172.16.55.255 172.16.55.255 ibl 0 0 15 lo172.16.55.3 192.203.230.10 172.16.55.1 0 0 0 eth0127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 0 lo172.16.55.3 132.163.4.9 172.16.55.1 0 0 0 eth0172.16.55.2 172.16.55.3 172.16.55.3 il 0 0 149 lo172.16.55.3 172.16.55.2 172.16.55.2 0 1 0 eth0132.163.4.9 172.16.55.3 172.16.55.3 l 0 0 0 lo

Le cache de routage est différent de la table de routage car le cache affiche les routes établies. La table de routage est utilisée pour prendre des décisions de routage ; le cache de routage est utilisé après la prise de décision. Le cache de routage affiche la source et la destination d’une connexion réseau ainsi que le chemin et l’interface utilisés pour établir cette connexion.

Linux fournit un bon exemple pour afficher le contenu de la table de routage car la commande de route Linux affiche la table si clairement. Sur les systèmes Solaris, la commande route a une syntaxe très différente. Lors de l’exécution de Solaris, affichez le contenu de la table de routage avec la commande setstat-nrcommand. L’option -r indique à netstat d’afficher la table de routage, et l’option -n indique à netstat d’afficher la table sous forme numérique.

Linux intègre les informations de masque d’adresse dans l’affichage de la table de routage. Solaris 8 prend en charge les masques d’adresses ; il ne les affiche tout simplement pas lors de l’affichage de la table de routage.

% netstat -nr Routing Table: IPv4 Destination Gateway Flags Ref Use Interface ----------- ----------- ----- ---- ----- --------- 127.0.0.1 127.0.0.1 UH 1 298 lo0 default 172.16.12.1 UG 2 50360 172.16.12.0 172.16.12.2 U 40 111379 dnet0 172.16.2.0 172.16.12.3 UG 4 1179 172.16.1.0 172.16.12.3 UG 10 1113 172.16.3.0 172.16.12.3 UG 2 1379 172.16.4.0 172.16.12.3 UG 4 1119

La première entrée de la table est l’itinéraire de bouclage pour l’hôte local. Il s’agit de l’adresse loopbackaddress mentionnée précédemment en tant que numéro de réseau réservé. Parce qu’everysystem utilise la route de bouclage pour envoyer des datagrammes à lui-même, une entrée pour l’interface de bouclage se trouve dans la table de routage de chaque hôte.L’indicateur H est défini car Solaris crée une route vers un hôte spécifique (127.0.0.1), pas une route vers un réseau entier (127.0.0.0).Nous verrons à nouveau la fonction de bouclage lorsque nous discuterons de kernelconfiguration et de la commande ifconfig. Pour l’instant, cependant, notre véritable intérêt réside dans les itinéraires extérieurs.

Une autre entrée unique dans cette table de routage est celle avec le mot « par défaut » dans le champ de destination. Cette entrée est pour la route par défaut, et la passerelle spécifiée dans cette entrée est la passerelle par défaut. La route par défaut est l’autre numéro de réseau conservé mentionné précédemment : 0.0.0.0. Le defaultgateway est utilisé chaque fois qu’il n’y a pas de route spécifique dans la table pour une adresse réseau de destination. Par exemple, cette table de routage n’a pas d’entrée pour le réseau 192.168.16.0. Si IP reçoit des datagrammes adressés à ce réseau, il les enverra via la passerelle par défaut172.16.12.1.

Toutes les passerelles qui apparaissent dans la table de routage sont sur des réseaux directement connectés au système local. Dans l’exemple illustré ci-dessus, cela signifie que les adresses de passerelle commencent toutes par 172.16.12 quelle que soit l’adresse de destination. C’est le seul réseau auquel cet hôte échantillon est directement attaché, et c’est donc le seul réseau auquel il peut fournir directement des données. Les passerelles que l’hôte utilise pour atteindre le reste d’Internet doivent se trouver sur son sous-réseau.

Dans la figure 2-4, la couche IP de deux hôtes et agateway sur notre réseau imaginaire est remplacée par un petit morceau de table d’arouting, montrant les réseaux de destination et les passerelles utilisées pour atteindre ces destinations. Supposons que le masque d’adresse utilisé pourréseau 172.16.0.0 est 255.255.255.0. Lorsque l’hôte source (172.16.12.2) envoie des données à l’hôte de destination (172.16.1.2), il applique le masque d’adresse pour déterminer qu’il doit rechercher l’adresse réseau de destination 172.16.1.0 dans la table de routage. La table de routage dans l’hôte source montre que les données liées à 172.16.1.0 sont envoyées à la passerelle 172.16.12.3. L’hôte source transmet le pack à la passerelle. La passerelle effectue les mêmes étapes et recherche l’adresse de destination dans sa table de routage. La passerelle 172.16.12.3 effectue ensuite une livraison directe via son interface 172.16.1.5. L’examen des tableaux de routage de la figure 2-4 montre que tous les systèmes ne répertorient que les passerelles sur les réseaux auxquels ils sont directement connectés.Ceci est illustré par le fait que 172.16.12.1 est la voie par défaut pour 172.16.12.2 et 172.16.12.3, mais parce que 172.16.1.2ne peut pas atteindre directement le réseau 172.16.12.0, il a une route par défaut différente.

Figure 2-4

Figure 2-4. Routage basé sur une table

Une table de routage ne contient pas d’itinéraires de bout en bout. Un itinéraire ne pointe que vers la voie d’accès suivante, appelée le prochain saut, le long du chemin menant au réseau de destination. Le hostrelies sur la passerelle locale pour fournir les données, et le gatewayrelies sur d’autres passerelles. Au fur et à mesure qu’un datagramme passe d’une passerelle à une autre, il devrait éventuellement atteindre une passerelle directement connectée à son réseau de destination. C’est cette dernière passerelle qui finalementlivre les données à l’hôte de destination.

Comme nous le verrons au chapitre 7, « Configuration du routage », certains protocoles de routage, tels que OSPF et BGP, obtiennent des informations de routage de bout en bout. Néanmoins, le paquet estencore passé au routeur suivant.

IP utilise la partie réseau de l’adresse pour acheminer les données entre les réseaux. L’adresse complète, y compris les informations sur l’hôte, est utilisée pour effectuer la livraison finale lorsque le datagramme atteint le réseau de destination.

Previous Home Next
2.3. Internet Routing Architecture Book Index 2.5. Address Resolution

Library Navigation Links

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *