- Le DNS est utilisé depuis les années 1980, depuis plus de 35 ans, et son architecture est stable, mais il faut souvent beaucoup de temps à de nombreux programmeurs pour déboguer avec assurance des problèmes de base
- La difficulté tient moins à la complexité du DNS lui-même qu’au grand nombre de composants invisibles, comme les caches des résolveurs, les bibliothèques DNS locales et les échanges avec les serveurs de noms faisant autorité
dig est puissant, mais la structure de sa sortie et sa terminologie sont peu familières ; des fonctions comme +norecurse sont utiles, mais l’interprétation des résultats n’est pas intuitive
- Des pièges courants comme le negative caching, l’historique de l’absence de prise en charge du DNS sur TCP par
musl, les résolveurs qui ignorent les TTL, la mise en cache permanente par nginx ou ndots dans Kubernetes sont difficiles à découvrir tant que quelqu’un ne vous les a pas expliqués
- Pour les personnes qui manipulent rarement le DNS, les aide-mémoire peuvent être utiles, et les problèmes sur lesquels il est intimidant d’expérimenter peuvent être abordés dans des environnements de test sûrs comme Mess With DNS
Le DNS, une technologie ancienne mais toujours difficile
- Le DNS est utilisé depuis plus de 35 ans, depuis l’époque de la RFC 1034 ; il est présent sur tous les sites web d’Internet et, à bien des égards, fonctionne encore comme il y a 30 ans
- Pourtant, déboguer des problèmes de base comme « le domaine est configuré correctement mais ne se résout pas » ou « les résultats DNS de
dig et du navigateur sont différents » peut prendre beaucoup de temps
- Les personnes qui trouvent le DNS difficile se bloquent généralement sur les points suivants
- elles ne se sentent pas à l’aise même avec une simple modification DNS pour un site web
- elles se trompent sur le fait que les enregistrements DNS ne sont pas poussés, mais tirés (pull)
- elles connaissent les concepts de base, mais se perdent dans les comportements de détail comme le negative caching ou les différences entre les requêtes DNS faites par
dig et par un navigateur
Résolveurs et serveurs de noms invisibles
- Le flux de base lorsqu’un ordinateur envoie une requête DNS paraît simple
- l’ordinateur envoie une requête à un serveur appelé resolver
- le resolver vérifie son cache et, si nécessaire, interroge à nouveau un authoritative nameserver
- Dans le débogage réel, plusieurs éléments importants ne sont pas visibles par défaut
- il est difficile de savoir ce que contient le cache du resolver
- il n’est pas évident de savoir quelle bibliothèque DNS locale traite la requête
- il peut s’agir de libc
getaddrinfo, glibc, musl, de l’implémentation d’Apple, du code DNS propre au navigateur ou d’une implémentation personnalisée distincte
- chaque implémentation diffère légèrement par sa configuration, son mode de cache et les fonctionnalités prises en charge
- le DNS de
musl ne prenait pas en charge TCP jusqu’au début 2023
- les échanges entre le resolver et l’authoritative nameserver ne sont pas visibles
- si l’on pouvait suivre quel authoritative nameserver a été interrogé et quelle a été sa réponse, beaucoup de problèmes DNS seraient plus faciles à comprendre
Rendre visible le système caché
- Le simple fait d’indiquer quels sont les composants cachés aide beaucoup à l’apprentissage
- si l’on ignore que, même sur un seul ordinateur, plusieurs bibliothèques DNS peuvent être utilisées selon le contexte, on peut rester longtemps dans la confusion
- Mess With DNS tente une expérimentation en mode fishbowl, qui montre des parties normalement invisibles
- il permet de voir une partie des échanges entre le resolver et l’authoritative nameserver
- Une autre approche consiste à inclure des informations de débogage dans les réponses DNS
- il existe déjà une fonctionnalité appelée Extended DNS Errors, ou EDE
- les outils ajoutent progressivement la prise en charge d’EDE
Les indices fournis par Extended DNS Errors
- Extended DNS Errors est une nouvelle façon pour les serveurs DNS de fournir des informations de débogage supplémentaires dans leurs réponses
- Si l’on interroge le domaine inexistant
xjwudh.com avec dig @8.8.8.8 xjwudh.com, on peut obtenir une erreur supplémentaire comme celle-ci
; EDE: 12 (NSEC Missing): (Invalid denial of existence of xjwudh.com/a)
- Cet exemple semble lié à DNSSEC ; l’important est que la réponse contient également un message de débogage supplémentaire
- Pour voir l’exemple ci-dessus, il fallait une version plus récente de
dig
dig, puissant mais difficile à lire
dig est utile pour inspecter l’état interne du DNS
- Avec
dig +norecurse, on peut vérifier quels enregistrements un resolver DNS donné a dans son cache
8.8.8.8 semble renvoyer SERVFAIL si la réponse n’est pas en cache
google.com étant en cache, il renvoie NOERROR et un enregistrement A
homestarrunner.com n’étant pas en cache, il renvoie SERVFAIL, mais cela ne signifie pas qu’il n’existe pas d’enregistrement DNS
- La sortie de
dig est difficile à lire quand on n’y est pas habitué
- des intitulés comme
->>HEADER<<-, flags:, OPT PSEUDOSECTION:, QUESTION SECTION:, ANSWER SECTION: sont peu familiers
- les sauts de ligne et les espaces entre sections ne semblent pas toujours cohérents
- dans
MSG SIZE rcvd: 47, il est difficile de savoir s’il existe d’autres champs que rcvd
- il faut savoir que lorsqu’il est indiqué qu’il y a 1 enregistrement dans la section
ADDITIONAL, c’est en réalité l’OPT PSEUDOSECTION qui joue ce rôle
- La sortie de
dig ressemble moins à un format conçu intentionnellement dès le départ qu’à un script qui a grandi organiquement au fil du temps
Comment rendre les outils DNS plus lisibles
- Une documentation expliquant la sortie de
dig elle-même est utile
- how to use dig explique la structure de la sortie de
dig et comment rendre la sortie par défaut plus courte
- On peut aussi créer des outils plus conviviaux
- il existe des alternatives comme dog, doggo et DNS lookup tool
- toutefois, quand on a besoin de fonctions avancées comme
+norecurse, il peut être préférable de tout faire avec dig
- remplacer l’étendue des fonctionnalités de
dig est un gros chantier
- On pourrait aussi ajouter à la sortie de
dig une option comme +human, qui présenterait les mêmes informations de façon plus structurée
- on pourrait séparer clairement l’en-tête, la requête, la réponse, les sections supplémentaires, le temps, le serveur, le protocole et la taille de la réponse
- l’approche ne consiste pas à réduire la quantité d’informations, mais à présenter les mêmes informations de manière plus lisible
- Les versions récentes de
dig disposent d’un format de sortie +yaml
- il peut sembler plus clair, mais il peut aussi être si verbeux que même une réponse DNS simple ne tient pas à l’écran
Des pièges DNS fréquents mais difficiles à apprendre
- Le DNS comporte des pièges relativement courants, mais difficiles à connaître tant que quelqu’un ne vous les a pas signalés
-
negative caching
- si l’on visite un domaine qui n’a pas encore d’enregistrement DNS, l’état « absent » de cet enregistrement peut être mis en cache
- si cet état reste en cache pendant plusieurs heures, cela devient très pénible
-
Différences d’implémentation de getaddrinfo
musl ne prenait pas en charge le DNS sur TCP jusqu’au début 2023
-
Résolveurs qui ignorent les TTL
- même si l’on définit le TTL d’un enregistrement DNS à 5 minutes, certains resolvers peuvent l’ignorer et le conserver en cache beaucoup plus longtemps, par exemple 24 heures
-
Problème de configuration nginx
- si nginx est mal configuré, il peut mettre des enregistrements DNS en cache indéfiniment
-
ndots dans Kubernetes
- ndots peut ralentir le DNS de Kubernetes
Partager et documenter les pièges
- Les connaissances sur les pièges étranges sont difficiles à acquérir, et il est inefficace que les gens doivent redécouvrir sans cesse les mêmes problèmes
- Lorsqu’on explique un sujet, il est très utile de signaler également les pièges courants
- Il est aussi utile que la communauté rassemble les pièges courants
- pour Bash, shellcheck est très utile comme recueil de pièges Bash
- Documenter les pièges DNS est également difficile, car les problèmes rencontrés varient selon les utilisateurs
- une personne qui configure le DNS de son domaine personnel une fois tous les trois ans et une personne qui exploite le DNS d’un domaine à fort trafic peuvent rencontrer des pièges différents
Utilisation rare et difficulté à expérimenter
- Beaucoup de gens manipulent le DNS très rarement
- si l’on ne touche au DNS qu’une fois tous les trois ans, il est naturel que ce soit difficile à apprendre
- un aide-mémoire sur des sujets comme « la procédure de changement de serveurs de noms » peut être utile
- Le DNS est aussi une technologie sur laquelle on hésite à expérimenter, par crainte de casser son propre domaine
- Mess With DNS a été créé pour réduire cette difficulté à expérimenter
1 commentaires
Avis sur Hacker News
Je ne suis pas d’accord avec cet article. DNS est simplement quelque chose que peu de gens prennent le temps d’apprendre ; en réalité, je ne pense pas que ce soit difficile à apprendre
Ce qu’il y a de bien avec DNS, c’est que le système expose son état interne en réponse aux requêtes. Il est facile d’examiner un serveur DNS pour une zone connue et de comprendre son fonctionnement, et des outils gratuits comme
digsont largement disponiblesJ’ai toujours été surpris que, tout au long de ma carrière, les gens avec qui j’ai travaillé se souviennent surtout de mes connaissances en DNS, parce que je n’ai pas l’impression de savoir quelque chose de mystérieux ou de spécial. DNS est très bien standardisé, les implémentations courantes de serveurs et de clients suivent strictement les standards, et il est facile de l’observer avec des outils gratuits. Cela demande des efforts et du temps, mais ce n’est pas vraiment difficile
Avant, je pensais que « non, en fait c’est facile ! » était une forme d’encouragement face à quelqu’un qui disait que c’était difficile à apprendre. J’aime DNS, et je pense aussi qu’il est étonnamment simple à bien des égards. Par exemple, sur https://implement-dns.wizardzines.com, je montre comment implémenter de zéro un résolveur DNS jouet en Python avec du code simple
Mais avec le temps, j’ai appris que « non, c’est facile à apprendre ! » est souvent perçu moins comme un encouragement du type « tu peux y arriver ! » que comme « ce n’est pas difficile, c’est toi qui es idiot ». Quand on a été embrouillé pendant des années par un sujet, entendre « en fait, c’est facile » n’aide pas beaucoup
Donc maintenant, j’évite de le dire, et je consacre beaucoup d’efforts à comprendre pourquoi certaines choses paraissent difficiles aux gens et à réduire ces obstacles
BIND fait très bien son travail, mais ses fichiers de configuration ne sont pas terribles, et son manuel est long, aride et parfois inutilement complexe.
digest puissant, mais il abrège tout comme à l’époque des terminaux en 80 colonnes. Pour déboguer des problèmes DNS, Wireshark a parfois été un meilleur outil quedigSi l’on faisait utiliser PowerDNS ou d’autres serveurs DNS modernes, je pense qu’il serait beaucoup plus facile de configurer un serveur DNS fonctionnel. Je ne connais pas vraiment de bon client DNS moderne, donc j’ai fini par m’habituer à
dig. Comme quelqu’un qui utilise le flag--colorde la commandeip, j’aimerais que des outils commedigproposent une sortie plus moderne. Je mettrai les flags de ligne de commande dans des alias, alors ajoutez juste la fonctionnalitéSérieusement,
MSG SIZE rcvd: 71n’avait pas besoin d’être abrégé.flags: qr rd raaurait aussi pu être écrit en toutes lettres. Je ne vois pas non plus ce que les points-virgules en début de ligne sont censés communiquer ; au contraire, ça ne fait qu’ajouter de la confusionIl n’est pas étonnant que les gens soient perdus en apprenant DNS avec les ressources disponibles
Si cela demande simplement « un peu d’efforts et de temps », combien d’efforts et de temps exactement ? Plusieurs personnes dans ce fil disent l’avoir appris en implémentant un serveur, expliquent qu’il leur a fallu des mois pour comprendre, puis répètent qu’« une fois qu’on a compris, c’est assez facile ». Dans ce cas, ne peut-on pas s’accorder à dire que, pour quelque chose d’aussi répandu et conceptuellement simple, c’est effectivement difficile à apprendre ?
Par exemple, quelles sont les règles selon lesquelles un navigateur met en cache et expire les entrées DNS ? Ces règles sont-elles cohérentes d’un navigateur à l’autre ?
Je pense que l’article met le doigt sur l’essentiel. DNS en lui-même n’est pas difficile, mais apprendre le DNS du monde réel l’est. C’est parce qu’une grande partie de ce qui se passe entre la requête que l’on voulait faire et le résultat attendu est cachée
Autrefois, la connexion Internet de base, c’était une interface, une passerelle, un fournisseur de serveurs DNS. Aujourd’hui, on peut être connecté simultanément à plusieurs WAN, comme LTE et Wi-Fi, et l’utilisateur a du mal à savoir quel chemin de résolution a réellement été utilisé. On ne sait pas clairement si c’était le navigateur, l’interface standard de la bibliothèque C du système, un résolveur local ou récursif intermédiaire, s’il y a un cache local, ni si des options spéciales sont ajoutées par défaut
Même quand tout fonctionne, on ne peut pas croire aveuglément que la requête et la réponse d’une application ont suivi le même chemin que celles d’une autre. Trois navigateurs peuvent chacun utiliser une méthode différente, le système d’exploitation peut encore fonctionner autrement, et mDNS peut ajouter une cinquième option
Il y a une blague selon laquelle il n’existe que trois problèmes difficiles en informatique : l’invalidation du cache et nommer les choses
Et DNS est un système de cache pour les noms des choses
https://reddit.com/comments/15c2ul2/comment/jtty9dy
Il est géré à l’échelle mondiale (IANA), hiérarchique, fédéré, et facile à modifier
Le DNS fait partie de ces technologies où il existe un décalage entre l’impression de simplicité qu’elles donnent et la difficulté qui apparaît réellement
Nous utilisons le DNS tous les jours, et cela paraît très simple. Le vocabulaire DNS du quotidien, ce sont les noms de domaine, les requêtes, les adresses IP. Ce vocabulaire est exposé tel quel dans le navigateur, et cette exposition nous amène à construire un modèle mental de son fonctionnement
Mais à l’intérieur, il existe un langage complètement différent, avec des zones, des résolveurs, des autorités déléguées, et ce drôle de point derrière les domaines de premier niveau
Par exemple, nous savons tous les deux ce que signifie
host.example.co.uk, mais sans point final, le résolveur peut essayer de rechercherhost.example.co.uk.example.co.ukAvec la configuration par défaut de Windows, dans ce cas, il peut essayer
host.example.co.uk.example.co,host.example.co.uk.example, puis à nouveauhost.example.co.uk.example, et enfinhost.example.co.uk., et obtenir un résultat. Cela dit, je n’ai jamais vu Windows faire réellement la première tentative, et ce comportement semble avoir été conçu pour gérer des environnements de grandes entreprises où le DNS doit composer avec des Active Directory fédérés monstrueuxLes navigateurs modernes ont de fortes chances de filer en douce, sans le consentement de l’utilisateur, vers des serveurs DNS over HTTPS (DoH) et de fréquenter toutes sortes d’interlocuteurs louches. Les requêtes DNS sont des données fondamentales, et les FAI ont toujours aimé voir où vont leurs utilisateurs. Les éditeurs de systèmes d’exploitation peuvent évidemment envoyer de la « télémétrie ». Google ne possède pas le poste de travail, mais possède le navigateur ; il est donc dans son intérêt de pousser l’utilisateur à utiliser ses serveurs DNS « sûrs » plutôt que le DNS qu’il a configuré. À cause de ces combines, le dépannage informatique est devenu bien plus palpitant qu’avant
Il ne faut pas trop s’inquiéter du point final. De toute façon, il est presque certain que vous n’utilisez pas le serveur DNS que vous pensez utiliser. Je comprends pourquoi DoH a été créé, et certains utilisateurs grand public ont des raisons de l’utiliser. Par exemple, si une personne qui n’est pas spécialiste IT utilise un point d’accès Wi-Fi malveillant, le fait que le navigateur revienne en sécurité vers sa base pour effectuer les requêtes DNS offre une certaine protection. Mais savoir si un éditeur de navigateur peut piétiner les choix de sécurité de l’utilisateur sur son endpoint est une autre question
Le DNS est bien plus complexe qu’une simple recherche d’adresse. Aujourd’hui, c’est une question d’argent — et en réalité, cela l’est depuis environ 2000. Il existe désormais beaucoup de très grandes entreprises extrêmement obstinées qui veulent décider qui tirera profit de l’utilisateur
Le DNS lui-même est simple. La distribution d’informations indépendamment d’une organisation est vraiment délicate
Il y a quelques années, je me suis rendu compte que je ne comprenais le DNS que par morceaux. Je connaissais
dig(1), BIND, et les concepts de niveau CS101 sur le fonctionnement de la résolution DNS récursive, mais il me manquait les connaissances pratiques nécessaires pour concevoir et implémenter un système non trivial, ou pour déboguer un système qui ne fonctionne pasJ’ai donc lu “DNS and BIND” presque du début à la fin, et j’ai aussi configuré de vrais serveurs BIND pour quelques sites web personnels peu critiques. Ce n’était pas difficile, mais cela demandait un investissement en temps assez important. BIND n’est pas forcément la bonne réponse pour beaucoup de cas d’usage, mais comme de nombreux concepts et termes du DNS viennent encore de BIND, cela a été très utile
Je pense que les livres sont sous-estimés pour apprendre ce genre de choses. Les ressources que l’on trouve sur le web sont généralement soit de la théorie de haut niveau, par exemple des schémas de requêtes récursives, soit des contenus orientés tâche, comme la manière d’effectuer une requête récursive avec
dig, soit des ressources de bas niveau, comme lire le code source pour comprendre la politique de retry du client DNS local. Pour comprendre chaque pièce, comment elles s’emboîtent, ce qu’elles cherchent à accomplir, jusqu’aux détails d’implémentation comme l’emplacement des caches, il y a peu de substituts à l’approche globale que l’on trouve souvent dans les livres. Sur le web, cela existe aussi, mais c’est rareToute personne travaillant dans l’IT gagnerait à avoir des connaissances pratiques du débogage des problèmes DNS
Le DNS a historiquement été un vecteur de vulnérabilités de sécurité importantes, et il y a de fortes chances que cela continue. Ces vulnérabilités ouvrent des chemins d’attaque vers presque tous les autres protocoles, comme SMTP. Même le système des autorités de certification utilisé par HTTPS dépend largement d’un protocole qui n’est pas sûr par défaut. Si une banque achetait un certificat DV au lieu d’un OV, le remarqueriez-vous ? Probablement pas
Donc, pour les personnes peu intéressées, le fait que le DNS paraisse difficile à apprendre n’est pas forcément une mauvaise chose. On voit encore des gens développer des fonctionnalités liées au DNS sans prendre le temps de comprendre correctement l’histoire de choses comme la randomisation des ports, l’empoisonnement de cache ou AXFR
Pour faire une promotion éhontée de mon side project : l’article disait qu’il serait pratique d’avoir un mode « debug » pour la résolution DNS, et cette fonction existe dans l’interface web de ComfyDNS :3
https://comfydns.com/
L’image en haut où il est écrit
TRACE google.com A INmontre cette fonctionnalitéComfyDNS est aussi un projet né d’un besoin personnel. J’en avais assez de modifier à la main des fichiers de zone bind9, et j’étais curieux de comprendre comment fonctionne le DNS. Je connaissais les grandes lignes, mais pas les détails, alors j’ai implémenté les RFC « depuis le début ». J’ai utilisé netty, mais pas de bibliothèque DNS. C’était assez amusant
Désolé si le site ne tient pas la charge et tombe. C’est une application Rails qui tourne sur le niveau gratuit d’Oracle Cloud
La blague que j’ai toujours entendue, c’est que le DNS combine deux des problèmes les plus difficiles de l’informatique : nommer les choses et invalider les caches
Ce n’est pas le type difficile d’invalidation de cache. En fait, il est rarement nécessaire d’« invalider » quoi que ce soit
Côté serveur aussi, il est parfaitement acceptable de servir pendant un moment un mélange de l’ancienne et de la nouvelle version
J’ai l’impression de voir encore ce genre d’article. Dans les années 1990, Internet était plus petit et les ordinateurs étaient bien plus lents et moins puissants, mais nous apprenions tout ça très facilement
À l’époque, pour un FAI, des choses comme DNS, LDAP, SMTP, IMAP étaient vraiment la base, et les gens lisaient réellement des documents officiels comme les RFC. Si l’on voulait exploiter un serveur sur Internet, il fallait apprendre, et avec un petit investissement en temps — c’est-à-dire du temps payé au travail — on pouvait y arriver
La génération actuelle de développeurs et de DevOps manque de patience ou d’initiative, attend qu’on lui mâche le travail, et copie-colle n’importe quoi depuis StackOverflow et des blogs sans grande valeur. Plutôt que d’apprendre les fondations sur lesquelles Internet a été construit, elle prend l’outil wrapper à la mode de la semaine, suit des instructions de blog médiocres, puis crie à l’injustice quand tout s’effondre et que l’entreprise perd beaucoup d’argent. Tout ça parce qu’elle n’a pas pris le temps d’apprendre les bases de ce qui se passe réellement sur Internet
J’ai vu ça encore et encore. En réalité, ce n’est pas si difficile. Il suffit de faire ses devoirs
Ce n’est pas difficile. DNS est l’une des rares technologies qui n’a pas beaucoup changé, et son fonctionnement est assez intuitif
digpeut être un peu déroutant. Il a plus de fonctionnalités que le vieuxnslookup, mais il est moins intuitif. À noter quenslookupfonctionne encore très bienÀ mon avis, l’une des raisons pour lesquelles les jeunes du secteur s’y perdent avec DNS et les protocoles fondamentaux, c’est qu’aujourd’hui trop de choses “fonctionnent tout simplement”
Par exemple, de nos jours, un routeur Wi-Fi “fonctionne tout simplement” dès qu’on le sort de la boîte. Au début des années 2000, pour configurer ce genre de chose, il fallait un ingénieur réseau qui comprenne DNS, IP, Ethernet, RFC1918, les vrais protocoles de routage et beaucoup d’autres choses, et qui sache très bien pourquoi il configurait tout ainsi
Si vous trouvez que DNS côté client est déroutant, essayez de configurer BIND ;-)
/râlerie de vieux barbu grisonnant
J’aurais dû faire en sorte que le serveur DHCP du WRT54G distribue l’IP fixe du contrôleur de domaine comme serveur DNS pour que la résolution de noms fonctionne correctement, mais j’ai tout fait tourner avec de simples adresses IP et des entrées dans les fichiers hosts. J’avais aussi configuré l’enregistrement MX du domaine sur l’IP WAN du routeur, sans enregistrement PTR. Avec le recul, c’est un miracle que la livraison des e-mails ait été aussi fluide
Quelques années plus tard, j’ai compris comment DNS fonctionnait réellement, et au début de la vingtaine, j’ai hérité d’un intranet d’entreprise qui utilisait BIND comme serveur de noms pour toutes les zones de domaines externes de l’entreprise. En migrant cette configuration vers un VPS pour améliorer la fiabilité, j’ai énormément appris sur les transferts de zone, les SOA, etc. Je suis reconnaissant pour cette expérience, mais aujourd’hui presque tout est pris en charge à notre place, ce qui en fait une activité à faible valeur. Pour le meilleur ou pour le pire, “l’IT” n’est pas valorisée de la même manière que “l’ingénierie logicielle”
Je n’oublierai jamais la mise à jour de Firefox qui a activé DNS-over-HTTPS par défaut. Nous distribuions nos serveurs DNS internes aux postes via DHCP, et soudain les messages “mes e-mails ont disparu ! tout est cassé !” ont afflué. Le webmail interne et les serveurs web de l’intranet semblaient avoir tout simplement disparu
Il nous a fallu beaucoup plus de temps que nécessaire pour comprendre ce qui se passait. En partie parce qu’on se disait : “c’est DNS, pourquoi ça casserait soudainement ?”. Mais il est assez clair que Mozilla n’avait pas anticipé ce problème pourtant facile à prévoir
Par exemple, je fais une requête pour
thing.behind.cdn.itet j’obtiens une réponse, tandis qu’une autre personne obtient une réponse différente pour le même nom. En soi, c’est assez évident, mais ça se complique quand quelqu’un demande de façon raisonnable : “pouvez-vous ouvrir un trou dans le pare-feu pourthing.behind.cdn.it?”Certains serveurs transmettent les requêtes, d’autres délèguent, certains font la résolution à votre place et d’autres non. Il y a aussi la magie des domaines de recherche côté client, et l’incertitude sur le fait que le client ou la bibliothèque de résolution interne respecte ou non le TTL
Il existe aussi une quantité innombrable de types d’enregistrements, et parfois le serveur vous demande de vous reconnecter en TCP plutôt qu’en UDP
DNS est donc assez complexe. Il donne l’illusion d’être simple parce qu’il fonctionne très bien et que la plupart des parties délicates sont abstraites derrière des choses qui “fonctionnent généralement tout simplement”
Je suis surpris de voir à quel point cela m’a rendu plus sûr de moi dans ma compréhension de haut niveau du réseau, y compris DNS et ce qu’il y a en dessous, comme
ethtoolet les trames EthernetJ’aime comprendre les choses depuis la base, au point d’avoir choisi le génie électrique plutôt que l’informatique à l’université, donc ce n’est peut-être pas si surprenant
Le principe de DNS n’est pas si difficile dès lors qu’on comprend qu’il est récursif. Mais si l’on veut le configurer en tenant compte de la sécurité, disposer de la bonne infrastructure et régler jusqu’au moindre détail, il y a beaucoup à apprendre. Si l’on met BIND de côté, ce n’est pas si difficile