+++

title = "IPv6 dans la pratique (partie 2)"
date = 2009-12-17
aliases = [ "post/2009/12/07/IPv6-dans-la-pratique-(partie-2)"]
[taxonomies]
tags = [ "ipv6" ]
+++
babasse : n.f. bidule informatique dont le fonctionnement est obscur mais qui a le bon goût d'héberger du pr0n.
<!-- more -->
Comme promis la dernière fois, on va te montrer comme tu peux monter un réseau BOUZINv6 sur tes babasses de ton réseau domestique…

Donc, pour cela, il te faudra :
* Un switch (bête et basique…) ;
* Deux babasses (nous les appelerons clara et morgane) ;
* De la bière (beaucoup…).

# Activation d'IPv6 sur les babasses

Comme je préfère m'attacher au côté théorique, je ne détaillerai la configuration que pour deux distribs de ton OS préféré : une Daubian (donc valable pour les dérivées) pour clara et une CentOS (même principe) pour morgane. Et comme j'ai dit qu'on le faisait sur des systèmes d'exploitation, on le fera pas sous Windows (TRO FOR CASSSÉÉÉÉ LOLILOL!!).

Bon grosso merdo, c'est le même principe pour les autres systèmes (\*BSD, Solaris, AiX, etc…), à quelques variantes prêt. Je te conseille donc de te reporter à la doc correspondante (y compris celle, très fournie, de Microsoft) pour les détails.

Donc, clara et morgane sont dans un bateau et on va activer les modules BOUZINv6 pour les deux. Sous CentOS, pas grand chose à faire (en fait, c'est activé par défaut puisque le module kivabien est chargé dans la kernaille par défaut). Modifiez le fichier `/etc/sysconfig/network` pour avoir qqch du genre :

```
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=morgane
```

Sous Daubian, on ira modifier le fichier `/etc/network/interfaces` :
```
auto lo
iface lo inet loopback

iface eth0 inet dhcp
	pre-up modprobe ipv6
```

*On me glisse amicalement dans l'oreillette que cette manip' n'est plus nécessaire dans les versions avancées de Daubian (autrement dit la unstable…).*

Après avoir redémarré ce qui concerne le réseau sur les deux bécanes, voici ce qu'on obtient :
```
clara:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 08:00:27:c2:45:18  
          adr inet6: fe80::a00:27ff:fec2:4518/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          RX bytes:684 (684.0 B)  TX bytes:2520 (2.4 KiB)
          Interruption:11 Adresse de base:0xd020
```

L'intéressant, c'est le minou BOUZINv6 à la troisième ligne. Remarque qu'on te précise qu'il est à portée lien. Pas plus.

# Cachez ce minou que je ne saurai voir

ais est-ce que clara et morgane peuvent communiquer (et éventuellement faire des cochonneries ensemble) ? Et ben ouais ! Comment clara peut découvrir morgane ? Et bien, c'est simple :
```
clara:~# ping6 -I eth0 ff02::1
PING ff02::1(ff02::1) from fe80::a00:27ff:fec2:4518 eth0: 56 data bytes
64 bytes from fe80::a00:27ff:fec2:4518: icmp_seq=1 ttl=64 time=1.10 ms
64 bytes from fe80::a00:27ff:fe86:fe4f: icmp_seq=1 ttl=64 time=5.99 ms (DUP!)
```

Ah ça, t'aurais pas pu la deviner tout seul celle-là !! Bon, on avait dit qu'il n'y a plus de broadcast en BOUZINv6. Ça, c'était pour faire bien dans la rédaction de la norme parce que le broadcast, c'est **sale**. Donc dans la pratique, on a une adresse générique dite de « découverte » (basée sur ICMPv6) pour aller regarder ce qui se passe chez les copines. Vérifions, si clara peut voir the girl next door :
```
clara:~# ip -6 neigh show
fe80::a00:27ff:fe86:fe4f dev eth0 lladdr 08:00:27:86:fe:4f REACHABLE
```

Je peux même communiquer avec morgane directement :
```
clara:~# ping6 -I eth0 fe80::a00:27ff:fe86:fe4f
PING fe80::a00:27ff:fe86:fe4f(fe80::a00:27ff:fe86:fe4f) from fe80::a00:27ff:fec2:4518 eth0: 56 data bytes
64 bytes from fe80::a00:27ff:fe86:fe4f: icmp_seq=1 ttl=64 time=0.448 ms
64 bytes from fe80::a00:27ff:fe86:fe4f: icmp_seq=2 ttl=64 time=1.36 ms
```

Oui, mais à un détail près : à chaque fois, on est tenu de préciser l'interface sur laquelle on veut communiquer (en général, en utilisant `%ethX` à la fin de l'adresse BOUZINv6. Pourquoi ? Et bien, c'est à cause de la fameuse portée limitée au lien de ce minou… Du coup ce n'est pas si pratique que ça (d'autant plus qu'on ne peut pas toujours préciser l'interface) et surtout, ce n'est pas très élégant.

Du coup, pour la prochaine fois, on va voir comment on peut faire pour résoudre cette épineux problème, en utilisant la portée site. « Mais je croyais que ça servait à rien ?!? » AH ! AH ! IT'S A TRAP !!§! En fait, c'est l'équivalent des adresses 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16 de BOUZINv4 pour les minous non routées sur Internénette… Et on verra comment on peut s'en sortir avec ça…
