Ça fait bien plusieurs années que j’aurais dû creuser la question mais bon, c’est maintenant.
Le système est devuan 4 chimaera basée sur debian 11 bullseye.
L’ordinateur portable est connecté au mobile qui partage le réseau en usb.
Pour ipv4, j’ai donc ceci dans /etc/network/interfaces :
iface usb0 inet dhcp
J’ai tenté de basculer le tout sur ipv6 en remplaçant inet par inet6 :
iface usb0 inet6 dhcp
Mauvaise idée, dhclient lance indéfiniment des requêtes mais sans succès.
Après lecture de DebianIPv6 - Debian Wiki, j’ajoute l’interface 6to4 :
iface 6to4 inet6 6to4
local 192.168.0.11
192.168.0.11 étant l’adresse locale ipv4 obtenue.
Je teste avec ping :
Et juste après, assure-toi que ton téléphone gère bien le partage de connexion en IPv6 aussi.
Pour l’IPv6, il ne suffit pas que l’ordinateur dise qu’il veut de l’IPv6 pour en avoir, il faut aussi que ce qui lui fourni l’accès au réseau accepte l’IPv6.
Sinon, si tu n’as pas de traducteur de IPv6 vers IPv4 sur ton routeur (ou ailleurs dans ton accès à Internet), il faut rester en double couche (IPv4 et IPv6), sinon, tu ne peux plus déclarer tes impôts en France…
Il est encore trop tôt pour « basculer » en IPv6 seul. L’usage courant est encore d’utiliser à la fois IPv4 et IPv6 en double pile.
DHCPv6 n’est pas toujours disponible. On utilise le plus souvent l’autoconfiguration sans état ou « SLAAC » (méthode « auto »). Normalement l’autoconfiguration est activée par défaut sur les interfaces ethernet et assimilées (wifi, USB) donc il n’y a rien de particulier à configurer si le routeur (ici le smartphone) annonce un préfixe IPv6.
On ne peut pas faire de 6to4 avec une adresse IPv4 privée. Cela ne fonctionne qu’avec une adresse IPv4 publique.
C’est le DNS IPv4, qui sert indifféremment à résoudre des noms en adresses IPv4 et IPv6.
Il me semble avoir lu ou entendu que c’était désormais une obligation de l’ARCEP en France.
Et ce n’est pas gagné. Soit il fait du NAT comme en IPv4 (horreur, l’un des objectifs d’IPv6 était de pouvoir fournir suffisamment d’adresses pour ne plus avoir besoin de NAT), soit l’opérateur mobile lui fournit un préfixe IPv6 (via délégation DHCPv6-PD) qu’il peut distribuer sur son partage de connexion.
C’est exact l’obtention des fréquences 5G a été conditionnée à la fourniture d’IPv6 à tous les clients. Mais chez certains opérateurs (free mobile au moins) il faut explicitement activer cette option.
Donc tu fais du partage de connexion - USB thetering - par l’USB de ton smartphone vers le portable.
Comme tu as fait - apparemment - le choix de ne pas utiliser Network Manager, qui aurait géré cela tout seul - c’est donc les outils ifup et ifdown qui gère ton réseau.
Essaye plutôt :
iface usb0 inet dhcp
iface usb0 inet6 auto
En effet, dhcp ne dessert pas le protocole IPv6 ; c’est à minima l’usage de la méthode ‹ auto › qui rend ce service en IPv6. Cela signifie que le smartphone doit être capable d’assigner des adresses IPv6, quelque soit le service utilisé, RA ou stateless. En sus, il est nécessaire aussi que ton fournisseur de data fasse de l’IPv6, bien sûr.
Utilisez la méthode 6to4 te complique les choses. Le mieux serait de créer un tel pont avec un service de tunnelbroker, tel HE.net et d’avoir ton client localement, ainsi tu ne serais plus dépendant du bon vouloir de ton fournisseur de datas du smartphone.
Le service de tunnelbroker va te permettre de faire un pont 6to4 bien plus efficacement, en te donnant les informations adéquates, du moins pour HE.
Virer 192.168.0.11 locale et remplacer par l’IP publique.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:16:d4:c7:f4:50 brd ff:ff:ff:ff:ff:ff
3: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether d6:1b:07:2c:9c:4f brd ff:ff:ff:ff:ff:ff
inet 192.168.0.11/24 brd 192.168.0.255 scope global dynamic usb0
valid_lft 2819sec preferred_lft 2819sec
inet6 fe80::d41b:7ff:fe2c:9c4f/64 scope link
valid_lft forever preferred_lft forever
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
6: 6to4@NONE: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
link/sit 37.169.23.45 brd 0.0.0.0
inet6 2002:25a9:172d::1/16 scope global
valid_lft forever preferred_lft forever
inet6 ::37.169.23.45/96 scope global
valid_lft forever preferred_lft forever
::/96 dev 6to4 proto kernel metric 256 pref medium
2002::/16 dev 6to4 proto kernel metric 256 pref medium
2000::/3 via ::192.88.99.1 dev 6to4 metric 1024 pref medium
fe80::/64 dev usb0 proto kernel metric 256 pref medium
« Réseau local » limité à la liaison USB donc.
Je ne suis pas sûr que 6to4 fonctionne quand l’adresse IPv4 déclarée comme locale n’appartient pas à la machine. En plus il n’est pas sûr qu’un routeur anycast 6to4 soit joignable depuis la connexion mobile, et pour établir une connexion bidirectionnelle il faut aussi qu’un routeur 6to4 soig joignable par la machine de destination. En tout cas déclarer l’adresse privée du téléphone ne rime à rien.
Concernant l’autoconfiguration, le téléphone ne semble pas diffuser d’annonces de routeur IPv6 car l’interface usb0 n’a que l’adresse link-local.