Réseaux IP
& réseau Indoor
Erwan TRANVOUEZ
erwan.tranvouez@univ-amu.fr http://erwan.tranvouez.free.fr
Département Microélectronique
& Télécommunications
2/108
Quelques références
TCP/IP, Joe Casad, Campus Presse
TCP/IP (Apprenez le fonctionnement des réseaux) E.
Lalite, OpenClassroom Eds. (cf.
https://openclassrooms.com/courses ex Site du zéro
)
Cours réseau de l’IUT d’info (C. Pain-Barre):
http://infodoc.aix.univ-amu.fr/~pain-barre/index.php?page=reseaux
Cours réseau + Sécurité P. Prestigiacomo :
https://www.pronetis.fr/documentation-pronetis.html
1. Internet ? Réseau !
Propos liminaires
4/108
Caméras IP
Les caméras sont connectées au réseau internet via la connexion locale (box internet par ex.)
https://www.securite1.fr
5/108
Autre exemple : Compteur Linky d’E(r)DF
Source image : lefigaro.fr
6/108
Mais surtout Internet !
Internet est un réseau de réseaux d’ordinateurs connectés entre eux.
Les liaisons entre les ordinateurs constituent des « tubes » par lesquels transitent les données.
=> Illustration avec traceroute
Source image: http://www.gsara.tv/neutralite/
Internet = WAN : Wide Area Network
=> réseaux locaux connectés LAN :
Local Area Network
(réseau local)
7/108
Adresse IP
On y reviendra, mais pour simplifier/commencer une adresse IP identifie un périphérique réseau (ie machine, routeur, objet connecté) dans un … réseau IP (Internet Protocol).
Adresse IP IV (4) codée sur 4 octets donc [0..255].[0..255].[0..255].[0..255]
Adresse IP VI (6) … you get the id
Ces IP peuvent être géolocalisées (cf routeurs fournisseur internets)
Afficher son adresse IP :
Ipconfig sous windows ifconfig sous linux
Regarder sur http://checkip.dyndns.org/
So ?
8/108
Donc un réseau c’est quoi ?
Des machines qui cherchent à se connecter à d’autres machines pour demander des informations
(éventuellement dans les 2 sens).
Ceci implique de définir :
Les rôles de chaque machine (demandeur/offreur)
Comment ces machines communiquent :
En terme de transport « logistique » de l’information* (adressage, comment rédiger une adresse, format de l’enveloppe, routage)
En terme de contenu du message (forme et fond du contenu)
Eventuellement en terme de séquence de messages attendus (ex.
accusé réception) => protocole
C’est ce que nous allons voir dans le peu de temps qui nous est imparti.
* Allégorie postale
9/108
Quelques outils de base…
Ping. Ligne de commande : ping nomHote|addresseIP
Envoie une demande d’accusé de réception d’un message simple (Echo, basé sur le protocole IMCP dédié au diagnostique réseau) pour vérifier l’accessibilité d’une machine distante1
TTL (Time to Live) :
par définition durée de vie du paquet d’information mesurée en nombre de routeurs «traversés» entre les deux machines. A chaque « saut » (hop) ou passage par un routeur la valeur est décrémentée.
Lorsque le TTL vaut 0, le paquet est détruit (et les données perdues).
La valeur par défaut varie selon le système d’exploitation (OS)
Ex: Windows 10 = 128, MacOSX = 64, Linux = 255)
=> pour savoir la valeur de votre système ping 127.0.0.1 !
La valeur renvoyée par ping est celle initialisée sur le chemin du retour : elle dépend donc de la valeur par défaut du serveur… que l’on ne connait pas (mais qu’on peut déduire car en général chemin <50 saut)
1. suppose qu’elle accepte de répondre au ping (contre ex. blocage parefeu)
10/108
Quelques outils de base…
Ex sous windows
Sous Linux ajouter paramètre –c n avec n le nombre de tentatives (sinon, envoi continu de paquets - interruptible avec Ctrl+C)
C:\Users>ping www.cnn.com
Envoi d'une requête 'ping' sur prod.turner.map.fastlylb.net [151.101.60.73] avec
32 octets de données :
Réponse de 151.101.60.73 : octets=32 temps=101 ms TTL=56 Réponse de 151.101.60.73 : octets=32 temps=99 ms TTL=56 Réponse de 151.101.60.73 : octets=32 temps=102 ms TTL=56 Réponse de 151.101.60.73 : octets=32 temps=99 ms TTL=56 Statistiques Ping pour 151.101.60.73:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%), Durée approximative des boucles en millisecondes :
Minimum = 99ms, Maximum = 102ms, Moyenne = 100ms Hoteque l’on contacte
Temps de transport suivi de la valeur
TTL restante*
Taille message envoyé
Machine (nom domaine &
adresse IP) hébergeant l’hôte. Ici sous-domaine =
www => serveur web
Valeur TTL = valeur par défaut du serveur – nombre de routeurs traversés =>
supposons 64 => 63 – 56 = 7
Moyenne calculée sur 4 envois
11/108
Quelques outils de base…
TraceRoute
(traceroute sous linux, tracert sous windows).
Ligne de commande : traceroute nomHote|addresseIP
Principe : découvrir le chemin suivi par une requête entre une machine cliente et une machine distante.
Astuce : Traceroute envoie le paquet d’information avec un TTL de 1 afin que le routeur signale une erreur en retour qui identifie par où le paquet est passé (puis on renvoie avec un TTL incrémenté de 1).
Le résultat n’est pas tout à fait fiable en terme de reproductivité (le chemin n’est pas
« tracé » une fois pour toute …
… mais illustre bien le principe du chemin vers le serveur distant comme étant constitué de « sauts » de routeur en routeur.
Alternative Windows® ? Pathping
Commmande : pathping hote/IP
Utilise traceroute pour calculer un chemin, puis "ping" chaque nœuds 100x sur le chemin entre le client et l’hôte distant …
… pour avoir une mesure plus fiable du temps de réponse de chaque nœud.
=> plus long (annonce 400 secondes de traitement des statistiques)
Dans les 2 cas, certains nœuds peuvent refuser de répondre au ping (sécurité réseau pour éviter les attaques…)
12/108
T race Pathping Client
C:\>pathping www.un.org
Détermination de l'itinéraire vers www.un.org [157.150.34.32]
avec un maximum de 30 sauts :
0 LSIS-TRANVOUEZ.mshome.net [192.168.0.49]
1 FREEBOX [192.168.0.254]
2 far13-2-88-120-46-254.fbx.proxad.net [88.120.46.254]
3 213.228.33.62
4 marseille-6k-1-v806.intf.routers.proxad.net [212.27.51.117]
5 p11-crs16-1-be1102.intf.routers.proxad.net [78.254.249.89]
6 th2-9k-3-be1001.intf.routers.proxad.net [194.149.162.86]
7 be4204.ccr21.par04.atlas.cogentco.com [149.11.115.13]
8 be12308.ccr41.par01.atlas.cogentco.com [130.117.49.41]
9 be2746.ccr41.jfk02.atlas.cogentco.com [154.54.29.117]
10 be2056.ccr21.jfk10.atlas.cogentco.com [154.54.44.218]
11 att.jfk10.atlas.cogentco.com [154.54.10.98]
12 cr1.n54ny.ip.att.net [12.122.105.14]
13 cr81.nw2nj.ip.att.net [12.122.105.30]
14 ggr2.n54ny.ip.att.net [12.122.130.5]
15 12.119.34.234 16 157.150.192.240
17 * * *
Traitement des statistiques pendant 400 secondes...
Hoteque l’on contacte
IP Client (locale)
passerelle Box Internet
1. Calcul un chemin de la machine cliente vers l’hote (www.un.org)
Destination
13/108
T race Pathping Client
2. Ping chaque nœud du chemin afin d’identifier des problèmes réseaux
Pertes importantes de
paquet
2. Généralités &
vocabulaire réseau
15/108
Architecture Client - Serveur
Architecture basée sur une connexion réseau entre deux terminaux :
Le client : nécessitant un service / traitement / donnée => envoie une requête à un serveur.
Le serveur : responsable du traitement des requêtes ie prise en charge/exécution de la requête puis transmission du résultat.
Le serveur :
écoute sur un port logiciel dédié (ex. 80 pour HTTP, 443 HTTPS, 25565 Minecraft ) accessible par plusieurs clients.
Entame un dialogue avec le client selon le protocole de communication requis.
Suppose capacité de traiter plusieurs clients à la fois (typiquement connexion sur le port dédié puis le serveur renvoie vers un autre port pour une connexion directe ...
et se remet à l’écoute d’autres clients (etc.)
=> illustration avec navigation web…
Source image : Wikipedia16/108
Illustration avec fonctionnement d’un serveur web (over simplified)
Ordinateur Serveur
157.20.45.28
Ordinateur Client
192.120.20.4
Serveur Web Navigateur
Web
1. Adresse DNS IP de
www.ici.net
2. C’est l’IP 157.20.45.28
4. Index.html
Domain Name Server : maintient une Table de correspondance : nom de Domaine / adresse IP
Aller sur
www.ici.net/index.html
3 : protocole HTTP
Connexion à 157.20.45.28 + requête GET
17/108
Illustration
La communication entre 2 machines (ou ressources pour être plus précis) utilise le protocole IP (Internet Protocol, un peu redondant :/ ). Donc pour échanger, il faut qu’ils connaissent leur adresse respectives (sinon NPAI)
On utilise habituellement un nom de domaine plus facile a mémoriser qu’une série de chiffres.
Let’s look closer : quelques outils
nslookup(W© & Linux) outil permettant de « requêter » son cache DNS ou un serveur DNS
Obtenir l’adresse IP d’un adresse web connue : nslookup machin.fr
Faire de même auprès de son DNS : nslookup–type=soa machin.fr
Inversement avoir le nom de domaine d’une adresse IP : nslookup 8.8.8.8
Server (W©) outil permettant de changer a mano son serveur DNS (ex. google 8.8.8.8)
Let’s play
1. Ouvrir une console (powershell or whatever)
2. Afficher sa table DNS : ipconfig /displaydns [> liste.txt]
3. Vider sa table DNS ipconfig /flushdns
4. Faire un ping sur un site
5. Afficher à nouveau sa table DNS (Wow!)
6. « jouez » avec le commandes précédentes
18/108
Exemple du déroulement d’une requête DNS
Source (et pour plus de détail) :
https://gitlearning.wordpress.com/2015/06/23/dns-server/
Peut maintenir en cache une liste d’adresse fréquemment demandée
Afficher sa table DNS locale : ipconfig /displaydns
(Windows)
19/108
Censure par DNS
Principe
Une autorité (judiciaire, politique) demande à ce qu’un site internet ne figure pas dans la base de donnée d’un ou plusieurs DNS (typiquement FAI)
Plus rigolo, indiquer une autre adresse IP que l’officielle : DNS Poisoning
Exemples :
Blocage sites internets « pirates »
Blocage twitter en turquie (2015), youtube
Solution ?
Utiliser un autre serveur DNS … qui peut aussi être ciblé (usurpation d’IP).
Autres Techniques de censure :
Blocage IP (le routeur ne laisse pas passer les demandes vers une liste d’IP blacklistées)
Filtrage par paquet IP (on regarde le contenu du message et on laisse passer … ou non) : ex. filtrage contenus pear 2pear => of course a un coup machine plus important que la technique précédente.
DNS de google… un ami ?
20/108
Apparté : Nom de domaine internet
Root
edu net com gov
gouv.fr
de fr
monsite.fr univ-amu.fr
polytech.univ- amu.fr TLD : Top Level Domain
260 domaines nationaux
~300 domaines génériques
www.univ-amu.fr
Domaine TLD internet Gérée par
l’IANA / ICANN
Gérée par l’AFNIC
Gérée par l’AMU
Chaque niveau héberge 2 DNS chargés :
- En interne : d’acheminer les requêtes DNS à l’extérieur - En externe : de renseigner les requêtes externes sur l’adresse IP de la machine demandée
(ex. polytech.univ-amu.fr ou www.univ-amu.fr)
Gérés par Verisign
Géré par une agence US
« indépendante »
Nom de domaine de 2èmeniveau
sous domaine
L’enregistrement d’un nom de domaine se fait auprès d’un register qui se charge de contacter la ou les
agences responsables des domaines TLD.
21/108
Illustration avec WhoIs
WhoIS : service de recherche des registres internet
Capture d’écran du résultat sur la disponibilité du domaine univ-amu.fr sur le site de l’AFNIC (www.afnic.fr)
22/108
Modèle pair à pair (peer-to-peer P2P)
Systèmes dans lequel les clients peuvent également jouer le rôle de serveur
Usage classique : partage de fichier,
Le terminal source se connecte au réseau P2P (implique un point d’entrée donc potentiellement un serveur ou des serveurs)
Nécessité de définir une certaine topographie pour assurer un délai de transport des informations raisonnable
S’appuie en général sur une couche TCP/IP (voir TCP/UDP pour le streaming).
Source image : Wikipedia
23/108
Cloud Computing
Mise à disposition de services à des clients via des serveurs … sans que le client se préoccupe de l’architecture réseau « interne » :
On ne loue plus du matériel mais un service défini en terme de capacité, débit réseau, nombre connexions… (éventuellement évolutive)
On passe du « nombre entier » à la virgule …
… et ce y compris côté fournisseur qui peut adapter son offre à la demande.
=> paiement à l’usage : location/abonnement plutôt que Licence.
=> Amazon : AWS (Amazon Web Service) CA > 35 Md $ en 2019
…
Oct. 2020
24/108
Cloud Computing (suite)
Exemple d’architecture et niveau de service :
Niveau externalisation
(source wikipedia)
https://regardsurlecloud.wordpress.com
25/108
Cloud Computing (suite)
Shadow © = PC Virtuel illustré par usage gamer (nécessite 15 mo/s :/ )
=> PaaS (platform as a service)
=> https://youtu.be/clWT1oPQGmM
Existe autres solutions similaires « jeux vidéos dans le cloud » : Nvidia GEForce Now, OVH RunAbove…
[Numerama.com], Google Stadia depuis …
Img : shadow.tech
Fibre Fibre/adsl/4G
Boitier dédié ou PC/Tablette via App
PC Virtuel
Serveur de Jeu
1 2
3 4 5
6 7
26/108
Un peu de vocabulaire :
Architecture Client - Serveur
Srce Image : http://www.conceptdraw.com/
Machine Cliente : ordinateur (ou
smartphone, tablette, etc.) se connectant au réseau (surf, mail, partage fichier…).
Va chercher (càd une de ses applications) à se connecter à une machine distante pour demander quelque chose (e.g. si navigateur web => page web à un serveur web).
Ici le client n’a pas accès (direct) au
ressources interne du serveur (ex. SGBD, systèmes de fichier)…
… à moins qu’il n’ait les droits (authentification etc.).
www.siteweb.fr Serveur web
SGBD
27/108
Un peu de vocabulaire :
Architecture Client - Serveur
Srce Image : http://www.conceptdraw.com/
Serveur : Machine proposant des
Services/traitements distants à des clients.
Par exemple dans le cas d’un site web dynamique :
-Serveur Web : capable de gérer des requêtes HTTP (GET pour demander une page web par exemple)
- Serveur SGBD : capable de gérer des données, réponds à des requêtes SQL demandées par le module PHP du serveur Web par exemple.
www.siteweb.fr Serveur web
SGBD
28/108
Un peu de vocabulaire : Serveur (suite)
Serveur Web :
décrit en fait une application logiciel sur un serveur capable de
comprendre des requêtes web (demande de pages html) et y répondre.
Utilise le protocole HTTP gérant l’envoi et l’exécution de la requête.
Le client demande une page web, le serveur lui renvoie la page (fichier) au format HTML.
Serveur d’Application :
programme informatique capable de réaliser des calculs à la demande de clients. Requiert un protocole de communication entre client et
serveur.
=> le client demande au serveur de lancer des calculs/opérations qui lui envoie ensuite les résultats
Avantage : la logique « métier » est côté serveur, le client n’a accès qu’au résultat et pas au code ayant permis de produire ce résultat.
Exemple : Version « online » de Microsoft Office (ou Google doc),
29/108
Exemple de combinaison serveur Web & SGBD
Combinaison classique :
Serveur Web : Apache
Module PHP dans Apache
SGBD : MySQL
Ordinateur Serveur Ordinateur
Client
Serveur Web Navigateur
Web
page.php
page.php
SGBD
Plugin PHP
Fichier php
BD
page.php
Page HTML
<html><body><h1>Titre</h1>…
30/108
Illustration protocole HTTP
Principe :
1. Se connecter au serveur (port 80) 2. Envoyer des commandes HTTP
2 commandes :
GET ressource : renvoi le contenu de la ressource ciblant un fichier contenant ou capable de produire du HTML
ex. GET / => envoi le fichier a la racine du site web cad en principe par défaut index.html
POST : idem + envoi de données (formulaire) qui seront exploitées par le serveur
Illustration avec TELNET => Jean-Michel AVOU
1. Télécharger puttyhttps://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
2. Paramètres : Host = site web Port 80 (en général), Type connection : Raw , Close Window on exit : Never
3. Taper une commande HTTP
31/108
Illustration Consultation mail avec Telnet : principe général
Le logiciel Telnet permet de créer une connexion avec une machine distante (pour peu qu’elle l’accepte)
Une fois connecté on peut lui envoyer des commandes qui seront exécutées par cette machine et qui renverra les résultats des
requêtes.
Ex : Consulter ses mails avec Telnet
1. Se connecter : il faut
l’adresse IP de la machine hébergeant le serveur mail (ou son « nom » qui permettra de retrouver l’IP via un DNS)
Le port d’écoute (ex: 80 pour HTTP, 110 pour POP, …)
2. Une fois connecté il faut envoyer des commandes (par ex. au clavier avec une Console Telnet)
3. Et voila…
La partie compliquée vient du fait que ne passant pas par un
logiciel avec une jolie interface graphique vous devez envoyer
directement les commandes reconnues par l’application contactée
32/108
Illustration Consultation mail avec Telnet : Commandes POP
USER : envoie le nom d’utilisateur avec lequel on souhaite se connecter
PASS : envoie le mot de passe (en clair °_°, carefull)
LIST : liste les mails par leur numero et leur taille
RETR n : récupère le nieme mail du compte POP connecté
DELE n : supprime le nieme mail
QUIT : (sic)
Et c’est tout
+OK POP3 ready <183576862.1396997966@popn1>
USER compte.pop PASS seriously?
RETR 200
+OK message follows […]
Received: [suit en tete "technique« du mail]
From: "Voyages-sncf.com" …
Date: Tue, 08 Apr 2014 10:32:52 +0200
Subject: OFFRE DUO TRAIN : partez a 2 et payez pour 1 (1)!
To: <compte.pop@unmail.fr>
Reply-To: "Voyages-sncf.com" <bonsplans@newsletter .voyages-sncf.com>
MIME-Version: 1.0
X-mailer: nlserver, Build 6.0.2.6860
33/108
Illustration Envoi mail avec Telnet : quelques commandes SMTP
HELO (ou EHLO) : indique qui on est (compte mail)
MAIL FROM: toto@mail.fr : indique l’expéditeur
RCPT TO: titi@mail.fr : indique le destinataire
DATA [contenu] . : contenu multiligne compris entre DATA et . suivis d’un retour chariot
Et c’est tout
Illustration :
Trouver l’addresse IP du serveur mail Pop de free (pop,free,fr)
Utiliser Telnet (ou putty) pour se connecter sur le serveur Pop
Lister les messages et en lire 1
34/108
Un peu de vocabulaire : Réseau local
Srce Image : http://www.conceptdraw.com/
Ensemble de machines (au sens large)
connectées entre elles (cable, wifi, …) afin d’échanger des données/informations
limitée à un périmètre donné (ex. université, département, machines connectées à une box).
Ceci suppose d’être d’accord sur la manière de s’adresser (pun) :
Adresse/identifiant sur le réseau local (qui est qui) =>
MAC (cf. tr. suivant)
Protocole de transmission des données (selon quel
« protocole » (lever la main, /voix du/de la plus fort/e ?).
Que le message transmis est lui-même compris par tout le monde.
35/108
Un peu de vocabulaire : Adresse MAC
La machine se connecte via une carte réseau (wifi, ethernet,…)
ou NIC (Network Interface Card).
Chaque carte (ou périphérique) réseau est identifiée par une adresse MAC (Media Access Control) ou adresse Physique UNIQUE : ex. carte R Ethernet, R Wifi, carte bluetooth, objet connecté…
Le principe d’un réseau local consiste à transférer des données d’une adresse MAC à une autre (d’un périphérique réseau à un autre) …
Retrouver son adresse MAC sous Windows® en ligne de commande :
Touche windows + R : cmd puis taper Ipconfig / all
Sous linux : ifconfig
Carte réseau Ethernet (PC Fixe)
« Carte » réseau Wifi
36/108
Un peu de vocabulaire : rôle d’une adresse MAC
C’est un identifiant (normalement unique) d’une carte ou d’une interface réseau.
définie au niveau matériel
codée sur 6 octets => 48 bits
24 bits (3 o) pour identifier le constructeur
24 bits pour id constructeur (16 M° d’adresse).
Donc peut servir pour restreindre l’accès à un réseau local aux seules machines connues… (voire DHCP)
Ex:
(cf. configuration de votre Box internet) Liste Blanche d’adresses MAC (périphériques autorisés)
Liste noire d’adresses MAC (périphériques interdits)
… MAIS sécurité limitée (si adresse MAC modifiée au niveau
OS) => usurpation d’adresse…
37/108
Un peu de vocabulaire : Hub
Concentrateur / Hub: dispositif permettant de connecter plusieurs machine (via cable ethernet) à un même réseau local.
Il réplique/diffuse les informations qu’il reçoit sur l’ensemble des
périphériques connectés
Diffusion « aveugle »
Sécurité bof (sniffing ->
démo WireShark)
Maximum de hubs connectés à la chaîne : 2 à 4 selon
débit.
Hub
Symboles
(modélisation réseau)
Srce Image : http://www.conceptdraw.com/
38/108
Un peu de vocabulaire : Switch
Commutateur réseau / Switch : idem Concentrateur + routage identifié des paquets (adresses Mac)
Plus « sécurisé » car seule la machine concernée reçoit les informations (réduction
encombrement réseau) … sauf si connecté via Bus (of course)
Maximum 7 enchaînement de switch (recommandé)
Symbole (modélisation réseau)
Switch
39/108
Un peu de vocabulaire : Routeur
Routeur: permet de connecter plusieurs réseaux entre eux (peut être un ordinateur mais en général c’est périphérique matériel dédié) : ex. box internet (ou box internet en mode bridge relié à un routeur wifi).
Le routeur se préoccupe de la route (hence the name) que doit suivre un paquet d’information
d’un point A (machine cliente) à un point B (machine distante).
Symbole
(modélisation réseau)
Routeur Routeur
Exemple routeur : partage connexion téléphone =>
connexion data vers internet + wifi/bluetooth vers Ordinateur
40/108
Un peu de vocabulaire : réseaux et sous réseaux informatique
Srce Image : http://www.conceptdraw.com/
41/108
Transmission d’information dans un réseau
Paquet : les flux d’information représentent des flux de données circulant dans un réseau. Ces flux sont
découpés en paquets d’information (partitionnement du débit
=> pas de monopolisation de la parole, fluidification du trafic),
=> implique découpage d’un flux puis reconstitution du flux (avec ordre d’arrivée des paquets non garanti)
Collision : conflit en cas de ressources partagées (même câble, connexion via un hub) lorsque deux
machines envoie des paquets d’information en même temps.
Solutions ?
machine écoute pour vérifier disponibilité ressource avant envoi
système de jeton allouant un temps de « parole.
liaison bidirectionnelle séparant l’envoi de la réception
3. Modèle OSI
(Open Systems Interconnexion)
43/108
Retour sur réseau local : topologie
Topologie physique = schémas des connexion des machines entre elles (direct/indirect)
A des conséquences sur le mode de circulation de l’information
Ex : topologie en Bus : les paquets circulent tout le long du câble et sont visibles par chaque ressources
Topologie logique = fonctionnement du réseau (circulation information) qui peut dépendre de la topologie physique… ou pas
Ex : Connexion via Hub = Bus
Té (male / femelle) Cable Coaxial + bouchon
44/108
Topologie physique & logique réseau
Mode de diffusion
Ex: réseau Ethernet (Token Ring)
Mode Point à Point
Srce Image : Wikipedia
Rque si Hub
=> = Bus logique
45/108
Modèle OSI (ISO) : que se passe t’il à l’intérieur des ressources
Standard réseau d’interconnexion de machines (Open Systems Interconnexion)
Source Image http://www.frameip.com/osi/
Chemin suivi
Navigateur :
GET /index.html Serveur web reçoit :
GET /index.html
Réseau local de l’Hôte A
46/108
Modèle OSI (ISO) : détail
Applications nécessitant un accès réseau : càd programmes (navigateur/mail…) nécessitant
données/informations externes. Mail/HTTP/FTP…
Couche « abstraite » caractérisant les besoins de communication (niveau sémantique) réseau
indépendamment de sa mise en œuvre « concrète » : ASCII, MIME
Gère la connexion réseau : session =
(application/connexion/durée) à d’autres ordinateurs
Gère le transport « logique » des paquets : découpage / réassemblage, vérification (ex. accusé réception du
segment), pilote le processus de connexion
Gère le sous réseau : adresse logique ex. IP) / optimisation chemin transmission des paquets => Routeur
Assure la transmission des données : adressage
« physique » (MAC), décompose en autant de trames que nécessaire paquet du niveau supérieur. Demande à la couche 1 de transmettre les données, Vérifie (Checksum) /fait remonter les erreurs rencontrées au niveau supérieur : Carte Réseau / Switch
Chargé de la transmission (physique) des données =>
Cables (voltage), Ondes (ie wifi), pigeon voyageur (*) … [+
Carte Réseau (traduction bits<->signaux)].
Srce Image : Wikipedia * Trouvé via [Lalitte] cf « IP over Avian Carriers »
47/108
Modèle OSI (ISO) : processus d’encapsulation des données
http://www.frameip.com/osi/
Hub
Rappel : données Diffusées à tous les périphériques
Connectés (collision)
Diffuse /réplique
le «paquet» sans le regarder
Switch
Regarde l’adresse pour savoir à qui l’envoyer (mais sans ouvrir le paquet!) =>
nominatif
48/108
Transmission d’information dans un réseau
Protocole : définit comment 2 périphériques communiquent.
Format de données (entête et contenu)
Format d’adresse (comment désigner « Qui » ?)
Correspondance d’adresse
Transport (routage)
Détection Erreurs de transmission
Accusé de réception
Gestion de perte d’information (ou non. ex. TCP vs UDP)
Contrôle de séquence
…
49/108
Illustration transmission trame
La circulation d’information dans un réseau local se base sur les adresses MAC (IP = inter réseau)/
Dest : mac03 Exp: mac01
MAC : mac01
MAC : mac03
MAC : mac2
Décode Message =>
trame
Lit Dest. : pas moi
=> jette (oubli) la trame Décode Message =>
trame
Lit Dest. : pour moi
=> transmet trame couche supérieure
50/108
Format d’une trame Ethernet II
Structure d’une trame :
Exemple de type de trame
(EtherType) 0x0800 : IPv4 0x86DD : IPv6 0x0806 : ARP
Adresse MAC :
• unicast : adresse MAC de la machine ciblée
• broadcast : 255.255.255.255 => diffuse à l’ensemble des périphériques connectés à un réseau
• multicast : adresse MAC virtuelle représentant un groupe de périphérique (~abonnés)
7 octets 1o 6 octets 6 octets 4 octets 42o à 1500 o 0 ou plus 4o
D Contenu Tampon CRC
(Données) Préambule Mac Destinataire Mac Expéditeur Ether
Type
1010….1011 Dél imitateur
Code de vérification
du conten u
Annonce Adresse Adresse Type de Remplis si Vérifie que le
début de la Destination Source trame taille trame contenu a été
trame n'atteint correctement
pas la taille transporté minimale
51/108
Gestion des paquets
Un datagramme a une taille mémoire minimum et une taille maximum
Si le contenu qu’une couche n doit
transmettre à une autre n-1 est trop grand => découpe en 2 (ou plus) paquets…
Suppose que sur la machine destinatrice, cette couche devra
reconstituer ce contenu initial en l’extrayant des paquets et en les concaténant dans l’ordre.
S’il le contenu est trop petit (bout d’un paquet par exemple), le volume manquant est « rembourré » (padding) par des
caractères( ‘/0’ par ex.)
Et ceci est fait par chaque couche…
Taille maxi : n+p n octets p octets
En-Tête Protocole
Contenu
p octets trop !
Contenu
En-Tête Protocole En-Tête Protocole
2/2
Contenu 1/2
4. TCP / IP
53/108
Introduction TCP/IP
généralités
54/108
Protocole TCP / IP & OSI
Décrit en réalité 2 protocoles
TCP : Transmission Control Protocol
Assure que les informations sont bien
transmises (par ex, peut renvoyer un paquet)
UDP : même niveau que TCP mais ne demande pas d’accusé de réception…
(ex streaming audio ou video)
IP : Internet Protocole (v4 ou v6),
encapsule les données transmises par la couche transport ets’assure de sa transmission.
ICMP : Internet Control Message Protocol.
protocole diagnostique réseau
(inclut le fameux ECHO utilisé par ping)
ARP :
Adress Resolution Protocolepermet de connaître l’adresse MAC correspondant à une IP (cf. plus loin)
http://www.frameip.com/osi/
+
55/108
Protocole TCP / IP : processus d’encapsulation
Navigateur web utilisateurDonnées
Application
Encapsulation
En-tête Applicatif
Données utilisateur
TCP
Encapsulation
En-tête TCP
IP Segment TCP
Encapsulation
En-tête IP
En-tête TCP
En-tête Applicatif
Données utilisateur
Ethernet Datagramme IP
Encapsulation
En-tête Ethernet
En-tête IP
En-tête TCP
En-tête Applicatif
Données utilisateur
Remorque Ethernet
Cable Ethernet 14 o 20 o 20 o
46 à 1 500 octets Transport vers couche ethernet de la machine cible
En-tête Applicatif
56/108
Protocole TCP / IP : structure de donnée d’un paquet
4 octets 4 octets 8 octets 16 octets
Longueur totale (en octets) Version d'en-tête Type de Service (65535 octets maximum)
Identification du paquet TCP/IP
( si information découpée en +sieurs paquets) Drapeau Décalage Fragment TTL - Time To Live Protocole Somme de contrôle en-tête
Nb Sauts maxi IMCP=1, TCP=6 UDP=15 (permet de vérifier l'intégrité du paquet) Adresse IP Source
Adresse TCP Destination
Options Tampon
Port (d'écoute) de la Source Port (d'écoute) de la Destination Numéro de séquence
Numéro de séquence Tampon
Options TCP
DONNEES TCP
En -T ê te IP TC P
Longueur
Si un paquet (identifié par «identification») est décomposé en plu- sieurs sous paquets, permet d’identifier le N° de sous paquet et de reconstituer le contenu initial.
57/108
Format d’une adresse IP (IP V4)
Compris entre 1 &
126 Ex. Apple, 17, HP 15,
IBM 9 Compris entre 128 &
191 Ex.
Microsoft Compris entre 192 &
223
Compris entre 224 &
239
50% des adresses 126 réseaux
16 M° et qq hôtes / réseau
25% des adresses 16 000…
réseaux 65534 hôtes
12,5%
Compris entre 2 M° &
254 h/r
Adresse unique
www.inetdoc.net/articles/adressage.ipv4/adressage.ipv4.subnet.html
58/108
Format adresse réseau
On le voit rapidement, la capacité d’accueil de nombre de machines hôtes (clientes) sur le réseau est « rapidement » atteinte
=> solution décomposer en sous réseaux :
Les machines ont des adresses « internes » avec un routeur qui filtre et transmet les informations aux machines du sous réseau (effet collatéral, réduction du traffic à l’intérieur du sous réseau).
On affecte une adresse IP à un sous réseau
On affecte une adresse interne (locale) à chaque hôte du sous réseau
Utilisation d’un Masque réseau : qui permet à partir d’une adresse de retrouver l’adresse du sous réseau. (cf. tr suivant)
Pour les possesseurs de «internet Box » => C’est ce que vous avez chez vous avec votre FAI => 192.168.0.30 par ex. n’est pas l’adresse réelle (tester avec ipconfig /all vs ip publique).
=> augmenter la taille de l’adresse : IP V6
(codée sur 6octets)59/108
Autres avantages de décomposer en sous réseaux
Optimisation de l'espace réservé à une adresse IP (on vient de le voir)
Utilisation de plusieurs media (câbles, supports
physiques). La connexion de tous les noeuds à un seul support de réseau peut s'avérer impossible, difficile ou coûteuse.
Réduction de l'encombrement : par exemple, les requêtes ARP sont diffusée à l’ensemble des nœuds (machines) connectées
=> moins de nœuds = moins de traffic
Economise les temps de calcul. (diffusion).
Renforcement de la sécurité. Sur un support de diffusion du réseau comme Ethernet, tous les nœuds ont accès aux paquets
envoyés sur ce réseau. Si le trafic sensible n'est autorisé que sur un réseau, les autres hôtes du réseau n'y ont pas accès.
http://www.inetdoc.net/articles/adressage.ipv4/adressage.ipv4.subnet.html
60/108
Adressage réseau / réseau privé
Un adressage IPv4 identifie donc un réseau et une ressource (avec le masque)
Nb bits réseau (masque) + Nb bits ressources = 4*8 = 32 bits
139.124.244.38 /16
Tester IP Checker (ipinfo.info)
De même que dans la vraie vie on ne fait pas ce qu’on veut : les plage d’adresses réservées sont :
10.0.0.0 /8 [10.0.0.0 - 10.255.255.255]
172.16.0.0/12 [172.16.0.0 - 172.31.255.255]
192.168.0.0 / 16 [192.168.0.0 - 192.168.255.255 ]
Ces adresses ne seront donc pas utilisées sur « internet »
Typiquement, adresses 192.168 utilisées par les FAI (adresse locale vis-à-vis de votre "Box",
JMAV : Pourquoi réserver ? Quel impact si l’adresse locale est
utilisée par un serveur web ?
61/108
Adresse IP & Masques 1/2
Considérons le réseau Classe C
192.168.170.0 / 24
Il peut accueillir les adresses
192.168.170.0 à 192.168.170.255soit en binaire de 11000000 10101000 10101010 00000000 à 11000000 10101000 10101010 11111111
L’idée est d’utiliser une partie des bits réservé à la partie hôte pour désigner des sous réseaux, à l’intérieur desquels on pourra
distribuer des adresses à l’envie
(dans la limite des stocks disponibles)
Si on veut accueillir 3 sous réseaux (de tailles égales), il faut 2 bits (00, 01, 10) => on utilise les 2 bits forts (bit en partant de la gauche) pour marquer l’adresse des sous réseaux => les adresses 000000
& 111111 obtenues en complétant les 6 bits restants sont
« réservées »
11000000 10101000 1010101000000000 - ID du Sous-Réseau 0 11000000 10101000 1010101001000000 - ID du Sous-Réseau 1 11000000 10101000 1010101010000000 - ID du Sous-Réseau 2
Les 6 derniers bits donnent l’adresse interne dans le sous réseau (dans ce cas 2^6 = 32 soit 30 puisqu’on enlève 000000 (adresse du réseau & 111111 permettant d’envoyer un paquet à tous le sous réseau (broadcast)
http://arsene.perez-mas.pagesperso-orange.fr/reseaux/tcpip/ip.htm
62/108
Adresse IP & Masques 2/2
Le Masque permet de retrouver sur une adresse IP l’adresse d’un sous réseau : 255.255.255.0
Principe: se calcule par opération logique & (bit à bit) entre l’adresse IP de l’ordinateur (au format binaire) & l’adresse IP du masque du sous réseau
EX :
Soit dans cet exemple : 192.168.170.64
Notation CDIR (Classless Inter-Domain Routing)
/n : n = nb de bits valant 1
Ex 194.10.200.10/24
=> Masque 24 = 3x8 "1"
11111111 11111111 11111111 00000000
=> 255.255.255.0
63/108
Zoom sur le loopback : localhost
Localhost correspond à l’adresse 127.0.0.1 faisant référence à la
machine hôte (elle-même donc).
De fait, une requête sur un port de cette adresse s’arrête à la couche internet => ne descend pas au niveau matériel…
Exemple d’utilisation : EasyPhP pour
développer un site web dynamique en local avant de le déployer sur un serveur.
Port Apache (serveur web) par défaut : 80 => 127.0.0.1:80
Port MySQL (SGBD) par défaut : 3307
64/108
Retour sur Adresse IP & Port
Ex : Serveur web local : 127.0.0.1:80
Un port peut être vu comme l’adresse d’une application permettant d’avoir plusieurs applications utilisant en // un périphérique réseau.
Ex : netstat (windows ©)
PS C:\Users\tranvoueze> netstat Connexions actives
Proto Adresse locale Adresse distante État
TCP 127.0.0.1:2869 LSIS-TRANVOUEZ:51225 TIME_WAIT TCP 127.0.0.1:2869 LSIS-TRANVOUEZ:51233 TIME_WAIT TCP 127.0.0.1:49158 LSIS-TRANVOUEZ:49159 ESTABLISHED TCP 127.0.0.1:49159 LSIS-TRANVOUEZ:49158 ESTABLISHED TCP 127.0.0.1:58078 LSIS-TRANVOUEZ:58079 ESTABLISHED TCP 192.168.0.49:50598 ws-in-f189:https ESTABLISHED TCP 192.168.0.49:51043 mail:imaps ESTABLISHED TCP 192.168.0.49:51088 par21s05-in-f142:https ESTABLISHE TCP 192.168.0.49:51161 ec2-52-214-62-216:https ESTABLISH TCP 192.168.0.49:51208 192.168.0.45:8008 TIME_WAIT TCP 192.168.0.49:51212 192.168.0.45:8008 TIME_WAIT TCP 192.168.0.49:51213 40.77.226.250:https ESTABLISHED TCP 192.168.0.49:51217 192.168.0.45:8008 TIME_WAIT TCP [::1]:2869 LSIS-TRANVOUEZ:51226 TIME_WAIT
65/108
IP & Port : suite
Numéros de ports
0 .. 1023 réservés pour protocole connus ( ftp=21, telnet=23, http=80, etc.)
1024 .. 49151 : peuvent être réservés pour applications connues
Ex : Java RMI 1098, 1099, Battle.net (Blizzard) 1119, OpenVPN= 1194
49152…65535 : non réservable
Question : Quid des applications type P2P qui utilisent des ports spécifiques !
Illustration avec CurrPorts http://www.nirsoft.net/utils
(voir aussi Sniffs pour la capture de paquet IP)
66/108
Comment définir un masque : cas d’un
codage sur 1 octet (réseau classe C)
Selon le nombre n de sous-réseaux requis :
1 bits = 0 ou 1 => 2 sous réseaux
2 bits = 00 01 10 11 => 4 sous-réseaux
Etc il faut choisir le nombre de bits p tels que 2p-1< n ≤ 2p
Mais aussi en fonction du nombre de machines à raccorder :
Si p bits pour identifier les sous-réseaux il reste alors (8-p) bits pour identifier les machines (hors les 2 adresses réservées ayant tous les bits restant à 0 ou à 1)
Soit : 2(8-p) -2
Donc si 3 bits / 8 réservés au sous-réseau
23 = 8 sous-réseaux maxi (soit 000, 001, 010, 011, 100,101,110, 111)
25 soit 32 – 2 = 30 adresses par sous-réseaux
Remarque : on considère ici des sous-réseaux de taille identique
sans chercher à optimiser le nombre d’adresses disponibles.
67/108
Protocole ARP (Address Resolution Protocole)
Comme son nom l’indique, permet de connaître l’adresse MAC correspondant à une adresse IP.
Le protocole consiste à demander l’adresse Physique d’une machine identifiée par son IP…
… pour ensuite enregistrer ce couple de valeur dans une table de correspondance
Lorsqu’une IP sur un réseau n’est pas connu, le demandeur broadcast un message pour connaître son propriétaire … qui lui répond… (les autres ignorent la requête).
Le protocole ARP ne peut franchir un Routeur => limité à sous- réseau physique local.
=> Interrogez la table de correspondance IP/MAC de votre machine
Commande => arp
68/108
Retour sur rôle d’un routeur sur le réseau Internet : analogie postale
Source Image : ikonet.com
69/108
Retour sur rôle d’un routeur sur le réseau Internet
Le routeur :
Relie des réseaux/sous-réseaux entre eux
=> rôle de passerelle…
… et doit donc transporter les paquets
d’une adresse IP à une autre appelé routage.
L’Hôte (client) :
Doit envoyer un paquet à une autre machine/IP qui peut se situer hors de son réseau
=> il faut un chemin …
=> … dont il n’a besoin de connaître que l’étape suivante
Interfaces réseau : chaque port ethernet est associé à une adresse IP locale au réseau auquel il est connecté
70/108
Principe général du routage TCP/IP
Mécanisme de routage :
Une machine cliente doit transmettre un paquet à une adresse IP.1. Elle regarde si l’adresse IP est localisée dans le même réseau/sous- réseau (en comparant avec la sienne + masque !) :
a. si OUI utilise ARP pour récupérer l’adresse MAC de la machine destinataire (on reste dans le sous-réseau) : si l’adresse est
i. connue (dans sa table ARP). GOTO 2
ii. Inconnue : lance un broadcast pour connaître l’adresse MAC de l’adresse IP.
b. Si NON => adresse IP (adresse elle-même ou adresse du réseau comprise
dans l’adresse IP) déjà connue ? (présente dans sa table de routage associant à cette adresse une adresse intermédiaire / routeur)
i. OUI => GOTO 2
ii. NON => cherche adresse d’envoi par défaut (GOTO 2), si non définie => paquet est supprimé (lost).
2. Adresse connue => construit un paquet IP avec cette adresse IP, puis
construit une (ou plusieurs) trames contenant l’adresse MAC correspondant à cette IP puis l’envoie
3. Le routeur reçoit le paquet et fait de même.
71/108
Principe du routage TCP/IP :
format table de routage
Chaque ressource réseau dispose d’une table de routage
(donc pas réservé aux routeurs)
Format général d’une entrée dans une table de routage
Destination : adresse IP d’une ressource ou d’un autre réseau
Masque de réseau : associé à l’adresse IP => permet de savoir si la destination figure sur le même réseau.
Passerelle (tronçon suivant) : adresse IP intermédiaire permettant d’atteindre l’adresse IP de destination située à
l’extérieur du réseau local. Une machine séparée d’une autre par 2 routeurs sera reliée par 3 tronçons
(machine1 <-> routeur 1,routeur 1 <-> routeur 2, routeur 2 <-> machine 2)
.
Interface réseau : interface réseau par laquelle on doit envoyer le paquet IP
[Métrique] : chiffre mesurant le coût de l’itinéraire (ex. nombre de
tronçons), utilisé pour optimiser la route à suivre
72/108
Protocole TCP / IP : structure de donnée d’un paquet
4 octets 4 octets 8 octets 16 octets
Longueur totale (en octets) Version d'en-tête Type de Service (65535 octets maximum)
Identification du paquet TCP/IP
( si information découpée en +sieurs paquets) Drapeau Décalage Fragment TTL - Time To Live Protocole Somme de contrôle en-tête
Nb Sauts maxi IMCP=1, TCP=6 UDP=15 (permet de vérifier l'intégrité du paquet) Adresse IP Source
Adresse TCP Destination
Options Tampon
Port (d'écoute) de la Source Port (d'écoute) de la Destination Numéro de séquence
Numéro de séquence Tampon
Options TCP
DONNEES TCP
En -T ê te IP TC P
Longueur
Si un paquet (identifié par «identification») est décomposé en plu- sieurs sous paquets, permet d’identifier le N° de sous paquet et de reconstituer le contenu initial.
73/108
Illustration table de routage
http://www.linux-france.org/~amascret/prj/edu/archinet/systeme/index_monopage.html
192.168.10.99/24
Réseau 192.168.10.0 Réseau 192.168.20.0
Réseau 192.168.30.0
192.168.30.99/24
192.168.20.99/24
Un routeur connecte des réseaux… il doit pouvoir communiquer avec des machines de chaque réseau…
… et donc doit
appartenir à ce réseau…
ou du moins la "partie"
connectée à ce réseau soit l’interface (ie port éthernet)… donc chaque port ethernet doit avoir une adresse IP locale dans le réseau local auquel elle est
connectée…
74/108
Illustration table de routage
http://www.linux-france.org/~amascret/prj/edu/archinet/systeme/index_monopage.html
192.168.10.99
Réseau 192.168.10.0
Réseau 192.168.20.0
Réseau 192.168.30.0
192.168.30.99
192.168.20.99
Le routage consistera à déterminer à qui relayer le paquet…
- Connection directe (on-link) si transmet à un réseau connecté à l’une de mes
interfaces
- Connection indirecte si réseau non
connecté et donc je dois savoir lequel de
«mes» réseaux
connectés servira de relai (passerelle) … charge à lui prendre la suite du travail.
?
A quel interface doit-je renvoyer ce paquet :
192.168.20.99 ou 192.168.30.99
192.168.10.6