Basculer sur ipv6

Tags: #<Tag:0x00007fc9e0e44c68> #<Tag:0x00007fc9e0e44ad8>

Bonjour,

Ç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 :

PING ipv6.google.com(par21s11-in-x0e.1e100.net (2a00:1450:4007:80c::200e)) 56 data bytes
^C
--- ipv6.google.com ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2034ms

Bonne nouvelle : le DNS fonctionne.
Mauvaise nouvelle : les paquets sont tous perdus.
Je suis bloqué à cette étape.
Toute aide est la bienvenue.

Précision : je souhaite basculer sur ipv6 pour pouvoir jouer sur le site loopsofzen.uk.

Bonjour,

Avant de bricoler ta configuration réseau, assure-toi que ton opérateur mobile fournit de l’IPv6.

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.

Voilà (c’est une idée).

Merci pour vos interventions précises et précieuses.

Ah ok, merci, ça paraît logique. Après modification, le ping évolue un peu mais il reste encore quelque chose qui coince.

PING ipv6.google.com(par10s33-in-x0e.1e100.net (2a00:1450:4007:816::200e)) 56 data bytes
From 2002:25a9:172d::1 (2002:25a9:172d::1) icmp_seq=1 Destination unreachable: Address unreachable
From 2002:25a9:172d::1 (2002:25a9:172d::1) icmp_seq=2 Destination unreachable: Address unreachable
^C
--- ipv6.google.com ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1002ms

Je ne l’ai pas mentionné mais j’avais essayé ça aussi sans succès.

Regardes tes paramètres réseaux sur ton smartphone ; reçois-tu de l’adressage IPv6 par le biais de ton fournisseur de datas ?

J’ai basculé récemment le mobile en ipv6 donc la réponse est oui.

OK. Je ne savais pas que c’était possible, mais apparemment avec certaines limitations.
cf : Tutoriel pour activer IPv6 sur Android

Donc, à-priori si ton OS gère, que ton FAI propose, tu devrais pouvoir faire activement ton partage de connexion en IPv6, aussi.

Mais, personnellement, je passerais par le biais d’un tunnelbroker disponible depuis le laptop ; cf, ma réponse plus haut.

Quelle modification ? On peut voir la sortie de

ip addr
ip -6 route

C’est-à-dire ? Quelles étaient les sorties des deux commandes ci-dessus ?

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

Alors, pour la configuration SLAAC

ping: connect: Le réseau n'est pas accessible

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 3543sec preferred_lft 3543sec
    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

fe80::/64 dev usb0 proto kernel metric 256 pref medium

Oh oh, en remplaçant l’IP publique par l’IP locale 192.168.0.1 de la passerelle, j’obtiens un résultat semblable.

L’adresse IP publique de quoi ?

De mon réseau local donc du mobile.

Je ne suis pas sûr de comprendre. Quel réseau local ? Je pensais que le téléphone mobile était connecté à internet en cellulaire.

Oui c’est le cas et il partage la connexion avec l’ordi portable, c’est ça que j’appelle mon réseau local.

« 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.

C’est la clé : comment savoir que le routeur à un serveur dhcp ipv6 compatible…
En tout cas, merci beaucoup @PascalHambourg pour les éclaircissements.