Comprendre le mécanisme de search de domaine DNS

La requête spécifique qui m'a amené à essayer de décoller ce process était:

Une search de DNS pour un sous-domaine, tel que assets.example.com , sera plus rapide si le domaine parent, example.com , a déjà été résolu?

Par ma compréhension (naïve), le process de base pour la traduction d'un nom de domaine dans une adresse IP est assez simple. Les adresses des treize servers racine, qui savent comment résoudre des domaines de premier niveau comme com et net , sont effectivement codées en dur dans le matériel réseau. Dans le cas d'une search pour example.com , notre server DNS local, probablement notre routeur, interroge l'un de ces servers racine pour le domaine en question et est référencé au server de noms de niveau supérieur pour com . Il request alors à ce server de noms s'il sait comment résoudre un example . Si c'est le cas, nous avons terminé, sinon, nous sums référés à un autre server. Certains servers de ce process peuvent être en cache, de sorte que, pendant un certain time, notre routeur local connaîtra à l'improviste où chercher un example et un example .

Pourtant, je ne l'ai pas vraiment compris.

  • Je sais qu'il existe d'autres servers DNS intermédiaires, tels que ceux fournis par les FAI. À quel point sont-ils interrogés?
  • Si le server de noms TLD avec lequel nous sums référés ne sait pas comment résoudre un example , est-il juste de dire que c'est la fin de la ligne: example.com ne peut-il pas être résolu?
  • Lorsque je enregistre un domaine et configure des servers de noms, est-ce que je suis en train d'éditer un groupe d'loggings NS pour mon sous-domaine dans la database utilisée par les servers de noms pour ce TLD? Le registraire tient-il lui-même des servers de noms "proxy"?

Wikipedia explique que certains servers DNS combinent la caching avec une implémentation de requête récursive qui leur permet de diffuser des cache et de résoudre de manière fiable les erreurs de cache. Je ne comprends pas comment ces servers sont interrogés ou comment (même largement) l'algorithm de résolution fonctionne. Tous les servers de noms de domaine autorisés, par exemple, des miroirs exacts, ou un résolveur doit-il essayer chacun à tour de rôle?

En regardant ma question initiale, je pourrais prendre un coucou très spéculatif sur «non», en supposant que les loggings A sont tous deux sur le même server de noms. Je serais très reconnaissant à tous ceux qui pourraient réduire mon ignorance!

Une search de DNS pour un sous-domaine, tel que assets.example.com, sera plus rapide si le domaine parent, example.com, a déjà été résolu?

En supposant qu'il existe un server de caching sur scène, oui. C'est parce que pour find un logging A pour n'importe quoi dans example.com., Les servers de noms pour example.com. doit être connu. Lorsque la request de assets.example.com. est créé les servers de noms pour example.com. devrait déjà être mis en cache, et donc la seule requête est pour assets.example.com. elle-même.

Je sais qu'il existe d'autres servers DNS intermédiaires, tels que ceux fournis par les FAI. À quel point sont-ils interrogés?

Ce sont généralement des servers de noms en cache ou récursifs. Ceux-ci font du travail acharné en votre nom (les multiples requests de traverser l'tree), puis cachez le résultat pour accélérer les requêtes ultérieures pour le même nom.

Tous les servers de noms de domaine autorisés, par exemple, des miroirs exacts, ou un résolveur doit-il essayer chacun à tour de rôle?

Oui, ils contiennent la même information. Le résolveur doit simplement find celui qui fonctionne réellement.

Si le server de noms TLD avec lequel nous sums référés ne sait pas comment résoudre un exemple, est-il juste de dire que c'est la fin de la ligne: exemple.com ne peut-il pas être résolu?

Si le .com. Le server de noms répond et dit example.com. n'existe pas, alors le résultat est que le nom n'existe pas. Si le .com. nameserver ne répond pas à la requête, le résolveur doit essayer un .com différent. nom du server.

Lorsque je enregistre un domaine et configure des servers de noms, est-ce que je suis en train d'éditer un groupe d'loggings NS pour mon sous-domaine dans la database utilisée par les servers de noms pour ce TLD? Le registraire tient-il lui-même des servers de noms "proxy"?

Correct. Lorsque vous enregistrez le domaine, vous fournissez des loggings NS (et des loggings A si vous avez besoin de colle) pour être inséré dans le domaine parent. Le registraire n'exerce pas nécessairement ces servers de noms, mais dispose d'un mécanisme pour modifier la database de ces servers de noms.

Très probablement, votre ordinateur est configuré pour utiliser un server DNS sur votre FAI. C'est probablement un server de noms de caching. Ce que cela veut dire, c'est qu'il cache les coups (et dans certains cas, manque) pendant un certain time (généralement le TTL). Si vous interrogez ce server de noms pour quelque chose dans son cache, vous avez terminé. Il vous dira la propriété intellectuelle.

Si c'est une erreur, il interroge le server de nom de niveau supérieur (com, net, org, etc …) pour le domaine. Dans cet exemple, il requestra à COM où find EXAMPLE.COM et COM répondra avec l'adresse du server de noms autorisé (ip) pour le domaine EXAMPLE.COM. Il requestra alors à ce server de noms pour ce qu'est l'IP pour EXAMPLE.COM et il indiquera au server de noms de caching qui vous le dira (c'est un logging A). En outre, il le mettra en cache si quelqu'un d'autre le request plus tard.

Si vous searchz ASSETS.EXAMPLE.COM, la même chose se produit, mais lorsque vous trouvez le server de noms autorisé pour EXAMPLE.COM, vous pouvez le requestr directement pour ASSETS.EXAMPLE.COM et il répondra avec un logging A (ip), CNAME ou NS (il existe d'autres types comme AAAA pour ipv6, MX pour le courrier … mais cela suffira pour cet exemple). Si cela vous donne un logging A, vous avez terminé. Vous avez une adresse IP. Si cela vous donne une NS, cela signifie que cet autre server est autorisé pour ASSETS.EXAMPLE.COM et que vous devriez requestr à ce gars quelle est la propriété intellectuelle.

CNAME est un autre type qui commence tout ce process et n'est pas disponible sur les loggings apex (comme example.com) de toute façon.