# Adressage IPV4 ## Adresse IP Une adresse IP permet d'identifier une machine de manière unique sur un réseau donné. Une adresse IP est représentée par 4 octets, soit 32 bits: `192.168.1.2`. Valeur possible de l'octet de 0 à 255, soit 256 possibilités. Une adresse IP n'a du sens qu'avec un masque de réseau qui détermine le nombre de machine hôtes. exemple d'adresse IP et de masque réseau ``` // adresse IP classe C 192.168.1.2 // masque de sous réseau par défaut pour les adresses de classe C 255.255.255.0 ``` ### Ecriture d'une adresse IP binaire ``` 192 . 168 . 1 . 2 1100 0000.1010 1000.0000 0001.0000 0010 // écriture en binaire de 192.168.1.2 ``` ## Sous-réseau - Ils permettent de faire la séparation entre la partie réseau et la partie machine de l’adresse IP, - La partie réseau est représentée par des bits à 1, et la partie machine par des bits à 0, - Le masque ne représente rien sans l’adresse IP à laquelle il est associé. Le masque 255.255.255.0 correspond par exemple à un sous-réseau de 24 bits et permet d'avoir 254 hôtes. Le masque de sous-réseau permet de déterminer les deux parties d'une adresse IP correspondant respectivement au numéro du réseau et au numéro de l'hôte. **Il est obtenu en mettant à 1 les bits du réseau et à 0 les bits de l'hôte**. ### Ecriture d'un masque de sous-réseau en binaire ``` 255 . 255 . 255 . 0 1111 1111.1111 1111.1111 1111.0000 0000 // écriture en binaire de 255.255.255.0 ``` ## Adressage en classe (classfull) | Classe | Bits de départ | Début | Fin | Notation CIDR par défaut | Masque de sous-réseau par défaut | | ------ | ----- | ----- | ----- | ----- | ----- | | Classe A | 0 | 0.0.0.0 | 126.255.255.255(127 est réservé) | /8 | 255.0.0.0 | | Classe B | 10 | 128.0.0.0 | 191.255.255.255 | /16 | 255.255.0.0 | | Classe C | 110 | 192.0.0.0 | 223.255.255.255 | /24 | 255.255.255.0 | | Classe D (multicast) | 1110 | 224.0.0.0 | 239.255.255.255 | | 255.255.255.255 | | Classe E (réservée) | 1111 | 240.0.0.0 | 255.255.255.255 | | non défini | Cela veut dire que : - la classe A commence à 0.0.0.0 et se se termine normalement à 127.255.255.255 - mais 127.x.x.x est utilsée pour le loopback, c'est le localhost de la machine - (on peut donc dire que) la classe A se termine par 126.255.255.255 - la classe B commence à 128.0.0.0, pourquoi 128 ? - dans le tableau ci-dessus, dans la colonne "bits de départ" de la classe B vous voyez 10 (un zéro pas dix hein :smirk:), cela veut dire que le premier octet commence par 10 en binaire, la première adresse de la classe B est donc - `1000 0000.0000 0000.0000 0000.0000 0000` en binaire, ce qui donne en décimal `128.0.0.0` - la classe C ... #### Exemple : Identifier la partie réseau et la partie hôte d'une adresse IP ``` // pour le masque réseau 255.255.255.0 __________Réseau____________ _Machine | | | 1111 1111.1111 1111.1111 1111.0000 0000 // écriture en binaire de 255.255.255.0 ``` la partie de gauche avec les 1 identifie le réseau, les 0 identifie ls hôtes. #### Exercice nous avons les informations suivantes : - IP : 192.168.1.2 - masque sous réseau par défaut : 255.255.255.0 ``` 1100 0000.1010 1000.0000 0001.0000 0010 // écriture en binaire de 192.168.1.2 // pour le masque réseau 255.255.255.0 1111 1111.1111 1111.1111 1111.0000 0000 // écriture en binaire de 255.255.255.0 ``` Ce qui est susceptible d'être demandé lors d'un examen : 1. Déterminer l'ID réseau 2. Déterminer le nombre d'adresse utilisable 3. Déterminer l'adresse de *broadcast* du réseau 4. Déterminer la plage adressable ##### Déterminer l'ID réseau il s'obtient avec un *ET* logique de l'adresse IP et du masque de sous réseau : ``` 1100 0000.1010 1000.0000 0001.0000 0010 // écriture en binaire de 192.168.1.2 // ET (logique) 1111 1111.1111 1111.1111 1111.0000 0000 // écriture en binaire de 255.255.255.0 // Résultat : 1100 0000.1010 1000.0000 0001.0000 0000 // conversion du résultat en décimal 192 . 168 . 1 . 0 ``` L'ID réseau est donc `192.168.1.0`. ##### Déterminer le nombre d'adresse utilisable la formule : $$ nombreAdressesUtilisables = 2^n - 2 $$ `n` étant égal au nombre de bits représentant la partie hôte (dans notre cas il y a 8 zéro) ``` 1111 1111.1111 1111.1111 1111.0000 0000 ``` $$ 2^8 - 2 = 256 - 2 = 254 $$ ##### Déterminer l'adresse de *broadcast* du réseau à partir de l'ID réseau, passer tous les 0 de la partie qui identifie l'hôte à 1. ``` 1100 0000.1010 1000.0000 0001.0000 0000 // les 8 derniers 0 identifiant l'hôte, on les passe à 1 soit : 1100 0000.1010 1000.0000 0001.1111 1111 192.168.1.255 // résultat en décimal ``` L'adresse de broadcast est `192.168.1.255` ##### Déterminer la plage adressable Nous avons donc un réseau identifié par 192.168.1.0 et son adresse de broadcast 192.168.1.255. la plage d'adresses IP utilisables va de 192.168.1.1 à 192.168.1.255. A RAJOUTER EXERCICE/EXEMPLE PLUS COMPLEXE. ## CIDR Bien que les sous-réseaux soient encore fréquemment définis aux frontières d'octet, les réseaux 24 bits étant les plus courants, d'autres masques sont désormais possibles. exemple avec 192.168.1.68/26 Ce que l'on peut déterminer (et qui peut donc être demandé en examen) : 1. Quel est l'ID réseau 2. Quel est l'adresse du premier hôte 3. Quel est l'adresse de broadcast ### Déterminer l'ID réseau Avez l'adresse IP : ``` 192.168.1.68 // adresse IP en décimal 1100 0000.1010 1000.0000 0001.0100 0100 // adresse ip en binaire ``` et le masque /26 ``` 1111 1111.1111 1111.1111 1111.1100 0000 // masque /26 en binaire 255.255.255.192 // en décimal ``` l'ID réseau se détermine avec un ET logique entre l'adresse IP et le masque : ``` 1100 0000.1010 1000.0000 0001.0100 0100 // adresse ip en binaire ET(logique) 1111 1111.1111 1111.1111 1111.1100 0000 // masque /26 en binaire Résultat : 1100 0000.1010 1000.0000 0001.0100 0000 // ID réseau en binaire 192.168.1.64 // ID réseau décimal ``` ### Déterminer l'adresse du premier hôte Il suffit de rajouter 1 à la partie "hôte" de l'adresse ID réseau 192.168.1.**64** (en décimale !) : ce qui donne comme résultat 192.168.1.**65** dans notre exemple. ### Déterminer l'adresse de broadcast à partir de l'ID réseau, on bascule à 1 tous les bits de la partie hôte : ``` 192.168.1.64 // ID réseau décimal 1100 0000.1010 1000.0000 0001.0100 0000 // ID réseau en binaire 1100 0000.1010 1000.0000 0001.0111 1111 // l'adresse broadcast (dans notre exemple les 6 derniers 0 passent à 1) 192.168.1.127 ``` ### Déterminer l'adresse du dernier hôte Il suffit de soustraire 1 à la partie "hôte" de l'adresse de broadcast 192.168.1.**127** (en décimale !) : ce qui donne comme résultat 192.168.1.**126** dans notre exemple. # DHCP DHCP est un protocole réseau dont le rôle est d’**assurer la configuration automatique des paramètres IP** d'une machine. 1. **Discover** (machine hôte) envoie une requête sur le broadcast 2. **Offer** (serveur D.H.C.P.) 3. **Request** 4. **ACK** (serveur D.H.C.P.) ![Schéma foncitonnement D.H.C.P.](https://user.oc-static.com/files/420001_421000/420950.png) *[CIDR]: Classless Inter-Domain Routing *[DHCP]: Dynamic Host Configuration Protocol, protocole de configuration dynamique des hôtes
{"metaMigratedAt":"2023-06-15T13:06:15.272Z","metaMigratedFrom":"Content","title":"Adressage IPV4","breaks":true,"contributors":"[{\"id\":\"dc5d326d-6307-484a-8def-c0e3899c9ad6\",\"add\":9065,\"del\":1787}]"}
    239 views