--- title: Adressage IPV4 tags: IPV4 description: résumé cours introduction aux réseau, adressage IPV4 --- # Adressage IPV4 --- ## Adresse IP - permet d'identifier une machine de manière unique sur un réseau donné - est représentée par 4 octets, soit 32 bits: `192.168.1.2` - Valeur possible d'un octet de 0 à 255, soit 256 possibilités - n'a du sens qu'avec un masque de réseau ---- 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 // écriture en binaire de 192.168.1.2 1100 0000.1010 1000.0000 0001.0000 0010 ``` --- ## Le masque de sous-réseau - permet 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 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 // écriture en binaire de 255.255.255.0 1111 1111.1111 1111.1111 1111.0000 0000 ``` --- ## 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.2553(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 qui précède, 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 les hôtes. ---- #### Exercice nous avons les informations suivantes : - IP : 192.168.1.2 - masque sous réseau par défaut : 255.255.255.0 ---- écriture en binaire ``` // écriture en binaire de 192.168.1.2 1100 0000.1010 1000.0000 0001.0000 0010 // écriture en binaire de 255.255.255.0 1111 1111.1111 1111.1111 1111.0000 0000 ``` ---- Ce qui est susceptible d'être demandé lors d'un examen : 1. Déterminer l'ID réseau 2. Déterminer le nombre d'adresses utilisables 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 : ``` // écriture en binaire de 192.168.1.2 1100 0000.1010 1000.0000 0001.0000 0010 // ET (logique) // écriture en binaire de 255.255.255.0 1111 1111.1111 1111.1111 1111.0000 0000 // 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 4. Déterminer la plage adressable ---- ### Déterminer l'ID réseau Avec l'adresse IP : ``` // adresse IP en décimal 192.168.1.68 // adresse ip en binaire 1100 0000.1010 1000.0000 0001.0100 0100 ``` ---- et le masque /26 ``` // masque /26 en binaire 1111 1111.1111 1111.1111 1111.1100 0000 // masque /26 en décimal 255.255.255.192 ``` ---- 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 ET(logique) 1111 1111.1111 1111.1111 1111.1100 0000 Résultat : 1100 0000.1010 1000.0000 0001.0100 0000 192.168.1.64 // ID réseau en 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