Adressage et Routage (10/5/01)


" Un nom précise ce que nous recherchons,
l'adresse, sa localisation,
la route, le moyen d'y accéder. "
(RFC 791)



Comment identifier une machine ?

Une machine (appelée aussi hôte ou host) est identifiée dans l'Internet par son adresse. Comme un téléphone a un numéro, l'adresse Internet d'une machine correspond aussi à un numéro, qui est unique dans le monde.

Pour des raisons mnémoniques, il est possible de donner un nom à une machine (ex. Toto, Garonne, Mimosa...). Attention, ce nom n'est pas compris par le réseau pour le routage. Certains hôtes ont plusieurs noms.

Animation Flash
Espace Intranet

Quelle est la structure de l'adresse IP ?

L'adresse utilisée par le protocole IP (adresse IP), comporte deux champs: le champ adresse réseau (Network) dans l'Internet et le champ adresse hôte (host) dans le réseau. Sa taille est de quatre octets. Elle est souvent donnée en notation décimale pointée (ex: 127.95.35.54).

Trois Classes d'adresses ont été définies:

Ainsi, les adresses de classe A ont leur premier octet compris entre 0 et 127, les adresses de classe B entre 128 et 191 et les adresses de classe C entre 192 et 223.
Les adresses qui ont leur octet supérieur à 223 sont des adresses spéciales qui ne désignent pas une machine. C'est la classe D pour gérer des groupes d'hôtes et mettre en place le multicast.

Une nouvelle version de IP (IPv6 pour IP version 6 ou IPng pour IP Next Generation) définit les adresses sur 128 bits au lieu de 32 de façon à pouvoir gérer un plus grand nombre d'adresses et de niveaux hiérarchiques d'adresses.

Comme l'adresse IP contient l'adresse réseau, une station changeant de réseau change d'adresse. D'autre part, une station multidomiciliée ou un routeur a plusieurs adresses.

L'adresse réseau est donnée par un organisme officiel ( le NIC) garantissant l'unicité de cette adresse. Le champ adresse hôte est donné par l'administrateur réseau.

Animation Flash
Espace Intranet

Quelle est la structure du nom ?

Pour pouvoir donner un nom sans ambiguité, un système de noms par domaine a été développé: le DNS (Domain Name System). Un nom se compose de plusieurs parties séparées par un point (ex. cix.cict.fr). En effet, c'est un nom hiérarchique. Il se lit de droite à gauche.

Le champ le plus à droite indique le nom de la zone, puis nous avons le nom de domaine et enfin le nom de la machine.

ex. asterix.ups-tlse.fr; aurore.cict.fr;

Le nom de zone peut être soit le nom du pays de rattachement (en deux lettres) soit le nom d'une catégorie d'utilisateurs (en trois lettres) souvent localisée aux Etats-Unis.

Les noms de zones en trois lettres correspondent à :
com entités commerciales edu institutions éducatives (Universités);
gov agences gouvernementales (exemple la NASA) (uniquement USA)
mil entités militaires (uniquement USA)
net entités qui gèrent l’Internet
org organisations bénévoles
int organisations internationales

Un organisme (gTLD-MoU : Generic Top Level Domain-Memorandum Of Understanding) se propose de rajouter les noms suivants :
firm pour les sociétés store pour les sociétés marchandes
web pour les entités spécialisées dans des activités liées au World Wide Web
arts pour les entités culturelles
rec pour les entités spécialisées dans les activités de loisir
info pour les entités qui fournissent de l’information
name pour les individus

Le nom peut être utilisé complet en partant de la racine de l'arborescence, il est dit FQDN (Fully Qualified Domain Name) ou par sa partie locale si l'application qui l'utilise est lancée du même domaine. La similitude peut être faite avec le Système de Fichiers. Ainsi si la machine asterix veut contacter la machine obelix qui est dans le même domaine (ups-tlse.fr), elle peut utiliser la partie locale et non pas le FQDN.


Les applications réseau utilisent-elles les adresses ou les noms ?

Les applications (ftp, telnet...) utilisent aussi bien les adresses que les noms .


Qui choisit les noms ?

Vu que le nommage est hiérarchique, la responsabilité du choix des noms incombe au responsable du domaine. Ainsi, le NIC aux Etats-Unis est responsable du domaine mondial; le NIC a délégué le RIPE-NCC pour l'Europe qui a délégué en France l'INRIA. Le gérant d'un domaine est responsable des noms qui lui sont directement rattachés et de la désignation des gérants de ces nouveaux domaines.


Quelles sont les règles relatives au nom du domaine ?

63 caractères max (!!!), {A-Z, a-z, 0-9, -}; Le nom commence par une lettre. (cf. RFC 1032)


Deux machines appartenant au même domaine doivent-elles être sur le même réseau physique ?

Pas du tout. Si l'adresse IP indique effectivement si les deux machines sont sur le même réseau, deux machines peuvent appartenir au même domaine sans qu'elles soient sur le même réseau physique.


Comment s'effectue la correspondance entre le nom et l'adresse IP ?

Toutefois le routage IP, étant basé sur l'adresse IP, une correspondance doit être effectué entre le nom et l'adresse (appelé résolution de nom). Ceci est réalisé soit à travers un fichier " hosts " local, soit à travers un serveur de noms (qui gère un annuaire) auquel on envoie une requête de demande d'adresse IP.


En quoi consiste le fichier " hosts " ?

C'est un fichier texte associant les adresses IP aux noms. Sur les systèmes UNIX, c'est le fichier " /etc/hosts ". La mise à jour se fait manuellement. L'adresse 127.0.0.1 est une adresse spéciale de bouclage de l'hôte local.


Comment fonctionne le Serveur de Noms ?

Le serveur de noms est une machine gérant un annuaire. Pour que le service soit efficace, le système d'annuaire est distribué. Si le serveur de noms ne trouve pas la correspondance, il transmet la demande à un serveur autorisé.

Pour améliorer les performances, un système de cache (mémorisant les résolutions précédentes) est mis en place permettant d'éviter au maximum le traffic.


Le système de noms peut-il être utilisé pour d'autres associations ?

Oui, pour les noms utilisés par le courrier électronique; pour les noms canoniques de domaine pour un alias...

Ainsi la syntaxe login@domaine est la syntaxe pour le courrier électronique (aoun@mailhost.irit.fr ou aoun@irit.fr).

Plusieurs noms peuvent être attribués à une même adresse IP c'est ce qu'on appelle des alias. Par exemple, le nom www.cict.fr est un alias pour la machine aurore.cict.fr. On parle aussi de nom canonique (aurore.cict.fr est le nom canonique pour www.cict.fr).


Quel est le service offert par la couche Internet ?

Le service offert par la couche Internet (via le protocole IP entre les entités communicantes) est l'acheminement des paquets d'une station connectée au réseau à une autre station. C'est un service sans connexion appelé aussi datagramme. Chaque paquet (appelé communémént datagramme IP) est traité individuellement et routé par une stratégie de routage préalablement définie.

Animation Flash
Espace Intranet

Le principal avantage est l'adaptation rapide au traffic et différents problèmes qui peuvent survenir dans un réseau (équipement en panne, saturation...).

Le principal inconvénient de ce service est le risque d'arrivée dans le désordre des différents paquets d'une communication.

Animation Flash
Espace Intranet

Que contient une table de routage ?

Une table de routage contient l'adresse du destinataire à atteindre (adresse de station, adresse d'un réseau) et le prochain équipement (next hop) à atteindre. Une route par défaut est toujours prévue

Le routage est principalement réalisé par deux types d'équipements réseaux. Les stations ne possédant en général qu'une seule interface réseaux et les routeurs qui possèdent plusieurs interfaces réseaux et qui gèrent la connexion entre deux ou plusieurs réseaux. De plus, des stations peuvent posséder plusieurs cartes réseaux et peuvent même dans certains cas être utilisées comme des routeurs (la différence est que dans ce dernier cas, la station peut renvoyer, sur une interface réseau, un datagramme IP reçu par une autre de ces interfaces).

Le routage IP est effectué sur la base du saut à saut. En effet, IP ne connaît pas, en général, la route complète entre deux machines (excepté si les deux machines sont sur le même réseau). La seule information fournie par le routage est l'adresse IP du routeur de saut suivant vers lequel le datagramme doit être envoyé.

Une table de routage contient plusieurs champs qui peuvent être examinés grâce à la commande /usr/etc/netstat -rn ou /usr/etc/netstat -r (pour garder la résolution des noms active).

Pour chaque ligne, l'affichage présente :
· une adresse IP de destination. Ceci peut être soit une adresse de machine complète (exemple 192.70.79.39), soit une adresse de réseau (exemple 192.93.4) ou encore default. Une adresse de réseau inclut un identificateur de machine (host id.) nul (qui n'est pas affiché par netstat) et identifie toutes les machines connectées au réseau (exemple Ethernet, ATM, FDDI, Token-ring...). L'entrée default est utilisée lorsque aucune autre entrée ne peut être utilisée.
· L'adresse IP du routeur de saut suivant ou l'adresse IP d'un réseau connecté directement. Un routeur de saut suivant est directement connecté à la machine (via un réseau) et on peut ainsi lui envoyer les datagrammes à transmettre. Ce routeur retransmettra ensuite les datagrammes vers leur destination finale.
· Des flags (valeurs booléennes). Le flag U (up) indique que la route est active. Le flag G (gateway) indique que l'équipement de saut suivant est un routeur. Si ce flag n'est pas positionné, la destination est directement connectée. Le flag H (host) indique que l'équipement de saut suivant est une machine directement connectée sinon c'est un réseau. Le flag D indique que la route a été créée par une redirection et le flag M, qu'elle a été modifiée par une redirection (les redirections sont des messages d'erreur de routage).
· Le nom de l'interface réseau à laquelle le datagramme doit être passé pour être transmis.

Pour router un datagramme IP, les opérations suivantes sont effectuées dans l'ordre jusqu'à ce que l'une d'entre elles aboutisse ou que l'on détermine que l'adresse de destination soit inaccessible.

1. On recherche dans la table de routage une entrée correspondant exactement à l'adresse IP de destination (identificateur réseau + identificateur de machine). Si cette entrée est trouvée, on regarde le second champ. S'il correspond à une adresse IP de routeur (flag G positionné) on envoie le datagramme au routeur. Sinon on envoie directement le datagramme à la machine de destination en utilisant l'interface réseau qui est précisée dans le dernier champ de la table.
2. On recherche dans la table une entrée correspondant exactement à l'identificateur du réseau de destination. Si l'adresse est localisée on envoie le paquet au routeur suivant (flag G positionné) ou à l'interface directement connectée. Cette unique entrée gère toutes les machines connectées à un même réseau ce qui permet de raccourcir notablement les tables de routage.
3. On recherche dans la table une entrée dénommée default. Si elle est trouvée, on envoie le paquet au routeur de saut suivant indiqué dans le deuxième champ.


Comment sont établies les tables de routage ?

Les stratégies de routage sont:

- statiques: la mise à jour des tables de routage est établie par les administrateurs des différents équipements de l'Internet (Stations, passerelles...);
- dynamiques: la mise à jour est faite automatiquement en fonction de mesures de traffic; Les différents équipement peuvent s'échanger des informations de routage.

Il est recommandé un routage statique pour les stations et un routage dynamique pour les routeurs. Il va de soi qu'un équipement a besoin d'une stratégie de routage s'il a deux adresses IP au moins.


Quels sont les protocoles de routage ?

Différents protocoles de routage existent selon les techniques utilisées: RIP, OSPF, IGRP, EGP, BGP...


Comment avoir des renseignements sur l'état de la ligne (fiabilité et temps de transmission) ?

L'utilitaire Ping qui envoie un paquet d'écho donne des éléments intéressants qui aident au diagnostic.

Ping est la contraction de " Packet Internet Groper " (to grope signifie tâtonner en anglais). C'est un programme qui permet de vérifier qu'une machine est accessible (directement ou indirectement) à partir de la machine courante. Le programme envoie une requête ICMP echo en direction d'une machine donnée et attend une réponse ICMP echo.

Si une machine ne répond pas au ping on peut être quasiment sûr qu'on ne pourra pas dialoguer avec elle (sauf si cette machine est configurée pour refuser les ping). Inversement, si on a des problèmes pour dialoguer avec une machine, ping peut être utilisé pour tenter de diagnostiquer le problème. Ping mesure, de plus, le temps d'aller-retour vers une machine, nous donnant ainsi des informations sur l'éloignement de cette dernière.


Ping peut aussi être utilisé soit avec des noms soit avec des adresses IP. Dans le 1er cas, il y a résolution du nom grâce au DNS. Il y a des options. Par ex: une option -r qui permet d'enregistrer la route suivie par le paquet pour ensuite l'afficher ou - a qui donne le nom d'une machine quand on utilise l'adresse IP.


Comment connaître le chemin entre deux points du réseau ?

L'utilitaire Traceroute donne des indications sur le chemin entre deux points du réseau.

La sortie de traceroute indique le nom et l'adresse IP de chacun des routeurs traversés ainsi que trois durées indiquant le temps d'aller retour pris par trois paquets sondes différents pour accéder aux routeurs (la moyenne de ces trois temps permet d'obtenir une indication du temps de traversée du réseau). Lorsqu'un astérisque remplace un temps, cela signifie qu'aucune réponse n'a été reçue pour cette sonde.

La version Unix de Traceroute permet aussi de connaître la route existante entre deux machines quelconques en lui indiquant de transiter obligatoirement par une autre machine. Par exemple la commande suivante permet de connaître la route suivie par les paquets envoyés par la machine tgv.edu.ups-tlse.fr vers la machine corail.cict.fr en plus de la route permettant d'atteindre la machine tgv à partir de corail.

Cet exemple est intéressant car il montre que le routage peut être asymétrique. En effet, la route allant de corail à tgv passe par exemple par le routeur : rtrens1.cict.fr alors que la route inverse passe par le routeur 194.199.56.1.

Dans certains cas, on peut obtenir des erreurs de routage. L'exemple suivant montre que l'on ne peut pas atteindre la machine corail.cict.fr à partir de la machine www.ensica.fr. Cette erreur est probablement due aux protections du domaine ensica.fr puisqu'on peut réellement atteindre corail.cict.fr depuis www.ensica.fr.

Remarque : l'affichage !S indique une erreur du type " source route failed ".


Comment rechercher des informations sur les machines et les domaines ?

Pour rechercher des informations sur les machines et les domaines on peut aussi utiliser la base de données whois.

Elle est accessible sur le WWW aux URLs suivantes :

http://www.arin.net/whois pour les Etats-Unis et une grande partie du monde.
http://www.nic.mil/dodnic pour les machines militaires américaines.
http://www.ripe.net/cgi-bin/whois pour les machines européennes.
http://www.apnic.net pour l'Asie et le Pacifique.


Hautes Technologies en Télécommunications et Réseaux
HTTR
Tous droits réservés
© 2001 Université Paul Sabatier (Toulouse III)
André Aoun - Jacques Chabert -
Michel Jacob - Patrice Torguet