Pourquoi IPv6 ?
Comme vu dans l’article de l’adressage, une adresse IPv4 est codée sur 32 bits divisée en 8 bits comme ci-dessous :
xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
le nombre d’adresse que peut fournir une IPv4 est : 232 = 4.294.967.296
Les spécialistes le savent déja, les adresses IPv4 sont en nombre trop limité pour subvenir aux besoins et cela pose un gros problème dans le monde du réseau informatique.
Ils avaient raison, aujourd’hui il y a plus de 6 milliard d’appareilles connectés à l’internet.
Une solution alors a été mis en place qui consiste à utiliser une plage d’adresse IP appelée « adresses privées » et une autre appelés « adresses publique » et cela a permit aux entreprise d’utiliser plusieurs adresses privées en interne en même temps car elles ne sont pas routable et les seules adresse qu doivent être uniques sur internet sont les adresse publiques .
Malheureusement les adresse publiques commence à s’épuiser, c’est pour cette raison que l’ IPv6 a vu le jour.
Une adresse IPv6 est codée sur 128 bits comme ci-dessous:
00100000000000010000110110111000101010101010101000010001000100010000000000000000000000000000000000000000000000000000001000000000
On voit bien la difficulté de manipuler la notation binaire d’une adresse IPv6.
Pour faciliter la lecture, les bits sont groupé en 8 groupes de 16 bits séparé par le signe « : »
0010000000000001 : 0000110110111000 : 1010101010101010 : 0001000100010001 : 0000000000000000 : 0000000000000000 : 0000000000000000 : 0000000100000000
Ensuite chaque groupe de 16 bits est converti en Hexadécimal ce qui donne une présentation comme ci-dessous:
2001:0DB8:AAAA:1111:0000:0000:0000:0100
Voyons voir combien d’adresse IP peut donner l’IPv6 : 2128= 3,4×1038
C’est énorme!! avec ce nombre d’adresse IP, on peut même assurer la connexion des extraterrestre :).
La notation d’une adresse IPv6 :
La notation d’une adresse IPv6 est en Hexadécimale, elle est présentée en 8 groupes de 2 octets séparés par le signe deux-points :
2001:0DB8:AAFF:0021:0000:0000:0000:0100
Comme vous pouvez le constater cette notation est un petit peut difficile à retenir, nous pouvons réduire cette notation en appliquant quelques règles simples.
1-Replacer les 0 par un seul 0 : 0000 = 0
2001:0DB8:AAFF:0021:0000:0000:0000:0100 = 2001:0DB8:AAFF:0021:0:0:0:0100
2-Remplacer les 1er zéro par un seul 0 :
2001:0DB8:AAFF:0021:0:0:0:0100 = 2001:DB8:AAFF:21:0:0:0:100
3-Une suite de groupe d’octet nul peuvent être omise en gardant les signes ::
2001:DB8:AAFF:21:0:0:0:100 =2001:DB8:AAFF:21::100
Ainsi notre adresse IPv6 peut être abrégée en :
2001:0DB8:AAFF:0021:0000:0000:0000:0100 = 2001:DB8:AAFF:21::100
Adresse lien locale (Link-local address ipv6 ) :
Nous avons 3 méthodes pour qu’une interface ait une adresse IPv4 :
-Statique : Affecter une adresse IPv4 manuellement.
-Dynamique : utiliser un serveur DHCP.
-APIPA (Automatic Private Internet Protocol Addressing ): Si une interface est configurée à utiliser une adresse ip dynamique et n’arrive pas à joindre un serveur DHCP, l’interface s’attribue une adresse de la plage 169.254.0.0/16 afin que les machines du même réseau puissent communiquer.
Dans le cas des adresses IPv6 nous n’avons pas d’APIPA mais nous avons l’adresse locale lien (Link-local address).
A la différence des adresses IPv4, une interface s’attribue une adresse Locale lien bien qu’elle est configurée par une adresse IP statique ou bien dynamique. Une adresse locale lien est généré automatiquement et commence toujours par Fe80:
Comme vous pouvez le constater, l’interface wifi s’est attribué une adresse locale lien alors qu’elle a déja une adresse IPv4.
Comment l’adresse « lien locale » est générée :
Cette adresse n’est pas créé aléatoirement, le système se base sur l’adresse MAC pour garantir de créer une adresse unique vu que l’adresse MAC est unique dans le monde entier. Voyons voir comment cette adresse est générée à partir d’une adresse MAC.
Nous allons prendre comme exemple l’adresse MAC : BA00:0F54:0308
1-Ajouter la valeur FF:EF : BA00:0FFF:EF54:0308
2-convertir les deux premiers octet en binaire et changer la valeur du 7ème bit à la valeur opposée :
BA00 = 1011101000000000 -> 1011100000000000
3-Convertir la nouvelle valeur binaire au Hexadécimale : 1011100000000000 = B800
BA00:0FFF:EF54:0308 -> B800:0FFF:EF54:0308
Nous avons maintenant un identifiant de 64bits appelé : EUI-64
4-Il nous faut encore 64bits pour avoir une adresse IPv6 de 128bit, pour cela nous allons concaténer le préfixe FE80: :/64 aux EUI-64 :
FE80: :B800:0FFF:EF54:0308.
Il faut savoir que l’adresse lien locale n’est pas routable sur internet ainsi un paquet avec une adresse lien locale est bloquée par les routeurs :
Affecter une adresse IPv6 :
-Sous Linux (RedHat) :
Ici je vais utiliser l’outil nmcli pour affecter une adresse IPv6 statique :
#nmcli connection modify ens33 ipv6.method manual #nmcli connection modify ens33 ipv6.addresses '20C3::12:1/64'
Relancer le profils ( ici ens33 ) pour que l’adresse soit prise en charge :
#nmcli connection down ens33 #nmcli connection up ens33
-Sur Windows 10 :
Ping :
Pour vérifier si une machine distant configuré avec une adresse IPv6 répond il suffit de taper la commande ping6:
#ping6 20C1::12:1
Installation d’un certificat SSL sur un serveur Nginx
tar: Les 14 commandes les plus utilisé
Kubernetes : Le Scheduler ( Partie 2)
Comment vérifier les ports ouverts sur Linux
Fail2Ban : How to protect Linux services