FAQ IPv6

Index
Q. À quoi ressemblent les adresses IPv6
Q. Quels sont les grands changements ?
Q. Comment les logiciels différencient-ils l’IPv6 du port
Q. Quand se fera le passage à IPv6
Q. Le NAT (IPv4) me protège des attaques venant d’internet !
Q. Que faut-il faire au niveau sécurité ?
Q. Comment accéder à l’IPv6 si mon FAI ne le permet pas ?

Q. À quoi ressemblent les adresses IPv6
Les adresses IPv6 sont codées sur 128 bits (16 octets), pour faciliter la lecture de celles-ci, elles s’écrivent en hexadécimal :
abcd:ef01:2345:6789:abcd:ef01:2345:6789
Une même IPv6 peut s’écrire sous plusieurs formes :
2001:0db8:0000:85a3:0000:0000:ac1f:8001 (forme la plus longue)
On peut supprimer les 0 en début de série :
2001:db8:0:85a3:0:0:ac1f:8001
On peut enfin réduire une série de 0 consécutif par ::, une seule et unique fois. :
2001:db8:0:85a3::ac1f:8001 ou encore 2001:db8::85a3:0:0:ac1f:8001
Une seule et unique fois car avec :
2001:db8::85a3::ac1f:8001 vous ne sauriez pas si elle représente 2001:db8:0:85a3:0:0:ac1f:8001 ou 2001:db8:0:0:85a3:0:ac1f:8001

Les adresses IPv6 de type unicast global (comprenez une seule source vers une seule destination, le fonctionnement est le même qu’avec une IPv4 (exception faite de la classe multicast) actuellement attribuées par l’IANA vont de 2000:0:0:0:0:0:0:0 à 3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff.

Il sera courant de rencontrer des adresses débutant par fe80::, je reviendrai dessus :).

Q. Quels sont les grands changements ?
Par rapport à IPv4, sans trop rentrer dans les détails de la structure du paquet en lui-même, on va rester dans les bases…
Le broadcast disparaît, et seul le multicast est présent pour prendre la relève, le multicast, en gros, c’est une source vers plusieurs destinations mais avec un unique paquet envoyé sur le réseau,
les adresses multicast IPv6 commencent par ffxx, elles sont énormément utilisées (remplacement du broadcast oblige), une adresse multicast désigne plusieurs hôtes sur le réseau.
Au niveau de l’adressage, il n’y a plus d’adresses réseaux ni d’adresses de broadcast.
On utilise uniquement les préfixes (en quelque sorte le remplaçant de l’adresse réseau en IPv4) et le masque CIDR (sa valeur désigne le nombre de bit de poids fort qui seront utilisés pour désigner l’adresse de réseau, en fait, la première adresse du réseau sera elle-même attribuable à un hôte.
en IPv4 on utilise 192.168.0.0/24 (/24 est d’ailleurs un masque CIDR correspondant au masque de sous réseau décimal 255.255.255.0) pour désigner la plage d’adresse 192.168.0.1 à 192.168.0.254.
En IPv6 2001:db8:dead:bed::/64 désigne un réseau, dont la plage IP s’étend de 2001:db8:dead:bed:: à 2001:db8:dead:bed:ffff:ffff:ffff:ffff
Par conformité, un réseau doit réserver au minimum 64 bits pour désigner les hôtes, (pour permettre l’auto-configuration sous windows par exemple 😀 , ce n’est pas obligatoire mais beaucoup d’avantages IPv6 seront perdus)

Sachez qu’en IPv6, il existe un type d’adresse link-local, les fameuses fe80::, qui servent à la communication sur un même réseau physique (niveau OSI 2), elles restent (normalement) inchangées pour une interface, elles ne traversent pas les routeurs (j’ai dit niveau OSI 2, en gros si vous êtes en IPv4 sur du 192.168.0.0/24 et PC B 192.168.1.0/24, vous ne pourrez pas contacter PC B avec une adresse fe80::/64, pour cela il faudra une adresse global unicast), si votre PC possède la pile IPv6, vous devriez d’ailleurs en avoir une.
Les adresses link-local sont équivalentes aux adresses APIPA IPv4, 169.254.0.0/16, elles sont la base pour le reste d’IPv6…
NB : Sous windows (7, pas testé sur les autres) même les adresses link-local ne dérivent PAS de l’adresse MAC, elles sont générées une fois pour toute.

À noter qu’il existe tout de même les préfixes fc00::/8 et fd00::/8 (Unique Local Address : RFC 4193) qui sont routables intra-site, mais qui ne sont pas routables sur internet, ces adresses serviront donc généralement aux entreprises souhaitant avoir des réseaux IPv6 internes sans communication possible avec Internet.

Pour exemple, un réseau dans lequel il y aurait des serveurs destinés à communiquer uniquement avec des clients de la même entreprise, afin d’éviter d’éventuelles fuites. On peut donc imaginer qu’en entreprise, certains hôtes possèdent une IPv6 par préfixe : link-local obligatoire, unicast global et/ou ULA pour certains…
Autre exemple : Flux de données sensible mais entre deux équipements n’étant pas sur le même réseau IP.

Disparition d’ARP, en effet c’est NDP (neighbor discovery protocol) qui viendra faire le lien entre la couche OSI 2 et 3, le fonctionnement est globalement le même si ce n’est qu’au lieu d’utiliser le broadcast, on utilisera cette-fois ci du multicast.

L’autoconfiguration est également une nouveauté, vous pourrez vous passer d’un serveur DHCP sur votre réseau, puisque désormais il suffit que le routeur diffuse un paquet appelé router-advertisment, il contient votre préfixe global unicast [2a01:e3x:xxxx:xxx0::/64 chez free], qui permettera à votre PC de s’auto-attribuer une adresse permettant de naviguer sur internet, tout ça sans NAT, sans besoin de redirection de port et tous ces machins, prévoyez tout de même un pare-feu 😛 , et pour les plus paranos, sachez que cette adresse n’est pas fixe (par défaut) sous windows, et ne dérive pas de votre adresse MAC.

À savoir qu’il est toujours possible d’utiliser un serveur DHCPv6, pour pouvoir s’y retrouver dans l’adressage 🙂 (surtout utile pour le monde professionnel), et pour finir, la configuration en dur est bien sûr toujours possible.

En IPv6, un hôte peut avoir plusieurs adresses IP !

Q. Comment les logiciels différencient-ils l’IPv6 du port
Bien que nos chers serveurs DNS soient bien utiles afin d’éviter de retenir une IPv6, il peut être utile de connaître la syntaxe à utiliser pour donner une IPv6 de destination à un programme…

Généralement il faut utiliser la syntaxe suivante : [ipv6]:port, par exemple pour accéder au site internet de 2001:db8:dead:bed::1337 on devra taper http://[2001:db8:dead:bed::1337]:80

À noter tout de même que la notation sans les caractères [ et ] est bien présente, considérant que le dernier caractère : fait office de séparateur IP/Port, ce qui peut parfois prêter à confusion, notamment pour des adresses finissant par :: (une suite de 0).

Q. Quand se fera le passage à IPv6
Ce n’est pas quelque chose qui sera fera un jour J, mais progressivement !
Actuellement il y a beaucoup d’OS dit dual-stack (double-pile), qui gèrent à la fois IPv4 et IPv6, malheureusement ce n’est pas le cas pour les routeurs/switchs sur le marché (que ce soit particulier ou professionnel).
Parfois on a recours à l’encapsulation (IPv6 dans IPv4).
Lorsqu’IPv6 sera plus déployé et utilisé qu’IPv4, IPv4 ne sera sans doute jamais abandonné, il y a pas mal d’applications dans le monde pro/industriel qui ne seront sans-doute jamais mises à jour, on fera alors de l’encapsulation, mais cette fois-ci, IPv4 dans IPv6.

Si vous activez IPv6, votre ordinateur continuera – heureusement 😆 – à gérer, utiliser, et communiquer IPv4 😛

Q. Le NAT (IPv4) me protège des attaques venant d’internet !
Alors d’abord sachez qu’une petite explication s’impose, le NAT, traduction d’adresse réseau a été mis en place en raison de la pénurie d’adresse IP, en effet, les réseaux 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16 sont destinés à un usage sur réseau privé, autrement dit qui est isolé d’internet.
Le NAT permet à une adresse appartenant à un réseau de ce type, d’être routé sur internet en utilisant une seule adresse IP, qui elle, est routable sur internet (souvent appelé IP public ou IP routable sur internet).
Une petite image :

IPv4Nat

Fonctionnement IPv4 avec NAT

Si le NAT à lui seul semble vous protéger, sans pare-feu il ne sert à rien, la seule chose qui vous protège en réalité, c’est que si vous vous amusez à envoyer des choses avec une IP comme celle-ci sur internet (RFC 1918), votre paquet (vos données) iront directement à la poubelle.

En imaginant que les adresses IP soient une ressource infinie, voilà d’ailleurs – pour les plus curieux – à quoi ressembleraient nos réseaux :

IPv4Th

IPv4 sans NAT

NB: Ce dont je parle est évidemment le type de NAT le plus répandu (dynamique), il existe du NAT statique mais cela est très peu utilisé.

Q. Que faut-il faire au niveau sécurité ?
Il est indispensable de se munir d’un pare-feu par poste, en complément si possible (plus pour les professionnels ou geek, je donne à titre indicatif), d’un pare-feu au niveau de la passerelle par défaut (routeur), sous linux, on peut facilement retrouver une configuration similaire à ce qu’on faisait en IPv4 juste avec 2 lignes (avec une policy à DROP par défaut) :

Code :
ip6tables -A FORWARD -i IF_LAN -o IF_WAN -m state --state \
NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
ip6tables -A FORWARD -i IF_WAN -o IF_LAN -m state --state \
RELATED,ESTABLISHED -j ACCEPT

Dans ce cas, les connexions initialisées vers un hôte local seront autorisées seulement si cet hôte a initialisé lui-même la connexion, à vous après d’affiner selon vos geekeries 🙂 (serveurs, P2P, VoIP, etc…) 😛

Q. Comment accéder à l’IPv6 si mon FAI ne le permet pas ?
C’est là que 6in4 (ou protocole 41) est utile, il encapsule les paquets IPv6 dans des paquets IPv4, permettant l’acheminement de paquets IPv6 vers internet via ce qu’on appelle communément un tunnelbroker (un routeur appartenant à un prestataire qui va lire votre paquet IPv6, et le retransmettre nativement vers internet), ils sont généralement gratuit et fiable.
Afin de comprendre comment fonctionnent les tunnelbrokers, le 6in4, (http://www.tunnelbroker.net/, ou encore http://www.sixxs.net/ pour les plus connus) voici un petit schéma :

Fonctionnement de 6in4

Fonctionnement de 6in4

Pour le bon fonctionnement de ce système, le protocole 41 ethernet doit être redirigé vers l’équipement ayant la terminaison du tunnel.
Le protocole 41 est annoncé couche OSI 3, c’est à dire IP, il est inutile de rediriger quelconque port udp/tcp (information de couche 4), la dmz est l’unique solution à moins que vous possédiez un pc ou un routeur avec iptables ou autre firewall assez flexible au niveau de la configuration 😀

2 réponses à FAQ IPv6

  1. badmaniak dit :

    Bonjour bashy,

    Sympa la FAQ je la trouve facile à lire et à comprendre, j’ai appris pas mal de chose (n’ayant pas encore regardé de plus pret IPV6), c’est du bon boulot.
    @+

  2. legrant dit :

    Merci pour ces explications simples mais très efficaces 🙂
    @+

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.