====== Déclarer des glue records dans le DNS ======
source : [[https://www.afnic.fr/observatoire-ressources/papier-expert/le-dns-ca-colle-ou-ca-ne-colle-pas/|Le DNS, ça colle ou ça ne colle pas ?]] (fr en) (AFNIC)
===== Quand n'ai-je pas besoin de glue records ? =====
Si tous les serveurs de noms d'un nom de domaine sont déclarés dans des domaines disjoints, les glue records ne sont pas requis. Par exemple, les 3 serveurs de noms de //mondomaine.org// sont : //ns6.autredomaine.org//, //ns7.autredomaine.org// et //sdn3.backupdomain.net//.
===== Quand ai-je besoin de glue records ? =====
Le besoin apparaît lorsqu'un serveur de nom est déclaré sous le domaine qu'il est censé servir. Par exemple, //ns1.mondomaine.org// est un des serveurs de //noms de mondomaine.org//.
===== Que contient un glue record ? =====
Un glue record est l'équivalent d'un enregistrement de type A ou AAAA. Il assigne une IP à un nom.
Sa particularité est d'être déclaré au niveau supérieur.
===== Comment déclarer un glue record pour un nom de domaine de niveau 2 ? =====
Un glue record est nécessairement déclaré à l'entité gérant le nom de domaine supérieur.
Dans le cas d'un nom de domaine de niveau 2, l'entité supérieure est le registre. Par exemple, pour mondomaine.org, ce sera le registre en charge du nom domaine de niveau 1(Aussi appelé TLD, pour top level domain name.)) "org.". Comme pour tout ce qui concerne nos relations avec les registres, on doit passer par notre registrar pour ce nom de domaine.
La déclaration de glue records pour un nom de domaine de niveau 2 se fait donc via l'interface d'administration des noms de domaines proposée par le registrar. Ce passage par le registrar s'impose si vous utilisez les serveurs DNS de ce registrar ou vous utiliser d'autres serveurs DNS, notamment les vôtres((On retrouve là une des ambiguïtés concernant le rôle de registrar. D'un côté, il est incontournable pour échanger avec le registre. De l'autre, il n'est qu'un fournisseur comme un autre pour héberger des serveurs de noms de domaines.))
À la différence d'un enregistrement A ou AAAA, on ne peut définir que le nom et l'adresse IP. Dans l'exemple précédent, on indiquera ; ns1.mondomaine.org et xxx.yyy.zz.ttt pour une ipv4.
===== Afficher les glue records d'un nom de domaine de niveau 2 =====
Les glues records sont enregistrés dans les bases de données des registres. Pour les afficher, il faut donc interroger cette base de données. La technique consiste à demander à un serveur DNS du registre quels sont les glues records associés au domaine concerné.
J'illustre cette opération avec le nom de domaine de la société //Infomaniak//, //infomaniak.ch// qui utilise des glue records.
On commence par récupérer la listes des serveurs DNS du registre concerné. Dans ce cas, il s'agit du registre "ch." :
$ dig ch. NS +short
f.nic.ch.
b.nic.ch.
a.nic.ch.
…
Puis on demande à l'un des serveurs DNS ce qu'il sait des serveur DNS du nom de domaine concerné, par exemple :
$ dig @b.nic.ch. infomaniak.ch NS +short
La réponse est découpée en plusieurs sections. Dans AUTHORITY SECTION on retrouve les noms des serveurs DNS de infomaniak.fr. Les glue records associés sont affichés ADDITIONAL SECTION :
;; AUTHORITY SECTION:
infomaniak.ch. 3600 IN NS ns2.infomaniak.ch.
infomaniak.ch. 3600 IN NS ns1.infomaniak.ch.
;; ADDITIONAL SECTION:
ns1.infomaniak.ch. 3600 IN A 84.16.66.66
ns2.infomaniak.ch. 3600 IN A 84.16.67.66
ns1.infomaniak.ch. 3600 IN AAAA 2001:1600:0:aaaa::a
ns2.infomaniak.ch. 3600 IN AAAA 2001:1600:0:aaaa::b
Les serveurs de noms d'//infomaniak.ch// se trouvant à l'intérieur de //infomaniak.ch//, on comprend la nécessité impérative de déclarer des glue records. Faute de quoi, aucun des nom de domaines appartenant à l'espace de nommage //infomaniak.ch// ne serait joigable!…
===== Comment déclarer un glue record pour un nom de domaine de niveau 3 ou plus ? =====
En cas de délégation, un serveur DNS interne d'un domaine de niveau 3 sera déclaré auprès du niveau 2, que le DNS du niveau 2 soit géré par le registrar du niveau 2 ou pas. Il figure alors comme enregistrement A ou AAAA classique que l'on insère dans le fichier de description de la zone de niveau 2, conjointement aux enregistrements NS. Dans l'exemple que l'on file depuis le début, on aura donc :
dans la zone //mondomaine.org//
sous.mondomaine.org IN NS ns1.sous.mondomaine.org >>> délégation de sous.mondomaine.org
ns1.sous.mondomaine.org IN A >>> glue record du serveur interne sous.mondomaine.org
===== Discussion =====
==== Glue records optionnels ====
Plusieurs raisons peuvent pousser à créer glue records qui ne sont pas indispensables. L'une d'entre elles est de réduire le nombre de requêtes DNS nécessaires lorsque les serveurs de noms d'un domaine de niveau 2 sont dans un autre espace de noms, comme dans le cas vu au début de cette fiche. Les 3 serveurs de noms de //mondomaine.org// sont : //ns6.autredomaine.org//, //ns7.autredomaine.org// et //sdn3.backupdomain.net//.
Si on ajoute des glue records pour //ns6.autredomaine.org//, //ns7.autredomaine.org// et //sdn3.backupdomain.net//, une requête DNS sur //**www.**mondomaine.org// interrogera le registre //org.// pour savoir quels sont les DNS de //mondomaine.org// et connaîtra instantanément les adresses IP des 3 serveurs sans devoir interroger //autredomaine.org// (2 fois) ni //backupdomain.net//.
Ce faisant on court-cuite le DNS en prenant un risque évident. Si //mondomaine.org// ou //backupdomain.net// change les adresses IP de n6, ns7 ou sdn3, les glue records déclarés dans //mondomaine.org// contiendront une information erronée.
Source : [[https://blog.cdnsun.com/dns-glue-records-explained-how-to-check-glue-with-dig/|DNS Glue Records Explained – How to Check Glue with dig]] (en) (cdnsun.com)
==== NS internes ou externes ? ====
=== Ma pratique ===
Pour des raisons de cloisonnement, j'utilise des serveurs externes pour mes noms de domaines de niveau 2.
Un nom de domaine, dédié à des opérations techniques, est directement géré sur les serveurs de mon registrar((Certaines personnes considèrent que c'est une mauvaise pratique car les interfaces d'administration qu'ils proposent ne permettent pas de configurer la zone dans les moindres détails. Dans mon cas, je me limite à des configurations simples. Les configurations complexes sont déportées sur les serveurs DNS externes.)). C'est là que je déclare des serveurs de noms des autres noms de domaines de niveau 2 et eux seuls. Mon cas étant simple, je n'utilise qu'un nom de serveur de noms comme serveur primaire. Soit montech.org le nom de domaine technique hébergé chez mon registrar, il contient la déclaration serveur1.montech.org IN A qui pointe sur un serveur DNS que je contrôle.
Pour les serveurs secondaires, j'utilise d'autres serveurs, dans des espaces de noms disjoints. En pratique, j'utilise les serveurs secondaires proposés par mon hébergeur et ceux d'un service tiers de serveurs secondaires.
Lorsque je délègue un sous-domaine, je me retrouve dans la même position que le registre vis-à-vis de moi avec mes domaine de niveau 2. L'entité qui prends en charge la délégation me transmet les noms de ses DNS. Je les enregistre dans le domaine principal, sous forme d'enregistrements NS du sous-domaine. Si un ou plusieurs DNS sont internes au sous-domaine, je demande à l'entité de me fournir les IP correspondantes que je déclare sous la forme d’enregistrements A.