Exercice routage des datagrammes IP

Routage dans un internet

L'un des objectifs du protocole IP est de constituer un réseau virtuel qui achemine les datagrammes en mode non connecté. L'acheminement des datagrammes peut devenir très complexe, notamment entre des hôtes connectés au travers de plusieurs réseaux. Cet acheminement est appelé routage IP.
La décision de routage, c'est-à-dire le choix d'une route, se fait à chaque noeud traversé. Typiquement, la première décision de routage est prise au niveau de la station émettrice, puis au niveau de chaque routeur, qui a pour fonction d'interconnecter deux ou plusieurs réseaux physiques. 
ARP. B reçoit la trame directement. Dans ce cas, aucun routeur n'intervient dans l'acheminement du datagramme.
Tout le problème pour A est de savoir que B est sur le même réseau (et sous-réseau). Pour cela, il lui suffit de comparer les numéros de réseau des deux adresses IP (A et B). La station A extrait donc le numéro de réseau de l'adresse IP de B et le compare avec le sien. Si le numéro de réseau est le même, alors B est sur le même réseau.
L'extraction du numéro de réseau de B se fait à l'aide d'un ET LOGIQUE entre l'adresse IP de B et le masque de sous-réseau défini sur A. De cette façon, dans le cas où des sous-réseaux ont été définis, la comparaison porte sur le numéro de réseau et le numéro de sous-réseau. Il faut être conscient que A n'a pas connaissance du masque de sous-réseau de B.
Exemple: Adresse IP de A : 160.16.2.16, masque de sous réseau de A : 255.255.0.0 Adresse IP de B : 160.16.2.17.
              160. 16.  2. 16            160. 16.  3. 17
         ET   255.255.  0.  0       ET   255.255.  0.  0
         --------------------       --------------------
              160. 16.  0.  0            160. 16.  0.  0

             Les numéros de réseaux sont identiques

Remise indirecte

Si les résultats du ET LOGIQUE sont différents, cela signifie que B n'est pas sur le même réseau. Exemple: Adresse IP de A : 160.16.2.16, masque de sous réseau de A : 255.255.255.0 Adresse IP de B : 160.16.2.17.
            160. 16.  2. 16             160. 16.  3. 17
        ET  255.255.255.  0         ET  255.255.255.  0	
        --------------------        --------------------
            160. 16.  2.  0             160. 16.  3.  0

      Les numéros de réseaux et sous-réseaux sont différents

Dans ce cas, A doit identifier un routeur vers lequel envoyer le datagramme. En général, chaque hôte dispose au moins de l'adresse IP d'un routeur sur son réseau. Dans le cas contraire, le datagramme ne peut être envoyer et A retourne un message de type "Destination Host Unreachable".

A doit donc envoyer le datagramme au routeur R. Elle connaît l'adresse IP de R, mais a besoin de son adresse physique @R. Elle recherche donc dans son cache ARP puis effectue si nécessaire une requête ARP sur le réseau. Elle envoie enfin le datagramme à destination de IP (B) dans une trame à destination du routeur.

924-1

Chaque routeur doit également déterminer pour chaque datagramme reçu, le numéro de réseau du destinataire, par la même opération, et choisir la destination en conséquence. Le datagramme est toujours adressé de IP (A) vers IP(B) mais dans les trames des réseaux traversés entre les adresses physiques des routeurs intermédiaires.


924-2

Enfin, le dernier routeur reconnaît dans l'adresse IP de B, un numéro de réseau sur lequel il est connecté (il possède une adresse IP sur ce réseau). Il peut donc acheminer le datagramme directement vers B, après avoir récupéré l'adresse physique de B à l'aide d'ARP.

924-3

Pour faire communiquer les deux sous-réseaux de l'exercice précédent, on définit une passerelle permettant de router les datagrammes d'un réseau vers l'autre.
  1. La liste des routes définies pour votre station s'obtient avec la commande
    route
    Quelles sont les routes définies ?
  2. Sur quel réseau physique doit se trouver une passerelle permettant de relier les deux réseaux IP ?
  3. Ajoutez une route par défaut pour permettre à votre station d'envoyer des datagrammes IP à une station qui n'est pas dans votre sous-réseau à l'aide de la commande
    route add default gw ADRESSE_IP
    où ADRESSE_IP est l'adresse IP de la passerelle permettant de joindre l'autre sous-réseau. (On peut avoir deux passerelles différentes, une pour aller de A vers B et une autre pour aller de B vers A).
  4. Essayez de joindre une station de l'autre sous-réseau avec la commande ping.
  5. Exécutez la commande
    ping ADRESSE
    où ADRESSE est l'adresse de broadcast de l'autre réseau
  6. Quelles sont les adresses qui répondent ?