===== Identification de la classe d'adresse (RFC 791) ===== ==== Les Classes ==== Il s'agira d'identifier la classe d'adresse : * Les adresses de **Classe A** commencent par **0xxx** en binaire, ou 0 à 127 en décimal. * Les adresses de **Classe B** commencent par **10xx** en binaire, ou 128 à 191 en décimal. * Les adresses de **Classe C** commencent par **110x** en binaire, ou 192 à 223 en décimal. * Les adresses de **Classe D** commencent par **1110** en binaire, ou 224 à 239 en décimal. * Les adresses de **Classe E** commencent par **1111** en binaire, ou 240 à 255 en décimal. Notes sur les Classes d'adresses : * Seules les adresses de Classes A, B et C sont assignables à des interfaces (adresse d'Unicast) * La **classe D** est utilisée pour des adresses de **Multicast** (adresse unique identifiant de nombreuses destinations) * La **classe E** est utilisée pour des besoins futurs ou des objectifs scientifiques Adresses spécifiques : * Les adresses commençant de 127.0.0.0 à 127.255.255.255 sont réservées pour le bouclage (loopback) * Adresses privées non routables vers l'Internet sont (RFC 1918) : * Pour la classe A : de 10.0.0.0 à 10.255.255.255 * Pour la classe B : de 172.16.0.0 à 172.31.255.255 * Pour la classe C : de 192.168.0.0 à 192.168.255.255 ==== Distinction de la partie réseau de la partie hôte ==== Par défaut : * La partie réseau des adresses de Classe A portera sur le premier octets et la partie hôte sur les trois derniers (2^24 = 16 777 216 hôtes possibles par réseau) * La partie réseau des adresses de Classe B portera sur les deux premiers octets et la partie hôte sur les deux derniers (2^16 = 65 536 hôtes possibles par réseau) * La partie réseau des adresses de Classe C portera sur les trois premiers octets et la partie hôte sur le dernier (2^8 = 256 hôtes possibles par réseau) {{informatique:tcpip:hostip.gif|}} ==== Utilisation d'un masque (RFC 950) ==== Un masque va préciser de manière certaine dans quel réseau se trouve un adresse IP et en conséquence : - L'adresse du réseau (appelée aussi numéro de réseau, non assignable) - L'adresse de broadcast (adresse visant toutes les destinations, non assignable) - La plage d'adresses utilisables (de la première à la dernière en dehors des adresses précitées) Un masque sera une suite de 32 bits divisée en 4 octets pointés composée uniquement d'abord d'une suite de 1 et, après, d'une suite de 0. La notation est aussi décimale pointée. Toutefois, on trouvera une autre notation dite CIDR [3] qui représente le nombre de bits pris par la partie réseau du masque. === 1/ Masque par défaut === Le nombre d'hôte possible obtenus ci-dessus correspond à l'application d'un masque par défaut sur type de classe d'adresse : Le masque par défaut des adresses de Classe A est 255.0.0.0 ou /8 Le masque par défaut des adresses de Classe B est 255.255.0.0 ou /16 Le masque par défaut des adresses de Classe C est 255.255.255.0 ou /24 **Méthode par calcul binaire** L'adresse du réseau, l'adresse de broadcast et la plage d'adresses utilisables peut être obtenu à partir d'un calcul booléen de type ET ou la conjonction logique (une proposition est vraie lorsque les deux termes sont tous les deux vrais) : **a. Obtenir l'adresse du réseau :** Pour l'adresse IP 140.159.125.25, adresse de classe B à laquelle on applique un masque par défaut de 255.255.0.0 : 10001100.10011111.01111101.00011001 140.159.125.25 11111111.11111111.00000000.00000000 255.255.0.0 ----------------------------------- 10001100.10011111.00000000.00000000 140.159.0.0 L'adresse du réseau est donc 140.159.0.0 **b. Obtenir l'adresse de broadcast :** On va remplacer les bits de valeur 0 de la partie hôte du résultat obtenu pour l'adresse de réseau par des bits de valeur 1 : 10001100. 10011111. 00000000. 00000000 140.159.0.0 par : 10001100. 10011111. 11111111. 11111111 140.159.255.255 **c. Obtenir la plage d'adresses de ce réseau :** La plage d'adresse du réseau sera comprise entre la première adresse utilisable et la dernière utilisable, autrement dit, celle qui suit l'adresse du réseau et celle qui précède l'adresse de broadcast : De 10001100. 10011111. 00000000. 00000001 140.159.0.1 A 10001100. 10011111. 11111111. 11111110 140.159.255.254 === Masques restrictifs === Les masques présentés ci-dessus sont des masques appartenant par défaut à chaque classe d'adresse. On pourra utiliser d'autres masques plus restrictifs afin de diviser un réseau en plusieurs sous-réseaux afin d'optimiser un plan d'adressage. On va emprunter des bits à la partie hôte au profit de la partie réseau. De manière intuitive, on peut considérer qu'à partir d'un réseau de classe C de 256 adresses possibles, on pourra, par exemple obtenir 4 sous-réseaux différents de 64 adresses. Dans ce cas-ci, on dira que l'on a emprunté deux bits à la partie hôtes (2 exp 2 = 4) ne restant que 6 bits pour les hôtes (2 exp 6 = 64). Selon la RFC 950, les premiers et derniers sous-réseaux et la première et la dernière adresse sont non valides. On obtiendrait donc 2 sous-réseaux (4-2) avec chacun 62 hôtes possibles (64-2). Notez aussi qu'il doit toujours rester 2 bits pour la partie hôte (4-2 = 2) quelle que soit la classe utilisée. Notez aussi que vous perdrez en conséquence, selon les circonstances, un grand nombre d'hôtes assignables Par exemple : Pour l'adresse IP 195.74.212.78, adresse de classe C à laquelle on applique un masque par défaut de 255.255.255.192 par la même méthode que présenté ci-avant : **a. Obtenir l'adresse du réseau :** 11000011.01001010.11010100.01001110 195.74.212.78 11111111.11111111.11111111.11000000 255.255.255.192 ----------------------------------- 11000011.01001010.11010100.01000000 195.74.212.64 L'adresse du réseau est donc 195.74.212.64 **b. Obtenir l'adresse de broadcast :** On va remplacer les bits de valeur 0 de la partie hôte du résultat obtenu pour l'adresse de réseau par des bits de valeur 1 : 11000011. 01001010. 11010100. 01000000 195.74.212.64 par : 11000011. 01001010. 11010100. 01111111 195.74.212.127 **c. Obtenir la plage d'adresses de ce réseau :** La plage d'adresse du réseau sera comprise entre la première adresse utilisable et la dernière utilisable, autrement dit, celle qui suit l'adresse du réseau et celle qui précède l'adresse de broadcast : De 11000011. 01001010. 11010100. 01000001 195.74.212.65 A 11000011. 01001010. 11010100. 01111110 195.74.212.126 ==== Méthode dite du nombre magique.==== Le calcul binaire peut sembler fastidieux. La méthode dite du nombre magique permet d'éviter ces calculs. Le nombre magique est 256 soustrait de la valeur intéressante autre que 0 ou 255 du masque. Pour trouver l'adresse réseau, il suffira de trouver le multiple du nombre magique directement inférieur ou égal à l'adresse IP : Pour l'adresse IP 195.74.212.136, adresse de classe C à laquelle on applique un masque par défaut de 255.255.255.192, le nombre magique est 256-192 = 64, le multiple juste inférieur étant 128. L'adresse réseau est donc 195.74.212.128 Pour trouver l'adresse de la première adresse utilisable, il faudra ajouter 1 au dernier octet du numéro de sous-réseau : 195.74.212.129 Pour l'adresse de broadcast, il faudra faire (numéro de sous-réseau + nombre magique -1) 128+64-1, ce qui donnera l'adresse 195.74.212.191 Pour trouver l'adresse de la dernière adresse utilisable, il faudra soustraire 1 au dernier octet de l'adresse de broadcast : 195.74.212.190 Autre exemple plus complexe : ^ ^Octet 1^Octet 2^Octet 3^Octet 4^Commentaire^ ^Adresse IP|10|200|10|18| | ^Masque|255|224|0|0| | ^Numéro de sous-réseau|10|192|0|0|Nombre magique = 256-224 = 32| ^Première adresse utilisable|10|192|0|1|Ajouter 1 au dernier octet du numéro de sous-réseau| ^Adresse de Broadcast|10|223|255|255 |192+32-1 = 223| ^Dernière adresse utilisable|10|223|255|254|Soustraire 1 du dernier octet de l'adresse de broadcast| ==== Nombre de sous-réseaux / nombres d'hôtes ==== Les formules sont simples : Nombre de sous-réseaux : 2 EXP bits empruntés pour le sous-réseaux - 2 Nombre d'hôtes : 2 EXP bits restant pour les hôtes - 2 A condition d'avoir en tête ce tableau de conversion : ^Bits réseaux^Binaire^Décimal^ |0|00000000|0| |(1)|10000000|(128)| |2|11000000|192| |3|11100000|224| |4|11110000|240| |5|11111000|248| |6|11111100|252| |(7)|11111110|(254)| |8|11111111|255|