Réseaux IP
& réseau Indoor
Erwan TRANVOUEZ
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
Hote que 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
Trace 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...
Hote que 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
Trace 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 : Wikipedia
16/108
Illustration avec fonctionnement
d’un serveur web (over simplified)
Ordinateur
Serveur
157.20.45.28
Ordinateur
Client
192.120.20.4
Serveur WebNavigateur
Web
DNS1. Adresse
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 HTTPConnexion à 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 play1. 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
TLDDomaine
internet
Gérée par
l’IANA / ICANN
Gérée par
l’AFNIC
Gérée par
l’AMUChaque 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ème niveau
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
12
34 5
67
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 WebNavigateur
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 AVOU1. Télécharger putty https://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: <[email protected]>
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: [email protected] : indique l’expéditeur
RCPT TO: [email protected] : 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 : HubConcentrateur / 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 : SwitchCommutateur 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 : RouteurRouteur: 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)
RouteurRouteur
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éseauMode 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.htmlServeur 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élim
itate
ur
C
ode
devé
rifica
tion
du conte
nu
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 ProtocolAssure 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 et
s’assure de sa transmission.
ICMP : Internet Control Message Protocol.
protocole diagnostique réseau (inclut le fameux
ECHO utilisé par ping)
ARP : Adress Resolution Protocole
permet 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 Données
utilisateur
Application
Encapsulation
En-tête
ApplicatifDonnées
utilisateur
TCP
Encapsulation
En-tête
TCP
IP Segment TCP
Encapsulation
En-tête
IP
En-tête
TCP
En-tête
ApplicatifDonnées
utilisateur
Ethernet Datagramme IP
Encapsulation
En-tête
Ethernet
En-tête
IP
En-tête
TCP
En-tête
ApplicatifDonnées
utilisateur
Remorque
Ethernet
Cable Ethernet14 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 paquet4 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
IPTC
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 10101010 00000000 - ID du Sous-Réseau 0
11000000 10101000 10101010 01000000 - ID du Sous-Réseau 1
11000000 10101000 10101010 10000000 - 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 paquet4 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
IPTC
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
75/108
Illustration table de routage
http://www.linux-france.org/~amascret/prj/edu/archinet/systeme/index_monopage.html
192.168.10.2
192.168.10.6
192.168.30.3
192.168.30.6192.168.20.4
DestinationMasque de
Sous réseauPasserelle Interface
192.168.10.0 255.255.255.0 192.168.10.99 192.168.10.99
192.168.20.0 255.255.255.0 192.168.20.99 192.168.20.99
192.168.30.0 255.255.255.0 192.168.30.99 192.168.30.99
Adresse du
sous-réseau
Adresse d’une
machine du
sous-réseau
Adresse du
ethernet port du
routeur Table de
routage du
Routeur
Destination = ip (sous-
réseau) +Masque
Interface réseau du
routeur à utiliser pour
joindre destination (ie
port ethernet)
Identique car connexion
directe donc pas besoin
de passerelle => OnLink
192.168.10.99 192.168.20.99
192.168.30.99
76/108
Illustration table de routage : ajout
d’un sous réseau
http://www.linux-france.org/~amascret/prj/edu/archinet/systeme/index_monopage.html
DestinationMasque de
Sous réseauPasserelle Interface
192.168.10.0 255.255.255.0 192.168.10.99 192.168.10.99
192.168.20.0 255.255.255.0 192.168.20.99 192.168.20.99
192.168.30.0 255.255.255.0 192.168.30.99 192.168.30.99
192.168.40.0 255.255.255.0 192.168.30.254 192.168.30.99
Adresse du
nouveau sous-
réseau
Table de routage
du Routeur R1
Passerelle =
adresse du routeur
intermédiaire
Interface de R2
connectée au
nouveau sous réseau
77/108
Retour sur rôle d’un routeur sur le
réseau Internet Consulter sa table de routage (windows) :
Commande netstat –r
Destination = adresse IP cible
Masque réseau de l’adresse IP cible
Adresse Passerelle = adresse du réseau donnant accès à l’IP cible
Adresse Interface = IP de la connexion sortante sur le routeur
IPv4 Table de routage
===========================================================================
Itinéraires actifs :
Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique
0.0.0.0 0.0.0.0 192.168.0.254 192.168.0.50 25
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.0.0 255.255.255.0 On-link 192.168.0.50 281
192.168.0.50 255.255.255.255 On-link 192.168.0.50 281
192.168.0.255 255.255.255.255 On-link 192.168.0.50 281
192.168.56.0 255.255.255.0 On-link 192.168.56.1 266
192.168.56.1 255.255.255.255 On-link 192.168.56.1 266
78/108
Réseau AMU
90 000 utilisateurs
Source : http://dosi.univ-amu.fr/reseau/raimu
IP Address Ranges
Netblock Nb IPs
139.124.0.0/16 65 536
147.94.0.0/16 65 536
79/108
Ex AMU : ipconfig /all => WifiCarte réseau sans fil Wi-Fi :
Suffixe DNS propre à la connexion. . : univ-amu.fr
Description. . . . . . . . . . . . . : Intel(R) Dual Band Wireless-N 7265
Adresse physique . . . . . . . . . . : 34-02-??-??-??-??
DHCP activé. . . . . . . . . . . . . : Oui
Configuration automatique activée. . : Oui
Adresse IPv6 de liaison locale. . .. .: fe80::a5a3:98d5:5d68:6d52%3(préféré)
Adresse IPv4. . . . . . . . . . . .. .: 147.94.72.95(préféré)
Masque de sous-réseau. . . . . . . . : 255.255.255.0
Bail obtenu. . . . . . . . . . . . . : mercredi 5 octobre 2016 12:49:22
Bail expirant. . . . . . . . . . . . : mercredi 5 octobre 2016 13:49:18
Passerelle par défaut. . . . . . . . : 147.94.72.1
Serveur DHCP . . . . . . . . . . . . : 172.25.2.2
IAID DHCPv6 . . . . . . . . . . . : 53740166
DUID de client DHCPv6. . . . . . . : 00-01-00-01-1D-14-FC-01-30-8D-99-13-21-95
Serveurs DNS. . . . . . . . . . . . . : 212.27.40.240
212.27.40.241
NetBIOS sur Tcpip. . . . . . . . . . : Activé
Déterminer la classe de réseau du réseau AMU
Donner l’adresse du réseau Local
80/108
ZOOM Rapide sur NAT (Network Adress Translation)
Principe : Traduire une adresse IP privée locale (A.Pri.) en une adresse IP
publique (A.Pub) pour pouvoir s’adresser à une ressource sur Internet
Cf. résultats ipconfig vs What is my IP
3 cas de figures :
Association statique d’une adresse privée à une adresse publique
Lien permanent entre les 2
Suppose que le nombre d’adresses publiques du réseau auquel on
« appartient » est suffisant pour toutes les ressources.
Association dynamique sur un pool d’adresses publiques
L’association est temporaire, l’A.Pub est libérée une fois la session close.
Suppose que le nb de connexions simultanées vers l’extérieur < nb adresses
publiques dans le pool.
Association dynamique avec partage d’adresse publique
Le routeur va associer l’A.Pri à une A.Pub associée à un port
Alors 2 A.Pri peuvent partager une même A.Pub : le routeur saura rediriger un
paquet IP extérieur vers la bonne A.Pri en fonction du port utilisé.
=> principe appliqué sur vos box
81/108
Traduction d’adresse (NAT) suite
Nécessite une table de routage :
Exemple avec pool d’adresse IP publique
IP interne IP externe Durée (s) Réutilisable ?
10.101.10.20 193.48.100.174 1 200 non
10.100.54.251 193.48.101.8 3 601 oui
10.100.0.89 193.48.100.46 0 non
Source : wikipedia
82/108
Illustration FAI
(Fournisseur d’Accès Internet) L’adresse « locale » est en réalité valable uniquement au sein du
sous réseau que constitue une « box » et l’ensemble des machines
connectées à cette box.
L’adresse « extérieure » est celles que voient les autres machines
: ceci peut créer des problèmes lorsqu’un serveur limite le nombre
d’accès par IP et signaler que vous êtes déjà connecté (en réalité
une autre machine du sous réseau l’est).
La « box » se chargera de transférer les bons « paquets » aux
bonnes machines (en gardant une trace des émetteurs locaux des
paquets) par un mécanisme de traduction d’adresse (NAT)
Source images : http://www.commentcamarche.net/contents/993-nat-translation-d-adresses
83/108
Illustration FAI
(Fournisseur d’Acces Internet) Informations fournies par la commande ipconfig /all (windows)
Informations fournies par un outils renvoyant l’IP « vue de
l’extérieur » (ex. http://www.whatismyip.com/)
Carte réseau sans fil Connexion réseau sans fil :
[…]
Adresse physique . . . . . . . . . . . : 88-53-2E-9A-74-9B
DHCP activé. . . . . . . . . . . . . . : Oui
Adresse IPv6 de liaison locale. . . . .:
fe80::5102:f32d:c051:df4b%13(préféré)
Adresse IPv4. . . . . . . . . . . . . .:192.168.0.30(préféré)
Masque de sous-réseau. . . . . . . . . : 255.255.255.0
Passerelle par défaut. . . . . . . . . : 192.168.0.254
Serveur DHCP . . . . . . . . . . . . . : 192.168.0.254
[…]
Your IP : 88.120.46.48
City: Gentilly
State/Region: Ile-De-France
Country: FR -
ISP: Online S.A.S. (=> Illiad i.e. Free)
6. Quelques outils …
Maintenant qu’on comprend mieux
les réseaux…
85/108
Réseau Privé Virtuel (VPN)
Principe :
Une machine se connecte à distance à un réseau
Et devient pour l’extérieur une machine de ce réseau
=> IP extérieure est celle du 2eme réseau et pas du réseau
initial
Intérêt :
Initialement, permettait une connexion @home à un réseau
d’entreprise (accès à documents privés/pro limités au réseau
interne)
La connexion au VPN étant cryptée (tunnel VPN), permet de
réduire risque de sécurité sur réseaux publics (Hotspots…)
Envoyer aux sites web une autre adresse IP que sa propre
adresse … => problème censure internet, anonymat …
86/108
Réseau Privé Virtuel (VPN)
Ex: réseau AMU (cf. ENT / Aide /Dud)
Dixit : DOSI
Adresses attribuées aux machines connectées au réseau
privé virtuel l'AMU
Votre adresse VPN sera attribuée dans la plage 172.24.0.0/20,
soit une des 4096 adresses répondant au schéma suivant
172.24.X.Y avec X dans {0..15} et Y dans {0..255} (sauf
172.24.0.0 et 172.24.15.255).
87/108
TP illustratif Réseau avec FILIUS *
Outil gratuit, portable (java) semble suffisant pour s’initier
au réseau Filius - Herunterladen (lernsoftware-filius.de)
Routeur Linux ou Cisco (2 ou 4 interfaces)
Switch mais pas de Hub
Pour un outil plus évolué voir par exemple
GNS3 (https://www.gns3.com) (plus lourd à installer mais beaucoup plus riche en termes
de capacité de simulation)
Cisco Packet Tracer : requiert inscriptionhttps://www.netacad.com/fr/about-networking-academy/packet-tracer
Démarrer avec le tutorial de B. Linkletter : http://www.brianlinkletter.com/psimulator2-graphical-network-simulator/
Installation ci-après…
* Utilisais avant Psimulator 2 … celui-ci semble plus évolué
88/108
TP illustratif Réseau avec Filius
Téléchargement requis (JRE nécessite les droits Administrateur, déjà installé dans les
salles machines) :
Télécharger le ZIP (version no-install ne nécessitant pas les droits admin) : Filius
- Herunterladen (lernsoftware-filius.de)
Filius a l’avantage d’intégrer le concepteur de réseau & le simulateur dans
la même interface.
Mode
Conception
Mode
Simulation
Ressources modèle
réseau : self explaining
Glisser déposer (drag &
drop) dans la grille
Pour connecter 2 ressources
cliquer sur cable, puis 1ere
ressource, puis 2eme…
89/108
TP illustratif Réseau avec PSimulator 2Topologie réseau du tutorial de B.Linkletter
Réseau
10.0.100.0
Réseau
10.0.1.0
Réseau
10.0.200.0
10.0.1.110.0.1.2
10.0.200.254
10.0.100.254
90/108
Configuration d’un routeur
Les interfaces réseaux
sont ds les onglets.
Sélectionner un onglet
montre à qui l’interface
réseau est connectée
Routeur
eth0 eth3
Configuration adresse IP &
masque de cette interface
(ici 10.0.1.1)
Adresse MAC de la
ressource
Prises Ethernet des
interfaces réseaux
91/108
Next Step : configurer les
applications sur les machines Yes Simulation it is indeed ! Passer en mode simulation en cliquant
On se limitera (dans un premier temps) à la ligne de commande
Double cliquer sur la ressource
Puis sur l’icone Installation des logiciels (simulant le bureau de l’ordinateur)
Double cliquer sur les applications ou utiliser la flèche pour placer l’application
dans la zone installés
Double cliquer sur
l’application installée
Vitesse de simulation
92/108
TP illustratif Réseau avec Filius1er essai
1. Ouvrir la console dans le pc0
2. Tester un ping sur pc1
3. Observer les changements de couleur
des cables
4. Afficher les échanges de données des
p et du routeur
Expliquez
Clic bouton droit sur ressource visée
93/108
TP illustratif Réseau avec Filius
1er essai
Que se passe t’il ?
1. pc0 fait un ping sur 10.0.100.2 (pc1) = envoie d’un
paquet IP avec ip expéditeur 10.0.100.1.
2. La couche IP regarde si pc1 appartient au même
réseau => application masque et comparaison résultat
3. Oui => communication interne au réseau => niveau
ethernet MAIS pour communiquer sur ce réseau il faut
que j’envoie un/des datagrammes ethernet à une autre
adresse MAC que je ne connais pas … => protocole
ARP pour savoir quel adresse MAC correspond à
10.0.100.2.
94/108
TP illustratif Réseau avec Filius
Let’s go further…
Essayer de joindre la machine pc2
Ceci échoue car routeur1 n’est pas configuré pour
relayer les données, et pc0 n’a pas de route par défaut. Il
faut :
Créer une passerelle par défaut sur chaque hôte
Configurer des routes statiques dans les routeurs.
Configurer une route par défaut sur l’hôte pc0 et tenter
de joindre pc2
Que se passe-t-il ?
Configurez le réseau puis lancé un traceroute de pc0 à
pc0.
95/108
Commandes linux ip route
Pour information (était utilisées pour le simulateur PSimultor 2).
Equivalent windows route.
Permet d’ajouter une entrée dans la table de routage IP
Commande : ip (route est un paramètre parmi d’autres)
ip route add ipDestination/nn via ipPasserelle
Ajoute une entrée indiquant pour joindre l’adresse ipDestination il
faut contacter ipPasserelle
ip route add default via ipPasserelle
Ajoute un chemin par défaut (équivalent à ipDestination =
0.0.0.0) => toute adresse non connue (hors réseau local donc)
sera redirigée vers ipPasserelle.
ip route del entrée_dans_la_table de routage
Supprime l’entrée … dans la table de routage
ip route show
Affiche la table de routage
96/108
TP illustratif Réseau avec Filius 2Configuration du machines/routeurs du réseau
http://www.brianlinkletter.com/psimulator2-graphical-network-simulator/
Réseau
10.0.100.0
1. Essayer de joindre pc2 depuis
pc1 en configurant progressivement
pc1, routeur0, routeur1 puis pc2.
=> activer la capture et simuler
chaque parcours après chaque
modification.
2. Une fois les hôtes et les routeurs
configurés, faire un traceroute de
pc2 à pc0.
3. Analyser les trames IP liées au
traceroute
97/108
TP Réseau avec Filius 2
On a la configuration du réseau 192.168.0.0/16 suivante :
Affecter adresses IP & masques
Configurez le réseau et faire quelques tests entre machines hôtes.
98/108
Solution basique
Il y a en définitive 3 sous réseaux
Il faudra donc réserver 2 bits (du 3eme octet) pour adresser ces sous
réseaux.
=> 00000000, 01000000, 10000000 & 11000000
Soit 192.168.0.0, 192.168.64.0, 192.168.128.0 & 192.168.192.0
Le masque sera donc /8+8+2 = /18 soit pour le 3e octet la valeur 11000000 donc
255.255.192.0
Questions :
=> Combien de machines connectables au maximum par sous réseaux ?
=> Donner les plages d’adresses de chaque sous-réseau
99/108
Conversion Binaire <-> Décimal
Conversion Binaire vers Décimal
Soit 1 octet noté sous la forme de 8 bits ‘abcdefgh’ chaque lettre valant 0 ou 1.
Le calcul décimal revient à la formule suivante :
Valeur Décimale = a.27 + b.26 + c.25 + d.24 + e.23 + f.22 + g.21 + h.20
= a.128 + b.64 + c.32 + d.16 + e.8 + f.4 + g.2 + h
Ex. 11001101 = 128+64+0+0+8+4+0+1 = 205
Conversion Décimal vers Binaire
Soit 1 octet noté n sous la forme de d’un nombre décimal compris entre 0 & 255,
on cherche abcdefgh correspondant à n (avec a..h = 0 ou 1)
Le calcul décimal revient à la formule suivante :
a = division entière par 128 (donc 1 de 128 a 255, 0 en deçà)
b = (n-a.128) division entière par 64
c = (n-a.128-b.64) division entière par 32
Ainsi de suite jusqu’à g (division par 2) le reste valant 0 ou 1.
Ex : 201 = 128 + 73 = 128 + (64 + 9)
= 128 + (64 + (8 + 1) )
= 1.27 + 1.26 + 1.23 +1.20
= 1.20 + 1.26 + 0.25 + 0.24 + 1.23 + 0.22 + 0.21 + 1.20
= 11001001
7. Programmation
réseau avec Java
101/108
Principe de programmation java :
utilisations des sockets
« chaussette trouée »
Connexion sur une adresse IO & un port logiciel
Permet ensuite d’échanger des données entre les
ressources connectées…
Pré existe Java (initié par UNIX … C, C++ etc.)
En java, s’appuie sur le protocole IP … puis sur TCP ou
UDP.
Principe : créé une connexion sur une ressource réseau
(IP+port) entre l’ordinateur « exécutant » la socket et la
ressource visée…
… colloquialy, créer un tube entre 2 ressources réseau
par lequel il pourra y avoir communication
102/108
Classes importantes :
Java.net.ServerSocket
Object
Java.net. Socket Java.net.DatagramSocket
Java.net.MulticastSocket
103/108
Principe général des sockets
L’objet Socket instancié peut créer : Un flux de lecture ; InputStream
Un flux d’écriture : OutputStream
104/108
Diagramme de séquence d’une
connexion via Socket
105/108
Connexion en mode connecté
(TCP/IP)
Utilisation de la classe Socket (adapté du tutoriel de
java sun/oracle).
L’instanciation de la classe Socket créé un lien vers
une autre machine (IP + port) à partir duquel on créer
un « flux » sur lequel transitera des données
L’instanciation peut lever 2 exceptions :
UnknownHostException : hote pas trouvé (ex. pb DNS)
IOException : rupture de la connexion
import java.net.*;
public static void main(String args[]) {
int intPort = 2068;
String strAdress = "127.0.0.1";
Socket s = new Socket(strAdress,intPort);
}
106/108
Connexion en mode connecté
(TCP/IP) : exemple complet
import java.net.*; import java.io.*;
public class Client { /* Programme qui se connecte à un serveur et qui écoute ce
qu’il dit */
public static void main(String args[]) {
int intPort = 2068; // adresse et port où on peut joindre le serveur
String strAdress = "127.0.0.1"; // adresse locale à modifier selon
try { // des erreurs peuvent arriver durant l’exécuion du code ...
// créé une connexion sur le serveur
Socket socket = new Socket( strAdress, intPort);
// in permet de lire des caractères (like scanf en C) envoyé par le serveur
BufferedReader in = new BufferedReader(new
InputStreamReader(socket.getInputStream());
boolean encore = true;
while (encore) { // on boucle tant qu’on ne reçoit pas une chaine vide
String ligneLue = in.readLine(); /* lit une ligne (chaîne terminée par retour
Chariot \n ). Cette chaîne est envoyée par le serveur */
if (ligneLue==null) // le serveur ne nous a rien envoyé
encore = false; // alors fin de la conversation (ie du while)
else System.out.println(line) // affiche ce que le serveur nous a envoyé
} // fin du while
} catch (IOException e){ //... et on les attrape ici
e.printStackTrace(); /*... Affiche la pile d’appel pour voir où est l’erreur */
}}
107/108
Démonstration croisée : socket/java
Lancer un serveur Java (version mono ou multithreadé) avec par
exemple le port 45500.
Ouvrir un client Telnet (ex. http://www.putty.org/), et ouvrir une
connexion sur la machine 127.0.0.1 (ou utiliser l’adresse IP renvoyée
par ipconfig /all) sur le port 3000 en mode « Raw » (ie flux de texte
brut).
Dés lors que le serveur aura créé une socket et encapsulé un flux
d’écriture et de lecture, tout caractère tapé dans la console Telnet
sera envoyée vers l’application java (et réciproquement).
Sources « adaptées » dispo sur l’adresse web donnée en cours.
Pour voir un exemple de protocole consulter le tutorial de java sun : http://docs.oracle.com/javase/tutorial/networking/sockets/
108/108
Diagramme de séquence d’une
connexion en UDP…
http://www-adele.imag.fr/users/Didier.Donsez/cours