Résumé
J'utilise mon téléphone (Android 8.1) comme point d'accès. Le nom qualifié des clients est résolu pour les autres clients, mais pas pour le téléphone lui-même.
Détails
Mon ordinateur portable (Linux Mint 19) est configuré pour se connecter aux réseaux WiFi en utilisant le protocole DHCP. Lorsqu'il le fait, il enregistre son nom qualifié laptop
dans le DNS du point d'accès. Ceci est vérifié dans plusieurs circonstances (par exemple, lorsque l'ordinateur portable et d'autres appareils sont connectés au réseau WiFi de ma box DSL domestique, ils peuvent pinguer l'ordinateur portable en utilisant son nom).
Lorsque l'ordinateur portable est connecté au point d'accès du téléphone, son nom qualifié semble également être enregistré. Je teste cela en exécutant host laptop 192.168.43.1
sur l'ordinateur portable lui-même, où 192.168.43.1
est l'IP du téléphone dans le réseau du point d'accès. La commande renvoie 192.168.43.44
qui est l'IP de l'ordinateur portable (elle est indiquée dans les informations de connexion de l'ordinateur portable).
Cependant, les applications et les commandes exécutées sur le téléphone ne peuvent pas utiliser le nom qualifié. Deux tests :
-
l'application DAVx ne peut pas atteindre Radicale qui fonctionne sur l'ordinateur portable à
http://laptop:5232/
(alors qu'il peut àhttp://192.168.43.44:5232/
). Le journal indique :java.net.UnknownHostException: Unable to resolve host "laptop": No address associated with hostname at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:111) <snip>
-
sous
adb shell
(téléphone connecté en mode débogage via usb), la commandeping laptop
renvoie une erreur "hôte inconnu".
Questions
S'agit-il d'un bogue ou d'une "fonctionnalité" ? Peut-on le corriger sans rooter le téléphone ? (J'ai besoin que DAVx puisse se connecter à Radicale avec la même URL quel que soit le réseau WiFi utilisé par le téléphone et l'ordinateur portable, d'où la nécessité d'utiliser un nom qualifié qui sera résolu en toute circonstance à l'IP de l'ordinateur portable).
1 votes
C'est un comportement attendu. Les autres hôtes connectés au hotspot du téléphone utilisent l'adresse IP du téléphone comme serveur DNS. Les requêtes DNS reçues sont résolues par DNSMASQ exécuté sur le téléphone. Mais les requêtes DNS générées localement sur le téléphone ne passent pas par DNSMASQ, mais utilisent directement le serveur DNS configuré en amont (après avoir vérifié
hosts
). Détails dans Comment le système d'exploitation Android assure-t-il la résolution des noms DNS ? y Comment envoyer un ping à un hôte du réseau local par son nom d'hôte ?0 votes
Je n'ai donc d'autre choix que de modifier le fichier
hosts
dossier ? Est-ce possible sans rooter le téléphone ?1 votes
Pas nécessairement. Il existe d'autres options. Voir ma réponse à Android.stackexchange.com/a/219924/218526