Je suis en train d'apprendre comment Windows effectue la résolution des noms et j'ai besoin de savoir comment Android le fait pour qu'une application fonctionne sur mon ordinateur portable Windows et depuis mon téléphone Android.
En m'inspirant d'un post sur superuser.com, la méthode de résolution normale sur Windows est la suivante:
- Le client vérifie si le nom interrogé est le sien.
- Le client recherche ensuite un fichier Hosts local, une liste d'adresses IP et de noms stockée sur l'ordinateur local.
- Les serveurs du système de noms de domaine (DNS) sont interrogés.
- Si le nom n'est toujours pas résolu, la séquence de résolution des noms NetBIOS est utilisée en tant que solution de secours. Cet ordre peut être modifié en configurant le type de nœud NetBIOS du client.
J'utilise dnsmasq
pour fournir une résolution DNS locale afin de pouvoir mapper mes propres noms d'hôtes fictifs à des adresses IP locales du réseau local. Cela me permet également de voir, dans le fichier journal de dnsmasq
, la requête DNS de l'appareil vers le serveur DNS. Lorsque j'ai testé le site web depuis mon téléphone, j'aurais juré qu'en utilisant l'adresse URL http://monsite
dans un navigateur Chrome sur le téléphone, le site web se chargeait et le journal de dnsmasq
montrait exactement ce nom non qualifié - monsite
- se résolvant vers l'adresse IP locale souhaitée du serveur web.
Cependant, cela remonte à il y a quelques jours, maintenant le journal de dnsmasq
montre toujours que le suffixe DNS du serveur DHCP [home] a été ajouté. Donc, je vois monsite.home
dans le journal de dnsmasq
même si j'ai utilisé l'adresse URL http://monsite
dans le navigateur Chrome du téléphone. Je n'ai rien changé avec le téléphone. Il est toujours configuré pour obtenir son adresse IP via DHCP, en pratique elle ne change jamais.
Donc, mes questions sont les suivantes:
- Comment le système d'exploitation Android résout-il les noms de domaine en adresses IP - quels sont les éléments qu'il essaie et dans quel ordre?
- Des retours sur la raison pour laquelle Android semblait résoudre le nom d'hôte non qualifié dans mon navigateur initialement sans qu'aucun suffixe DNS ne soit ajouté. Mais maintenant le suffixe
[home]
est toujours ajouté comme indiqué dans le fichier journal dednsmasq
.
Mise à jour 1
Après quelques tests supplémentaires, j'ai de nouveau vu le scénario où la page web http://mesfilms
se charge depuis le téléphone Android mais le journal de dnsmasq
semble montrer que la résolution du nom se produit sur un nom de domaine non qualifié (nom d'hôte simple: mesfilms
).
Les x
sont mon adresse IP publique de routeur censurée.
Est-ce que quelqu'un peut expliquer ce que dnsmasq
fait ici?
À partir de 02:07:22, il semble initialement tenter de résoudre le nom mesfilms.home
. Cela a du sens car l'IP du téléphone est allouée de manière dynamique par le serveur DHCP et je peux voir sur mon ordinateur portable que le serveur DHCP envoie le suffixe DNS [home]
en tant que suffixe DNS spécifique à la connexion, donc il doit faire la même chose pour le téléphone, je suppose?
La raison pour laquelle cela échoue ici est que je n'ai pas d'entrée pour mesfilms.home
dans dnsmasq.conf
- je l'ai commentée. J'AI une entrée d'adresse pour mesfilms
dans dnsmasq.conf
et c'est pourquoi il peut résoudre mesfilms
en une adresse IP.
Est-ce une différence de résolution de noms sur Android par rapport à Windows - que finalement le système d'exploitation Android ESSAYERA de résoudre un nom de domaine non qualifié (nom d'hôte simple) en une adresse IP?