• L’article de Otto, Sanchez, Rula et Bustamante, « Content delivery and the natural evolution of the DNS  », est consacré à l’interaction entre les CDN et les résolveurs DNS publics. Un CDN (Content Delivery Network, comme Akamai) utilise souvent le DNS pour router une requête vers le serveur le plus proche de l’utilisateur. Par exemple, si la question DNS vient de France, on donne l’adresse IP d’un serveur en Europe. Les résolveurs DNS publics (comme Google DNS ou OpenDNS) cassent ce schéma puisque l’adresse du client, vue par les serveurs du CDN, n’a pas forcément de rapport avec la localisation du vrai client (le navigateur Web). Cet article est le premier à mesurer cet effet (on lit souvent des phrases comme « l’utilisation du résolveur DNS public XXX permet d’avoir des résolutions DNS plus rapides » mais c’est de la pure publicité, peu de gens ont mesuré).

    http://aqualab.cs.northwestern.edu/component/attachments/download/235

    Si on est pressé, on peut sauter à la figure 7 de l’article : elle montre le délai de réponse HTTP pour deux CDN connus, Akamai et Limelight, avec utilisation d’un résolveur DNS local à la machine, celle des résolveurs DNS du FAI, celle de Google Public DNS et celle d’OpenDNS. On voit deux groupes : résolveur local et résolveur du FAI pour le premier et un groupe plus lent, les deux autres (les résolveurs publics). Bref, pour accéder à un CDN, le résolveur public est une mauvaise idée.

    En utilisant l’extension DNS - pas encore normalisée - ECS (EDNS Client Subnet), que gèrent Google Public DNS et Akamai, les résultats sont meilleurs, sans toutefois rattrapper les valeurs obtenues avec le résolveur du FAI (figure 11). ECS est pour l’instant peu déployé et, comme toute extension DNS, posera peut-être des problèmes avec des « middleboxes » programmées avec les pieds.

    Enfin, les auteurs proposent une solution à eux, qui nécessite de modifier le comportement du résolveur local (mais pas celui du résolveur public, ou du CDN, contrairement à ECS) : le résolveur local s’adresse aux résolveurs publics par défaut, mais interroge directement les serveurs DNS du CDN lorsqu’il détecte un CDN. (L’article est plutôt vague sur comment reconnaître un CDN, ils proposent une liste manuelle ou bien l’heuristique « s’il y a un CNAME, c’est un CDN ».) Leur solution a été mise en oeuvre dans le relais DNS namehelp.

    #DNS #HTTP #OpenDNS #GooglePublicDNS #CDN