• Aucun résultat trouvé

Réseaux IP& réseau Indoor

N/A
N/A
Protected

Academic year: 2022

Partager "Réseaux IP& réseau Indoor"

Copied!
108
0
0

Texte intégral

(1)

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)

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

(3)

1. Internet ? Réseau !

Propos liminaires

(4)

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)

5/108

Autre exemple : Compteur Linky d’E(r)DF

Source image : lefigaro.fr

(6)

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)

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)

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)

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)

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)

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)

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)

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

(14)

2. Généralités &

vocabulaire réseau

(15)

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)

16/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)

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)

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)

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)

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)

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)

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)

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)

24/108

Cloud Computing (suite)

Exemple d’architecture et niveau de service :

Niveau externalisation

(source wikipedia)

https://regardsurlecloud.wordpress.com

(25)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

40/108

Un peu de vocabulaire : réseaux et sous réseaux informatique

Srce Image : http://www.conceptdraw.com/

(41)

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

(42)

3. Modèle OSI

(Open Systems Interconnexion)

(43)

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

(male / femelle) Cable Coaxial + bouchon

(44)

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)

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)

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)

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)

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)

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)

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 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)

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

(52)

4. TCP / IP

(53)

53/108

Introduction TCP/IP

 généralités

(54)

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 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)

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)

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)

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)

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)

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)

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)

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.255

soit 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)

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)

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)

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)

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)

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)

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)

68/108

Retour sur rôle d’un routeur sur le réseau Internet : analogie postale

Source Image : ikonet.com

(69)

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)

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)

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)

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)

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)

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

Références

Documents relatifs

NFS est un protocole d’accès au stockage réseau basé sur le système de fichiers (répertoires, fichiers).

Le présent document spécifie comment les messages du protocole simple de gestion de réseau (SNMP, Simple Network Management Protocol) peuvent être transmis directement sur les

Le présent document décrit une nouvelle option DHCPv6 pour passer à un client une liste d'adresses de serveurs du protocole simple de l'heure du réseau (SNTP, Simple Network

Si le traitement d'une liaison de variable échoue pour une raison autre que celles données ci-dessus, la PDU Response est alors reformatée avec les mêmes valeurs dans ses

- si la notification originelle contient une PDU de classe Confirmée, toutes les cibles de gestion sortantes pour lesquelles la version SNMP sortante ne prend pas en charge des types

7) La scopedPDU est analysée pour extraire le contextEngineID, le contextName et la PDU. Si une erreur d'analyse survient, le compteur snmpInASNParseErrs [RFC3418] est alors

Si un ou plusieurs MTA se trouvent situés derrière un NAT dans un domaine privé, et si les messages ne sont pas sécurisés par signature ou clé de chiffrement, une ALG

(2) Si, pour tout objet nommé dans le champ variable-bindings, le contenu du champ valeur ne manisfeste pas, conformément au langage ASN.1, un type, longueur, et valeur qui