Hello World

Fort de ces quelques observations, nous allons maintenant connecter une station directement sur notre Freebox, configurée pour fonctionner en IPv6.

Configuration

Cette machine, une Debian « lenny » (testing, à l'heure où ces lignes sont écrites), 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 00:1b:11:52:bf:ab  
          inet adr:82.243.80.13  Bcast:82.243.80.255  Masque:255.255.255.0
          adr inet6: 2a01:5d8:52f3:500d:21b:11ff:fe52:bfab/64 Scope:Global
          adr inet6: fe80::21b:11ff:fe52:bfab/64 Scope:Lien
...

Nous observons deux adresses IPv6 :

  • fe80::21b:11ff:fe52:bfab/64 qui correspond au lien local, comme nous l'avons vu ;
  • 2a01:5d8:52f3:500d:21b:11ff:fe52:bfab/64 qui est une adresse globale, fournie par notre opérateur.

Anatomie de l'adresse « globale »

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.

Adresse de Free auto-configurée ?

Oui, vous ne rêvez pas, en IPv6 Free vous octroie 264 adresses publiques. Votre réseau « local » sera donc entièrement intégré à l'internet (avec tous les risques que cela comprend). Plus besoin de NAT, donc. Lorsque notre télévision, notre réfrigérateur, notre lave linge, notre lave vaisselle, notre four à chaleur tournante, notre congélateur etc. seront connectés à l'internet, ce qui nous permettra, via notre téléphone/pda/baladeur-mp3 de recevoir toutes les alertes électro-ménagères où que nous soyons dans le vaste monde, nous n'aurons pas de problèmes de pénurie d'adresses IP.

En fait, en IPv6, votre fournisseur ne vous procurera non plus une adresse IP, mais un bloc d'adresses IP. Actuellement au moins un /64, pour permettre l'auto-configuration. Autrement dit, votre fournisseur vous alloue un préfixe.

En IPv4, en revanche, vous ne disposerez toujours que d'une seule adresse IP publique, bien sûr.

Le préfixe Free

Dans l'exemple, ce préfixe est :

2a01:5d8:52f3:500d::/64

Il est construit de la manière suivante :

  • 2a01:5d8::/32 qui est un préfixe fourni à Free pour l'ensemble de ses besoins ;
  • les 32 bits suivants ne sont rien d'autre que votre adresse IPv4. Ici 52f3:500d peut s'écrire en hexadécimal 0x52.0xf3.0x50.0x0d, ce qui donne 82.243.80.13 en décimal, conformément à ce qui a été observé plus haut avec la commande ifconfig.

Au final le préfixe que Free vous alloue est entièrement à votre usage, exception faite d'une adresse particulière qui, comme nous le verrons plus bas, est celle de la passerelle par défaut. Il en faut aussi une en IPv6, bien entendu. Cette adresse est conventionnellement : <votre préfixe>::1. Ainsi, dans l'exemple, ce sera 2a01:5d8:52f3:500d::1.

~$ ping6 -c 4 2a01:5d8:52f3:500d::1
PING 2a01:5d8:52f3:500d::1(2a01:5d8:52f3:500d::1) 56 data bytes
64 bytes from 2a01:5d8:52f3:500d::1: icmp_seq=1 ttl=64 time=6.38 ms
64 bytes from 2a01:5d8:52f3:500d::1: icmp_seq=2 ttl=64 time=0.666 ms
64 bytes from 2a01:5d8:52f3:500d::1: icmp_seq=3 ttl=64 time=0.657 ms
64 bytes from 2a01:5d8:52f3:500d::1: icmp_seq=4 ttl=64 time=0.662 ms

--- 2a01:5d8:52f3:500d::1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.657/2.092/6.386/2.479 ms

Ah tiens, nous n'avons pas eu besoin ici de spécifier le nom de l'interface dans la commande ping ?

Non, car la table des routes dit :

~$ route -A inet6

Table de routage IPv6 du noyau
Destination                               Next Hop                   Flag   Met Ref Use If
::1/128                                   ::                         Un     0   1    25 lo
2a01:5d8:52f3:500d:21b:11ff:fe52:bfab/128 ::                         Un     0   1  3080 lo
2a01:5d8:52f3:500d::/64                   ::                         UAe    256 0    17 eth0
fe80::21b:11ff:fe52:bfab/128              ::                         Un     0   1    10 lo
fe80::/64                                 ::                         U      256 0     0 eth0
ff00::/8                                  ::                         U      256 0     0 eth0
::/0                                      fe80::207:cbff:fe1f:f5a    UGDAe 1024 0     1 eth0
::/0                                      ::                         !n     -1  1     1 lo

Il n'y a donc aucune ambiguïté sur le chemin à prendre.

Notons, puisque nous y sommes, la route par défaut :

::/0                                      fe80::207:cbff:fe1f:f5a    UGDAe 1024 0     1 eth0

où l'adresse IP de la passerelle est une adresse de type lien local.

Et ARP dans tout ça ?

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 -c 1 fe80::207:cbff:fe1f:f5a%eth0
PING fe80::207:cbff:fe1f:f5a%eth0(fe80::207:cbff:fe1f:f5a) 56 data bytes
64 bytes from fe80::207:cbff:fe1f:f5a: icmp_seq=1 ttl=64 time=1.55 ms

--- fe80::207:cbff:fe1f:f5a%eth0 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.557/1.557/1.557/0.000 ms

~# ip -6 neigh show dev eth0
fe80::207:cbff:fe1f:f5a lladdr 00:07:cb:1f:0f:5a router REACHABLE

Notre passerelle par défaut dispose d'une adresse lien local auto-configurée, son adresse MAC est 00:07:cb:1f:0f:5a. Profitons de l'occasion pour vérifier que l'adresse globale 2a01:5d8:52f3:500d::1 correspond bien à notre passerelle par défaut.

Un ping sur cette adresse :

~# ping6 -c 1 2a01:5d8:52f3:500d::1
PING 2a01:5d8:52f3:500d::1(2a01:5d8:52f3:500d::1) 56 data bytes
64 bytes from 2a01:5d8:52f3:500d::1: icmp_seq=1 ttl=64 time=5.39 ms
...

Un ping sur l'adresse lien local de la passerelle :

~$ ping6 -c 1 fe80::207:cbff:fe1f:f5a%eth0
PING fe80::207:cbff:fe1f:f5a%eth0(fe80::207:cbff:fe1f:f5a) 56 data bytes
64 bytes from fe80::207:cbff:fe1f:f5a: icmp_seq=1 ttl=64 time=0.646 ms
...

Enfin, nous affichons le voisinage :

~$ ip -6 neigh show dev eth0
fe80::207:cbff:fe1f:f5a lladdr 00:07:cb:1f:0f:5a router REACHABLE
2a01:5d8:52f3:500d::1 lladdr 00:07:cb:1f:0f:5a router REACHABLE

La même adresse MAC 00:07:cb:1f:0f:5a correspond bien aux deux adresses IPv6. A titre purement informatif, faisons quelque chose d'équivalent en IPv4 :

~# route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
82.243.80.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         82.243.80.254   0.0.0.0         UG    0      0        0 eth0

~# ping -c 1 82.243.80.254
PING 82.243.80.254 (82.243.80.254) 56(84) bytes of data.
64 bytes from 82.243.80.254: icmp_seq=1 ttl=64 time=36.8 ms
...

~# arp -an
? (82.243.80.254) at 00:07:CB:1F:0F:5A [ether] on eth0

Nous remarquons que, en IPv4 comme en IPv6, l'adresse MAC de la passerelle par défaut est toujours la même

Dernière modification:: le 03/03/2009 à 19:48
   
 
Cette création est mise à disposition sous un contrat Creative Commons. Creative Commons License