Couches 3 & 4 : Infrastructures et services.

Réseau et adresse IP

Précédemment, nous avons vu les couches 1 & 2 permettant d'échanger des données entre deux ordinateurs par l'intermédiaire d'un médium de communication direct. Ils ne peuvent ainsi communiquer que s'il y a un accès direct de l'un vers l'autre. Cependant, il est rare que les ordinateurs soient directement reliés entre eux. Ils sont généralement constitués en réseaux, ou en réseaux de réseaux (e.g. Internet).
La couche 3 Réseau permet alors les échanges de données entre ordinateurs au travers d'un réseau, usuellement via le protocole IP. Les ordinateurs sont alors identifiés par une adresse IP (e.g. ) identifiant :
💡 La commande permet d'afficher l'adresse IPv4 des différentes interfaces réseaux de l'ordinateur:
$ ip -c -br -4 addr
lo               UNKNOWN        127.0.0.1/8 
wlo1             UP             192.168.56.101/24
lo + ip -br -c link
Nous avons ici une adresse IPv4 composée de 4 octets représentés sous forme décimale et séparés par un point. Les adresses IPv4 vont donc de à . Dans l'exemple précédent, indique le nombre de bits utilisés pour l'adresse réseau. Il est alors possible d'obtenir : 💡 La commande permet d'afficher différentes informations sur l'adresse IP:
$ ipcalc 192.168.56.101/24
Address:   192.168.56.101       11000000.10101000.00111000. 01100101
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.56.0/24      11000000.10101000.00111000. 00000000
HostMin:   192.168.56.1         11000000.10101000.00111000. 00000001
HostMax:   192.168.56.254       11000000.10101000.00111000. 11111110
Broadcast: 192.168.56.255       11000000.10101000.00111000. 11111111
Hosts/Net: 254                   Class C, Private Internet
Questions
Vous noterez que rien n'empêche de découper un réseau en plusieurs sous-réseaux : 💡 Passer par la représentation binaire peut parfois être un peu plus clair :
Questions

Configuration réseau

Contrairement à l'adresse MAC qui est codé en dur dans l'interface réseau, l'adresse IP va changer en fonction du réseau auquel l'ordinateur appartient. La configuration du réseau peut-être :
La configuration dynamique s'effectue va le protocole DHCP qui donnera à l'ordinateur :
💡 Un serveur DNS privé (ou le fichier ) permet de définir des noms de domaines privés qui ne seront connus qu'à l'intérieur du réseau (ou de l'ordinateur). Cela permet ainsi d'attribuer, gratuitement, des noms de domaines à des services internes au réseau.
💡 La commande permet d'afficher l'adresse IP associée à .

Routage

Nous avons donc un paquet IP contenant, entres autres :
Nous voulons envoyer ce paquet à travers d'un réseau de réseaux interconnectés (Internet). Il va donc falloir envoyer ce paquet à travers divers intermédiaires. Et donc de déterminer le chemin (route) que le paquet devra emprunter. Le réseau peut être vu comme un graphe dont les sommets correspondent à un intermédiaire, et les arcs à un lien entre intermédiaires. Le but est alors de trouver le chemin le plus rapide allant de l'expéditeur au destinataire.
Pour cela, chaque intermédiaire a une table de routage donnant pour chaque réseau, le prochain intermédiaire à qui transmettre le paquet :
$ route
Destination     Passerelle      Genmask         Iface
default         192.168.56.1    0.0.0.0         wlo1
192.168.56.0    0.0.0.0         255.255.255.0   wlo1
La table de routage donne alors pour chaque destination l'interface réseau à utiliser et l'adresse IP à qui transmettre le paquet. indique qu'on peut transmettre le paquet directement à sa destination.
💡 Il faudrait normalement utiliser , mais l'affichage est alors difficilement lisible.
Questions
💡 Pour vérifier qu'une adresse IP est accessible, on peut utiliser la commande . La commande quant à elle affiche le chemin pris par le paquet :
$ tracepath uca.fr
 1?: [LOCALHOST]                      pmtu 1500
 1:  livebox.home                                          4.456ms 
 1:  livebox.home                                          4.233ms 
 2:  no reply
 3:  ae115-0.nccle102.rbci.orange.net                     13.081ms 
 4:  ae44-0.nilyo102.rbci.orange.net                      14.652ms asymm  5 
 5:  ae40-0.nilyo101.rbci.orange.net                      14.945ms asymm  4 
 6:  81.253.184.114                                       24.459ms asymm  5 
 7:  193.251.142.16                                       39.373ms asymm 12 
 8:  ae7.cr6-par11.ip4.gtt.net                            27.405ms asymm 11 
 9:  ip4.gtt.net                                          26.759ms asymm 11 
10:  et-2-0-0-ren-nr-lyon1-rtr-131.noc.renater.fr         44.520ms asymm 13 
11:  hu0-5-0-40-ren-nr-clermont-rtr-091.noc.renater.fr    46.466ms asymm 14 
12:  193.51.183.251                                       51.197ms asymm 15
⚠ Pour des raisons de sécurité, certains intermédiaires peuvent bloquer les requêtes de et/ou de .
Je suis alors capable de voir que mon paquet passe par Paris, Francfort, Rennes, et enfin Clermont-Ferrand.
💡 Des sites comme https://ipinfo.io/ permettent de trouver la localisation d'une adresse IP.
Question
💡 Les réseaux ont plusieurs redondances (i.e. plusieurs chemins pour arriver au même endroit) ce qui permet d'être plus résistant aux pannes, e.g. lorsqu'un intermédiaire est hors ligne ou surchargé, le paquet peut passer par un autre chemin. Cela signifie aussi qu'une mauvaise configuration des tables de routage peut entraîner une boucle infinie dans lequel le paquet IP se perdra. Pour éviter cela, les paquets ont aussi un Time To Live (TTL), décrémenté à chaque intermédiaire, permettant de supprimer le paquet lorsque le TTL atteint 0.

Réseau privé, LAN, VLAN, VPN

Il est possible de créer son propre réseau privé, dont les machines ne sont pas directement accessibles à partir de l'extérieur. On utilisera alors des adresses IP dites privées, qui n'auront de sens qu'au sein de ce réseau (plusieurs réseaux privés pouvant utiliser les mêmes adresses IP). Les adresses IPv4 suivantes sont réservées pour les réseaux privés : 💡 On utilise généralement des adresses IPv4 pour les réseaux privés car sont plus confortables dans l'usage que les adresses IPv6 composées de 16 octets. Dans le cas général, on préfère souvent manipuler un nom de domaine qu'une adresse IP.
Il existe 3 équipements réseaux permettant de construire un réseau sur un site : 💡 Le réseau d'un concentrateur est appelé réseau local (LAN), tandis que les réseaux d'un commutateur sont appelés réseaux locaux virtuels (VLAN). Dans un LAN, l'ajout d'un ordinateur au réseau se fait en le branchant au concentrateur. Dans un VLAN, un ordinateur peut changer de réseau par simple modification de la configuration du commutateur.
Les équipements précédemment présentés permettent de placer des ordinateurs d'un même site au sein d'un même réseau. Cependant, cela ne fonctionne pas si les ordinateurs sont situés sur plusieurs sites, e.g. comme au sein de l'UCA avec ses différentes antennes.
Pour cela on utilise des VPN (Virtual Private Network) qui permettent d'établir un tunnel sécurisé entre plusieurs machines distantes. Ces machines seront vues comme faisant parties du même réseau. Cela est par exemple utilisé en itinérance pour accéder aux services internes d'une organisation, comme si on était sur place.
⚠ Les "VPN" commerciaux permettant de changer sa géolocalisation sont en réalité des proxy utilisant des protocoles réseaux de VPN. Ce ne sont pas des VPN per se, car n'ont pas pour fonction de créer un réseau privé virtuel.
Questions ? -> TOR (routage en onion) -> CM3 avec TLS ? + re-parler VPN (e.g. tunnel SSH / TUN-TAP / IPSec - etc.)

Ports

Nous sommes donc capables d'envoyer un paquet d'un ordinateur à un autre. Cependant, quel est le service destinataire de ce paquet ?
La couche 4 transport permet d'indiquer un numéro de port, identifiant le service destinataire du paquet. Par convention, certains numéros de ports sont réservés (cf ), e.g. :
Plusieurs protocoles en couche 4 existent, notamment :
Pour tous, une somme de contrôle (checksum) est ajoutée au datagramme/segment, même si un est déjà présent en couche 2. En effet, les couches étant indépendantes, on ne peut pas faire l'hypothèse qu'il y a bien une somme de contrôle en couche 2.
QUIC se distingue de TCP par le chiffrement des données (basé sur TLS) et le multiplexage des flux (i.e. peut gérer plusieurs flux de données). En pratique, cela permet différentes optimisations. Par exemple, pour établir une nouvelle connexion, TCP a besoin d'échanger 3 messages (4 messages pour TLS/TCP), quand QUIC n'a besoin que de 2 messages. Ainsi, s'il faut 25ms pour transmettre un message, TLS/TCP pourra prendre 100ms, quand QUIC n'en prendra que 50ms.
Les paquets pouvant arriver dans le désordre, ils sont numérotes. Les paquets pouvant aussi se perdre, une fonctionnalité majeure de TCP et de QUIC est l'acquittement, i.e. indiquer à l'expéditeur les paquets reçus par le destinataire. Si l'expéditeur ne reçoit pas l'aquittement, il renverra les paquets non-reçus. Cela se fait par le biais d'un message indiquant :
Pour éviter d'envoyer des messages trop fréquemment, TCP et QUIC ont un système de tampon (aussi appelé fenêtre ou window) qui permet de regrouper plusieurs données au sein d'un même message, permettant ainsi d'en réduire le nombre.
Une dernière fonctionnalité de TCP et de QUIC est le contrôle de flux. S'ils constatent que le réseau est congestionné, ils réduisent automatiquement la quantité de données transférées.
Questions ?

Parefeu

Port forwaring / NAT / nftable Questions. <1024 ou >=1024 => CM4 RTP couche 5 - 56 -> 64 + exo (cf photo). +