Ipocalypse

Rédigé par Zergy Aucun commentaire
Classé dans : Informatique Mots clés : ipv6, internet, reseau
En 2011, les derniers blocs d'adresses IP v4 ont été attribués. Avant de paniquer sur la fin d'internet, essayons d'y voir plus clair.

Introduction

Qu'est-ce qu'une adresse IP ?

Afin de communiquer sur un réseau, les ordinateurs et logiciels utilisent des protocoles et des normes, ceux-ci vont de la forme que doit avoir le connecteur de la carte réseau à la fréquence des ondes Wi-Fi en passant par la taille d'une requête et la façon d'envoyer des données. Parmi ces protocoles de communication, l'un des plus utilisé est le protocole IP (pour « Internet Protocol »), celui-ci fait utilisation d'adresses dites IP afin que les équipements l'utilisant puissent se contacter, comme les adresses physiques permettant à une lettre d'arriver à destination. Une adresse IP désigne donc un équipement sur un réseau informatique, celle-ci peux être assignée manuellement ou automatiquement par un service DHCP.

Quelle forme prennent-elles ?

Il existe actuellement deux protocoles IP, l'IP version 4 (ci-après « IPv4 ») et l'IP version 6 (ci-après « IPv6 »). Le premier à été créé au début des années 1980; le second date des années 2000. Actuellement, IPv4 est encore très massivement utilisé, que ce soit sur internet ou sur votre réseau local si vous en avez un. Une adresse IPv4 est codée sur 32 bits et prend la forme suivante :

AAA.BBB.CCC.DDD

Où AAA, BBB, CCC et DDD peuvent varier de 0 à 255 (notation décimale de mots de 8 bits), on obtient donc 232 adresses possible en théorie, soit 4 294 967 296. IPv6 est son successeur, en plus d'apporter de multiples améliorations, il modifie totalement le système d'adressage ; à présent les adresses sont codées sur 128 bits et prennent cette forme :

aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh

Où les blocs, séparés par le signe deux points « : », varient de 0 à ffff (notation hexadécimal de mots de 16 bits), on obtient 2128 adresses possibles théoriquement, c'est à dire… heu… beaucoup. :) 340 282 366 920 938 463 463 374 607 431 768 211 456 pour être plus précis. Pour simplifier la notation d'une adresse IPv6, on a établi la méthode suivante, prenons l'IPv6 2001:0db8:0000:85a3:0000:0000:ac1f:8001 :

  • Il est permis d'omettre de 1 à 3 chiffres zéros non significatifs dans chaque groupe de 4 chiffres hexadécimaux, on obtient donc 2001:db8:0:85a3:0:0:ac1f:8001 ;
  • Une unique suite de un ou plusieurs groupes consécutifs de 16 bits tous nuls peut être omise, en conservant toutefois les signes deux points de chaque côté de la suite de chiffres omise, c'est-à-dire une paire de deux-points (::), on obtient donc 2001:db8:0:85a3::ac1f:8001.

CIDR doux ou brute ?

Dans la suite de cet article, j'utiliserai très souvent la notation dite CIDR. Celle-ci est une méthode de notation du masque de sous-réseau. Un masque de sous réseau késako ? Il s'agit d'un masque binaire appliqué sur une adresse IPv4 ou IPv6 pour savoir si elle fait partie du même réseau qu'une autre. Ils font la séparation entre les bits de l'adresse IP qui désignent le réseau et ceux qui désignent les machines de ce réseau. Prenons un exemple : Nous avons deux ordinateurs connectés physiquement au même réseau IPv4, ils utilisent les adresses IPv4 192.168.5.4 et 192.168.5.78 et utilisent tous deux le masque de sous-réseau 255.255.255.128. Traduisons ces IPv4 en binaire :

Décimal
IPv4 PC1 :   192.168.5.4
Masque PC1 : 255.255.255.128
IPv4 PC2 :   192.168.5.78
Masque PC2 : 255.255.255.128

Binaire
IPv4 PC1 :   11000000.10101000.00001001.00000100
Masque PC1 : 11111111.11111111.11111111.10000000
IPv4 PC2 :   11000000.10101000.00001001.01001110
Masque PC2 : 11111111.11111111.11111111.10000000

Tout les bits d'adresse IP ayant le même poids qu'un bit de masque de sous-réseau à 1 est dit masqué et désigne le réseau, dans notre cas, nous avons donc les 25 premiers bits en partant du poids fort qui sont assignés au réseau, les 7 autres sont utilisés pour désigner les machines de ce réseau.

              __________________________
             /                          
IPv4 PC1 :   11000000.10101000.00001001.00000100
Masque PC1 : 11111111.11111111.11111111.10000000
IPv4 PC2 :   11000000.10101000.00001001.01001110
Masque PC2 : 11111111.11111111.11111111.10000000
             __________________________/
                       Bits réseau

Les bits désignant le réseau doivent être identiques pour que les deux ordinateurs se voient comme faisant partie du même réseau. Dans notre exemple, c'est le cas. :) La notation CIDR est une forme raccourcie qui indique le nombre de bits du masque de sous-réseau d'une adresse IP qui sont assignés à la désignation du réseau. Dans notre exemple, la notation CIDR des adresses des ordinateurs PC1 et PC2 est :

  • PC1 : 192.168.5.4/25
  • PC2 : 192.168.5.78/25

Si en IPv4 la notation de masque de sous réseau décimal est très utilisée, elle a été abandonné en IPv6, non seulement parce qu'il n'y a plus de notation décimale en IPv6, mais aussi pour raccourcir la notation.

Pourquoi changer ?

Amélioration de performances

IPv6 apporte diverses améliorations comme la simplification des trames réseau qu'il utilise, l'intégration d'IPSEC qui était une fonctionnalités externe de IPv4 ou la possibilité de joindre une machine plutôt qu'une autre en fonction de ses meilleurs performances réseau (voir Anycast) et la disparition pur et simple de la diffusion (ou broadcast). Petit aparté sur les broadcast, anycast, multicast et tout :

  • Unicast : Un équipement d'un réseau discute avec un et un seul autre. Exemple IRL : Une discution avec un ami.
  • Multicast : Un équipement réseau parle à plusieurs autres, mais pas à tous. Il émet sur une adresse dite de multicast, tout ceux qui écoutent sur l'adresse multicast sur laquelle il émet recevront les données. Exemple IRL : un professeur dans une classe, écouté par une partie des élèves pendant que les autres dorment, discutent ou dessinent dans les marges de leur cahier.
  • Anycast : Un équipement parle avec celui apte à répondre à sa requête le plus efficacement. N'existe pas en IPv4. Exemple IRL : Quand vous demandez le sel (ou l'eau) à table, vous le demander à la personne qui va pouvoir vous le (la) passer le plus rapidement.
  • Broadcast : Un équipement réseau parle à tout les autres. N'existe plus en IPv6. Exemple IRL : Hurler

Vous avez besoin de plus d'adresses IP !

Cependant, dans cet article, nous verrons d'avantage le second problème que IPv6 règle : Le manque d'adresses IPv4.

Évolution d'Internet

IPv4 à sec

Quand IPv4 à été créé dans les années 80, on pensait qu'il y aurait assez d'adresses pour tout le monde ; personne n'avait vraiment vu venir le succès du réseau Internet qui n'était réservé qu'aux universités et structures gouvernementales à l'époque. De plus, on ne pensait pas qu'arriverait un jour des hordes de téléphones portables pouvant s'y connecter. Vous allez me dire que 4 milliard d'adresses devraient suffire, mais pour être franc, les 232 adresses ne sont que théoriques, certaines plages d'adresses ne sont pas utilisables sur Internet, voici lesquelles :

  • De 0.0.0.0 à 0.255.255.255 (0.0.0.0/8) : Réservé
  • De 10.0.0.0 à 10.255.255.255 (10.0.0.0/8) : Réseau privé de classe A
  • De 127.0.0.0 à 127.255.255.255 (127.0.0.0/8) : Adresses locales
  • De 169.254.0.0 à 169.254.255.255 (169.254.0.0/16) : Adresse locales autoconfigurées
  • De 172.16.0.0 à 172.16.255.255 (172.16.0.0/16) : Réseau privé de classe B
  • De 192.0.0.0 à 192.0.0.255 (192.0.0.0/24) : Réservé par l'IETF
  • De 192.0.2.0 à 192.0.2.255 (192.0.2.0/24) : Réseau de test TEST-NET-1
  • De 192.18.0.0 à 192.18.128.255 (198.18.0.0/15) : Tests de performance
  • De 192.51.100.0 à 192.51.100.255 (198.51.100.0/24) : Réseau de test TEST-NET-2
  • De 192.88.99.0 à 192.88.99.255 (192.88.99.0/24) : 6to4 anycast
  • De 192.168.0.0 à 192.168.255.255 (192.168.0.0/16) : Réseau privé de classe C
  • De 203.0.113.0 à 203.0.113.255 (203.0.113.0/24) : Réseau de test TEST-NET-3
  • De 224.0.0.0 à 239.255.255.255 (224.0.0.0/4) : Adresses multicast
  • De 240.0.0.0 à 255.255.255.255 (240.0.0.0/4) : Réservé à un usage ultérieur
  • 255.255.255.255 : Broadcast

Bref, seules 3 707 435 775 adresses sont réellement utilisables.

Comment sont attribués les adresses IP sur internet ?

Répartition IPv4
Répartition des adresses IPv4 par RIR.

Il fût un temps, il suffisait de faire une demande pour se voir attribuer une grosse plage d'adresse d'adresses, regarder la cartographie des adresse IPv4 (carte de 2006) vous montrera que nombre de gros emplacements ont été attribués directement à des entreprises ou à des administrations des États-Unis. Cela date des années 1980, quand on ne pensait pas en voir le bout. Cependant, avec le temps, on s'est rendu compte qu'on ne pourrait pas continuer à gaspiller ainsi et on s'est mis à rationaliser, ceci à mené à la création de l'IANA au niveau mondial et de divers bureaux d'attribution au niveau continental et national nommés Registre Internet Régionaux (ci-après « RIR »).

  • AfriNIC : Afrique
  • APNIC : Asie et Pacifique
  • ARIN : Amérique du Nord
  • LACNIC : Amérique Latine et Caraïbes
  • RIPE-NCC : Europe, Russie et Moyen-Orient.

Actuellement, les plages d'adresses IP, qu'elles soient en v4 ou en v6, sont détenues par l'IANA, elles sont ensuite fournies aux RIR continentaux en fonction de leurs besoins. Une fois entre les mains des RIR continentaux, elles sont fournies aux RIR nationaux, puis enfin, aux entreprises, ou administrations.

Internet va-t-il tomber en panne demain ?

Épuisement IPv4
Plages IP v4 en réserve, en rouge les réserves de l'IANA, en vert, celles des RIR.
En abscisse le temps en année, en ordonnée les plages IP v4 par bloc de 28 adresses.

Non, tout simplement car les adresses IP ne sont pas du pétrole, même s'il n'y en a plus en réserve, elles ne s'usent pas, de la même façon, il est possible de remettre dans le pot commun les plages d'adresses non utilisées. Enfin, si l'IANA n'a plus une adresse IPv4 en réserve, les RIR en disposent encore un peu par effet de transmission. Au pire, Internet aura du mal à croître Mais heureusement, si vous avez suivi, IPv6 va pouvoir prendre la relève et supprimer ce petit problème. :)

iso-1664

Malheureusement, le changement ne se fera pas d'un claquement de doigt, nombre d'entreprises et de Fournisseurs d'Accès à Internet (ci-après « FAI ») ont traîné les pieds pour y passer, et puisque c'est au pied du mur que l'on voit mieux le mur, peut-être le tarissement des adresses IPv4 au niveau de l'IANA va les pousser à se rendre compatibles IPv6 en vitesse.

2128 IPv6 et moi et moi et moi…

Oui mais…

Avant tout, répondons à quelques bêtises que l'on trouve régulièrement.

Si je passe à IPv6, je ne pourrai plus accéder aux serveurs qui sont uniquement IPv4.

C'est faux, il est possible d'avoir ce que l'on appel une double pile IP, c'est-à-dire que votre carte réseau aura à la fois une adresse IPv4 et une adresse IPv6, par exemple, voici ce que ça donne chez le FAI auquel je suis abonné.

Sous GNU/Linux
ppp0    Link encap: Protocole Point-à-Point
        inet adr:80.67.176.144 P-t-P:62.4.16.41 Masque:255.255.255.255
        adr inet6: fe80::5043:b090:0:0/10 Scope:Lien
        adr inet6: 2001:910:1090::1/64 Scope:Global
        […]
Sous Microsoft Windows
Carte Ethernet Marvell Yukon 88E8001 Gigabit Ethernet :

        Suffixe DNS propre à la connexion : zergy.lan
        Adresse IP : 192.168.2.2
        Masque de sous-réseau : 255.255.255.0
        Adresse IP : 2001:910:1090:2:c03:256d:9235:62e3
        […]

On voit bien ici que les connexions disposent d'une adresse IPv4 (192.168.2.*) et d'une adresse IPv6 (2001:910:1090:*) Les connectivités IPv4 et IPv6 sont utilisées selon les besoins. Les adresses IPv6 en fe80:* sont des adresses de liens locaux, j'y reviendrai par la suite.

IPv6 permet moins d'anonymat que IPv4

On entend souvent cette bêtise à propos de deux choses :

  • La disparition des systèmes de Translation d'Adresses et Port Réseaux en IPv6.
  • Le fait que l'adresse MAC de la carte réseau soit inclue dans l'adresse IPv6.
OOo_Firewall

Les systèmes de Translation d'Adresses et Port Réseaux, aussi nommée PAT/NAT, sont un placébo trouvé vers la fin des années 1990 pour permettre à plusieurs ordinateurs d'un réseau local (adresses IPv4 de classes A, B ou C) d'être connecté à Internet avec une seule IPv4 publique. Certains prêtent à ce système une sécurité puisque les machines à l'intérieur du réseau local ne sont pas directement joignables depuis Internet puisqu'on ne dispose que d'une IP publique. Cependant, en IPv6, s'il est vrai que tous vos équipement auront une adresse IPv6 publique, les murs de feu de ces machines seront là pour bloquer les attaques, et n'oublions pas qu'un système de PAT/NAT n'empêche pas de se prendre des tuiles, la première faille dans un système informatique étant bien souvent l'utilisateur. Mais réjouissons-nous, avec la disparition du PAT/NAT fini la redirection de port nécessaire pour jouer correctement. :) Pour le problème de l'adresse MAC dans l'adresse IPv6 publique, c'est vrai si l'adresse est réglée automatiquement, et faux si vous la réglez à la main. Et vu qu'en IPv6 votre FAI vous donne gracieusement une plage d'adresses IP, à vous de choisir celle qui vous convient.

Comme les FAI fournissent des plages d'adresses IPv6, on aura encore le même problème

La plage des IPv6 utilisables sur internet vont de 2000:0000:0000:0000:0000:0000:0000:0000 à 9fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff, c'est-à-dire :

  • 1,40737488355327 × 1014 (140 737 488 355 327) plages en /48
  • 3,6028797018963967 × 1016 (36 028 797 018 963 967) plages en /56
  • 9,223372036854775807 × 1018 (9 223 372 036 854 775 807) plages en /64

Que vérifier pour passer à IPv6 chez soit ?

On prend ici le fait que vous souhaitez juste vérifier que vous pouvez vous connecter au réseau Internet en IPv6, il vous faut :

  • Un FAI offrant une connectivité IPv6.
  • Du matériel réseau offrant une connectivité IPv6.
  • Un système d'exploitation avec pile réseau IPv6.

Le FAI

Actuellement, en France, les quatre FAI suivants sont compatibles IPv6 :

  • FDN offre des plages IPv6 en /48 sur demande depuis le 22 septembre 2009, d'office depuis juillet 2011.
  • Free (et donc Alice par la force des choses) offre des plages IPv6 en /61 depuis 2007.
  • Nerim offre des plages IPv6 en /48.
  • Numéricâble semble disposer d'IPv6 depuis 2012.
  • OVH offre des plages IPv6 en /56 depuis mi 2012.
  • SFR offre des plages IPv6 en /64 depuis fin août 2011.

Pour les autres :

  • Orange à rendu les dernières Livebox compatible. Le passage est prévu pour 2014 ou 2015. A noter qu'ils ont fait des essais en 2006, mais depuis, silence radio.
  • Bouygues Telecom avait prévu le passage à fin 2012, mais l'a finalement repoussé.

Le matériel réseau

Les matériels réseaux devant être vérifié pour le passage à IPv6 sont votre routeur -généralement la *box de votre FAI- et votre point d'accès Wifi si celui-ci est un élément à part du routeur. Si vous utilisez votre *box en mode « Bridge » (mode simple modem ADSL) ou que vous n'avez qu'un simple modem (ADSL ou RTC) pour vous connecter, vous n'êtes pas concerné par cette section, en effet un modem utilise les protocoles PPP et ATM, et n'est donc pas concerné par des problèmes d'IPv4 ou IPv6. C'est à l'équipement se trouvant derrière de faire la connectivité IP. Aujourd'hui encore, bon nombre de modems-routeur ou routeurs grand public n'offrent pas de connectivité IPv6, faites attention lors de vos achats. Pour ce qui est des box des FAI :

  • Freebox et Alicebox : Allez dans l'interface de gestion pour activer la compatibilité IPv6 puis redémarrez-la
  • FDN : Consultez le Wiki de FDN
  • Neufbox : Il vous faut le firmware 3.1.7 au minimum. De là, allez dans l'interface de gestion de votre Neufbox → onglet « Réseau » → « WAN », puis, activez l'option IPv6 et redémarrez votre Neufbox.

Pour tous les équipements et FAI, consultez la documentation fournie et mettez le micro-logiciel (firmware) à jour si besoin.

Le système d'exploitation

Les systèmes d'exploitation récents sont compatibles avec IPv6, par récent on entend :

  • GNU/Linux avec noyau 2.2 ou plus récent, nous sommes au 2.6 depuis 2003.
  • Microsoft Windows XP SP2 ou plus récent
  • Les *BSD et MacOSX sont bien entendu compatibles, mais je ne trouve pas depuis quand.

Quelque soit votre système d'exploitation, le support d'IPv6 doit être activé par défaut, sauf sur Windows XP, voici comment faire pour celui-ci :

  • Panneau de configuration → Connexions réseaux → Clic droit sur l'une des connexion → Sélectionnez « Propriétés » ;
  • Cliquez sur le bouton « Propriété » → Sélectionnez « Réseau » ;
  • Sélectionnez « Microsoft TCP/IP version 6 » ;
  • Cliquez sur « OK » → « OK » → « OK » ;
  • Windows vous demandera de redémarrez pour appliquer les modifications, faites-le.

Tester

Connectez-vous à un site de test, il en existe d'autres.

Les adresses IPv6 que vous utiliserez

Si en IPv4 votre FAI ne vous fournissait qu'une seule et unique adresse IP, en IPv6 vous avez droit à une plage complète, généralement, on vous attribue un /64, certains FAI comme FDN fournissent un /48. Le problème étant de trouver moyen d'utiliser ces 264 (ou 272, ou 280) adresses. :D Mais outre la plage d'adresse IPv6 publique que vous fournit votre FAI, vous en trouverez d'autres, décrivons-les rapidement :

  • De :: à :ffff:ffff:ffff:ffff:ffff:ffff:ffff (::/8) : Réservé.
  • De 2002:: à 2002::ffff:ffff:ffff:ffff (2002::/64) : Réservé au mécanisme 6to4, il s'agit bien d'adresses publiques, donc, trouvable sur internet, mais non attribuables par votre FAI.
  • De fc00:: à fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff (fc00::/7) : Adresses locales uniques pour les réseaux locaux, non routables sur Internet. Permet par exemple de ne pas rendre disponible hors de son réseau domestique un service de partage de fichiers.
  • De fe80:: à febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff (fe80/10) : Adresses de liens locaux, propres à chaque interface et utilisées pour certaines fonctions du protocole IPv6.
  • De ff00:: à ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff (ff00::/8) Adresses multicast.

Savoir si un serveur utilise IPv6

A présent que votre connectivité IPv6 à Internet est en place, vous pouvez tester si un serveur quelconque est lui aussi compatible, pour cela, il suffit d'avoir quelques petits outils.

Via votre navigateur

Si vous utilisez le navigateur internet Mozilla Firefox, il existe l'extension « SixOrNot » qui vous indiquera si le serveur du site que vous visitez peut être joint en IPv6.

Extension SixOrNot pour Mozilla Firefox
SixOrNot permet facilement de connaître la compatibilité IP v6 d'un site.

Via la ligne de commande

Ceux-ci n'étant pas installés de base sous Microsoft Windows voici la procédure pour les mettre en place :

  • Déjà, téléchargez-les.
  • Décompressez le fichier .zip dans C:dig (ou tout autre dossier de votre choix)
  • Copiez le fichier resolv.conf de ce dossier dans C:WINDOWSsystem32driversetc

Il faut ensuite ajouter le dossier d'installation à la variable PATH du système, pour plus facilement les utiliser.

dig_path
Ajout du dossier de dig au PATH.

Sous Windows XP et 2003 :

  • Clic droit sur « Poste de travail » → « Propriétés » → Onglet « Avancé » → Bouton « Variables d'environnement »
  • Dans la zone « Variables systèmes » choisir la ligne « Path » → Bouton « Modifier »
  • Dans la zone « Valeur de la variable » ajoutez C:dig
  • Cliquez sur « OK » → « OK » → « OK »

Sous Windows Vista et 7 :

  • Clic droit sur « Ordinateur » → « Propriétés » → « Option avancées » → Onglet « Avancé » → Bouton « Variables d'environnement »
  • Dans la zone « Variables systèmes » choisir la ligne « Path » → Bouton « Modifier »
  • Dans la zone « Valeur de la variable » ajoutez C:dig
  • Cliquez sur « OK » → « OK » → « OK »

Utilisation

Nous allons ici uniquement utiliser la commande host pour interroger un serveur DNS (ceux qui traduisent les adresses IP en nom intelligible et vice-versa) afin de savoir si un serveur dispose d'une IPv6. D'autres commandes comme dig sont fournies par ces outils mais ne sont pas décrites ici. L'utilisation est très simple, il suffit d'ouvrir une invite de commande et de taper la commande :

$ host nomDuServeur

Exemple avec une machine compatible IPv6 :

$ host www.zergy.net

www.zergy.net is an alias for enalys.zergy.net.
enalys.zergy.net has address 80.67.176.144
enalys.zergy.net has IPv6 address 2001:910:1090:2::1
La commande nous répond que www.zergy.net est un surnom du serveur enalys.zergy.net et que l'adresse IPv4 ce celui-ci est 80.67.176.144. Cependant, la réponse nous indique également que enalys.zergy.net dispose d'une adresse IPv6 qui est 2001:910:1090:2::1. Exemple avec une machine non compatible IPv6 :
$ host www.aeriesguard.com

www.aeriesguard.com is an alias for aeriesguard.com.
aeriesguard.com has address 78.41.233.87
aeriesguard.com mail is handled by 30 mx2.celeonet.com.
aeriesguard.com mail is handled by 25 mx3-cl.celeonet.fr.
La commande nous répond que www.aeriesguard.com est un surnom du serveur aeriesguard.com et que l'adresse IPv4 ce celui-ci est 78.41.233.87. Les autres lignes indiquent quels sont les serveurs de messagerie utilisés par le domaine aeriesguard.com, rien ne concerne une quelconque compatibilité IPv6. :(

Bonus

Partager sur Mastodon

Les commentaires sont fermés.