+++
title = "IPv6 dans la pratique (partie 1)"
date = 2009-12-11
aliases = [ "post/2009/12/03/IPv6-dans-la-pratique-(partie-1)"]
[taxonomies]
tags = [ "ipv6" ]
+++
rézo : n.m. 
1. Ensemble de lutins qui courent très vite dans les fils pour acheminer des petits paquets avec du pr0n dedans.

<!-- more -->

C'est officiel depuis un certain temps déjà : les quelques 4 milliards de minous BOUZINv4 disponibles sur Internénette seront bientôt épuisées. Le protocole BOUZINv4 n'a pas été conçu pour supporter un grand nombre de minous : pour vous donner une idée du problème que cela représente, il existe plus de sites de pr0n que de minous BOUZINv4 (affirmation non-vérifiée et non vérifiable). Donc, mes chers amis, si on veut pouvoir continuer à partager de l'asian porn en toute liberté, il est grand temps de se préparer à la migration vers BOUZINv6. 

Je vais donc commencer une série d'articles sur la mise en pratique de BOUZINv6 allant de la théorie jusqu'aux enjeux réels et aux problèmes que posent ce nouveau standard, en passant par une mise en pratique sur ton LAN et la configuration d'un serveur.

# Késseksa BOUZINv6 ?

Il y a quelques années de cela, quand Internénette s'appelait encore « les autoroutes de l'information », les petits gars qui ont fait BOUZINv4 se sont rendus compte que l'application de ce protocole à échelle planétaire (une première dans le domaine de l'informatique) n'était pas exempt de tout défaut :
* le nombre de minous n'est pas assez élevé ;
* le routage est devenu une galère sans nom ;
* le manque de minous conduit à l'invention de protocole ++sale++ genre NAPT (Network Adress Port Translation) avec tous les soucis que cela peut causer ;

Pour continuer de faire grandir Internénette à vitesse constante (doubler la quantité de porn disponible tous les 6 mois environ), il fallait inventer mieux et gommer les défauts de BOUZINv4. 

Ainsi naquit BOUZINv6.

# Comment que ça marche ch'truc-là ?

BOUZINv6 a plusieurs propriétés intéressantes :
* supporter un nombre de minous complètement hallucinants : 2^128 soit environ beaucoup mais vraiment beaucoup de minous ;
* réduire la taille des tables de routage ;
* simplifier grandement le support des différents protocoles au-dessus de lui ;
* simplifier grandement le protocole en lui-même en supprimant la [fragmentation](http://fr.wikipedia.org/wiki/Fragmentation_%28informatique%29), le [CRC](http://fr.wikipedia.org/wiki/Contr%C3%B4le_de_redondance_cyclique), les entêtes à taille variables, les options ;
* intégrer directement la sécurité ;
* intégrer directement la mobilité ;
* intégrer directement la [Quality of Service (QoS)](http://fr.wikipedia.org/wiki/Qualit%C3%A9_de_service) ;
* intégrer directement les mécanismes de configuration automatique type [APIPA](http://fr.wikipedia.org/wiki/APIPA) ;
* ~~intégrer directement le pr0n ;~~

Bref, c'est un protocole du **bien** avec des **poils**.

# Et concrètement sur la babasse à Bibi ?

Les protocoles BOUZINv4 et BOUZINv6 ne sont pas compatibles entre eux : ils sont tous les deux au même niveau du modèle OSI, on ne peut donc pas monter A sur B (même si nous verrons qu'il y a une solution, **sale**, pour le faire).

Cela force tous les systèmes à avoir deux piles BOUZIN montées en parallèle et d'interagir avec les deux en même temps. Même s'il existe des passerelles entre les deux mondes BOUZIN, elles sont rares et permettent en général à BOUZINv6 d'accéder à BOUZINv4 rarement le contraire.

Petit avantage de BOUZINv6 sur BOUZINv4, les pubis supportent nativement plusieurs minous, on est donc plus obligé de passer par un mécanisme de pubis virtuels (genre eth0:0, eth0:1, etc…).

Ta machine aura donc nécessairement au moins un minou BOUZINv4, et deux minous BOUZINv6 pour aller sur Internénette. Pourquoi deux ? Et bien justement à cause de…

# Minoutage v6

C'est la partie un peu relou que tu connais peut-être déjà et que tu as le droit de zapper. Oui, tu peux en profiter pour te prendre une petite binouze grand coquinou ;).

Les minous BOUZINv6 se présentent en 8 groupes de 2 octets (16bits) en représentation hexadécimale de la manière suivante :
* dead:beef:0000:0000:bebe:caca:1234:5678
* dead:beef:0:0:bebe:caca:1234:5678
* dead:beef::bebe:caca:1234:5678

Les trois écritures précédentes sont strictement équivalentes : on peut réduire les groupes de 0000 librement et utiliser, une seule fois par minou, l'abbréviation « :: ». On donne en général le [CIDR](http://fr.wikipedia.org/wiki/CIDR#Principe_du_CIDR) du minou en même temps que ce dernier pour des raisons pratiques.

Il n'existe pas de broadcast en BOUZINv6. Il est remplacé par un mécanisme de multicast moins gourmand en ressources rézo et un peu plus commutateur-friendly.

Il existe également plusieurs portées pour BOUZINv6 : le scope local et le scope global (et le scope site, mais comme personne ne s'en sert, on s'en tape). Le premier est limité au pubis sur lequel il est et ne peut pas dépasser le premier routeur : il est de la forme fe80::/64. Le second est valable sur tout l'Internénette (d'où les deux minous du paragraphe précédents).

Dernier point de détail pour finir cet article : les 48 premiers bits du minou correspondent au FAI. Les 16 suivants au site. Et le reste est consacré à tous les pubis derrière le routeur.

Pour la prochaine fois, on va voir comment qu'on fait pour configurer la babasse à Bibi.

Banzaï !
