Panorama des réseaux

Table des matières

1. Exercice 001   terminal ipconfig IPv4 MAC

  1. Ouvrir un powershell (windows) ou un terminal (linux ou mac)
  2. A l'aide de la commande ipconfig, déterminer votre adresse IPv4, le masque de sous-réseau, votre adresse MAC, l'adresse IPv4 de la passerelle par défaut.
  3. Renseigner le fichier partagé. Qu'observe-t-on ?
  4. Quel est le système de numération utilisé pour une adresse IPv4 ? Pour une adresse MAC ?
  5. Sur combien d'octets ces deux types d'adresses sont-ils codés ?

2. Exercice 010   ping

  1. Pinger google.com
  2. Pinger son voisin de classe. Qu'observe-t-on ?
  3. Pinger le professeur. Qu'observe-t-on ? Comment expliquer cela ?
  4. Faire en sorte de pouvoir pinger son voisin.

3. Exercice 015 - Prise en main de cisco packet tracer   cisco packet tracer

Partie 1

  1. Lancer Cisco Packet Tracer (requiert un compte).
  2. Réaliser le réseau suivant :

    premier_reseau.png

    Figure 1 : Un tout petit réseau

    Remarques :

    • les différents éléments (ordinateurs, routeurs, switches, etc…) sont disponibles en bas à gauche de l'interface
    • les pointillés représentent une connexion wifi
    • de base, les ordinateurs portables n'ont pas de cartes wifi, il faut les installer; cela est possible en cliquant sur l'ordinateur puis en allant dans l'onglet 'Physical'

Partie 2

  1. Cliquer sur un ordinateur. Observer les différentes icônes de l'onglet Desktop.
  2. Cliquer sur le Laptop0. Depuis l'onglet Desktop cliquer sur Command Prompt. Que reconnaît-on ?
  3. À l'aide de la commande ipconfig déterminer l'IPv4 de Laptop0.
  4. Déterminer l'IPv4 de Laptop1.
  5. PC0 a-t-il une IPv4? Si non, pourquoi?
  6. Lancer le mode simulation (le bouton "simulation" est en bas à droite de l'interface).
  7. Depuis Laptop0, pinger Laptop1.
  8. Cliquer sur le bouton "lecture" (le triangle). Qu'observe-t-on ?

4. Exercice 020   wireshark IPv4

  1. De combien d'octets est constituée l'en-tête d'un paquet IPv4 ?
  2. Quels sont les octets dédiés à l'IP source ?
  3. Ouvrir wireshark.
  4. Trouver une trame contenant une IP source et une IP destination.
  5. Localiser le début de l'en-tête du paquet (IP, couche 3).
  6. Lire l'IP source directement depuis les octets.

5. Exercice 025 - Une première trame   trame couche_physique

  1. Ouvrir Wireshark et écouter le trafic qui passe par la carte réseau principale (la carte wi-fi vraisemblablement).
  2. Dans la barre horizontale qui se situe en haut de l'interface, taper icmp puis appuyer sur Entrée (voir ci-dessous).

filtre_icmp.png

Figure 2 : Filtrer le trafic dans Wireshark

Il ne devrait plus y avoir aucun trafic dans la fenêtre.

  1. Ouvrir un powershell et pinger son voisin. Combien de lignes de trafic apparaissent alors ?
  2. Cliquer sur une ligne correspondant à une request (voir image ci-dessous).

requete_ping.png

Figure 3 : Une requête sortante

  1. En cliquant sur le chevron, ouvrir les détails de la Frame et trouver l'heure d'arrivée de la requête (voir image ci-dessous).

details_trame.png

Figure 4 : La totalité du contenu d'une trame est accessible

  1. Ouvrir les détails de la couche Ethernet II (couche liaison → couche numéro 2 du modèle OSI). Déterminer l'adresse MAC de la personne que vous avez pingée.
  2. Vérifier le résultat obtenu en demandant directement à la personne pingée son adresse MAC.

6. Exercice 030   telnet port

La commande telnet permet d'interagir avec un serveur distant.

  1. Ouvrir la WSL.
  2. Se connecter à www.esme.fr sans préciser le port grâce à l'instruction telnet www.esme.fr. Que se passe-t-il ?
  3. Afficher l'aide de la commande grâce à l'instruction telnet -h.
  4. Se connecter à nouveau à www.esme.fr en utilisant le port 80.
  5. Saisir quelques caractères au clavier.
  6. Quelle est la réponse du serveur ? Comment lire cette réponse ?

7. Exercice 040   ncat telnet

Cet exercice requiert l'outil ncat.

  1. Dans la fenêtre "Activer ou désactiver des fonctionnalités Windows" activer la fonctionnalité "Client Telnet".
  2. Se mettre en binôme avec un camarade.
  3. Se connecter à un même LAN (point d'accès de l'école, partage de connexion, …).
  4. Vérifier que la connexion fonctionne dans les deux sens (ping).
  5. Relever les IPv4 de chacun des deux ordinateurs. Pour la suite de l'exercice on notera ces deux IP IPv4A et IPv4B.
  6. Sur un des deux ordinateurs, dans un terminal (powershell ou autre), lancer la commande ncat -lv IPv4A 23.
  7. Sur l'autre ordinateur lancer la commande telnet IPv4B. Taper au hasard sur le clavier.
  8. Qu'observe-t-on ?

8. Exercice 050   telnet http GET

La commande telnet permet d'interagir avec un serveur. Cette commande existe aussi bien sous Windows que sous Linux / Mac OS. Pour des raisons qui sortent du cadre de ce cours, cet exercice utilise la version Linux.

  1. Consulter le site http://nocert.solens.ovh/maze/.
  2. Lancer la WSL.
  3. Se connecter à ce site à l'aide de telnet.

Le but de l'exercice est de produire une requête HTTP (ce qui est ordinairement le rôle d'un client web, comme Firefox ou Safari, par exemple) à l'aide de telnet.

  1. En vous inspirant de la capture d'écran suivante :

    requete_HTTP.png

    envoyer une requête HTTP à l'adresse de la question 1.

  2. Comment obtenir dans le terminal une sortie de la forme suivante :

    HTTP/1.1 200 OK
    Date: Thu, 12 Sep 2024 13:21:21 GMT 
    Server: Apache/2.4.38 (Raspbian)
    Vary: Accept-Encoding
    Content-Length: 1220
    Content-Type: text/plain;charset=UTF-8
    
    ╷┌─┬──────┐╷┌┬┐┌┬╴┌┐
    │└┐└──┐┌──┘└┘│╵│└─┘│
    ├┐│╷┌─┘└┐╶─┬─┘┌┘┌┐┌┤
    │└┴┘│╶┬╴└─┐│┌─┘╷│└┘│
    └─┐┌┘┌┘┌──┼┘└──┤│┌┐│
    ┌╴│└┐└─┘┌┐╵┌─┬┐│└┘││
    ├┐│╷└───┘└─┴╴││└┐┌┘│
    ││└┤╶─┬┐╶─┬┐┌┘│┌┘│┌┘
    │└┐└──┘└─┐││└┐╵│╷││╷
    ├╴└─┬─┬─┐│╵├╴└─┴┘│└┤
    ╵┌─┐├╴└┐╵└┐├─┐┌──┘╷│
    ┌┘╷│╵┌┐├┬╴│╵┌┘│╶┐┌┴┘
    └┐│└─┘│╵└─┴─┤┌┘┌┤│┌┐
    ┌┘├┐╶┐└───┐╶┘└┐││└┘│
    └─┘└┐└┬─┬╴└┐┌╴││└┐╷│
    ┌──┐└┐└┐└─┐└┘┌┤└┐└┘│
    ├╴┌┤┌┘╶┤┌┐└┬┐││┌┘┌─┘
    │┌┘╵└─┐└┘│╷│╵││└┬┘┌┐
    │└┐┌─┐└─┐└┘└─┘└┐│╶┘│
    └╴└┴╴└──┴──────┘└──┘
    

9. Exercice 060 - Conversion binaire vers décimale   binaire decimal conversion

  1. Donner les 11 premières puissances de \(2\) en partant de \(2^{0}\).
  2. Rappeler la règle de conversion d'un nombre depuis la base 2 vers la base 10.
  3. Convertir en décimal les nombres suivants (donnés en base 2):
    • 00101010
    • 10000000
    • 11111111
    • 11101100

10. Exercice 070 - Conversion décimale vers binaire

  1. Rappeler l'algorithme de conversion de la base 10 vers la base 2.
  2. Convertir les nombres suivants :
    • 192
    • 168
    • 37
    • 127
    • 99

11. Exercice 080 - Conversion rapide hexadécimal ↔ binaire

  1. Rappeler :
    • la règle de conversion rapide de la base 2 vers la base 16
    • la règle de conversion rapide de la base 16 vers la base 2
  2. Convertir en base 2 les nombres \(\overline{CAFE}_{16}\), \(\overline{F1}_{16}\), \(\overline{123}_{16}\).
  3. Convertir en base 16 les nombres \(\overline{10101110}_{2}\), \(\overline{110010110011}_{2}\), \(\overline{101110}_{2}\).

12. Exercice 090 - Conversion adresses

Trouver puis convertir en binaire :

  1. son adresse MAC
  2. son adresse IP
  3. son masque de sous-réseau

13. Exercice 100 - Encapsulation   trames MAC osi

  1. Télécharger l'activité : ./packet_tracer/deux_routeurs.pkt.
  2. Activer le mode simulation.
  3. Editer les filtres afin de ne laisser visible que le protocole ICMP.
  4. Depuis Laptop1 pinger PC0 et observer la liste d'événements se remplir.
  5. Cliquer sur un événement :
    1. Quelles sont les couches du modèle OSI mises en jeu ?
    2. Les sections In Layers et Out Layers sont-elles renseignées de la même manière pour tous les événements ?
    3. Les routeurs interviennent-ils ?
  6. Depuis Laptop1 pinger Laptop4 :
    1. Répéter les opérations précédentes.
    2. Dans la liste d'événements, trouver un événement où a lieu une décapsulation de la couche 2 puis une réencapsulation de cette même couche.
    3. Le contenu du paquet (couche 3) a-t-il été modifié ?
  7. Bonus : déterminer, puis corriger, ce qui empêche de pinger Laptop0 depuis le réseau d'adresse 192.168.0.0.

14. Exercice 110 - Protocole de résolution d'adresse   ARP

  1. Télécharger le fichier ./packet_tracer/arp.pkt.
  2. Dans l'invite de commande de Laptop0 taper l'instruction arp -a. Qu'observe-t-on ?
  3. Double-cliquer sur le switch puis, dans l'onglet CLI :
    1. Appuyer une fois sur la touche Entrée.
    2. Taper l'instruction enable. Observer le prompt être modifié.
    3. Taper l'instruction show mac-address-table (l'instruction peut se compléter automatiquement à l'aide de la touche TAB). Qu'observe-t-on ?
  4. Lancer le mode simulation. Veiller à ce que les filtres ne laissent passer que les protocoles ARP et ICMP.
  5. Depuis Laptop0, pinger Laptop1 et observer la file d'événements. Que se passe-t-il pendant la première requête du ping ?
  6. Taper à nouveau l'instruction arp -a. Qu'observe-t-on ?
  7. Depuis Laptop1 pinger Laptop0 (il n'est plus nécessaire d'être en mode simulation), puis taper arp -a.
  8. Dans le switch, taper à nouveau show mac-address-table. Décrire ce qui est observé.

15. Exercice 120 - Collisions   hub

  1. Télécharger le fichier ./packet_tracer/1_hub_4_pc.pkt.
  2. Déterminer l'ip de Laptop0 et de Laptop1.
  3. Entrer dans le mode simulation puis simultanément :
    1. Pinger Laptop1 depuis Laptop0
    2. Pinger Laptop0 depuis Laptop1
    3. Lancer la simulation en cliquant sur le triangle.
  4. Observer le trafic sur le réseau ainsi que les différents événements dans la liste d'événements.

16. Exercice 130 - Analyser une trame I   MAC entete ethernet

La trame suivante est donnée sans préambule :

2c 8d b1 94 b3 a8 34 27 92 42 09 db 08 00 45 00
00 4e 43 3d 40 00 70 06 6d fd 34 70 64 4c c0 a8
00 0b 01 bb d1 24 e7 83 c1 38 1d 47 03 d1 50 18
c0 05 ee 0a 00 00 17 03 03 00 21 c3 1f 50 25 d0
52 8e 6c 59 8a 2a 6a c2 b8 4f 10 d0 64 4f e0 d9
6e af ed 42 4a 41 8a 1e 4f 4b 48 d0            
  1. Analyser les informations de la couche 2 en donnant :
    1. L'adresse MAC de destination
    2. L'adresse MAC source
    3. Le champ appelé "EtherType". De quoi s'agit-il ?
  2. Analyser les informations de la couche 3 en donnant :
    1. L'adresse IP de destination
    2. L'adresse IP source
    3. Le protocole (utilisé dans la section data)
    4. Le TTL

La structure d'une trame et la structure d'un paquet IPv4 sont rappelées dans la section 33.

17. Exercice 140 - Bits de poids fort et classe   classe IPv4

On se donne un entier n compris entre 0 et 4. On considère un octet dont la représentation binaire commence par n chiffre(s) 1, suivi d'un 0. Donner la valeur minimale et la valeur maximale possibles pour cet octet.

18. Exercice 150 - Analyser une IPv4   IPv4 classes reseau

Ecrire un programme qui prend en entrée une adresse IPv4 (en décimal) et qui retourne :

  • la classe de l'adresse
  • le masque de réseau par défaut
  • l'adresse réseau par défaut
  • l'adresse de la première machine
  • l'adresse de la dernière machine

A quelle classe appartient l'IPv4 publique de l'école ?

19. Exercice 155 - Les deux écritures d'une IPv4   IPv4 conversion

  1. Ecrire une fonction permettant de passer de l'écriture binaire d'une IPv4 à son écriture en décimal.
  2. Ecrire également la fonction "réciproque".

20. Exercice 160 - Sous-réseaux et masques   masques

On considère une adresse IPv4 de classe B.

  1. Donner un exemple de telle adresse.
  2. Combien de machines la partie hôte de cette adresse permet-elle d'identifier ?
  3. Donner le nombre de masques de sous-réseaux possibles pour cette adresse.
  4. Pour chacun de ces masques, donner le nombre de machines adressables.

21. Exercice 170 - Notation CIDR   CIDR

  1. Ecrire une procédure python qui:
    1. prend en entrée un nombre entier compris entre 0 et 32; ce nombre représente le masque de sous-réseau en notation CIDR
    2. affiche le masque de sous-réseau correspondant sous la forme d'une chaîne de caractères en binaire
  2. Compléter le programme pour afficher le masque en décimal.

22. Exercice 180 - Réseaux et sous-réseaux   masque IPv4

On considère une fonction qui prend en paramètres :

  • une adresse IPv4
  • un masque de réseau, donné en notation CIDR
  • un masque de sous-réseau (ou masque étendu) également donné avec la notation CIDR

Les deux premiers paramètres permettent de déterminer l'adresse d'un réseau.

Ecrire cette fonction de telle sorte qu'elle affiche :

  • Le nombre de bits disponibles pour définir les sous-réseaux
  • Le nombre de sous-réseaux adressables
  • Les adresses des différents sous-réseaux
  • Le nombre de machines adressables pour chaque sous-réseau

23. Exercice 190 - Nombre de machines adressables

Ecrire une fonction qui, étant donné une IPv4, un masque (CIDR) et un nombre de machines à adresser par sous-réseau, renvoie le masque étendu permettant d'adresser ces machines.

24. Exercice 200 - IP locale et IP publique   ipv4 ipv6 locale publique NAT

  1. A l'aide d'un outil en ligne, déterminer les IPv4 et IPv6 publiques (i.e. visibles depuis l'extérieur) de sa machine.
  2. Dans un terminal (comme powershell, par exemple), déterminer la/les adresse(s) IPv4 et IPv6 locales.
    1. Y a-t-il une IPv4 locale qui correspond à l'IPv4 trouvée à la question précédente ?
    2. Y a-t-il une IPv6 locale qui correspond à l'IPv6 trouvée à la question précédente ?
    3. Combien y a-t-il d'IPv6 ?
  3. Comparer les valeurs obtenues avec ses camarades.
  4. Expérimental - Consulter l'adresse http://solens.ovh:8091/test/test.php. Relever l'IP qui se trouve à la ligne intitulée REMOTE_ADDR et le port qui se situe à la ligne intitulée REMOTE_PORT. Qu'observe-t-on ?

25. Exercice 210 - Première table de routage   routage RIP

  1. Obtenir les ressources
    1. Aller sur github à l'adresse https://github.com/akshatshah17/Network_Design_of_a_Company_in_Packet_Tracer/tree/main.
    2. Télécharger le fichier pkt.
    3. Ouvrir le fichier dans Cisco Packet Tracer.
  2. Examiner l'architecture. Déterminer :
    1. Le nombre de routeurs
    2. Le nombre de switches (commutateurs)
    3. Le nombre de points d'accès
    4. Le nombre de HUB (concentrateurs)
    5. Le nombre de serveurs
  3. Tester la connectivité
    1. Ouvrir l'invite de commande d'un des PC du "HR department B1".
    2. Depuis ce PC, pinger un des PC du "Finance Department B2 Group 1".
    3. Observer le TTL. Que se passe-t-il ? Comment expliquer cela ?
  4. Une première table de routage
    1. Ouvrir l'invite de commande du routeur "B1".
    2. Obtenir les privilèges administrateurs à l'aide de la commande enable.
    3. Afficher la table de routage à l'aide de la commande show ip route.
    4. Lire attentivement cette table.
    5. Le routage est-il statique ou dynamique ?

26. Exercice 220 - Autour du protocole DNS   DNS nslookup

  1. La commande nslookup
    1. Vérifier que la commande nslookup est disponible (activer les services TCP/IP dans windows si besoin).
    2. Tester la commande nslookup www.esme.fr. Qu'observe-t-on ?
    3. Tester la commande sur d'autres noms de domaines.
    4. Trouver un moyen de vérifier que les informations fournies par cette commande sont correctes.
  2. Première approche du protocole DNS
    1. Ouvrir wireshark.
    2. Appliquer le filtre "dns".
    3. Lancer la commande nslookup sur un nom de domaine de son choix.
    4. Cliquer sur la trame correspondant à la requête envoyée.
      1. A quelle couche appartient le protocole DNS ?
      2. Quel est le protocole utilisé à la couche 4 ?
    5. Cliquer sur la trame correspondant à la réponse du serveur. Comparer avec les résultats précédents.

27. Exercice 230 - Usage approfondi de la commande nslookup   nslookup DNS MX

  1. Lancer la commande nslookup sans argument. Que se passe-t-il ?
  2. Saisir la commande help puis lire l'aide.
  3. Utiliser le type de requête "MX".
  4. Tester la commande et observer les résultats obtenus à l'aide de wireshark.

28. Exercice 240 - La commande tracert   traceroute tracert ICMP

  1. Lancer la commande tracert sans argument puis lire l'aide.
  2. Lancer la commande en renseignant un nom de domaine ou une ip. Qu'observe-t-on ?
  3. Lancer wireshark. Appliquer le filtre "icmp".
  4. Réutiliser tracert. Observer attentivement le trafic dans wireshark. Que se passe-t-il ?

29. Exercice 250 - La commande netstat   netstat

  1. Dans une invite de commande, tester la commande netstat.
  2. A l'aide d'un annuaire inversé, identifier les IP de destination impliquées dans le trafic.
  3. Afficher l'aide de la commande. Lire cette aide.
  4. Tester l'option -b de la commande netstat. Que se passe-t-il ?

30. Exercice 260 - HTTP sans S   HTTP wireshark

  1. À quelle couche du modèle OSI appartient le protocole HTTP ? Quelle différence y a-t-il avec HTTPS ?
  2. Lancer wireshark avec le filtre "http".
  3. Dans un navigateur lancer la requête http://nocert.solens.ovh/.
  4. Retrouver dans la trame les données envoyées par le serveur en guise de réponse.

31. Exercice 270 - Formuler une réponse HTTP   HTTP ncat navigateur

  1. Dans un terminal, lancer la commande ncat -lv localhost 12345.
  2. Ouvrir un navigateur à l'adresse http://localhost. Que se passe-t-il ?
  3. Ouvrir un navigateur à l'adresse http://localhost:12345. Que se passe-t-il dans le navigateur ? Dans le terminal ?
  4. Coller le code suivant dans le terminal puis appuyer sur Entrée:
HTTP/1.1 200 OK
Content-Length: 12
Content-Type: text/plain; charset=utf-8

Hello World!
  1. Que se passe-t-il dans le navigateur ?
  2. Le code ci-dessus est-il conforme au protocole HTTP ? Contient-il du HTML valide ?
  3. Recommencer en modifiant la réponse.

32. Exercice 280 - Vidéo youtube et protocole réseau   wireshark

  1. Lancer une vidéo youtube (sans le son).
  2. Lancer wireshark. Quel filtre appliquer pour étudier le trafic réseau associé à la vidéo ?
  3. Appliquer ce filtre. A quelle couche le protocole filtré appartient-il ?
  4. Quel protocole de couche 5 (ou plus) youtube utilise-t-il pour les vidéos ?

33. Ressources

33.1. Modèle OSI

modele_osi.png

Figure 5 : Modèle OSI

33.2. Structure d'une trame

structure_trame.png

Figure 6 : Structure d'une trame

33.3. Structure d'un paquet IPv4

structure_paquet_ipv4.png

Figure 7 : Structure d'un paquet IPv4

33.4. Structure d'un segment

structure_segment.png

Figure 8 : Structure d'un segment (TCP)

structure_segment_udp.png

Figure 9 : Structure d'un segment (UDP)