L’adressage IP (Internet Protocol)

 

Menu
 
            
 
                 A.   Qu’est-ce qu’ IP et une adresse IP ?
    A chaque fois que l’on se connecte sur l’Internet, ou sur un réseau local utilisant TCP/IP, il nous est attribué une adresse IP. Cette adresse sera unique sur le réseau considéré : il ne peut y avoir deux mêmes adresses sur un réseau. L’adresse IP va donc être l’adresse logique (elle franchit les routeurs) de notre machine sur le réseau. C’est par cette adresse que n’importe qui connecté à notre réseau peut nous contacter. Le protocole IP, lui va servir à relier tous les ordinateurs du réseau entre eux. C’est grâce à lui que la communication entre machine est possible.
 
                B.   L’adressage IP
Lorsque l’on veut joindre quelqu’un sur le réseau, il faut logiquement trois informations :
Ø      Le nom du réseau où elle se trouve,
Ø      Son nom de machine,
Ø      La route à suivre pour y parvenir.
Le protocole IP, va lui se charger du « routage », alors que l’adresse IP va nous renseigner sur le nom du réseau et de la machine. Cette adresse IP est standardisée, sous forme d’un mot de 32 bits, soit quatre mots de 8 bits (4 octets). Ce qui signifie en base décimale : quatre mots de trois chiffres, où chaque mot est limité à 255, séparés par des points : XXX.XXX.XXX.XXX .
Pour faciliter le routage, les chiffres composant une adresse ne sont pas choisis au hasard. Dans cette adresse, nous allons donc avoir l’adresse du réseau, et l’adresse de la machine sur le réseau. Les deux combinées vont alors désigner une machine et une seule sur le réseau.
 
Personne ne peut décider de l’adresse de son réseau : cette adresse est délivrée par une organisation internationale : le NIC (Network Information Center), ou par une délégation locale du NIC : en France, l’AFNIC ; ou en Europe : le RIPE. De nos jours, avec l’énorme croissance de l’Internet, le NIC n’est plus voué qu’à coordonner ses différentes délégations à travers le monde.
Il est bien évident que pour un réseau qui n’est pas voué à se connecter à l’Internet, une adresse arbitraire peut être choisie. Il est prévu, conformément à la norme de standardisation des adresses IP, de réserver une plage d’adresses particulières pour ces réseaux :
Ø      De 10.0.0.0 à 10.255.255.255 (ancien ARPANET)
Ø      De 172.16.0.0 à 172.31.255.255
Ø      De 192.168.0.0 à 192.168.255.255
 
Ces classes réservées peuvent nous permettre de faire quelques constats sur les adresses IP en général :
Ø      La partie du début (bits de poids fort en binaire) est l’adresse du réseau (10 - 172.16 – 192.168 – etc.),
Ø      La partie finale (bits de poids faible en binaire) va donc désigner l’adresse de la machine hôte,
Ø      Le nombre de bits désignant le réseau n’est pas fixe : pour la plage 10.XXX.XXX.XXX, nous avons un octet pour désigner le réseau, et trois octets pour la machine ; alors que pour la plage 192.168.XXX.XXX, nous en avons deux pour le réseau et deux pour la machine.
 
Ainsi, pour s’adapter aux besoins des différents réseaux d’aujourd’hui, on a crée cinq classes sur lesquels ils doivent se mouler :
 
  
 
  
Attention : Certaines adresses IP ont une signification particulière, ou ne sont pas toujours faciles à comprendre :
Ø      Par convention, une adresse qui a un nom de machine à 0 désigne le réseau : l’adresse 192.168.0.0 désigne le réseau tout entier (la machine 1 de ce réseau aura l’adresse 192.168.0.1).
Ø      Par convention, une adresse dont les bits désignant la machine sont tous à 1, désigne l’adresse de broadcast du réseau : cet à dire toutes les machines connectées au réseau (l’adresse 192.168.255.255 désigne toutes les machines de ce réseau). Pour des raisons de sécurité, ces adresses sont souvent interdites.
Ø      L’adresse 0.0.0.0 désigne une machine inconnue sur le réseau où l’on se trouve (souvent utilisée lors du boot sur le réseau de machines sans disque).
Ø      L’adresse 0.0.0.X désigne la machine X sur le réseau où l’on se trouve.
Ø      L’adresse 255.255.255.255 désigne l’adresse de broadcast du réseau local.
Ø      L’adresse réseau 127.0.0.0 désigne l’adresse réservée au loopback (la machine elle-même, avec les outils réseaux, mais sans la connection au réseau : utilisée par exemple pour des jeux qui ont besoin des outils réseaux).
Ø      L’adresse 127.0.0.1 est l’adresse de loopback couramment utilisée.
 
                C.   Les sous-réseaux
En 1984, est mise en place le concept de sous-réseaux (subnet), pour permettre aux administrateurs de créer des réseaux à l’intérieur de leur réseau. Le principe est d’utiliser les bits de poids fort de l’adresse de l’hôte, dans l’adresse IP. Les choix du nombre de bits et de leurs valeurs sont laissés à l’administrateur du réseau. Voyons cette mise en place sur l’adresse 192.168.51.87 :
 
 
 
 
 
 
Ainsi, l’adresse réseau reste toujours la même : à savoir 162.168.51.0. Seulement ce réseau sera divisé en quatre sous-réseaux : nous avons ici décidés d’attribuer deux bits dans l’adresse de l’hôte pour gérer les sous réseaux. Les possibilités seront donc 00, 01, 10, 11. Les adresses des sous réseaux correspondant seront composées de l’adresse réseau + l’adresse du sous réseau (les bits de l’adresse de l’hôte restant comme précédemment à 0). Les possibilités seront alors dans notre exemple :
Ø      192.168.51.0 (192.168.51.(0*2^7 + 0*2^6))
Ø      192.168.51.64 (192.168.51.(0*2^7 + 1*2^6))
Ø      192.168.51.128 (192.168.51.(1*2^7 + 0*2^6))
Ø      192.168.51.192 (192.168.51.(1*2^7 + 1*2^6))
 
Dans notre exemple, l’adresse 192.168.51.87 correspondra au 2ème sous-réseau (01). Dans ce 2ème sous-réseau dont l’adresse est d’après ce que nous venons de dire : 192.168.51.64, l’adresse de broadcast sera : 192.168.51.127 : on positionne les bits de sous-réseau à 01 et tous les autres bits de l’adresse à 1 :
            192.168.51.(0*2^7 + 1*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0) = 192.168.51.127
De la même manière, nous pouvons ainsi déduire les adresses de broadcast de nos quatre sous-réseaux :
Ø      192.168.51.63
Ø      192.168.51.127
Ø      192.168.51.191
Ø      192.168.51.255
 
Et les hôtes sur ces sous-réseaux auront sur chacun les possibilités d’adresses :
Ø      De 192.168.51.1 à 192.168.51.62
Ø      De 192.168.51.65 à 192.168.51.126
Ø      De 192.168.51.129 à 192.168.51.190
Ø      De 192.168.51.193 à 192.168.51.254
Nous voyons donc qu’il est possible d’adresser jusqu’à 62 machines par réseau, soit 62*4 = 248 hôtes. Ce réseau fait partie de la classe C : cette classe permet jusqu’à 254 hôtes. Même si nous perdons la possibilité d’adresser 6 machines, nous avons la possibilité de les diviser en quatre sous-réseaux : l’intérêt est de regrouper les centres d’intérêt pour plus de sécurité : par exemple dans un lycée il peut être utile de séparer les postes utilisés par les élèves de ceux utilisés par l’administration… !!!
 
Les sous-réseaux nous permettent d’aborder une nouvelle notion : le masque de sous-réseau (netmask). Le masque de sous réseau est formé de la même manière qu’une adresse IP (un mot de 32 bits, de la forme XXX.XXX.XXX.XXX en décimal), et permet de caractériser un réseau. Grâce au masque de sous-réseau, nous pouvons connaître le type de réseau et les sous-réseaux qui le composent.
Nous allons dans le masque mettre tous les bits adressant le réseau à 1, et ceux concernant le sous-réseau également à 1. Les bits restant pour adresser la machine restent à 0. Dans notre exemple, nous avons les 24 premiers bits qui adressent le réseau, suivi des 2 bits du sous-réseau. Ce qui fait un total de 26 premiers bits à 1 : soit un masque de sous-réseau ayant pour valeur :
            255.255.255.(1*2^7 + 1*2^6) = 255.255.255.192
Si pour cet exemple, nous n’avions choisis aucun sous réseau, le masque serait de :
            255.255.255.0
 
Remarque : Si nous connaissons un réseau ayant un masque de 255.255.224.0, nous pouvons en déduire qu’il s’agit d’un réseau de classe B, ayant 3 bits réservés dans l’adresse de l’hôte nous permettant d’adresser 2^3 = 8 sous réseaux.
 
Ce qui se passe réellement : Les masques de sous-réseau sont utilisés par les routeurs en interne des grands réseaux ou par les passerelles, pour savoir où router un paquet. Lorsque l’on fournit à un routeur une adresse 34.56.123.12 avec un masque de sous-réseau de 255.192.0.0, le routeur va travailler en langage machine (assembleur). En binaire, ces adresses en binaires vont être :
Ø      Adresse binaire :          00100010 00111000 01111011 00001100
Ø      Masque binaire :          11111111 11000000 00000000 00000000
Le routeur va effectuer un ET logique entre ces deux adresses, ce qui va donner :
Ø      Adresse & Masque :    00100010 00000000 00000000 00000000
Ce qui correspond à l’adresse réseau : 34.0.0.0. Le réseau est alors un réseau de classe A dont l’adresse du sous-réseau est 00, d’après le masque (deux bits réservés au sous-réseau).
 
Maintenant, prenons l’adresse 34.162.123.12 et appliquons lui le même masque :
Ø      Adresse binaire :          00100010 10100010 01111011 00001100
Ø      Masque binaire :          11111111 11000000 00000000 00000000
Effectuons le ET logique :
Ø      Adresse & Masque :    00100010 10000000 00000000 00000000
Cela correspondra donc à une adresse réseau de : 34.128.0.0. Le réseau est alors un réseau de classe A dont l’adresse de sous réseau est 10.
 
Nous pouvons alors voir qu’un masque est d’une très grande utilité pour un routeur : grâce à lui, il sait vers quel sous-réseau router le paquet.
 
                D.   Le CIDR
    Avec la croissance rapide de l’Internet, en 1992, la moitié des adresses de classe B étaient allouées. Si rien n’avait changé, il n’y aurait plus eu de Classes B disponibles depuis 1994 ! S’il est courrant de voire des réseaux de plusieurs centaines de machines, il est extrêmement rare d’en rencontrer de plusieurs milliers ! Internet était alors en train de ne plus avoir de plages d’adresses réseau de libre alors que seulement 5% des adresses étaient utilisées. De même, les routeurs étaient complètement saturés puisqu’ils devaient connaître toutes les routes possibles sur le réseau.
 
Il a donc été décidé de créer le « Classless Interdomain Routing » (CIDR) ou encore ‘routage Internet sans classe’. Son but est de délivrer à chaque région ou continent un bloc d’adresses continues (range), sans tenir compte des classes auxquelles ces adresses faisaient référence. Ces régions, à leur tour vont pouvoir attribuer à leurs clients des plages d’adresses continues, correspondant à leur besoin. L’avantage est qu’en attribuant une plage d’adresses de classe C (aujourd’hui, l’organisme attribuant les adresses IP : l’InterNIC, n’attribue quasiment plus que des Classes C : les adresses de classe A sont épuisées et celles de classe B se font très rares…), l’Administrateur réseau à qui a été attribuée une plage d’adresses peut subdiviser, et organiser son réseau comme il l’entend, tout en économisant des possibilités d’adressage (la gestion des sous-réseaux est un avantage dont l’administrateur peut profiter). A partir de ce moment, pour router des datagrammes en fonction de plages d’adresses, il faut construire un nouvel outil : le masque de super-réseau. Ce masque sera en quelque sorte l’inverse du masque de sous-réseau. Il consistera à prendre les bits de poids fort des adresses réseau ne changeant pas, et de les mettre à 1 (contrairement au masque de sous réseau qui prend des bits dans la partie host). Les bits de l’adresse réseau changeant, ainsi que ceux désignant l’host, seront à 0.
 
Voici le l’organisation par continent des adresses :
Ø      Multirégionales :                                              192.0.0.0 193.255.255.255                                      
Ø      Europe :                                                          194.0.0.0 195.255.255.255
Ø      Autres :                                                           196.0.0.0 197.255.255.255
Ø      Amérique du Nord :                                        198.0.0.0 199.255.255.255
Ø      Amérique du Sud et Amérique centrale :          200.0.0.0 201.255.255.255
Ø      Zone Pacifique :                                              202.0.0.0 203.255.255.255
Ø      Autres :                                                           204.0.0.0 205.255.255.255
Ø      Autres :                                                           206.0.0.0 207.255.255.255
 
Pour bien comprendre, prenons l’exemple d’une entreprise désirant adresser 2000 postes : il y a quelques années, nous lui aurions attribué une adresse réseau de classe B : ayant une capacité de 65536 machines, alors que seulement 2000 adresses sont nécessaires !!!
Aujourd’hui, un organise d’attribution des adresses IP (NIC ou InterNIC, AFNIC…) va attribuer à cette entreprise 8 adresses continues de classe C. Par exemple elle se verra attribuer les adresses de 220.78.168.0 à 220.78.175.0.
Comparons ces adresses (le tableau suivant compare les deux adresses les plus éloignées) :
 
 
 
 
 
 
Nous pouvons voir que les 21 premiers bits sont constants dans le Net ID (adresse réseau). Le masque de super-réseau sera alors : 255.255.248.0. Il faut ajouter qu’il est possible d’écrire un masque de super-réseau sous la forme /X ou « slash X ». Cette solution est plus courte pour exprimer le masque (on compte en base 10 les bits constants désignant l’adresse réseau). Ici nous avons 21 bits constants, nous pouvons alors exprimer le masque sous la forme /21. D’après le masque et l’adresse, il est alors possible de voir le nombre d’adresses consécutives que compte le réseau : dans le Net ID, 3 bits peuvent varier, soit 2^3 = 8 adresses réseaux consécutives. Lors d’une communication, nous fournirons alors l’adresse de ce réseau sous la forme : 220.178.168.0 /21.
 
L’intérêt est que les tables de routage des routeurs vont être grandement allégées puisqu’il n’est plus nécessaire de connaître toutes les routes : à partir de l’adresse et du masque, la route est obtenue automatiquement. Il faut tout de même ajouter que le masque de super-réseau n’est utile que pour les routeurs.
 
Seulement, pour que ce procédé soit applicable, il faut réunir les conditions suivantes :
Ø      Pour pouvoir facilement être routées, les adresses d’une même région doivent être constituées des mêmes bits de poids fort (ceci permet d’alléger les tables de routage et donc d’augmenter les performances des routeurs).
Ø      Les routeurs doivent être capables de prendre en compte un masque de super-réseau de 32 bits à appliquer à l’adresse (permettant d’identifier le réseau, et donc la route par laquelle l’information doit passer).
Ø      Les protocoles de routage doivent être capables d’ajouter ces masques aux adresses.
 
                E.   Précisions
 
    Pour être vraiment complet sur cette section dédiée à l’adressage IP, il faut préciser quelques points. Nous avons dit précédemment qu’une machine avait une adresse IP. En fait cela n’est pas tout à fait exact. Certaines machines reliant plusieurs réseaux (Passerelles, routeurs, …) peuvent en avoir plusieurs. En effet, prenons l’exemple d’un routeur reliant un réseau local à l’Internet. Du fait que les adresses privées du réseau local ne vont pas être reconnues sur l’Internet, le routeur doit avoir une adresse dite publique, ayant un adressage compatible avec Internet, et un adressage privé, compatible avec le réseau local. Dans ce cas, le routeur possède plusieurs adresses IP. Nous dirons que de telles machines sont « Multi-homed ». Il se peut même dans certains cas qu’une machine (serveur…) ait plusieurs adresses IP pour une interface (carte réseau…). La machine fera donc de l’IP aliasing. Ce type de machine crée donc des « réseaux virtuels », puisque une même interface sépare d’une manière logique par IP (et non d’une manière physique comme ça peut être le cas pour une machine a plusieurs interfaces séparées) ses réseaux.
 

Menu