Pour mettre à jour mon smartphone sous GrapheneOS et ses logiciels, j'émets un point d'accès Wi-Fi ponctuel avec hostapd sous GNU/Linux.
J'me dis que ça serait sympa d'avoir IPv6 sur ce point d'accès.
Android ne met pas en œuvre DHCPv6 (source).
Le logiciel clé pour faire de la l'autoconfiguration IPv6 sur GNU/Linux est radvd. Je l'ai déjà utilisé ici.
Points d'attention :
radvd émet des messages ICMPv6 Router Advertisement (RA) uniquement si : l'interface réseau est up, son état est up (= câble branché ou hostapd lancé), et qu'aucun gestionnaire de réseau (comme NM) n'a la main dessus ;
radvd ne prévient pas quand sa configuration est incorrecte (hors syntaxe), il se contente de ne rien faire 😑️. Si aucun RA n'est émis au démarrage, aucun ne le sera par la suite, quelle que soit la valeur des paramètres (Min|Max)RtrAdvInterval. Au démarrage, radvd émet une salve plus rapide que MaxRtrAdvInterval ;
Il faut forcément préciser MaxRtrAdvInterval.
MinRtrAdvInterval ;AdvHomeAgentFlag on;.radvd émet plusieurs RA espacés quand il reçoit un message Router Solicitation (RS). Mais Android (recherche mises à jour, NTP, etc.) et les applis commencent à échanger avec l'extérieur, en IPv4, bien avant l'émission du RS. Donc s'il on veut maximiser les échanges au-dessus d'IPv6, on peut configurer radvd pour émettre un RA toutes les quelques secondes ;
Un RA contient la durée de vie d'un routeur qui permet de préciser l'utilité de son émetteur en tant que routeur par défaut des préfixes IPv6 annoncés. Android >= 15 refuse une durée inférieure à 180 secs (source), donc il faut forcément préciser AdvDefaultLifetime >= 180 si tu tripotes un peu trop MaxRtrAdvInterval (car AdvDefaultLifetime vaut 3 * AdvDefaultLifetime) ;
adb shell ip -6 route show table all ‒ abrégé ip -6 r s t all), donc : adb shell ping6 shaarli.guiguishow.info sortira en erreur « connect: Network is unreachable ».Android ne fonctionne pas sur un réseau uniquement IPv6 et dénué de tout mécanisme de transition puisque il ne permet pas de saisir une adresse IPv6 comme serveur DNS récursif ;
La messagerie Signal fonctionne sur un réseau purement IPv6 😮️ ;
Mes applis qui accèdent à Internet (màj GrapheneOS, assistance GPS GrapheneOS, magasin d'applis GrapheneOS, magasin d'applis sous licence libre F-Droid, le GPS avec cartes hors-ligne OSMAnd~, et la messagerie Signal ‒ grâce à son recours à AWS) le font en IPv6. 😎️
Ma configuration radvd :
interface wlp61s0
{
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 5;
AdvDefaultLifetime 300;
prefix 3fff:0042::/64
{
};
RDNSS 2001:910:800::40
{
};
RDNSS 2a00:5881:8100:1000::3
{
};
};
(Le réseau 3fff:0::/20 est réservé pour la documentation. RDNSS permet de préciser les serveurs DNS récursifs, ici de FDN et d'ARN.)