Une adresse IP (Internet Protocol) est un numéro d'identification unique attribué de façon permanente ou provisoire à chaque périphérique faisant partie d'un même réseau informatique utilisant l'Internet Protocol. L'adresse IP est à l'origine du système d'acheminement (le routage) des paquets de données sur Internet.
Il existe deux grandes versions d'adresses IP : la version 4 (IPv4) codée sur 32 bits, et la version 6 (IPv6) codée sur 128 bits. La version 4 est actuellement la plus utilisée : elle est généralement représentée en notation décimale avec quatre nombres compris entre 0 et 255, séparés par des points, ce qui donne par exemple « 181.174.87.53 ».
L'adresse IP est attribuée à chaque interface avec le réseau de tout matériel informatique (routeur, ordinateur, smartphone, objet connecté, système embarqué, modem (ADSL, wifi, fibre ou câble), imprimante réseau, etc.) connecté à un réseau utilisant l’Internet Protocol comme protocole de communication entre ses nœuds. Cette adresse est assignée soit individuellement (attribution statique) par l'administrateur du réseau local dans le sous-réseau correspondant, soit automatiquement (attribution dynamique) via le protocole DHCP. Si l'ordinateur dispose de plusieurs interfaces réseau, chacune d'entre elles disposera alors d'une adresse IP. Un même équipement peut donc avoir plusieurs adresses IP simultanément. Une interface peut également disposer de plusieurs adresses IP[1].
Chaque paquet transmis par le protocole IP contient l'adresse IP de l'émetteur ainsi que l'adresse IP du destinataire. Les routeurs IP acheminent les paquets vers la destination de proche en proche. Certaines adresses IP sont utilisées pour la diffusion (multicast ou broadcast) et ne sont pas utilisables pour adresser des ordinateurs individuels. La technique anycast permet de faire correspondre une adresse IP à plusieurs ordinateurs répartis sur Internet.
Les adresses IPv4 sont dites publiques si elles sont enregistrées et routables sur Internet, elles sont donc uniques mondialement. À l'inverse, les adresses privées ne sont utilisables que dans un réseau local, et ne doivent être uniques que dans ce réseau. La traduction d'adresse réseau, réalisée notamment par les box internet, transforme des adresses privées en adresses publiques et permet d’accéder à Internet à partir d'un poste du réseau privé.
Le plus souvent, pour se connecter à un serveur informatique, l'utilisateur ne donne pas l'adresse IP de ce serveur, mais son nom de domaine (par exemple www.wikipedia.org
). Ce nom de domaine est ensuite résolu en adresse IP par l'ordinateur de l'utilisateur en faisant appel au système de noms de domaine (DNS). Ce n'est qu'une fois l'adresse IP obtenue qu'il est possible d'initier une connexion.
Les noms de domaine ont plusieurs avantages sur les adresses IP :
Jusqu'aux années 1990, les adresses IP étaient réparties en classes (A, B, C, D et E), qui étaient utilisées pour l'assignation des adresses et par les protocoles de routage. Cette notion est désormais obsolète pour l'attribution et le routage des adresses IP du fait de la pénurie d'adresses (RFC 1517[2]) du début des années 2010. La mise en place très progressive des adresses IPv6 a accéléré l'obsolescence de la notion de classe d'adresse. Attention toutefois : dans la pratique, au début des années 2010, de nombreux matériels et logiciels se basent sur ce système de classe, y compris les algorithmes de routage des protocoles dits classless (cf. Cisco CCNA Exploration - Protocoles et concepts de routage). Malgré tout, il est facile d'émuler une organisation en classe à l'aide du système CIDR.
En 1984, devant la limitation du modèle de classes, la RFC 917[3] (Internet subnets) crée le concept de sous-réseau. Ceci permet par exemple d'utiliser une adresse de Classe B comme 256 sous-réseaux de 256 ordinateurs au lieu d'un seul réseau de 65 536 ordinateurs, sans toutefois remettre en question la notion de classe d'adresse.
Le masque de sous-réseau permet de déterminer les deux parties d'une adresse IP correspondant respectivement au numéro de réseau et au numéro de l'hôte.
Un masque a la même longueur qu'une adresse IP. Il est constitué d'une suite de chiffres 1 (éventuellement) suivie par une suite de chiffres 0.
Pour calculer la partie sous-réseau d'une adresse IP, on effectue une opération ET logique bit à bit entre l'adresse et le masque. Pour calculer l'adresse de l'hôte, on effectue une opération ET logique bit à bit entre le complément à un du masque et l'adresse.
En IPv6, les sous-réseaux ont une taille fixe de /64, c'est-à-dire que 64 des 128 bits de l'adresse IPv6 sont réservés à la numérotation d'un hôte dans le sous-réseau.
En 1992, la RFC 1338[4] (Supernetting: an Address Assignment and Aggregation Strategy) propose d'abolir la notion de classe qui n'est plus adaptée à la taille d'Internet.
Le Classless Inter-Domain Routing (CIDR), est mis au point en 1993 RFC 1518[5] afin de diminuer la taille de la table de routage contenue dans les routeurs. Pour cela, on agrège plusieurs entrées de cette table en une seule et unique plage continue.
La distinction entre les adresses de classe A, B ou C a été ainsi rendue obsolète, de sorte que la totalité de l'espace d'adressage unicast puisse être gérée comme une collection unique de sous-réseaux indépendamment de la notion de classe. Le masque de sous-réseau ne peut plus être déduit de l'adresse IP elle-même, les protocoles de routage compatibles avec CIDR, dits classless, doivent donc accompagner les adresses du masque correspondant. C'est le cas de Border Gateway Protocol dans sa version 4, utilisé sur Internet (RFC 1654[6] A Border Gateway Protocol 4, 1994), OSPF, EIGRP ou RIPv2. Les registres Internet régionaux (RIR) adaptent leur politique d'attribution des adresses en conséquence de ce changement.
L'utilisation de masque de longueur variable (Variable-Length Subnet Mask, VLSM) permet le découpage de l'espace d'adressage en blocs de taille variable, permettant une utilisation plus efficace de l'espace d'adressage.
Le calcul du nombre d'adresses d'un sous-réseau est le suivant, 2taille de l'adresse - masque.
Un fournisseur d'accès à Internet peut ainsi se voir allouer un bloc /19 (soit 232-19 = 213 = 8 192 adresses) et créer des sous-réseaux de tailles variables en fonction des besoins à l'intérieur de celui-ci : de /30 pour des liens points-à-point à /24 pour un réseau local de 200 ordinateurs. Seul le bloc /19 sera visible pour les réseaux extérieurs, ce qui réalise l'agrégation et l'efficacité dans l'utilisation des adresses.
La notation CIDR a été introduite pour simplifier la notation, avec une barre oblique ("/") suivie du nombre décimal de bits de poids fort identifiant un sous-réseau (les autres bits de poids faible étant alloués uniquement à des hôtes de ce seul sous-réseau, à charge pour lui de découper ensuite plus finement et router différemment lui-même des sous-plages). Pour le routage sur Internet les masques de sous-réseau ont été abandonnés en IPv4 au profit de la notation CIDR, de sorte que toutes les plages d'adresses d'un même sous-réseau sont contiguës, et les anciens sous-réseaux encore en vigueur composés de plusieurs plages discontinues ont été redéclarés en autant de sous-réseaux que nécessaire puis agrégés autant que possible par renumération. Les masques de sous-réseau IPv4 peuvent cependant être encore utilisés dans les tables de routage interne à un même réseau dont les hôtes ne sont pas routés et adressables directement via Internet, la conversion en plages CIDR s'effectuant désormais sur les routeurs en bordure des réseaux privés et seulement pour les adresses IPv4 publiques, mais normalement plus dans les points d'échange inter-réseaux.
En IPv6, la notation CIDR est la seule standardisée (et la plus simple) pour les plages d'adresses (pouvant comporter jusqu'à 128 bits), les sous-réseaux comptant généralement de 16 à 96 bits dans l'espace public adressable sur Internet (les 48 derniers bits étant laissés à disposition de l'adressage local direct sur un même support réseau sans nécessiter aucun routeur ni même souvent aucune préconfiguration de routeurs au sein du réseau local) ; en IPv6, elle se note elle aussi avec un nombre décimal de bits après le "/" qui suit une adresse IPv6 de base (et non en hexadécimal comme pour les adresses de base des plages d'adresses d'un même sous-réseau).
L'IANA, qui est depuis 2005 une division de l'ICANN, définit l'usage des différentes plages d'adresses IP en segmentant l'espace en 256 blocs de taille /8, numérotés de 0/8 à 255/8.
Les adresses IP unicast sont distribuées par l'IANA aux registres Internet régionaux (RIR). Les RIR gèrent les ressources d'adressage IPv4 et IPv6 dans leur région. L'espace d'adressage unicast IPv4 est composé des blocs d'adresse /8 de 1/8 à 223/8. Chacun de ces blocs est soit réservé, assigné à un réseau final ou à un registre Internet régional (RIR) ou libre : RFC 2373[8],[9]. En , il ne reste plus aucun bloc /8 libre.
En IPv6, le bloc 2000::/3 est réservé pour les adresses unicast globales[10]. Des blocs /23 sont assignés aux RIR depuis 1999.
Il est possible d'interroger les bases de données des RIR pour savoir à qui est assignée une adresse IP grâce à la commande whois ou via les sites web des RIR.
Les RIR se sont regroupés pour former la Number Resource Organization (NRO) afin de coordonner leurs activités ou projets communs et mieux défendre leurs intérêts auprès de l'ICANN (l'IANA), mais aussi auprès des organismes de normalisation (notamment l'IETF ou l'ISOC).
Bloc (adresse de début et taille CIDR) |
(adresse de fin correspondante) |
Usage | Référence |
---|---|---|---|
0.0.0.0/8 | 0.255.255.255 | Ce réseau | RFC 5735[11], RFC 1122[12] |
10.0.0.0/8 | 10.255.255.255 | Adresses privées[n 1] | RFC 1918[13] |
100.64.0.0/10 | 100.127.255.255 | Espace partagé pour Carrier Grade NAT | RFC 6598[14] |
127.0.0.0/8 | 127.255.255.255 | Adresses de bouclage (localhost) | RFC 1122[12] |
169.254.0.0/16 | 169.254.255.255 | Adresses de liaisons locales autoconfigurées (APIPA) | RFC 3927[15] |
172.16.0.0/12 | 172.31.255.255 | Adresses privées[n 2] | RFC 1918[13] |
192.0.0.0/24 | 192.0.0.255 | Réservé par l'IETF | RFC 5736[16] |
192.0.2.0/24 | 192.0.2.255 | Réseau de test TEST-NET-1 / documentation | RFC 5737[17] |
192.88.99.0/24 | 192.88.99.255 | 6to4 anycast | RFC 3068[18] |
192.168.0.0/16 | 192.168.255.255 | Adresses privées[n 3] | RFC 1918[13] |
198.18.0.0/15 | 198.19.255.255 | Tests de performance | RFC 2544[19] |
198.51.100.0/24 | 198.51.100.255 | Réseau de test TEST-NET-2 / documentation | RFC 5737[17] |
203.0.113.0/24 | 203.0.113.255 | Réseau de test TEST-NET-3 / documentation | RFC 5737[17] |
224.0.0.0/4 | 239.255.255.255 | Multicast « Multidiffusion » | RFC 5771[20] |
240.0.0.0/4 | 255.255.255.254 (*) | Réservé à un usage ultérieur non précisé (*sauf l'adresse ci-dessous) | RFC 1112[21] |
255.255.255.255/32 | 255.255.255.255 | broadcast limité | RFC 919[22] |
Adresses de diffusion :
Adresses multicast :
Bloc | Usage | Référence |
---|---|---|
::/128 |
Adresse non spécifiée | RFC 4291[25] |
::1/128 |
Adresse de bouclage | RFC 4291[25] |
::ffff:0:0/96 |
Adresse IPv6 mappant IPv4 | RFC 4291[25] |
0100::/64 |
sollicitation de trou noir | RFC 6666[26] |
2000::/3 |
Adresses unicast routables sur Internet | RFC 3587[27] |
2001::/32 |
Teredo | RFC 4380[28] |
2001:2::/48 |
Tests de performance | RFC 5180[29] |
2001:10::/28 |
Orchid | RFC 4843[30] |
2001:db8::/32 |
documentation | RFC 3849[31] |
2002::/16 |
6to4 | RFC 3056[32] |
fc00::/7 |
Adresses locales uniques | RFC 4193[33] |
fe80::/10 |
Adresses locales lien | RFC 4291[25] |
ff00::/8 |
Adresses multicast | RFC 4291[25] |
Adresses spéciales
::/128
indique une adresse non spécifiée. Celle-ci est illégale en tant qu'adresse de destination mais elle peut être utilisée localement dans une application pour indiquer n'importe quelle interface réseau ou sur le réseau dans une phase d'acquisition de l'adresse.Adresses locales
fec0::/10
étaient réservées par la RFC 3513[34] pour le même usage privé, mais sont considérées comme obsolètes par la RFC 3879[35] pour privilégier l'adressage public et décourager le recours aux NAT. Elles sont remplacées par les adresses locales uniques fc00::/7
qui facilitent l'interconnexion de réseaux privés en utilisant un identifiant aléatoire de 40 bits.En IPv6, les adresses fe80::/64
ne sont uniques que sur un lien. Un hôte peut donc disposer de plusieurs adresses identiques dans ce réseau sur des interfaces différentes. Pour lever une ambiguïté avec ces adresses de scope lien local, on devra donc préciser l'interface sur laquelle l'adresse est configurée. Sous les systèmes de type Unix, on ajoute à l'adresse le signe pour cent suivi du nom de l'interface (par exemple ff02::1%eth0
), tandis que sous Windows on utilise le numéro de l'interface (ff02::1%11
).
Adresses expérimentales obsolètes
3ffe::/16
et 5f00::/8
étaient utilisés par le 6bone entre 1996 et 2006.::a.b.c.d/96
(où a.b.c.d est une adresse IPv4) étaient des adresses compatibles IPv4 définies dans la RFC 1884[36] mais rendues obsolètes par la RFC 4291[25] en 2006.La popularité d'Internet a abouti à l'épuisement en 2011 des blocs d'adresses IPv4 disponibles, ce qui menace le développement du réseau.
Pour remédier à ce problème ou repousser l'échéance, plusieurs techniques existent :
Si l'adresse IP est initialement conçue dans un usage technique, elle pose aussi des questions éthiques, dans la mesure où elle peut dans certains pays servir à agréger un profil très détaillé d'une personne et de ses activités[38].
L'identification par adresse IP se fait dans de multiples contextes très différents :
Tenter d'identifier un internaute de façon fiable au travers son adresse IP pose un problème[n 5], pour plusieurs raisons :
Le traçage de l'adresse IP est souvent utilisé à des fins de marketing[42], et soupçonné d'influencer les politiques tarifaires[43].
Les définitions des adresses IP versions 4 et 6, la notion de classe et la notation CIDR sont documentées dans les Request for comments suivants (en anglais) :
La liste des RIR ainsi que la table d'allocation des adresses se trouvent sur la page Number Resources de l'IANA.