Apprenez le fonctionnement des réseaux TCP/IP
Last updated on Thursday, July 10, 2014
  • 4 semaines
  • Facile

Ce cours est visible gratuitement en ligne.

Videos available in this course

Paperback available in this course

Ce cours existe en eBook.

Certificate of achievement available at the end this course

Got it!

Et maintenant, la pratique !

Dans ce chapitre, nous allons essayer de mettre en pratique ce que vous avez appris : il y aura des exercices et des petits TPs.
L'objectif est de comprendre comment les concepts réseau sont réellement mis en œuvre. Cela vous permettra de bien retenir les informations apprises, alors ne négligez pas cette partie pratique !

La couche 2 sur ma machine

Nous allons rapidement voir où les informations que nous avons détaillées se situent sur notre machine. Pour suivre cette partie, vous devrez avoir un minimum de connaissances pour savoir où trouver les informations sous Windows, ainsi que quelques notions de Bash sous Linux. Si ces notions vous sont inconnues, faites de votre mieux, mais ce ne sera pas facile...

Sous Windows

Je ne suis pas tout à fait au goût du jour, et pour des raisons de performances, j'ai choisi de faire ma présentation sous Windows XP SP2. Cependant, quel que soit le système Windows sur lequel vous êtes, le principe reste le même : accéder aux informations de la carte réseau.

Sous Windows, nous allons la plupart du temps avoir deux méthodes pour récupérer des informations : grâce à l'interface graphique ou en ligne de commande. Sachant que parfois, seule l'une de ces deux méthodes permet de faire ce que nous souhaitons.

En ligne de commande

Ouvrez une invite de commande (cette fois je vous donne les infos, mais après vous devez être autonomes).
Cliquez sur Démarrer, Exécuter et tapez cmd, puis Ok. Une fenêtre noire s'affiche, semblable à celle que vous pouvez voir en figure suivante : c'est l'invite de commande !

Invite de commande windows

La commande de base pour avoir des informations sur votre carte réseau est ipconfig.
Toutefois, pour avoir les informations que nous souhaitons, il va falloir en demander un peu plus à la commande ipconfig en lui mettant l'option /all, comme c'est indiqué sur la figure suivante.

ipconfig /all

Nous voyons encore beaucoup d'informations, mais celle qui nous intéresse est l'adresse de notre carte réseau, l'adresse MAC.
Nous pouvons la voir sous le nom d'adresse physique et nous voyons qu'ici sa valeur est 00-0C-29-E6-4B-D2.
Super, nous avons trouvé notre adresse MAC !

Nous avons vu aussi beaucoup d'autres informations, mais celles-ci ne nous intéresseront pas pour l'instant.
Passons à la partie graphique dans laquelle nous allons voir plus d'éléments.

À l'aide de l'interface graphique

L'interface graphique va nous permettre aussi d'accéder aux informations de notre carte réseau.
Il y a différents moyens d'arriver aux informations réseau. Nous allons passer par le Panneau de configuration. Cliquez sur Connexions réseau. Vous allez ensuite faire un clic droit sur Connexion au réseau local et choisir Propriétés (voir la figure suivante).

Propriétés de la carte réseau

Pour accéder aux informations de la carte réseau, il faut cliquer sur Configurer, puis sur l'onglet Avancé.
Et comme vous pouvez le constater sur la figure suivante, toutes les informations propres à la carte réseau sont là !

Propriétés avancées de la carte réseau

Nous pouvons voir le full duplex dans la rubrique duplex intégral, ainsi que l'adresse MAC dans NetworkAddress. Par défaut, on ne la voit pas, car elle est inscrite en dur dans la carte réseau, mais ma carte permet de la modifier. Allons-y (voir la figure suivante) !

Changement d'adresse MAC

En validant, nous voyons que la modification est effective (voir la figure suivante) !

Adresse MAC modifiée

Nous venons de modifier notre adresse MAC !

Ça y est, nous sommes de vrais pirates ! :pirate:

Pas encore, mais comme vous le voyez, quand on maîtrise ce que l'on fait et qu'on le comprend, on peut vite sortir des sentiers battus et faire des choses intéressantes.

Regardons maintenant comment accéder à ces informations sous Linux.

Sous Linux

Accès par l'interface graphique...

Non, je rigole, on ne fait pas d'interface graphique sous Linux !
Tout simplement car, contrairement à Windows, tout est accessible par l'interface en ligne de commande, l'inverse n'étant pas vrai. Alors on prend dès maintenant les bonnes habitudes et on travaille avec l'interface en ligne de commande.

Accès en ligne de commande

La commande est presque la même sous Linux que sous Windows, à une lettre près. Il s'agit de la commande ifconfig :

homer:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:08:02:3f:ee:bb  
          inet addr:10.8.98.235  Bcast:10.8.111.255  Mask:255.255.240.0
          inet6 addr: fe80::208:2ff:fe3f:eebb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12845408 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11301576 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2224032469 (2.0 GiB)  TX bytes:3324151145 (3.0 GiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:4872863 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4872863 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2719670180 (2.5 GiB)  TX bytes:2719670180 (2.5 GiB)

Nous voyons ici encore une fois notre adresse MAC en face de HWaddr qui est 00:08:02:3f:ee:bb
Ce n'est pas la même que sous Windows, mais c'est normal puisque ce n'est pas la même machine, donc pas la même carte réseau.

On peut, là encore, modifier son adresse MAC si notre carte réseau le supporte.

homer:/# ifconfig eth0 hw ether 00:01:02:03:04:05
homer:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:01:02:03:04:05  
          inet addr:10.8.98.235  Bcast:10.8.111.255  Mask:255.255.240.0
          inet6 addr: fe80::208:2ff:fe3f:eebb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12848026 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11303193 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2224386740 (2.0 GiB)  TX bytes:3324387978 (3.0 GiB)

Vous pourrez regarder de plus près les options de ifconfig pour voir toutes les fonctionnalités que vous pouvez configurer, en utilisant le man.

Voilà, nous avons rapidement vu comment la couche 2 était implémentée sur nos machines. Il nous reste à faire quelques exercices !

Exo 1 : Quand la boucle est bouclée

Ça y est, vous avez achevé votre formation d'administrateur systèmes et réseaux, et vous venez d'être embauché par une petite société.
On vous explique brièvement l'architecture réseau employée (voir la figure suivante).

Trois switch connectés entre eux

Il y a trois switchs connectés entre eux, et quelques machines branchées sur chaque switch.

Problème : la semaine dernière, le switch 5, qui est au milieu, est tombé en panne et les machines des switch 1 et 9 ne pouvaient alors plus se parler !

On vous demande donc de trouver une solution pour que le réseau puisse continuer de fonctionner, même si l'un des switchs tombe en panne.
Ni une ni deux, vous vous dites qu'il faudrait relier les switchs 1 et 9, comme ça si n'importe lequel des switchs tombe en panne, les deux autres seront toujours reliés...

Et patatras...
Une heure à peine après que vous ayez relié les switchs, le réseau ne marche plus, plus personne n'a accès à Internet et on n'arrive même plus à communiquer avec les machines sur le réseau local.

Que se passe-t-il ?

Vous venez de créer ce que l'on appelle une boucle de commutation et ceci est très grave !

Cette boucle est grave, car elle offre deux chemins possibles pour atteindre une destination.
Dans le cas de l'envoi d'une trame vers une machine, le switch empruntera ces deux chemins et la trame arrivera à destination deux fois. Pas de quoi fouetter un tchat !

Néanmoins, cela devient très gênant dans le cas d'un broadcast !
En effet, notre broadcast va être envoyé sur les deux chemins puis, arrivé au prochain switch, il va être renvoyé par les deux chemins possibles puis, arrivé au prochain switch, renvoyé par les deux chemins possibles, etc.

Et ainsi de suite jusqu'à ce que les switchs aient trop de broadcasts à traiter en même temps et soient complètement saturés.

Ce phénomène s'appelle une tempête de broadcasts (ou broadcasts storm en anglais).

Il est extrêmement puissant et peut faire écrouler les plus grands réseaux. J'ai déjà vu un réseau de 15 000 machines s'écrouler pendant plusieurs jours à cause d'un problème de ce genre.
Et il suffit de créer une simple petite boucle... Il suffit de relier les deux extrémités d'un câble à un même switch...
Vous pourrez tester chez vous, ça marche !

OK, mais alors comment répondre au problème initial ?

Il n'y a pas de solution... Du moins pas dans l'état actuel de nos connaissances.

Pour ceux qui veulent aller plus loin, vous pourrez vous renseigner sur le web à propos des technologies de spanning tree, fast spanning tree et 802.1d.

Exo 2 : Le simulateur de réseaux

Installation du logiciel de simulation réseau.

Il y a des profs de réseau qui sont bien, et Pierre Loisel en est un.
Cet enseignant a créé un logiciel de simulation réseau pour mieux apprendre à ses élèves comment fonctionnent ceux-ci. Si, ça, ce n'est pas du dévouement... Et en plus, il permet à chacun de s'en servir, alors profitons-en !

Il existe une version gratuite en ligne que vous pouvez télécharger ici. Ce fichier .zip contient le simulateur ainsi que la documentation et quelques exemples.

Nous allons donc nous servir du simulateur. Il n'y a pas d'installation à faire, c'est juste un exécutable qui n'a pas besoin d'être installé. Il a seulement besoin du framework .net pour fonctionner. Si jamais l'exécutable ne fonctionne pas, vous pouvez télécharger le Framework .Net. Ou télécharger une version plus récente si vous le souhaitez.

Vous pouvez maintenant faire un double-clic sur le simulateur.exe pour le lancer.

Vous êtes donc maintenant confortablement installés devant votre simulateur réseau.

Premiers pas avec 3 hubs

Vous allez, dans un premier temps, essayer de configurer votre réseau avec trois hubs que vous allez relier entre eux, sans utiliser le port le plus à droite du hub ! Ajoutez une machine sur chacun d'entre eux. Vous devriez avoir un schéma à peu près comme celui de la figure suivante.

Simulateur avec trois hubs

Essayez maintenant de relier les deux hubs qui ne sont pas reliés directement, puis essayez d'envoyer une trame en broadcast (clic droit sur une carte réseau, émettre une trame, OK).

Que se passe-t-il et pourquoi ?

Il y a un message d'erreur nous indiquant qu'il y a une boucle ! C'est bien normal et vous le saviez déjà, non ?

Enlevez un des câbles et essayez à nouveau d'envoyer une trame en broadcast, puis en unicast vers une autre machine.

Quelle différence observez-vous entre les deux cas et pourquoi ?

Il n'y a pas de différence ! En effet, nous sommes sur un hub et les trames sont, de toute façon, envoyées à tout le monde, de la même manière qu'en broadcast.

On passe au switch !

Maintenant, faites un réseau avec un seul switch et trois machines, comme indiqué sur la figure suivante.

Un switch et trois machines

Faites un clic droit sur le switch et videz la table mac/port. Vous allez maintenant envoyer une trame unicast vers une des deux autres machines.

Que va-t-il se passer ?

Le switch envoie la trame vers toutes les machines, car il n'a pour l'instant aucune information dans sa table CAM.

Si l'on renvoie un paquet identique, que va-t-il se passer ?

La même chose ! Le switch a appris que la machine 1 était sur le port 1, mais il ne sait toujours pas sur quel port se trouve la machine destination.

Nous allons maintenant voir comment fonctionne le switch. Pour cela, nous allons suivre son fonctionnement en cliquant sur "aucun nœud tracé". On sélectionne ensuite sw1, que l'on passe du côté des nœuds tracés.
Envoyez une trame d'une machine à une autre et observez les étapes du fonctionnement du switch.

Maintenant ça va être à vous de jouer !
Passez en mode manuel et envoyez une trame d'une machine à une autre. C'est maintenant à vous de déterminer ce que doit faire le switch !

Nous avons fini nos exercices avec le simulateur, mais vous pouvez en explorer les fonctionnalités et vous amuser tant que vous voulez.

Exo 3 : Écriture d'une trame

Dans cet exercice, nous allons essayer de comprendre le contenu d'une trame lorsqu'elle sort d'une machine sur le réseau. Prenons le réseau indiqué sur la figure suivante.

Un switch et trois machines

Imaginons que la station 1 envoie une trame à la station 3.

Écrivez la trame à la sortie de la machine 1 (vous connaissez maintenant le format d'une trame, cet exercice consistera simplement à mettre les bonnes informations dans les bons champs de l'en-tête Ethernet).
Rappel du format d'une trame:

Adresse MAC DST

Adresse MAC SRC

Protocole de couche 3

Données à envoyer

CRC

Solution:

Adresse MAC station 3

Adresse MAC station 1

Protocole de couche 3

Données à envoyer

CRC

C'était trop facile non ? :p
C'est normal, car nous avançons petit à petit. Nous verrons que nous referons cet exercice quand nous aborderons les autres couches du modèle OSI. Et cela se corsera un peu !

Félicitations si vous avez réussi tous ces exercices, nous pouvons maintenant passer à la suite.

  • Vous savez donc quel matériel utiliser pour mettre en place un réseau local ;

  • vous savez comment les machines communiquent sur un réseau local ;

  • le matériel de couche 2, le switch, aiguille les informations d'une machine à une autre sur un réseau local ;

  • vous savez où les informations de couche 2 sont situées sur votre machine.

En tant que professionnels de la couche 2, vous êtes prêts à passer à une couche plus complexe, la couche 3.

Nous connaissons presque tout des couches 1 et 2, il est grand temps de passer à la couche 3 qui va nous ouvrir de nouveau horizons.

Cette partie est maintenant terminée. N'oubliez pas de faire vos exercices avant de passer à la partie suivante. Vous trouverez les liens des exercices (quiz et/ou activité) dans le plan principal du cours ICI. À vous de jouer! 

Example of certificate of achievement
Example of certificate of achievement

Le téléchargement des vidéos de nos cours est accessible pour les membres Premium. Vous pouvez toutefois les visionner en streaming gratuitement.