Fort de ces quelques observations, nous allons maintenant connecter une station directement sur notre Freebox, configurée pour fonctionner en IPv6.
Cette machine, une Debian « jessie » dispose d'une interface eth0 configurée en IPv4 DHCP. Nous aurons donc aussi une connectivité IPv4, ce qui pour l'instant est nécessaire, si nous voulons accéder à la plupart des ressources de l'internet. En effet, peu de sites proposent actuellement une connectivité IPv6.
Nous démarrons cette machine et :
~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 1c:7e:e5:26:54:51 inet adr:82.243.80.13 Bcast:82.243.80.255 Masque:255.255.255.0 adr inet6: 2a01:e35:2f35:d0:1e7e:e5ff:fe26:5451/64 Scope:Global adr inet6: fe80::1e7e:e5ff:fe26:5451/64 Scope:Lien ...
Nous observons deux adresses IPv6 :
fe80::1e7e:e5ff:fe26:5451/64
qui correspond au lien local, comme nous l'avons vu ;2a01:e35:2f35:d0:1e7e:e5ff:fe26:5451/64
qui est une adresse globale, fournie par notre opérateur.Déjà, nous pouvons observer que le jeton (partie représentative du nœud) est le même pour les adresses globale et lien local. C'est normal, elles sont toutes les deux auto-configurées de la même manière (eui64).
L'opérateur a adopté une méthode de fourniture d'IPv6 encapsulé dans de l'IPv4, pour des raisons essentiellement matérielles. Tous les composants de l'infrastructure ne sont pas forcément compatibles IPv6, à commencer par de nombreux DSLAMs.
La méthode est appelée «6rd» (IPv6 Rapid Deployment). Elle permet de fournir au client un «certain nombre» de vraies adresses IPv6, mondialement routables.
Voici la structure d'une adresse IPv6 obtenue depuis une passerelle résidentielle (comprenez «box») utilisant le transport 6rd: Les bits sont indexés à l'inverse de leur poids, le premier bit étant le plus lourd.
Autrement dit:
Ici, 2a01:0e3::/28 représente donc le préfixe de l'opérateur. Notons qu'il ne s'agit pas d'un nombre entier d'octets.
Dans l'exemple, ce préfixe est :
2a01:e35:2f35:d0::/64
Il est construit de la manière suivante :
2a01:e3::/28 : le préfixe du fournisseur, tel que nous l'avons décrit plus haut;
Les 4 octets suivants ne représentent rien d'autre que l'adresse IPv4 du client. Ainsi, l'adresse IPv4 écrite sous sa forme traditionnelle 82.243.80.13
peut se représenter sous sa forme hexadécimale 52f3500d
. Il suffit de compléter:
A ce niveau, le client est parfaitement identifié, puisque le préfixe contient l'identifiant fu fournisseur et l'identifiant du client du fournisseur. Ce dernier a potentiellement la faculté d'exploiter un préfixe /60 et c'est ce que la norme prévoit.
Dans le cadre d'une fourniture de service «résidentielle», le client pourra largement se contenter d'un préfixe /64:
Effectivement, le «grand public» pourra pendant quelque temps se satisfaire de 264 adresses IP publiques pour son usage personnel. Mais la norme prévoit qu'il pourrait en posséder 16 fois plus !
Sous sa forme contractée, ce préfixe s'écrit: 2a01:e35:2f35:d0::/64
Les nœuds présents sur le réseau local vont s'auto configurer en utilisant leur adresse MAC modifiée au format EUI64. Ils feront usage des fonctions NDP de ICMP6 pour découvrir leur environnement et le routeur devrait correctement répondre en indiquant au minimum:
N'oublions pas que dans le cadre d'une encapsulation (tunnel) 6rd, la «box» matérialise le bout du tunnel côté client chez qui elle assure le rôle de routeur IPv6. Il est donc aisé de découvrir son adresse globale par un traceroute6
sur n'importe quelle cible:
traceroute6 irp.nain-t.net traceroute vers mail.nain-t.net (2001:41d0:52:cff::922) de 2a01:e35:2f35:d0:1e7e:e5ff:fe26:5451, port 33434, du port 60628, 30 sauts max, 60 octets/paquet 1 2a01:e35:2f35:d0::1 (2a01:e35:2f35:d0::1) 3.670 ms 0.812 ms 0.541 ms 2 2a01:e00:18::25 (2a01:e00:18::25) 52.562 ms 48.052 ms 49.351 ms 3 * * *Sur le «hop 1» nous trouvons l'adresse globale
2a01:e35:2f35:d0::1
qui n'a clairement pas l'allure d'une adresse auto configurée, mais qui fait non moins clairement partie de notre sous-réseau.
Notons sur le «hop 2» le 0
du préfixe /28 qui indique que nous somme ici dans le réseau interne du fournisseur.
La commande :
~$ ip -6 route ls 2a01:e35:2f35:d0::/64 dev br0 proto kernel metric 256 expires 86378sec mtu 1480 fe80::/64 dev br0 proto kernel metric 256 mtu 1480 default via fe80::207:cbff:fec3:e4da dev br0 proto ra metric 1024 expires 1778sec hoplimit 64
Indique ce qu'il est permis d'attendre de la commande ip route
mais en version 6. Notons que la route par défaut est indiquée avec une adresse de type «lien local», ce qui est tout à fait logique puisque par définition, la passerelle est dans le même réseau physique que le nœud utilisé pour la manip.
Nous l'avons déjà dit, ARP n'existe plus, mais la pile IPv6 doit tout de même conserver une table d'équivalence entre adresses IPv6 et adresses MAC.
La commande arp
en version 6 n'existe pas, mais la commande ip
permet d'afficher le voisinage, aussi bien en IPv4 qu'en IPv6.
~#ping6 -c1 fe80::207:cbff:fec3:e4da%eth0 PING fe80::207:cbff:fec3:e4da%br0(fe80::207:cbff:fec3:e4da) 56 data bytes 64 bytes from fe80::207:cbff:fec3:e4da: icmp_seq=1 ttl=64 time=0.822 ms --- fe80::207:cbff:fec3:e4da%eth0 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.822/0.822/0.822/0.000 ms ~# ip -6 neigh show dev eth0 fe80::207:cbff:fec3:e4da lladdr 00:07:cb:c3:e4:da router REACHABLE
Notre passerelle (freebox) dispose d'une adresse lien local auto-configurée, son adresse MAC est 00:07:cb:c3:e4:da
.