User Tools

Site Tools


formationsecurite:tcpip

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

formationsecurite:tcpip [2013/01/30 17:52] (current)
Line 1: Line 1:
 +09 mars 2005
 +-----------
  
 +{{ToC}}
 +
 +== Module 1: Introduction aux protocoles ==
 +
 +  * communication:​ minimum dialogue: 2 personnes
 +  * il faut se mettre d'​accord sur la langue
 +  * qui parle quand
 +  * un émetteur
 +  * un récepteur
 +  * la grammaire (configuration)
 +  * médium: l'air
 +
 +A la base, les protocoles réseaux étaient propriétaires,​ il n'y avait pas d'​interopérabilité. On avait donc peu de liberté de choix par rapport au hardware (peu de liberté).
 +
 +Ensuite, via la standardisation (ex: Wifi standardisé par ISO), on a pu choisir
 +
 +Pareil pour les protocoles réseaux, on est arrivé à la standardisation avec le modèle OSI
 +
 +
 +== Module 2: Le modele OSI ==
 +
 +Open Standard Interconnexion
 +
 +On découpe en sous-problèmes:​ les couches (7)
 +Chaque application est dans une couche et doit pouvoir communiquer de manière standard avec la couche au-dessus et la couche en-dessous.
 +
 +Il y a 7 couches de chaque côté
 +
 +=== 7. Couche applicative ===
 +On y retrouve les applications (réseaux) comme: client ftp, client skype, browser web
 +
 +C'est l'UI.
 +
 +=== 6. Couche présentation ===
 +
 +  * définir l'​affichage de l'​interface
 +  * le codage des alphabets
 +    * utilisation des tables de caractères)
 +    * nous utilisons le code ascii 8 bits
 +  * encryption
 +  ​
 +Le texte "​[[R]]éseau"​ est converti en ascii: [80][38]...
 +Si je l'​envoie à un espagnol, il va lire "​[[R]]ñseau"​.
 +(c'est faux, c'est pour l'​explication)
 +
 +Parallèle avec l'​encryption
 +
 +En changeant la table des caractères,​ on change la représentation
 +
 +=== 5. Gestion des sessions ===
 +
 +Au niveau logiciel (pas hardware).
 +
 +Quand le formateur donne cours, il s'​assure qu'il y a quelqu'​un dans la salle pour l'​écouter.
 +Il ouvre une session.
 +
 +  * ouvrir la session
 +  * maintenir la session pendant la durée de la communication
 +  * fermer la session
 +
 +Ex: session refusée en FTP, les cookies.
 +C'est la couche logicielle la plus basse.
 +
 +=== 4. Couche transport ===
 +Première couche de transport.
 +Quand on veut envoyer une lettre, on s'​arrête à la boîte postale (couches logicielles). Ensuite, c'est la poste qui prend en charge jusqu'​à la boîte au lettre du correspondant (couches réseau)
 +
 +Quand j'​envoie un message 1 Mo, il y a très peu de chance qu'il arrive en une fois avec tous les bits dans l'​ordre.
 +On découpe l'​information en paquets.
 +A l'​émission,​ le message est découpé en paquets qui sont numérotés.
 +On envoie le message à une adresse IP (traduction DNS). Mais il se peut que la machine réceptrice rende plusieurs services. Il faut donc préciser le port (ex: 80 pour le protocole http).
 +Le serveur écoute sur plusieurs ports (pour les différents services).
 +
 +Exemples de protocoles de la couche 4: TCP, UDP.
 +UDP = envoi postal standard, pas de contrôle de la bonne réception du paquet: rapide mais pas fiable
 +TCP = envoi postal recommandé (acknoledgment = accusé de réception):​ fiable mais lent
 +
 +TCP: pour les emails, FTP
 +UDP: ping, streaming en temps réel (pas le temps de contrôler la réception)
 +
 +Les applications de la couche 4, c'est comme un dispatcheur.
 +
 +Avec IPX, c'est SPX qui est utilisé.
 +
 +=== 3. Couche reseau ===
 +Donne une adresse logique (adresse IP, codée sur 4 octets), composée d'une partie host et d'une partie network.
 +C'est la couche qui se charge du routage, du redécoupage probable.
 +
 +Exemples de protocoles routables: IP, IPX (Novell), appletalk
 +Exemple de protocole non routable: netbeui
 +
 +Ex: 
 +  * réseau token ring MTU (taille maximale d'un paquet): 4832 octets
 +  * réseau ethernet: MTU: 1500 octets
 +
 +Si je passe d'un réseau token ring à un réseau ethernet, IP va devoir redécouper les paquets.
 +
 +Il y a des protocoles routables, c'​est-à-dire qu'un routeur peut distinguer si le paquet qui passe par lui est pour tel réseau ou tel autre.
 +Il y a une partie réseau et une partie hôte.
 +
 +Netbios est un protocole non routable, qui est basé sur le nom de machine.
 +
 +=== 2. Couche de liaison ===
 +(datalink layer)
 +
 +Etabli la liaison entre le hardware et le software.
 +Exemple: les pilotes de périphériques (drivers).
 +Il y a aussi les adresses physiques:
 +adresse MAC, codée sur 48 bits, unique, divisé en 2 paquets de 24 bits
 +  * la première moitié est pour la marque du fabricant (constructeur)
 +  * la seconde moitié est un range disponible (numéro de série)
 +
 +16.7 millions de cartes réseau pour un constructeur.
 +Chaque constructeur peut avoir plusieurs ranges.
 +Les vieilles adresses utilisées sont réutilisées.
 +Ceci permet de ne pas épuiser les adresses disponibles.
 +
 +On les exprime en hexadécimal. Exemple:
 +<​code>​00-02-A5-CC-A6-E1</​code>​
 +
 +Netbios utilise les noms des machines.
 +
 +Quand changer l'​adresse MAC d'une carte réseau?
 +Quand on utilise IPX, adresse codée sur 80 bits, 32 bits réseaux, 48 bits hôtes: l'​adresse MAC)
 +Pour configurer l'​adresse logique, il suffit de donner les 32 bits réseaux (ex: 40 00 80 C3).
 +
 +=== 1. Couche physique ===
 +Un câble, un access point, un répéteur, une carte réseau, un amplificateur,​ etc.
 +Tout ce qui retransmet l'​information sans la modifier (on peut augmenter le signal par exemple).
 +
 +
 +=== Transmission des données ===
 +
 +Le modèle OSI se retrouve sur la machine émettrice et sur la machine réceptrice.
 +
 +Le paquet part de la couche 7 de l'​émetteur et doit arriver à la couche 7 du récepteur (destinataire).
 +Les données sont encapsulées,​ il y a un header (en-tête, application header: AH) suivi des données.
 +Les informations (header couche 7 + données) passent en couche 6, ajoute un header (presentation header, PH).
 +En couche 5, on ajoute un session header (SH) autour des données.
 +Renvoyé au niveau de la couche transport (4), il y a découpage en paquets plus petits éventuel, puis on ajoute à chaque paquet un transport header (TH) dans lequel on indique le protocole, le port source, le port destination.
 +
 +Multiplexage:​ les chaînes de télévision passent toutes sur le câble mais sur des fréquences différences. En zappant, on change la fréquence de réception.
 +On peut faire pareil avec les données (deux programmes écoutant sur le même port).
 +
 +Au niveau couche 3, on ajoute un network source dans lequel il y a l'​adresse logique source et l'​adresse logique destination et le numéro de paquet.
 +Couche 2: datalink header qui va contenir la MAC de source et la MAC de destination.
 +Pourquoi la source? Pour pouvoir répondre.
 +
 +cf. à LLN, des gens mettaient l'​adresse de destination au dos et leur adresse sur la face, sans timbre.
 +
 +Il y a aussi un datalink tail contenant un CRC (cyclic redundency check) pour s'​asssurer que les données sont intègres.
 +Le récepteur peut donc vérifier que les données ne sont pas corrompues, auquel cas il demanderait à l'​émetter
 +
 +Il n'y a pas de header en couche 1 parce qu'on ne modifie pas l'​information,​ elle n'est que transmise.
 +
 +Du côté récepteur, on décapsule par le bas (de 1 vers 7).
 +Si MAC dans DH est celle du récepteur, on décapsule. Sinon, on fait rien (le paquet est transmis plus loin).
 +Si adresse logique est celle du récepteur, on décapsule.
 +etc.
 +L'​information passe de couche à couche.
 +
 +[[R]]éellement,​ mode de communication verticale (couche 7 à couche 6 à l'​émetteur,​ couche 1 à couche 2 au récepteur). Logiquement,​ communication horizontale (de couche 5 à couche 5).
 +
 +Il existe un modèle OSI réduit.
 +Pour l'​applicatif,​ on a tendance à travailler dans les couches 5, 6 et 7 en même temps.
 +Pour les couches 1 & 2, pareil: on a toujours les pilotes pour les périphériques.
 +
 +Ceci donne le modèle OSI simplifié
 +
 +4. couche logicielle: couches 7, 6, 5
 +3. transport: couche 4
 +2. réseau: couche 3
 +1. ?: couches 2, 1
 +
 +OSI: 
 +
 +=== Terminologie paquet ===
 +
 +PDU: protocol data unit = "​paquet"​ de couche 7, 6, 5
 +PDU de couche 4: segment en TCP, message en UDP
 +PDU de couche 3: datagramme (datagram) pour IP
 +PDU de couche 2: trame (frame)
 +PDU de couche 1: bits
 +
 +
 +== ~TCP/IP ==
 +
 +IP: router informations sur différents réseaux (adressage et routage)
 +ICMP: traceroute (aussi en UDP), ping. Pour faire de l'​erreur reporting ​
 +IGMP: pour le multicast
 +
 +#|
 +||1 -> 1 | unicast||
 +||1 -> tous | broadcast||
 +||1 -> n| multicast ||
 +|#
 +
 +Les clients s'​abonnent au service multicast: ils s'​inscrivent dans un groupe qui a une classe B (en plus de l'​adresse IP normale).
 +Le serveur envoie à l'​adresse IP du groupe et redistribue uniquement aux membres du groupe
 +
 +Le formateur nous recommande la lecture de ((http://​www.microsoft.com/​ntserver/​techresources/​streaming/​multiwp.asp Multicast Streaming - An Introduction)).
 +
 +=== ARP ===
 +
 +ARP (address resolution protocol): protocole de résolution d'​adresses.
 +
 +Le nom d'un réseau, c'est la partie host mise entièrement à zéro (ex: 10.0.0.0).
 +
 +Envoi d'un message de l'​adresse 1.1 à 1.3
 +Quels champs compléter?
 +  * couche 3: IP source (1.1), IP destination (1.3), data
 +  * couche 2: MAC source (AAAAAAA), MAC destination (?), data
 +
 +La machine A, pour communiquer avec la machine C, doit savoir où se trouve la machine C (comment elle s'​appelle)
 +Je ne peux pas envoyer le message tant que je n'ai pas la MAC destination.
 +ARP va la trouver ne faisant un broadcast. La machine C va répondre en unicast.
 +Pour faire un broadcast, il faut mettre tous des '​F'​ (tous les bits à 1).
 +
 +La machine C désencapsule en couche 2.
 +Elle fait un et logique entre le broadcast (FFFFFF) et son addresse MAC (AAAACC) et compare à l'​adresse MAC de destination (AAAACC): c'est la même, donc on désencapsule en couche 3.
 +La machine C compare son IP (1.3) avec l'IP destination (1.3), c'est bon.
 +La machine C va répondre à la machine A. Elle connaît sa MAC et son IP puisque c'est dans l'​en-tête des PDU (source).
 +
 +Ensuite, la machine A reçoit la MAC de destination (celle de C) et peut commencer à transmettre son message.
 +
 +La cache efface l'​adresse MAC après 2 minutes si la MAC n'est pas utilisée. Si elle est utilisée, c'est 10 minutes.
 +
 +L'​exemple ci-dessus concerne l'ARP local (vérifié en comparant la partie réseau des '​adresses IP source et destination).
 +
 +On ajoute un deuxième réseau (2.0). Les réseaux sont reliés par un routeur qui a 2 interfaces réseaux, une sur chaque réseau (1.250 et 2.250).
 +
 +Comment 1.1 peut communiquer avec 2.2?
 +
 +1.1 voit que 2.2 est sur un autre réseau (2.0)
 +
 +Il faut faire une requête ARP.
 +D'​abord avec le default gateway.
 +Couche 3: IP source (1.1), IP destination (1.250), data
 +Couche 2: MAC source (AAAAAA), MAC destination (? -> remplace par FFFFFF), data
 +
 +Broadcast ARP. la machine A vérifie si c'est pour elle (oui couche 2, non couche 3), les autres aussi jusqu'​à R1 où c'est pour lui couche 2 et couche3, et donc R1 renvoie une réponse ARP.
 +Envoi du paquet avec comme destination couche 3 la machine F et comme destination couche 2 l'​interface R1 du routeur.
 +Ensuite, comme l'IP destination n'est pas sur le réseau de R1 (1.0), il regarde dans sa table de routage et l'​envoie à R2.
 +R2 voit que l'IP destination est sur son réseau (2.0) et il fait une requête ARP pour avoir sa MAC.
 +Ensuite, il peut la transmettre à la machine C via R1.
 +
 +Il existe aussi le RARP, reverse ARP (peu utilisé).
 +
 +Exercice ​
 +
 +<​code>​C:​\Documents and Settings\forma311>​arp -a
 +
 +Interface: 10.10.3.111 --- 0x10003
 +  Internet Address ​     Physical Address ​     Type
 +  10.10.3.250 ​          ​00-02-7e-0b-b0-00 ​    ​dynamic
 +
 +C:​\Documents and Settings\forma311>​ping forma300
 +
 +Envoi d'une requête '​ping'​ sur forma300.tf3.be [10.10.3.100] avec 32 octets de d
 +onnées :
 +
 +Réponse de 10.10.3.100 : octets=32 temps<​1ms TTL=128
 +Réponse de 10.10.3.100 : octets=32 temps<​1ms TTL=128
 +Réponse de 10.10.3.100 : octets=32 temps<​1ms TTL=128
 +Réponse de 10.10.3.100 : octets=32 temps<​1ms TTL=128
 +
 +Statistiques Ping pour 10.10.3.100:​
 +    Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
 +Durée approximative des boucles en millisecondes :
 +    Minimum = 0ms, Maximum = 0ms, Moyenne = 0ms
 +
 +C:​\Documents and Settings\forma311>​arp -a
 +
 +Interface: 10.10.3.111 --- 0x10003
 +  Internet Address ​     Physical Address ​     Type
 +  10.10.3.100 ​          ​00-02-a5-cc-9f-00 ​    ​dynamic
 +  10.10.3.250 ​          ​00-02-7e-0b-b0-00 ​    ​dynamic
 +
 +C:​\Documents and Settings\forma311></​code>​
 +
 +
 +=== couche 2: IP Layer ===
 +
 +  * ((http://​www.faqs.org/​rfcs/​rfc791.html RFC 791))
 +
 +
 +=== ICMP ===
 +ping: packet internet groper
 +
 +On peut changer la MTU du paquet (jusqu'​à 65000)
 +
 +[[R]]ègle des 5 4 3:
 +Le réseau peut comporter:
 +  * maximum 5 segments
 +  * interconnectés par 4 switches/​hubs
 +  * 3 segments avec des machines
 +
 +Pour saturer un switch: connecter 2 machines, et faire:
 +<​code>​ping 10.0.0.1 -l 65000 -t</​code>​
 +
 +-----------
 +10 mars 2005
 +-----------
 +
 +
 +== Binaire ==
 +
 +Si on fait un graphe de la tension électrique au cours du temps, on voit qu'il y a une variation: il y a 2 états: tension haute, tension basse.
 +
 +base 10: de 0 à 9
 +base 2: de 
 +
 + x base exposant (son rang - 1)
 +
 +173, c'est:
 +  * 3 x 10^(1-1) = 3 x 1 = 3
 +  * 7 x 10^(2-1) = 7 x 10 = 70
 +  * 1 x 10^(3-1) = 1 x 100 = 100
 +
 +en base 7, 123 c'est:
 +  * 3 x 7^0 = 3
 +  * 2 x 7^1 = 14
 +  * 1 x 7^2 = 49
 +Total = 66 en base 10 (décimal)
 +
 +En base 2 (binaire), 100101 c'est:
 +  * 1 x 2^0 = 1
 +  * 0 x 2^1 = 0
 +  * 1 x 2^2 = 4
 +  * 0 x 2^3 = 0
 +  * 0 x 2^4 = 0
 +  * 1 x 2^5 = 32
 +Total = 27 en base 10
 +
 +Si on veut travailler en base supérieure à 10, on va utiliser les lettres pour représenter les nombres supérieurs à 9:
 +En base 16 (hexadécimal):​ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
 +
 +En base 16, FC1 c'est:
 +  * 1 x  16^0 = 1 x 1 = 1
 +  * 12 x 16^1 = 12 x 16 = 192
 +  * 15 x 16^2 = 15 x 256 = 3840
 +Total = 4033 en base 10
 +
 +Une adresse MAC est codée sur 48 bits; on va regrouper les bits pour la représenter en hexadécimal.
 +
 +4 bits sont nécessaires pour représenter une position en hexadécimal.
 +Donc, on va utiliser 12 positions (48/4) pour représenter une adresse MAC 
 +
 +FC-3A-0D c'est en binaire:
 +1111 1100 0011 1010 0000 1100
 +
 +
 +== Module 3: IP addressing ==
 +
 +IPv4
 +
 +Il y a 2^32 adresses IP théoriquement.
 +
 +Classe A
 +1 octet pour le réseau et 3 octets pour les hôtes.
 +2^8 (256) réseaux de chacun 2^24 (16.7 millions) hôtes
 +
 +Classe B
 +16 bits pour la partie réseau et 16 bits pour la partie hôte.
 +65536 réseaux de 65536 machines chacun.
 +
 +Classe C
 +24 bits pour la partie réseau et 8 bits pour la partie hôte.
 +16.7 millions de réseaux avec 256 machines chacun.
 +
 +Comment savoir à quelle classe appartient un réseau?
 +
 +Classe A a toujours le premier bit à zéro: 1...
 +Classe B a toujours les 2 premiers bits: 10...
 +Classe C a tourjous les 3 premiers bits : 110...
 +
 +Ce qui fait que le nombre de réseaux disponibles est réduit:
 +  * classe A: 2^7: 64: de 0.x.y.z jusqu'​à 127.x.y.z
 +  * classe B: 2^14: 16384 128.0.y.z à 191.255.x.y
 +  * classe C: 2^21: 192.0.0.x à 223.255.255.x
 +
 +Mais on peut pas avoir tout à zéro ou tout à un dans la partie modifiable (perte de 2 réseaux dans chaque classe):
 +  * classe A: de 1.x.y.z à 126.x.y.z: 126 réseaux
 +  * classe B: de 128.1.y.z à ?
 +  * classe C: ? à 223.254.254.z
 +
 +Exercice: A quelle classe appartient cette adresse IP?
 +  * 1.0.1.0
 +  * 224.1.2.3
 +  * 1.2.3.4
 +  * 100.200.0.0
 +  * 1.2.3.255
 +  * 10.20.30.40
 +  * 212.128.256.13
 +  * 8.4.0.254
 +  * 128.192.10.0
 +  * 1.0.0.0
 +
 +[[R]]éponses de Carl (plus correction):​
 +  * 1.0.1.0 A
 +  * 224.1.2.3 --C-- D on peut pas l'​utiliser ​
 +  * 1.2.3.4 A
 +  * 100.200.0.0 A
 +  * 1.2.3.255 A
 +  * 10.20.30.40 A
 +  * 212.128.256.13 ​ pas valable (256 trop grand)
 +  * 8.4.0.254 A
 +  * 128.192.10.0 B
 +  * 1.0.0.0 A pas valable (réseau)
 +
 +On ne peut pas avoir tous les bits hôtes à zéro: c'est l'​adresse du réseau.
 +On ne peut pas avoir tous les bits hôtes à un: c'est l'​adresse de broadcast.
 +
 +Pour l'​adresse 200.100.15.20,​ 200.100.15.0 est l'​adresse réseau et 0.0.0.20 et l'​adresse hôte. La somme des 2 donne l'​adresse IP de l'​hôte.
 +
 +=== Masque de sous-reseau ===
 +
 +Un masque de sous-réseau est une suite ininterrompue de bits à un qui identifie le réseau.
 +Classe A: 111111111.00000000.00000000.00000000,​ soit 255.0.0.0
 +
 +Exemple: 10.11.12.13 donne 00001010 00001011 00001100 00001101, masque: 11111111 00000000 00000000 000000000
 +
 +On fait un et logique entre les 2:
 +00000100 00000000 00000000 00000000
 +
 +Et logique: 1 et 1 donnent 1, 1 et 0 donnent 0, 0 et 1 donnent 0, 0 et 0 donnent 0.
 +
 +Classe B: masque de sous-réseau:​ 255.255.0.0
 +
 +Classe C: masque de sous-réseau:​ 255.255.255.0
 +
 +Avec une classe A, on utilise jamais toutes les adresses pour le réseau. Donc, on va couper le réseau en 2 sous-réseaux.
 +
 +Exemple: classe B:
 +réseau 133.127.0.0
 +Comment le couper en 2 x 32000 machines?
 +réseau: 10000101.01111111.00000000.00000000
 +masque: 11111111.11111111.00000000.00000000
 +
 +Nous allons décaler le masque d'un bit.
 +masque: 11111111.11111111.10000000.00000000
 +Si le premier bit du 3e octet est à 1, on est dans le sous-réseau A. S'il est à 0, on est dans le sous réseau B.
 +Sous-réseau A
 +masque: 255.255.128.0
 +adresse réseau (=subnet number): 133.127.128.0
 +machines de: 133.127.128.1 à 133.127.255.254
 +broadcast: 133.127.255.255
 +Sous-réseau B
 +masque: 255.255.128.0
 +adresse réseau du sous-réseau B est 133.127.0.0
 +machines de 133.127.0.1 à 133.127.127.254
 +broadcast: 133.127.127.255
 +
 +Exercice:
 +100.0.0.0
 +01100100.00000000.00000000.000000000
 +netmask: 255.0.0.0
 +Pour faire 7 sous-réseau,​ il faudra 3 bits en plus pour le masque:
 +11111111.11100000.00000000.00000000
 +255.224.0.0
 +
 +Si on veut faire le réseau dont les 3 derniers bits réseaux sont 100:
 +La première adresse IP machine sera: 100.128.0.1
 +La dernière sera: 128.159.255.254
 +subnet number: 100.128.0.0
 +broadcast: 100.159.255.255
 +
 +Sous-réseau:​ 000
 +1ere IP: 100.0.0.1
 +dernière IP: 100.31.255.254
 +subnet number: 100.0.0.0
 +broadcast: 100.31.255.255
 +
 +Sous-réseau:​ 101
 +1ere IP: 100.160.0.1
 +dernière IP: 100.191.255.254
 +subnet number: 100.160.0.0
 +broadcast: 100.191.255.255
 +
 +
 +Exercice: Technofutur 3
 +
 +[[R]]éseau privé: 10.0.0.0 (classe A)
 +Il faut 15 sous-réseaux:​ 4 bits
 +masque: 111111111.11110000.00000000.00000000,​ soit 255.240.0.0
 +...
 +
 +Note: Cisco
 +Avec les amis de chez Cisco, on ne peut pas avoir les bits de sous-réseau tous à 0 ou tous à 1.
 +Donc, dans le cas ci-dessus, on a que 14 sous-réseaux au lieu de 16 et donc on devrait travailler sur 5 bits (où il y aurait 30 sous-réseaux).
 +
 +Exercice: Soit le réseau: 212.14.1.0
 +#|
 +|| nombre de subnets | sous masque (avec Cisco) | sous-masque (sans Cisco) ||
 +|| 3 | 255.255.255.224 | 255.255.255.192||
 +|| 14 | 255.255.255.240 | 255.255.255.240 ||
 +|| 31 | 255.255.255.252 | 255.255.255.248 ||
 +|| 255 | - | - ||
 +|#
 +En fait, il est possible de faire plus simple.
 +
 +Si on travaille sur 10.0.0.0, on peut subnetter en 8 bits
 +10.0.0.0
 +classe A
 +masque: 255.0.0.0
 +
 +Si on décide de faire un masque sur 16 bits:
 +255.255.255.0
 +Ca fera beaucoup de réseaux de 254 machines maximum.
 +sous-réseaux:​
 +10.10.1.0
 +10.10.2.0
 +
 +
 +-----------
 +11 mars 2005
 +-----------
 +
 +Bien différencier le network number, le subnet number et le host number:
 +131.1.0.0
 +0.0.128.0
 +0.0.0.1
 +
 +Pour obtenir l'IP de la machine, on fait la somme des 3.
 +Pour obtenir le broadcast, on additionne le network number et le subnet number, et on met tous les bits hosts à 1.
 +
 +Exercice: donner le network number et le subnet number.
 +
 +Soit le réseau: 200.10.18.0
 +Couper en 2 sous-réseaux et donner network number et subnet number.
 +Donner le host number de la machine 200.10.18.170
 +
 +Masque (classe C): 255.255.255.0
 +network number: 200.10.18.0
 +subnet mask: 0.0.0.128
 +host id: 0.0.0.42
 +
 +Si on veut retrouver l'​adresse IP de l'​hôte:​ on additionne les 3.
 +
 +
 +Exercice 2: 150.14.0.0
 +Faire 4 sous-réseaux.
 +Classe B, netmask: 255.255.0.0
 +subnetmask: 0.0.192.0
 +
 +Prenons une adresse IP de machine dans un des 4 sous-réseaux:​ 150.14.128.2
 +
 +L'​intérêt d'​isoler le subnet number, c'est de déterminer si une machine fait partie du même réseau local qu'une autre.
 +
 +Je prends l'​adresse IP de A: 10.10.3.1
 +netmask: 255.255.255.0
 +subnet number: 0.10.3.0 (on l'​obtient en soustrayant le masque de la classe, ici la classe A: 255.0.0.0)
 +
 +Je prends l'​adresse IP de B: 10.10.3.150
 +netmask de A (parce que je n'ai pas celui de B, donc j'​imagine que c'est le même): 255.255.255.0
 +subnet number: 0.10.3.0
 +
 +Elles ont le même subnet réseau, elles peuvent donc communiquer entre elles.
 +
 +De B vers A, c'est pareil.
 +
 +De A vers C (10.10.7.1)
 +netmask de A: 255.255.255.0
 +subnet number: 0.10.7.0
 +
 +A et C n'ont pas le même subnet number, donc on doit passer par la passerelle.
 +
 +A et B:
 +10.10.3.1
 +subnet mask de A: 255.255.252.0
 +différence entre IP de A et subnet mask: 0.10.0.0
 +
 +IP B: 10.10.3.150
 +subnet mask de A: 255.255.252.0
 +différence entre IP de B et subnet mask:
 +
 +==== Half-way communication ====
 +
 +Il y a une erreur dans le subnet mask: 255.255.252.0 au lieu de 255.255.255.0.
 +
 +A vers C:
 +
 +IP A: 10.10.3.1
 +subnet mask de A: 255.255.252.0
 +différence entre IP de A et subnet mask: 0.10.0.0
 +
 +IP C: 10.10.1.1
 +subnet mask de A: 255.255.252.0
 +différence entre IP de A et subnet mask: 0.10.0.0
 +
 +On obtient la même chose pour les 2 adresses: Il le prend en local alors que ce n'est pas le cas -> les paquets n'​arrivent pas.
 +
 +De C vers A
 +IP C: 10.10.1.1
 +subnet: 255.255.252.0
 +différence:​ 0.10.1.0
 +
 +IP A: 10.10.3.1
 +subnet de C: 
 +différence entre IP de A et subnet mask: 0.10.3.0
 +
 +Les 2 adresses ne sont pas sur le même réseau, il envoie le paquet à la passerelle -> les paquets arrivent.
 +
 +
 +=== Exercice ===
 +
 +Un réseau routé avec 3 segments.
 +Vide: ne peuvent pas communiquer
 +Oui: peuvent communiquer
 +
 +#|
 +|| | A | B |C | D | E | F | G | H ||
 +|| A |oui| | |oui |  | | | ||
 +|| B |  | oui | | | | | | ||
 +|| C | | | oui |oui | | | | ||
 +|| D | oui | | oui | oui | | | | ||
 +|| E | | | | | oui | | | ||
 +|| F | | | | | | oui | | ||
 +|| G | | | | | | | oui | ||
 +|| H | | | | | | | | oui ||
 +|#
 +
 +A vers B:
 +IP de A: 192.168.8.100
 +masque de A: 255.255.255.0
 +IP de B: 192.168.8.20
 +applique masque de A: 255.255.255.0
 +subnet mask: 0.0.0.0
 +
 +Pour calculer le subnet mask, on met à zéro les bits utilisés pour la classe, et on fait un //et logique// sur les bits utilisés pour l'​hôte.
 +
 +A croit que B est sur le même réseau, ce qui est le cas, donc les paquets de A vers B vont passer.
 +
 +B vers A:
 +IP de B: 192.168.8.20
 +masque de B: 255.255.255.192
 +subnet mask: 0.0.0.0
 +IP de A: 192.168.8.100
 +applique masque de B: 255.255.255.192
 +subnet mask: 0.0.0.64
 +
 +!!Calcul de subnet mask de A avec le masque de B:!!
 +Classe C: donc les 3 premiers octets sont mis à zéro.
 +le dernier octet pour l'IP de A est 01100100.
 +le dernier octet du masque de B est 11000000.
 +La somme logique donne: 01000000, soit 64.
 +
 +A vers E: N'ont pas le même réseau: on passe par le routeur.
 +
 +A -> C
 +IP A 192.168.8.100
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.8.0
 +
 +IP C: 192.168.8.200
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.8.0
 +
 +A voit C en local: ok
 +
 +C -> A
 +IP C: 192.168.8.200
 +subnet mask: 255.255.255.128
 +subnet id: 192.168.8.128
 +
 +IP A: 192.168.8.100
 +subnet mask: 255.255.255.128
 +subnet id: 192.168.8.0
 +
 +C'est different, C croit que A n'est pas local: Half
 +
 +A -> D
 +IP A: 192.168.8.100
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.8.0
 +
 +IP D: 192.168.9.164
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.9.0
 +
 +A prend D comme en-dehors de son réseau.
 +
 +Est-ce que A voit son gateway comme local? oui.
 +
 +Donc, ça passe de A vers D
 +
 +D -> A
 +IP D: 192.168.9.164
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.9.0
 +
 +IP A: 192.168.8.100
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.8.0
 +
 +Est-ce que D voit son routeur? oui:
 +
 +IP D: 192.168.9.164
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.9.0
 +
 +IP R2: 192.168.9.250
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.9.0
 +
 +D voit R2 en local, ce qui est le cas -> OK.
 +
 +Communication entre A et D: OK
 +
 +A -> E
 +IP A: 192.168.8.100
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.8.0
 +
 +IP E: 192.168.9.20
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.9.0
 +
 +OK.
 +
 +E -> A
 +
 +IP E: 192.168.9.20
 +subnet mask: 255.255.255.224
 +network number + l'​autre:​ 192.168.9.0 (check)
 +
 +IP A: 192.168.8.100
 +subnet mask: 255.255.255.224
 +network number + l'​autre:​ 192.168.9.0
 +
 +A -> F
 +IP A: 192.168.8.100
 +subnet mask: 255.255.255.0
 +network number + l'​autre:​ 192.168.8.0
 +
 +IP F: 192.168.10.63
 +subnet mask de A: 255.255.255.0
 +network number + l'​autre:​ 192.168.10.0
 +
 +F -> A
 +IP F: 192.168.10.63
 +subnet mask: 255.255.255.128
 +network number + l'​autre:​ 192.168.10.128
 +
 +IP A: 192.168.8.100
 +subnet mask de F: 255.255.255.128
 +network number + l'​autre:​ 192.168.8.0
 +
 +Il le voit comme distant, ce qui est correct.
 +Mais F ne voit pas son gateway.
 +
 +H et R3 ne sont pas sur le même réseau: H ne trouve pas son routeur.
 +H et F ou G. Classe C: 24 bits -> pas pareil, donc H ne voit ni F ni G
 +
 +
 +=== Supernetting ===
 +
 +On a plus réseau qu'on va rassembler en un seul.
 +On décalle la frontière entre réseau et hôte vers la gauche. C'est l'​inverse du Subnetting où là on déplaçait à droite la frontière.
 +On a donc moins de réseau avec plus de machines.
 +On évite ainsi le routage entre les différents réseaux.
 +
 +En pratique, peu utilisé.
 +
 +
 +=== CIDR ===
 +Classless interdomain routing
 +
 +Ou s'​arrête la partie réseau, ou commence la partie hôte.
 +Classe A: /8
 +Classe B: /16
 +Classe C: /24: 24 bits pour le réseau, 8 bits pour les hôtes
 +
 +
 +C'est une standarisation d'​écriture des adresses IP. 
 +Là où les classes d'​adresse IP sont fixes, la méthode CIDR nous permet de choisir nous même de quelle " classe " sera le réseau que l'on définit. Cela ermet de disposer non plus de 3 classes différents d'​adressage mais de 24 classes différentes.
 +Ainsi, une adresse 10.X.X.X ne sera ainsi plus forcément une adresse de classe A. Cela dépendra juste de du chiffre placé après le symbole /.
 +
 +=== Adresses privees ===
 +
 +10.0.0.0/8
 +172.16.0.0/​16 à 172.31.0.0/​16
 +192.168.0.0/​16
 +
 +NAT: network address translation
 +Le routeur a une adresse IP publique et une adresse privée dans le LAN. C'est lui qui va faire les requêtes sur internet et les retransmet au poste sur le LAN.
 +
 +Le serveur NAT a une table d'​allocation faisant correspondre une adresse IP du LAN avec un port pour la requête sur internet.
 +
 +
 +===  Limitations de ~TCP/IP ==
 +
 +Il y a plein d'​adresses qu'on peut pas utiliser, et il y a de plus en plus de demandes pour des adresses.
 +
 +Donc, on va devoir passer à IPv6, qui est sur 128 bits (au lieu de 32 pour IPv4).
formationsecurite/tcpip.txt · Last modified: 2013/01/30 17:52 (external edit)