CentraleSupélecDépartement informatique
Plateau de Moulon
3 rue Joliot-Curie
F-91192 Gif-sur-Yvette cedex
1CC1000 - Systèmes d'Information et Programmation - TD: Réseaux

Table of contents

1. Internet depuis notre point de vue

Dans un terminal, la commande ifconfig (sous macOS), ou ipconfig (sous Windows, en utilisant PowerShell comme terminal), permet d'obtenir les interfaces réseaux disponibles sur votre machine. Vous pouvez en avoir plusieurs. Les interfaces notés loX (où X est un entier) correspondent aux boucles locales, en particulier la boucle 127.0.0.1.

Vous pouvez avoir les interfaces ethernet enX (sur OSX) ou ethX (sur Windows). Cela peut correspondre à des interfaces filaires ou wifi.

Identifiez l'adresse IP principale de votre machine. Vous pouvez vérifier cette information en utilisant le programme de configuration de votre système d'exploitation (OS).


ANSWER ELEMENTS

Ouvrez les préférences de votre système d'exploitation et sélectionnez la configuration réseau.


 

La commande ping vous permet d'envoyer une requête à un serveur afin de savoir si celui-ci est actif et de déterminer le "round-trip time" (le temps que met un message à arriver à destination et la réponse à revenir à la source). Certains serveurs, pour des raisons de sécurité, ne répondent pas au ping.

Testez les serveurs suivants. Que concluez vous ?

  • paris-saclay.fr
  • www.mcgill.ca
  • web.aiu.ac.jp

ANSWER ELEMENTS

Déjà, plus on est loin, plus il semble que l’on prenne de temps. Par contre ce temps est très grand par rapport à la vitesse de propagation du signal. 200ms de RTT pour l’université à Tokyo, alors qu’à la vitesse de la lumière on fait l’aller/retour en 8ms. La raison en est que les paquets IP passent par plusieurs routeurs, chaque routeur traitant un grand nombre de paquets et ayant besoin d'un certain temps pour le faire. Par conséquent, un paquet peut rester un certain temps dans la mémoire tampon de certains routeurs.

Mise à jour 2024 : le ping sur web.aiu.ac.jp est en fait réalisé sur le réseau de diffusions de contenu d'Amazon (CloudFront), donc le RTT n'est que de quelques ms. Vous pouvez essayer de faire un ping sur www.u-toyama.ac.jp qui ne semble pas utiliser un tel système.


 

Réalisez la même expérience pour les serveurs suivants. Que concluez-vous ?

  • google.fr
  • google.ca
  • google.jp

ANSWER ELEMENTS

Le RTT est peut ou prou toujours le même et il est très court. Si nous examinons les adresses IP dans la réponse ping, nous constatons qu'elles renvoient toujours à des serveurs basés aux États-Unis.

Mise à jour 2024 : localiser précisément une machine à partir d'une adresse IP n'est pas toujours possible. Vous pouvez consulter différentes réponses par exemple sur iplocation.


 

La commande traceroute (sous macOS), ou tracert (sous Windows, en utilisant PowerShell comme terminal), permet de déterminer les points de passage d'un message ping envoyé entre votre machine et un serveur. Notez que certains serveurs intermédiaires ne répondent pas. Testez la commande pour les chemins suivants.

  • paris-saclay.fr
  • www.mcgill.ca
  • web.aiu.ac.jp

Puis pour les destinations suivantes.

  • google.fr
  • google.ca
  • google.jp

ANSWER ELEMENTS

Pour les universités, on devrait voir un chemin passant par le réseau CentraleSupélec, RENATER, et éventuellement GEANT. Notez que pour un certain nombre de sauts, vous pouvez obtenir plusieurs adresses IP. La raison en est que Traceroute envoie plusieurs paquets, et que certains d'entre eux peuvent suivre des chemins différents. En ce qui concerne les adresses Google, nous constatons que les paquets atteignent toujours des endroits proches, ils n'atteignent certainement pas le Japon ni le Canada.


 

2. Routage

On considère le réseau suivant et ses tables de routages.

Quels sont les chemins (aller/retour) pris par les paquets pour un ping de A vers G ?


ANSWER ELEMENTS

De A à G : A, R1, R2, R4, R5, G. De G à A : G, R5, R3, R2, R1, A.

Les deux chemins ne sont pas identiques, mais cela ne pose aucun problème ; c'est normal dans les réseaux informatiques.


 

Quels sont les chemins (aller/retour) pris par les paquets pour un ping de G vers C ?


ANSWER ELEMENTS

Les paquets tournent en boucle dans le réseau sans atteindre leur destination. Les paquets IP sont associés à un TTL ("Time-to-live"), un compteur qui est décrémenté à chaque fois qu'un paquet transite par un routeur. Lorsque le TTL atteint 0, le paquet est rejeté. Cela permet d'éviter que des paquets qui tournent en boucle n'encombrent le réseau.


 

Quelle est l'erreur de configuration ? Comment la résoudre ?


ANSWER ELEMENTS

Nous devons corriger l'une des tables de routage. Par exemple, la route vers 192.168.2.0 sur le routeur R2.


 

3. Ethernet et IP

Nous nous intéressons à la configuration suivante. Un réseau domestique est connecté à Internet en utilisant la passerelle d'un fournisseur d'accès Internet.

L'ordinateur local, avec l'adresse 192.168.0.2, envoie un message à destination de l'ordinateur avec l'adresse : 8.1.3.8. Quels sont les protocoles impliqués au niveau local ?


ANSWER ELEMENTS

Le réseau domestique utilise le protocole Ethernet pour les couches 1 et 2 (physique et liaison) et IP pour la couche 3. Nous ne spécifions pas l'application associée au message, nous ne pouvons donc pas donner plus d'informations, notamment le port et le protocole de la couche transport (TCP ou UDP).


 

Décrivez une trame type envoyé par l'ordinateur local à la passerelle. En particulier, décrivez sa structure et les principales information des entêtes Ethernet et IP.


ANSWER ELEMENTS

La trame est la suivante :

Eth src.Eth dest.IP src.IP dest.Data
6E:...:0356:...:13192.168.0.28.1.3.8...

 

Supposons maintenant que 8.1.3.8 est un serveur web. L'ordinateur local envoie une requête pour obtenir la page "index.html". Quels sont les protocoles impliqués ? Complétez la trame de l'exercice précédent.


ANSWER ELEMENTS

Les protocoles concernés sont TCP et HTTP. La requête HTTP "GET index.html" est encapsulée dans le protocole TCP.

Un message TCP est envoyé à un port de destination, qui est 80 pour HTTP. Il existe également un port source qui sera utilisé par le serveur web pour envoyer sa réponse.

Eth src.Eth dest.IP src.IP dest.TCP Port src.TCP Port dest.HTTP
6E:...:0356:...:13192.168.0.28.1.3.85000180GET index.html

 

La trame que vous avez précédemment décrite atteint la passerelle. La passerelle doit la modifier avant de l'acheminer vers Internet. Quelles sont les modifications ?


ANSWER ELEMENTS

L'adresse IP source est modifiée car les adresses 192.168/32 sont privées. La nouvelle IP source est l'adresse externe de la passerelle : 87.52.7.5.

L'en-tête du protocole Ethernet est supprimé de la trame car il n'est pris en charge que sur le réseau Ethernet local.

Nous ne connaissons pas le protocole utilisé sur le réseau reliant la passerelle et le réseau de son fournisseur. Selon la nature de la passerelle résidentielle (fibre optique ou DSL), il est probable que le protocole transportant IP soit FTTH (Fiber to the home) ou VDSL2. Sans cette information, nous ne pouvons pas décrire complètement la trame.

FTTH or VDSL2 HeaderIP src.IP dest.TCP Port src.TCP Port dest.HTTP
...87.52.7.58.1.3.85000180GET index.html

 

Le serveur reçoit la requête GET, et envoie le code HTML correspondant à la page demandé. Décrivez la trame renvoyée.


ANSWER ELEMENTS

L'IP de destination est l'IP externe de la passerelle. Le port de destination est le port qui était auparavant le port source.

Les données contenues dans la trame sont le code source de la page web.

Comme nous n'avons aucune spécification sur le réseau auquel le serveur est connecté, nous ne pouvons pas spécifier l'en-tête Ethernet.

Ethernet HeaderIP src.IP dest.TCP Port src.TCP Port dest.HTTP
...8.1.3.887.52.7.58050001<HTML><HEADER>...</BODY></HTML>

 

Quand la réponse atteint la passerelle, elle est acheminée à destination de la machine locale. Quelles sont les modifications apportées par la passerelle à la trame ?


ANSWER ELEMENTS

L'IP de destination est remplacée par l'IP de l'ordinateur de destination.

Comme le réseau local utilise Ethernet, la trame IP est encapsulée dans une trame Ethernet.

Eth src.Eth dest.IP src.IP dest.TCP Port src.TCP Port dest.HTTP
56:...:136E:...:038.1.3.8192.168.0.28050001<HTML><HEADER>...</BODY></HTML>

 

4. NAT -- Network address translation

 

Nous considérons maintenant un réseau un tout petit peu plus complexe.

Pourquoi est-il possible pour deux ordinateurs de partager une même adresse IP : 192.168.0.2?


ANSWER ELEMENTS

Cette IP est locale. Tous les messages envoyés par les ordinateurs locaux vers le monde extérieur sont modifiés par la passerelle. La passerelle remplace l'IP source par son IP externe. Ainsi, lorsque le serveur web envoie une réponse, il utilise soit 87.52.7.5 soit 92.5.2.1 comme adresse IP de destination.


 

Dans le réseau local 1, nous avons plusieurs ordinateurs. N'importe lequel peut envoyer un message vers un serveur. Avec la stratégie précédente (remplacer l'adresse IP locale par l'adresse IP de la passerelle), il y a un problème quand la passerelle reçoit la réponse. Elle ne sait pas à quelle machine locale la faire suivre.

Pouvez vous imaginer une solution, déployée sur la passerelle, qui utiliserait les ports pour contourner ce problème ?


ANSWER ELEMENTS

  • Le NAT ne fait pas partie du cours.
  • Le seul fait de remplacer l'adresse IP privée par l'adresse publique de la passerelle résidentielle ne fonctionne pas.

Si plusieurs ordinateurs envoient des trames vers le monde extérieur, le routeur doit savoir quel ordinateur a envoyé quelle trame.

  • La solution du NAT consiste à utiliser des numéros de port (voir le schéma suivant).

 

5. Services (Firewall, proxy, DNS)

Qu'est ce qu'un parefeu (firewall) ? À quel endroit du réseau se trouvent les parefeux ? Comment sont-ils configurés ?


ANSWER ELEMENTS


 

  • Un pare-feu est un dispositif qui contrôle le flux de données et filtre le trafic entrant et sortant. Un pare-feu peut isoler des parties du réseau.

En général, il existe au moins deux zones : Internet, où la confiance est nulle, et un réseau interne où la confiance est plus importante.

  • Le filtrage se fait selon les critères suivants :
    • l'origine ou la destination des paquets ;
    • le type de protocole (TCP / UDP) ;
    • les données elles-mêmes (taille, correspondance à un modèle, etc.) ;
    • Les utilisateurs des pare-feu les plus récents.
  • Un pare-feu est souvent associé à un routeur ou même à un NAT (la passerelle résidentielle contient un pare-feu qui protège les ordinateurs du réseau).
  • Typiquement, on trouve un pare-feu dans le diagramme au niveau de la passerelle résidentielle. Ils sont configurés pour laisser passer tout le trafic sortant mais couper tout le trafic entrant, quel que soit le port, sauf celui enregistré dans la table de traduction NAT. Les paquets qui constituent la réponse à une requête initiée par les ordinateurs du réseau local sont autorisés.
  • Il existe également un pare-feu au niveau du routeur de la ferme de serveurs web. Il laisse passer les messages TCP entrants sur le port 80 (protocole HTTP) et TCP sur le port 443 (HTTPS).

Qu'est ce qu'un proxy ? Pourquoi est-il utilisé en association avec un parefeu ?


ANSWER ELEMENTS

  • Un proxy est un dispositif réseau qui regroupe les requêtes HTTP/HTTPS de plusieurs utilisateurs. L'objectif est de :
    • économiser du trafic en regroupant les requêtes à l'aide d'un cache ;
    • filtrer les requêtes pour restreindre l'accès aux sites web.
  • Pour fonctionner, le client web (par exemple le navigateur) de chaque utilisateur doit être configuré. Pour forcer les utilisateurs à le faire, et leur interdire d'accéder directement aux sites web, les ports 80 et 443 sont bloqués sur le réseau local (sauf pour le proxy).

 

Qu'est ce qu'un DNS (Domain Name System) ? Décrivez les protocoles utilisés par les DNS.


ANSWER ELEMENTS

  • Le DNS utilise le protocole UDP comme couche de transport. En fait, le DNS consiste en de nombreuses requêtes courtes, auquel cas TCP n'est pas un bon choix.
  • Pour une description de son fonctionnement, vous pouvez vous référer à la page Wikipedia correspondante.

 

Modifiez le diagramme de cet exercice pour montrer les différents composants que nous avons évoqués (NAT, firewall, proxy et DNS). Indiquez la séquence des requêtes générées quand nous accédons à la page web http://www.example.fr/index.html hébergée sur le serveur 8.1.3.8.


ANSWER ELEMENTS

1. Le navigateur extrait le nom d'hôte, www.example.fr, de l'URL et l'envoie à un serveur DNS local L (celui géré par le fournisseur d'accès internet).

2. Le serveur DNS L envoie le nom d'hôte à un serveur DNS racine R.

3. R renvoie à L une liste d'adresses IP de serveurs DNS de premier niveau pour le domaine .fr

4. L envoie le nom d'hôte à l'un de ces serveurs DNS de premier niveau.

5. Le domaine de premier niveau renvoie à L l'adresse IP du serveur DNS qui fait autorité pour le domaine exemple.fr.

6. L envoie le nom d'hôte au serveur DNS faisant autorité.

7. Le serveur DNS faisant autorité renvoie à L l'adresse IP correspondant au nom d'hôte demandé.

8. L envoie au navigateur web l'adresse IP demandée.

9. Le navigateur web envoie une requête HTTP à l'adresse IP reçue pour obtenir la page index.html. Les requêtes HTTP sont encapsulées dans des segments TCP. Une requête HTTP simple nécessite plusieurs segments TCP.

10. Le serveur envoie la page demandée au navigateur web.

Note : Le serveur DNS faisant autorité stocke les correspondances IP-nom d'hôte qui sont récupérées via le protocole DNS. Il est appelé "faisant autorité" parce que, par définition, ce qu'il dit est la vérité. Il n'est jamais interrogé directement par les machines des utilisateurs, mais par l'intermédiaire des autres serveurs DNS, également appelés "résolveurs".


 

6. Wireshark

Démonstration de Ping, Traceroute et Wireshark. Observez les trames, l'encapsulation, l'ordre des requêtes et en particulier la session TCP et l'acquittement des messages.

Si votre enseignant n'a pas le temps de faire la démonstration, voici une vidéo expliquant tout ce qu'on peut dire à partir de la trace : Wireshark.mp4


ANSWER ELEMENTS