Le protocole IP

historique

Le protocole IP (Internet Protocol) a été créé en 1974 afin de permettre d'interconnecter des réseaux informatiques de différentes tailles pour construire un réseau global de très grande taille (Internet, abbréviation de Interconnected Networks, réseaux interconnectés). Entre 1974 et 1979, 3 versions successives de ce protocole ont été utilisées à titre expérimental. En septembre 1981, la quatrième version de ce protocole est publiée dans la RFC 791. C'est sur cette version du protocole que repose aujourd'hui encore la majeure partie d'internet.

Réseau et adresse IP

Adresse IP

Sur un réseau donné, chaque équipement a besoin d'être identifié de façon unique. L'adresse unique d'un équipement est un Pour cela, on utilise un numéro d'identification unique codé sur 32 bits que l'on appelle adresse IP. On présente en général cette adresse en regroupant les 32 bits sous forme de 4 octets, et ces 4 octets sont présenté sous forme décimale et séparés par des points (notation décimale à point).

Exemple

172.16.254.1 est une adresse IP correcte. Elle correspond à la suite de 32 bits suivante : 1010 1100 0001 000 1111 1110 0000 0001.

132.234.132.325 n'est pas une adresse correcte car le dernier nombre est plus grand que 255.

12.23.34 n'est pas une adresse IP valide car il n'y a que 3 nombres et pas 4.

Réseau local et réseau global

Le protocole IP est conçu pour relier entre eux différents réseaux. Le réseau sur lequel se trouve un équipement est en général appelé le réseau local ou LAN (Local Area Network). Sur ce réseau, l'équipement peut communiquer directement avec l'ensemble des équipements qui s'y trouvent. Pour contacter des machines sur d'autres réseaux, l'équipement devra faire passer les données par un noeud particulier du réseau, que l'on appelle une passerelle. Une passerelle est un équipement qui est à cheval sur plusieurs réseaux et permet de les relier entre eux. On nomme l'ensemble des autres réseaux le réseau global ou leWAN (Wide Area Network).

Masque de sous réseau

Pour identifier un réseau local donné, on utilise ce que l'on appelle le masque de sous-réseau. Ce réseau local est considéré comme un sous-réseau du réseau global et tous les équipements de ce réseau vont partager une partie de l'adresse IP. Reprenons l'exemple de notre réseau avec la maechine qui a pour adresse 172.16.254.1. Toutes les machines qui sont sur le même réseau ont les 16 premiers bits qui sont identiques. Cela signifie que les 2 premiers octets sont identiques. C'est à dire, toutes les adresses qui commencent par 172.16 correspondent à des machines qui sont sur le même réseau.

Depuis 1993 et la notation CIDR, on identifie un sous-réseau par le nombre de bits qui seront identiques. Ce sont toujours les bits à gauche qui sont concernés. Par convention, ce sont toujours les bits les plus à gauche qui sont concernés. L'ensemble de 32 bits avec les bits à gauche à 1 et les suivants à 0 est appelé le masque de sous-réseau. On obtient l'adresse du sous-réseau à partir d'une adresse du réseau en faisant un et logique entre chacun des bits du masque et chacun des bits de l'adresse IP

Exemple

Prenons par exemple notre réseau où se trouve l'adresse 172.16.254.1. On a dit que les 16 premiers bits devaient être tous identiques. Le masque de sous-réseau est donc 1111 1111 1111 1111 0000 0000 0000 0000. On peut aussi le donner sous notation décimale pointée : 255.255.0.0.

Adresse en notation décimale pointée 172 16 254 1
Adresse en bits 1010 1100 0001 0000 1111 1110 0000 0001
Adresse du masque en bits 1111 1111 1111 1111 0000 0000 0000 0000
Adresse du réseau en bit 1010 1100 0001 0000 0000 0000 0000 0000
Adresse du réseau décimale pointée 172 16 0 0

Adresses spéciales et NAT

Principe du NAT

Utiliser des adresses sur 32 bits, cela donne environ 4 milliards d'adresses possibles. Cela semble énorme. Et pourtant. Le nombre d'équipement connecté au réseau internet est colossal. Rien que pour les smartphones, il y en a environ 2 milliards dans le monde en usage à l'heure actuelle. Si on rajoute l'ensemble des ordinateurs personnels, les box internet (qui sont des ordinateurs), les routeurs et les serveurs à travers le monde, ce chiffre de 4 milliards est déjà dépassé. Il n'y aurait donc pas assez d'adresse IP ?

Plusieurs réponses peuvent être apporté à ce problème. Dès les années 90, la question s'est posée, pour des raisons économiques en fait. Obtenir une adresse IP sur internet a un coût, non négligeable. De même, ouvrir un connexion vers internet a aussi un coût. Comment faire pour mutualiser les connexions et les adresses ? Les entreprises qui commençaient à avoir des réseaux importants ou les campus universitaires n'étaient pas prêt à payer des sommes conséquentes pour avoir autant d'adresses que de machines. En 1994, la RFC 1631 définit le protocole de translation d'adresse réseau (Network Address translation, NAT en anglais). L'idée du NAT est que lorsqu'un message traverse un routeur, celui ci peut remplacer l'adresse de la source (ou de la destination) par un autre adresse. Il y a deux usages principaux au NAT

Le masquerading

Le masquerading sert à donner accès à internet à tout un réseau privé. Vu de l'extérieur, il n'existe qu'une seule adresse IP : celle de la passerelle. Voici le fonctionnement :

  • lorsque deux machines situées sur le réseau local communiquent entre elles, elles communiquent directement, rien ne change
  • lorsque qu'une machine du réseau local veut communiquer avec une machine de l'extérieur, elle adresse la communication à la passerelle. La passerelle transforme cette communication et remplace l'adresse de la machine en utilisant son adresse publique sur internet.
  • la passerelle envoie le message à la machine extérieure.
  • lorsqu'elle reçoit la réponse, elle sait vers quelle machine du réseau local elle doit la rediriger grâce à une table d'association qu'elle garde en mémoire.

De cette façon, tout le réseau privé va pouvoir accéder à internet en utilisant une connexion unique et une adresse unique.

Le NAT statique bi-directionnel

Cette technique est utilisée par les fournisseurs d'accès internet et les gestionnaires de datacenter. Ici, on dispose d'adresse publique qui doivent être accessible depuis internet, mais on a moins de lignes de connection que d'adresses IP. On ne cherche pas à mutualiser les adresses, on cherche à mutualiser les connections. Chaque machine a donc une IP sur le réseau privé, mais elle est aussi associée à une adresse publique

Le principe est le suivant :

  • lorsque deux machines situées sur le réseau local communiquent entre elles, elles communiquent directement, rien ne change
  • lorsque qu'une machine du réseau local veut communiquer avec une machine de l'extérieur, elle adresse la communication à la passerelle. La passerelle transforme cette communication et remplace l'adresse de la machine en utilisant l'adresse publique associée à la machine émettrice
  • la passerelle envoie le message à la machine extérieure.
  • lorsqu'elle reçoit la réponse, elle sait vers quelle machine du réseau local elle doit la rediriger grâce à l'adresse IP associée.

Ici, on mutualise la connection, pas les adresses. Ce mécanisme est particulièrement utilisé pour les BOX internet par la plupart des fournisseurs d'accès internet en France. En effet, une BOX internet est en général accessible de l'extérieur.

Avantages du NAT

Cette façon de procéder présente plusieurs avantages :

  • économique : pour tout un réseau, on paye une seule adresse sur internet.
  • sécurité : les machines du réseau interne peuvent faire des requêtes vers internet mais elles ne sont pas accessibles depuis internet, ce qui les protège de tentatives de piratage les plus courantes.
  • collectif : comme on peut utiliser un grand nombre d'adresse privées avec une seule adresse publique, on évite (pour un temps) la pénurie d'adresse IP.

Il y a encore bien d'autre type de procédés (plein d'autre types de NAT, le PAT, etc) mais ces deux procédés sont les plus courant et ils interviennent dans votre quotidien.

Adresses privées

Dès 1994, avec l'apparition du NAT, on commence à définir un certain nombre d'adresses qui sont privées et ne circulent pas sur internet. La liste de ces adresses est complétement fixée en 1996 dans la RFC 1918. Voici les plages d'adresses réservées :

  • La plage 10.0.0.0/8 permet de fabriquer un réseau contenant jusqu'à 16 millions de machines. Cette plage est souvent utilisée par les grandes entreprises, les fournisseurs d'accès internet, les universités, etc. Il est fréquent que cette plage soit utilisée et décomposée en sous-réseaux de plus petite taille qui communiquent entre eux.
  • La plage 172.16.0.0/12 est en général utilisée pour faire des réseaux avec des masques de 16 bits et contiennent environ 65 000 adresses. Elle permet de créer ainsi 16 réseaux, de 172.16.0.0/16 à 172.31.0.0/16. Elle est très utilisée dans les établissements scolaires et les PME.
  • La plage 192.168.0.0/16 est en général utilisé avec des réseaux qui ont des masques de 24 bits et peuvent contenir 255 adresses. On a donc 255 réseaux possibles, de 192.168.0.0/24 à 192.168.255.0/24. Cette plage d'adresse est la plus courante derrière les box internets et sur les réseaux de petite taille.

Un exemple complet

Voici un exemple complet.

En haut à gauche, vous avez un réseau correspondant à un datacenter. Ils utilisent dans le datacenter pour de très nombreuses machines des adresses en 10.0.0.0/8. Les trois machines a,b et c sont accessibles depuis internet, elles possédent une IP publique. La connection du routeur est mutualisée grâce à du NAT bidirectionnel. Ce NAT est ùatérialisé par les traits rouges. Il y a un total de 4 adresses IP publique : une pour le routeur, une pour chacune des machines a,b et c.

À droite, on peut voir une partie d'un réseau d'un fournisseur d'accès internet (FAI). Le routeur donne accès au réseau du FAI qui est en 10.0.0.0/8. On note qu'il utilise la même plage d'adresse privée que le datacenter, mais cela n'a aucune importance. En effet, ces adresses ne sont utilisée que localement.

Dans la partie haute, on voit le lien avec une box. Derrière la box, il y a un ordinateur portable connecté en wifi. La Box est un routeur. Le réseau local derrière la box est en 192.168.1.0/24. Il permet d'avoir 255 adresses, ce qui est largement suffisant pour un particulier.

Lorsque l'ordinateur du particulier veut se connecter à internet, il va d'abord passé par la box. L'adresse IP va être "nattée" par du masquerading. Ensuite, la box enverra le message au routeur, et il y aura cette fois du NAT bidirectionnel pour accéder à internet : la BOX est visible depuis internet, mais pas l'ordinateur portable.

Dans la partie basse, on voit deux téléphones, reliés à un réseau radio-téléphonique en data (3G/4G/5G). L'antenne va servir de routeur. Le réseau entre les téléphones et l'antenne est en 172.16.0.0/16, ce qui permet environ 65 000 adresses, soit plus de téléphones que l'antenne n'est capable d'en gérer. Contrairement à la box internet, l'antenne relais de ces téléphones n'est pas accessible depuis internet, mais bien seulement depuis le réseau de l'opérateur.

En bas à gauche, on a le cas typique d'un établissement scolaire de type lycée. Une passerelle fait du masquerading, l'ensemble des postes sont sur un réseau de type 172.16.0.0/16. L'ensemble des équipements du lycée ont accès à internet mais ne sont pas accessibles depuis internet.

Autres adresses spéciales

Quelques autres adresses spéciales méritent d'être signalées.

Adresse de loopback

Les adresses de la plage 127.0.0/8 sont des adresses dites de loopback. Cela signifie qu'elle permettent à la machine de communiquer avec elle même. Ce concept d'adresse loopback permet de faire fonctionner un programme qui est nativement destiné à être en réseau (comme par exemple un serveur de base de données) sans avoir de carte réseau ou sans être connecté à un réseau. Ou bien encore, comme pour un serveur web qui utilise un serveur de base de donnée, pour que le serveur de donnée ne puisse être interrogé que depuis le serveur web mais ne soit pas accessible de l'extérieur.

En pratique, dans la quasi totalité des équipements, seule l'adresse 127.0.0.1 est utilisée (et elle correspond en général au nom localhost)

Adresses de broadcast

Une adresse de broadcast est une adresse qui permet d'envoyer un message à tous les équipements présents sur un réseau. Cela est utile dans un certain nombre de cas (quand on fait une recherche d'équipement sur un réseau par exemple).

Il y a deux adresses qui peuvent être utilisées pour un broadcast. La première est 255.255.255.255 Cette adresse va permettre d'envoyer un message dans tous le réseau local. Par défauit, les passerelles ne relaient pas les broadcast, ils sont limités au réseau local (sauf cas très particulier)

La seconde adresse de broadcast est la dernière adresse du réseau. Par exemple, pour le réseau 172.16.0.0/16, l'adresse de broadcast sera 172.16.255.255. Pour le réseau 172.21.200.0/21, l'adresse de broadcast sera 172.21.207.255.

Pour obtenir l'adresse de broadcast associée à un réseau, il suffit de prendre l'adresse du réseau et de mettre ensuite à 1 tous les bits qui sont au dela du masque (les 8 derniers pour un réseau en /24 par exemple).

Conclusion

À retenir
  • Un équipement est identifiée sur un réseau par une adresse IP qui est codée par 32 bits
  • Ces 32 bits sont regroupés en 4 octets, généralement présentés sous forme de quatres entiers (notation décimale pointée)
  • L'ensemble des équipements sur un même sous-réseau a toute une partie des bits de l'adresse IP en commun
  • Cette partie en commun est identifié par le masque de sous réseau. Il peut être donné par le nombre de bits identique ou par sa notation décimale pointée.
  • Si un équipement veut contacter une machine dont l'adresse IP est en dehors de son sous-réseau, elle doit passer par une passerelle.
  • Il existe un certains nombre d'adresse internet particulière, parmi lesquelles on trouve
    • Les adresses privées.
    • Les adresses de loopback.
    • Les adresses de broadcast.
  • Certaines passerelles utilisent le NAT (Network Address Translation). Cela permet en particulier de donner accès à internet à des machines situées sur des sous-réseaux avec des adresses privées.