Supposons que vous soyez donc intéressé par l'IPv6, que vous êtes dégroupés chez Free, que vous ayez activé la nouvelle option dans votre interface de gestion chez Free. Vous avez votre propre passerelle linux pour l'ipv4, et vous souhaitez faire bénéficier de votre subnet ipv6 à tous vos équipements. Je prends des extraits de ma propre passerelle.
Avant tout, les adresses fournies :
eva:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0E:2E:02:50:86
inet addr:82.227.139.174 Bcast:82.227.139.255 Mask:255.255.255.0
inet6 addr: 2a01:5d8:52e3:8bae:20e:2eff:fe02:5086/64 Scope:Global
inet6 addr: fe80::20e:2eff:fe02:5086/64 Scope:Link
inet6 addr: 2a01:5d8:52e3:8bae::9/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2125 errors:0 dropped:0 overruns:0 frame:0
TX packets:2388 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:848494 (828.6 KiB) TX bytes:311046 (303.7 KiB)
Interrupt:11 Base address:0x2400
eth1 Link encap:Ethernet HWaddr 00:40:F4:EB:F2:AC
inet addr:192.168.1.9 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::240:f4ff:feeb:f2ac/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3212 errors:0 dropped:0 overruns:0 frame:0
TX packets:3288 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:837644 (818.0 KiB) TX bytes:1409805 (1.3 MiB)
Interrupt:10 Base address:0x2000
Ici, donc, eth0 est la carte ethernet allant vers la Freebox. eth1 la carte qui vous relie à vos autres ordinateurs. J'ai volontairement zappé lo, on s'en fout ici.
eva:~# route -A inet6
Kernel IPv6 routing table
Destination Next Hop Flags Metric Ref Use Iface
::1/128 :: U 0 2 1 lo
2a01:5d8:52e3:8bae::/128 :: U 0 0 2 lo
2a01:5d8:52e3:8bae::9/128 :: U 0 126 1 lo
2a01:5d8:52e3:8bae:20e:2eff:fe02:5086/128 :: U 0 43 1 lo
2a01:5d8:52e3:8bae::/64 :: UA 256 1 0 eth0
fe80::/128 :: U 0 0 2 lo
fe80::/128 :: U 0 0 2 lo
fe80::20e:2eff:fe02:5086/128 :: U 0 13 1 lo
fe80::240:f4ff:feeb:f2ac/128 :: U 0 8 1 lo
fe80::/64 :: U 256 0 0 eth1
fe80::/64 :: U 256 0 0 eth0
ff02::1/128 ff02::1 UC 0 123 0 eth1
ff00::/8 :: U 256 0 0 eth1
ff00::/8 :: U 256 0 0 eth0
Si vous avez ça, et que vous tentez un pin6 www.kame.net, on vous renverra une erreur en anglais "network is unreachable". Logique.
eva:~# host www.kame.net
www.kame.net has address 203.178.141.194
www.kame.net has IPv6 address 2001:200:0:8002:203:47ff:fea5:3085
Pour sortir du subnet et aller donc vers l'extérieur, il faut s'adresser non pas à la passerelle, mais directement à la freebox, ici 2a01:5d8:52e3:8bae::1.
route -A inet6 add 2000::/3 gw 2a01:5d8:52e3:8bae::1 dev eth0
gw : gateway. 2000::/3, pour dire "presque toutes les ipv6 actuelles mondiales" (je dis presque car je n'en suis pas certain....)
De fait, tout trafic devant sortir du réseau devra transiter par la freebox, même si celle-ci est en bridge (comme le montre l'ipv4 de mon eth0 lors de l'ifconfig...)
Il reste maintenant à propager le subnet 2a01:5d8:52e3:8bae à nos autres postes. Comme ils sont sur une autre carte réseau, la propagation n'est pas automatique, il faut utiliser radvd (enfin, à mon goût..). Voici mon /etc/radvd.conf sous Debian (le nom peut changer pour une autre distro...) :
eva:~# more /etc/radvd.conf
interface eth1
{
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
prefix 2a01:5d8:52e3:8bae::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
Un petit /etc/init.d/radvd start, et on est bon. Les adresses se propageront, il suffira de vérifier sur d'autres postes sous Linux :
Sur une autre machine :
eth1 Lien encap:Ethernet HWaddr 00:07:E9:A8:8E:6C
inet adr:192.168.1.2 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: 2a01:5d8:52e3:8bae::2/64 Scope:Global
adr inet6: 2a01:5d8:52e3:8bae:207:e9ff:fea8:8e6c/64 Scope:Global
adr inet6: fe80::207:e9ff:fea8:8e6c/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28461136 errors:0 dropped:0 overruns:0 frame:0
TX packets:28012086 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:4272743961 (3.9 GiB) TX bytes:538096632 (513.1 MiB)
La propagation s'est donc bien effectuée. Me reste un petit souci à voir. En effet, si nous propageons bel et bien notre adresse ipv6 sur eth1, nous n'avons en revanche pas de quoi écouter pour ce subnet sur eth1. Comme on n'entend pas sur eth1, on n'est pas près d'envoyer sur eth0.
Aussi, l'idée est de découper notre subnet, par exemple :
eth0 : 2a01:5d8:52e3:8bae::2/72
eth1 : 2a01:5d8:52e3:8bae:0001::2/72
... et de faire la fonction passerelle plus classique. J'avoue qu'à 2h du mat, je patine un peu là-dessus, mais promis, je trouverai une solution prochainement..
Maintenant, pour prouver que l'ipv6 est bien en place, cadeau bonus de ma part :
eva:~# traceroute6 www.kame.net
traceroute to www.kame.net (2001:200:0:8002:203:47ff:fea5:3085) from 2a01:5d8:52e3:8bae::9, 30 hops max, 16 byte packets
1 2a01:5d8:52e3:8bae::1 (2a01:5d8:52e3:8bae::1) 0.638 ms 0.568 ms 0.529 ms
2 2a01:5d8:e000:9d1::1 (2a01:5d8:e000:9d1::1) 49.705 ms 50.021 ms 50.437 ms
3 * * 2a01:5d8:e000:9d1::fe (2a01:5d8:e000:9d1::fe) 50.368 ms
4 * * *
5 cbv-6k-1-po21.intf.routers.proxad.net (2a01:5d8:e000:0:1:3:0:2) 51.781 ms * *
6 2001:5a0:0:100::9 (2001:5a0:0:100::9) 50.988 ms 51.163 ms 51.121 ms
7 2001:5a0:1a00::15 (2001:5a0:1a00::15) 51.371 ms 51.557 ms 51.666 ms
8 if-2-0-0.core2.fr1-frankfurt.ipv6.teleglobe.net (2001:5a0:700:300::1) 60.492 ms 61.358 ms 60.789 ms
9 ix-7-0-0.core1.ad1-amsterdam.ipv6.teleglobe.net (2001:5a0:200:100::e) 131.719 ms * 66.746 ms
10 2001:5a0:200::5 (2001:5a0:200::5) 67.149 ms 66.793 ms 67.008 ms
11 ge-1.ams-ix.amstnl02.nl.bb.gin.ntt.net (2001:7f8:1::a500:2914:2) 67.094 ms 69.017 ms 67.69 ms
12 xe-0-2-0.r23.amstnl02.nl.bb.gin.ntt.net (2001:728:0:2000::1e) 67.419 ms 66.763 ms 66.896 ms
13 as-0.r20.asbnva01.us.bb.gin.ntt.net (2001:728:0:2000::121) 150.226 ms 150.018 ms 149.712 ms
14 as-0.r20.snjsca04.us.bb.gin.ntt.net (2001:418:0:2000::1de) 222.156 ms 222.246 ms 222.138 ms
15 as-2.r20.tokyjp01.jp.bb.gin.ntt.net (2001:218:0:2000::ce) 322.398 ms 322.699 ms 322.416 ms
16 xe-3-2.a15.tokyjp01.jp.ra.gin.ntt.net (2001:218:0:6000::10e) 322.471 ms 323.023 ms 323.12 ms
17 ge-8-2.a15.tokyjp01.jp.ra.gin.ntt.net (2001:218:2000:5000::82) 334.299 ms 336.047 ms 333.961 ms
18 ve-4.nec2.yagami.wide.ad.jp (2001:200:0:1c04:230:13ff:feae:5b) 336.258 ms 336.535 ms 336.457 ms
19 lo0.alaxala1.k2.wide.ad.jp (2001:200:0:4800::7800:1) 336.432 ms 336.606 ms 336.184 ms
20 orange.kame.net (2001:200:0:8002:203:47ff:fea5:3085) 334.439 ms 334.58 ms 334.518 ms