Debian etch : connection ipv6 avec une freebox [resolut]

bonjour,

suite a l activation de l ipv6 sur ma freebox, il m est impossible d obtenir celle ci sur mon pc debian.
sur la freebox le routeur (ip4) n est pas activé, c est le debian qui sert de routeur pour le réseau local.
par contre lorsque je branche un pc win sur la freebox j obtiens l ip6 sans problème.
j ai essayé avec wide-dhcp6-client ( debian dhcp6c[7450]: client6_send: transmit failed: Operation not permitted )
j ai activé l autoconf et toute les option qui von bien ( eth0: no IPv6 routers present )
le pc est sous debian etch kernel 2.6.18-5-686

Tu peux ranger dhcp6, la Freebox n’utilise pas DHCPv6 pour allouer des adresses IPv6. Elle envoie des annonces de routeur (RA) utilisées par les postes en autoconfiguration sans état.

Attention : si le forwarding IPv6 esct activé, il me semble que cela désactive l’autoconf. Mais le message “no IPv6 routers present” semble indiquer que l’autoconf est activée.

Dans un premier temps tu peux vérifier avec un outil de capture de trafic (tcpdump, wireshark) si la machine reçoit bien des RA IPv6 sur l’interface connectée à la Freebox.

Si des RA sont reçus mais pas pris en compte, tu peux essayer de passer l’interface en mode promiscuous, apparemment ça peut aider avec certains contrôleurs ethernet. Si ça n’aide pas, il reste la possibilité de configurer l’interface en statique. Si les RA ne sont pas reçus, il y a un gros problème. Soit l’IPv6 n’est pas réellement activé sur la Freebox, soit il y a un problème sur la liaison entre la Freebox et la machine.

A noter que dans l’état actuel (à ma connaissance), il n’est pas possible de router l’IPv6 de Free derrière un routeur. Il faut donc transformer le routeur en routeur-pont : routeur NAT en IPv4 et pont, éventuellement filtrant, en IPv6. Plus d’info là : http://ip6.fr/free-broute/

sur quel port je doit snifer pour voir si je reçois des RA stp ?

sinon l ipv6 est bien activée sur la freebox vu que si je branche un pc windows a la place du serveur je recupere bien l ipv6

RA est un type ICMPv6, il n’y a pas de port. Le plus simple est d’écouter tout le trafic IPv6.

salut,
voila ce que j obtien en snifant l ip6:
je ne sait pas trop a quoi cela correspond
debian# tcpdump -i eth0 ip6
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:22:16.389936 IP6 fe80::207:xxx:xxx:xxx > ip6-allnodes: ICMP6, router advertisement, length 136
11:31:45.749311 IP6 fe80::207:xxx:xxx:xxx > ip6-allnodes: ICMP6, router advertisement, length 136
(après 1h j ai toujours le même message)

Petite vérification, que donne $ /usr/sbin/ifconfig

(bash: /usr/sbin/ifconfig: Aucun fichier ou répertoire de ce type)
j ai utilisé tout simplement ifconfig

eth0 Lien encap:Ethernet HWaddr 00:xx:xx:xx:xx:0B
inet adr:82.xxx.xxx.xxx Bcast:82.xxx.xxx.255 Masque:255.255.255.0
adr inet6: fe80::20c:xxx:xxx:xxx/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:337174 errors:0 dropped:0 overruns:0 frame:0
TX packets:399036 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:224199946 (213.8 MiB) TX bytes:45113614 (43.0 MiB)
Interruption:193

eth1 Lien encap:Ethernet HWaddr 00:xx:xx:xx:xx:85
inet adr:192.168.0.254 Bcast:192.168.0.254 Masque:255.255.255.0
adr inet6: fe80::208::xxx:xxx:xxx/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2035593 errors:0 dropped:0 overruns:0 frame:0
TX packets:2247522 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:473189094 (451.2 MiB) TX bytes:2349526549 (2.1 GiB)
Interruption:209 Adresse de base:0xd400

lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:19027 errors:0 dropped:0 overruns:0 frame:0
TX packets:19027 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:1846039 (1.7 MiB) TX bytes:1846039 (1.7 MiB)

j ai passé la carte réseau en mode promiscuous mais apparemment ça ne change rien et pour la configuration static j ai déjà essayé mais ça ne marche pas non plus (ping6 impossible :connect: Network is unreachable)

Quelle configuration statique ?
Quelle destination du ping6 ?
Normalement ce message d’erreur se produit lorsqu’il n’y a pas de route pour la destination dans la table de routage, donc il y a des chance que cela vienne d’un défaut de configuration.
Qu’est-ce que ça donne avec ::1, qui est une des adresses de la Freebox ?

quesque tu entend par “tonprefixe” ??
sinon j ai essayé diverse configuration de 6to4 en activant ou non l ip6 de la freebox mais rien ne fait
j ai soit ca :
debian:~# traceroute6 6bone.net
traceroute to 6bone.net (2001:5c0:0:2::24) from 2a01:5d8:xxxx:xxxx:xxxx:xxxx:0:1, 30 hops max, 16 byte packets
sendto: Operation not permitted
1 traceroute: wrote 6bone.net 16 chars, ret=-1
*sendto: Operation not permitted
soit :
debian:/home/guillaume# traceroute6 6bone.net
connect: Network is unreachable

L’adresse IPv6 de FREE doit commencer certainement par 2a01:5d8

[code]dmon@etchy $ /sbin/ifconfig
eth0 Lien encap:Ethernet HWaddr 00:11:2F:D4:51:CD
inet adr:192.168.0.5 Bcast:192.168.0.255 Masque:255.255.255.0
adr inet6: 2a01:5d8:xxxx:xxxx:xxx:xxxx:xxxx:xxxx/64 Scope:Global
adr inet6: fe80::211:xxxx:xxxx:xxxx/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3334 errors:0 dropped:0 overruns:0 frame:0
TX packets:3379 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:2719744 (2.5 MiB) TX bytes:522280 (510.0 KiB)
Interruption:177

[/code]
La deuxième adresse est l’adresse lien locale. Elle n’est pas routable, elle est utilisée pour faire des tests sur ton réseau local.
Tu dois avoir deux adresses IPv6.

[quote=“djkenny”]sur la freebox le routeur (ip4) n est pas activé, c est le debian qui sert de routeur pour le réseau local.[/quote]Je me demande s’il ne faut pas que le routeur soit activé…

Bonjour,
je ne sais plus si on t’as donné ces liens:
http://ip6.fr/free-broute/, http://gentoo-wiki.com/IPV6_And_Freebox

aprés configuration comme sur gentoo-wiki.com/IPV6_And_Freebox cela ne marche toujour pas :frowning:
je pense qu a force de tester plein de configuration j ai du blquer quelque chose …
demain réinstallation complète avec lenny

[quote=“djkenny”]debian# tcpdump -i eth0 ip6
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:22:16.389936 IP6 fe80::207:xxx:xxx:xxx > ip6-allnodes: ICMP6, router advertisement, length 136
11:31:45.749311 IP6 fe80::207:xxx:xxx:xxx > ip6-allnodes: ICMP6, router advertisement, length 136[/quote]
Ces paquets sont bien des RA (router advertisement) censés servir à l’autoconfiguration. Donc l’interface les reçoit. Le fait que la pile IPv6 ne les voie pas (“eth0: no IPv6 routers present”) me laisse perplexe. Peut-être un bug du pilote de la carte ethernet.

[quote=“dmon”]L’adresse IPv6 de FREE doit commencer certainement par 2a01:5d8 […]
La deuxième adresse est l’adresse lien locale. Elle n’est pas routable, elle est utilisée pour faire des tests sur ton réseau local.
[…]Je me demande s’il ne faut pas que le routeur soit activé.[/quote]
Free alloue maintenant deux préfixes IPv6, l’ancien commençant par 2a01:5d8 et le nouveau 2a01:e3x (bloc plus grand, qui pourrait permettre d’utiliser un routeur plus facilement mais ce n’est pas encore en place).

Les adresses link local ne servent pas qu’à faire des tests, elles peuvent notamment servir pour la découverte des routeurs et des voisins. Par exemple l’adresse source des RA capturés ci-dessus.

Le mode routeur de la Freebox ne concerne que l’IPv4, pas l’IPv6. Lorsque l’option IPv6 est activée, la Freebox fonctionne forcément en routeur IPv6.

[quote=“djkenny”]quesque tu entend par “tonprefixe” ??
sinon j ai essayé diverse configuration de 6to4 en activant ou non l ip6 de la freebox mais rien ne fait
j ai soit ca :
debian:~# traceroute6 6bone.net
traceroute to 6bone.net (2001:5c0:0:2::24) from 2a01:5d8:xxxx:xxxx:xxxx:xxxx:0:1, 30 hops max, 16 byte packets
sendto: Operation not permitted
1 traceroute: wrote 6bone.net 16 chars, ret=-1
*sendto: Operation not permitted
soit :
debian:/home/guillaume# traceroute6 6bone.net
connect: Network is unreachable[/quote]
Par <tonpréfixe> j’entends le préfixe IPv6 alloué par Free et annoncé par la Freebox dans les RA, qui correspond à la moitié gauche de l’adresse globale lorsque l’autoconfiguration fonctionne et qui est dérivé de l’adresse IPv4 publique de la connexion, l’autre moitié étant dérivée de l’adresse MAC de l’interface.

L’IPv6 de Free n’est pas du 6to4 (adresses commençant par 2002 et tunnel automatique) mais du 6to4rd. Il y a bien une encapsulation similaire (6in4) mais c’est la Freebox qui s’en charge lorsque l’option IPv6 est activée, c’est transparent pour l’utilisateur qui ne voit que de l’IPv6 sur ethernet. Il n’y a pas lieu d’utiliser une interface sit. Certains utilisateurs avancés préfèrent désactiver l’option IPv6 et gérer directement l’encapsulation 6in4, mais ça ne marche pas toujours.

Je demandais par quel moyen et avec quels éléments tu as créé la configuration IPv6 statique : commandes ifconfig et route ou ip addr et route, ou fichier /etc/network/interfaces… Pas besoin de réinstaller si tu n’as rien touché d’autre ; au pire selon le cas il suffit de redémarrer pour annuler les modifications volatiles faites avec ifconfig, route ou ip, ou de supprimer tout ce qui est relatif à l’IPv6 dans /etc/network/interfaces puis de redémarrer le réseau invoke-rc.d networking restart ou l’interface ifdown eth0; ifup eth0

Je ne sais pas ce que cachent les xxxx dans 2a01:5d8:xxxx:xxxx:xxxx:xxxx:0:1, mais si les deux derniers sont à 0 (2a01:5d8:xxxx:xxxx:0:0:0:1 ou 2a01:5d8:xxxx:xxxx::1 en notation compacte, où xxxx:xxxx correspond à l’adresse IPv4 publique de la connexion exprimée en hexadécimal), alors tu prends l’adresse attribuée à la Freebox, et donc ça ne peut pas marcher, chaque équipement devant avoir une adresse différente. Je demandais justement ce que donnait un ping6 ou un traceroute6 vers l’adresse de la Freebox, pour tester la connectivité IPv6 locale. Tu peux aussi faire un ping vers l’adresse multicast ff02::1 (ip6-allnodes) désignant “toutes les machines du réseau local” :

Le message “sendto: Operation not permitted” me fait penser à un filtrage sur la machine, alors que “connect: Network is unreachable” fait plutôt penser à une route par défaut manquante. Qu’affichent ip6tables-save et ip -6 route ?

Note : Pour le moment ce n’est pas la peine de chercher à configurer la machine comme un routeur IPv6, on verra ça plus tard quand l’IPv6 sera fonctionnel.

debian# ping6 -n -I eth0 ip6-allnodes
PING ip6-allnodes(ff02::1) from fe80::20c:6eff:fe9c:9a0b eth0: 56 data bytes
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted

— ip6-allnodes ping statistics —
5 packets transmitted, 0 received, 100% packet loss, time 3999ms

debian# ip6tables-save

Generated by ip6tables-save v1.3.6 on Tue Apr 29 12:44:57 2008

*filter
:INPUT DROP [29:5104]
:FORWARD DROP [124:51047]
:OUTPUT DROP [1550:123924]
COMMIT

Completed on Tue Apr 29 12:44:57 2008

debian# ip -6 route
fe80::/64 dev eth1 metric 256 expires 21334148sec mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth0 metric 256 expires 21334167sec mtu 1500 advmss 1440 hoplimit 4294967295
ff00::/8 dev eth1 metric 256 expires 21334148sec mtu 1500 advmss 1440 hoplimit 4294967295
ff00::/8 dev eth0 metric 256 expires 21334167sec mtu 1500 advmss 1440 hoplimit 4294967295
unreachable default dev lo proto none metric -1 error -101 advmss 1440 hoplimit 255

eth0 Lien encap:Ethernet HWaddr 00:0C:xx:xx:xx:xx
inet adr:82.xxx.xxx.xxx Bcast:82.xxx.xxx.255 Masque:255.255.255.0
adr inet6: fe80::20c:6eff:fe9c:9a0b/64 Scope:Lien
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:39609 errors:0 dropped:0 overruns:0 frame:0
TX packets:43508 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:9559491 (9.1 MiB) TX bytes:6916785 (6.5 MiB)
Interruption:193

Forcément, avec les politiques par défaut de toutes les chaînes de filtrage d’ip6tables à DROP et aucune règle pour accepter quoi que ce soit, ça marche beaucoup moins bien. Ça explique les messages d’erreur “Operation not permitted”, et probablement pourquoi les RA ne sont pas pris en compte.

Dans un premier temps, tu peux tester en réglant les politiques par défaut à ACCEPT pour tout autoriser en entrée et en sortie :

ip6tables -P INPUT ACCEPT ip6tables -P OUTPUT ACCEPT
Il faudrait aussi trouver d’où viennent ces politiqes à DROP, car sauf modification des sources du noyau, toutes les politiques sont à ACCEPT par défaut. Il y a un firewall installé (shorewall…), un script de règles de filtrage ?

j ai shorewall installé

maintenant le ping6 fonctionne :slightly_smiling:
debian:~# ping6 -n -I eth0 ip6-allnodes
PING ip6-allnodes(ff02::1) from fe80::20c:6eff:fe9c:9a0b eth0: 56 data bytes
64 bytes from fe80::20c:6eff:fe9c:9a0b: icmp_seq=1 ttl=64 time=0.044 ms
64 bytes from fe80::207:cbff:fe1b:bb42: icmp_seq=1 ttl=64 time=2.47 ms (DUP!)

Alors il faut configurer shorewall pour autoriser le trafic IPv6.

Edit :
La première réponse vient de la machine elle-même (elle fait partie du réseau), et la seconde vient de la Freebox (on reconnaît l’identificateur 00:07:CB de Freebox dans son adresse link-local).

j obtiens sans problème l ip6 maintenant

eth0 Lien encap:Ethernet HWaddr 00:0C:6E:9C:9A:0B
inet adr:82.xxx.xxx.xxx Bcast:82.xxx.xxx.255 Masque:255.255.255.0
adr inet6: 2a01:e35:xxxx:xxxx:xxx:xxxx:xxxx:xxxx/64 Scope:Global
adr inet6: 2a01:5d8:xxxx:xxxx:xxx:xxxx:xxxx:xxxx/64 Scope:Global
adr inet6: fe80::xxxx:xxxx:xxx:xxxx:xxxx:xxxx/64 Scope:Lien
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:7765 errors:0 dropped:0 overruns:0 frame:0
TX packets:7033 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:3770583 (3.5 MiB) TX bytes:844045 (824.2 KiB)
Interruption:193
je pensais que shorewall ne gérai pas ipv6.
en tous cas merci, je vais jeter un œil du coté de la configuration de shorwall.