+++

title = "IPv6 dans la pratique (partie 3)"
date = 2009-12-25
aliases = [ "post/2009/12/09/IPv6-dans-la-pratique-(partie-3)"]
[taxonomies]
tags = [ "ipv6" ]
+++
minou : n.m. un truc avec lequel on s'amuse bien.
<!-- more -->
La dernière fois qu'on s'est vu, mon petit lecteur frippon préféré, on en était resté au montage d'un réseau BOUZINv6 en mode autoconfiguration (enfin plutôt stateless). Ça a relativement bien marché à un détail près : faire fonctionner des vrais applis du vrai monde réel dans ces conditions-là, c'est un peu chaud les haricots. « Sa mère la fille de mauvaise vie, maison des madames qui vendent leur corps, excrément, il va encore falloir bouger son rectum pour obtenir un résultat un tant soit peu exploitable ». Bah oui…

Tu vas donc retrousser tes manches et actionner tes petits doigts potelés pour monter un routeur BOUZINv6 sur ton zoli LAN pour que ça commence à ressembler à quelque chose.

# Mazette, dat soundz grit

On va donc installer l'équivalent (très basique) d'une sorte de DHCP pour transformer clara en distributeur de minous BOUZINv6. La chose en l'occurence se nomme `radvd`.

Donc, on va commencer par attribuer une minou à clara :
```
clara:~# ifconfig eth0 inet6 add fec0:beef:dead:bebe::1/64
clara:~# ifconfig eth0 | grep inet6
          adr inet6: fec0:beef:dead:bebe::1/64 Scope:Site
          adr inet6: fe80::a00:27ff:fec2:4518/64 Scope:Lien
```

inou, loin d'être choisi au hasard : en fait, les 4 premiers groupes de 2 octets correspondent à l'indicateur de site. Dans ce mode de configuration, les babasses détermineront leurs minous en se basant sur la configuration de leur minou MAC, d'où le masque à 64bits.

Et tu obtiens donc bien une portée de lien et une portée de site (avec en bit bonus un préfixe qui tue !). On attaque une configuration (extrêmement basique) de radvd via `/etc/radvd.conf` :
```
interface eth0
       {
               AdvSendAdvert on;
               prefix fec0:beef:dead:bebe::/64
               {
                       AdvOnLink on;
                       AdvAutonomous on;
               };
       };
```

Bon, je me suis pas trop foulé pour celui-ci, on le trouve dans le man… On oublie pas d'activer le forward (un peu comme en BOUZINv4) :
```
clara:~# echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
```

Et c'est partie pour le rodéo ! Une fois `radvd` lancé, il suffit de patienter quelques secondes et là, miracle de la science moderne :
```
[root@morgane ~]# ping6 fec0:beef:dead:bebe::1 -c 2
PING fec0:beef:dead:bebe::1(fec0:beef:dead:bebe::1) 56 data bytes
64 bytes from fec0:beef:dead:bebe::1: icmp_seq=0 ttl=64 time=0.863 ms
64 bytes from fec0:beef:dead:bebe::1: icmp_seq=1 ttl=64 time=2.05 ms

--- fec0:beef:dead:bebe::1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.863/1.458/2.054/0.596 ms, pipe 2
```

IT'S ALIVEEEE !!!§§! ALIIIIIIIIIIIIVE !!§# 

Et oui mon mignon, clara et morgane sont maintenant dans le même lit, dans une pose lacive, sur la même longueur d'onde (GRRRR !). Bon, allez, just for fun, on va voir si on peut faire tourner une appli sur notre réseau local. On installe donc un apache des familles sur clara, qu'on démarre joyeusement. Un petit coup d'œil sur les connexions côté clara :
```
clara:~# netstat -lapute | grep -i apache
tcp6       0      0 [::]:www                [::]:*                  LISTEN      root       7737        2853/apache2
```

La coquine écoute bien sur tous les ports. Voyons maintenant si l'ensemble s'interpénètre :
```
[root@morgane ~]# wget http://[fec0:beef:dead:bebe::1]
--2009-12-09 23:30:26--  http://[fec0:beef:dead:bebe::1]/
Connexion vers fec0:beef:dead:bebe::1:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 45 [text/html]
Saving to: `index.html'

100%[======================================>] 45          --.-K/s   in 0s      

2009-12-09 23:30:26 (3,60 MB/s) - « index.html » sauvegardé [45/45]
```

\o/. Tu auras remarqué que nous avons utilisé des `[]` pour mettre le minou de clara : ce n'est pas une mesure de protection mais simplement un standard dans BOUZINv6. Nous avons ici configuré un réseau type intranet, mais le principe pour faire un routeur BOUZINv6 sur Internet est en gros le même : on remplace simplement la portée site par une portée globale au niveau de `radvd`.

Voilà, petit chenapan, tu peux maintenant échanger du pr0n librement dans la joie et l'allégresse avec la satisfaction du geek accompli. Pour le prochain numéro, on va voir ce peut vraiment apporter BOUZINv6 dans le quoitidien du nerdadmin de base (en dehors des considérations de masturbations informatiques bien entendu).
