HtmlToText
mon blog autres trucs accueil seulement les rfc seulement les fiches de lecture ève recherche dans ce blog : ce blog n'a d'autre prétention que de me permettre de mettre à la disposition de tous des petits textes que j'écris. on y parle surtout d'informatique mais d'autres sujets apparaissent parfois. [dns] cname à l'apex d'une zone, pourquoi et comment ? première rédaction de cet article le 23 septembre 2018 un problème courant que rencontrent les techniciens débutant en dns est « je voudrais mettre un enregistrement cname - un alias - à l' apex de ma zone dns mais l'ordinateur ne veut pas ». pourquoi est-ce refusé ? comment l'autoriser sans casser tout l'internet ? la discussion dure depuis de nombreuses années et, je vous révèle tout de suite la conclusion de cet article, n'est pas près de se terminer. commençons par une description concrète du problème. alice, technicienne dns , a été informée par le webmestre de sa boîte (nommée michu sa et ayant le nom de domaine michu.example ) que le serveur web de ladite boîte est désormais hébergé par un cdn nommé example et qu'il est accessible par le nom michu-sa.example-cdn.net . et le webmestre voudrait que les visiteurs puissent juste taper https://michu.example/ . alice connait assez le dns pour savoir qu'il y a des alias (un type d'enregistrement nommé cname) et elle met donc dans le fichier de zone : michu.example. in cname michu-sa.example-cdn.net. ça devrait contenter tout le monde, pense-t-elle. mais, si elle connait assez le dns pour savoir que le type d'enregistrement cname existe, elle ne le connait pas assez pour avoir lu le rfc 1034 , section 3.6.2 : if a cname rr is present at a node [a node in the domain name tree, so a domain name], no other data should be present . et c'est le drame, au chargement de la zone, nsd dit error: /etc/nsd/michu.example:19: cname and other data at the same name . si alice avait utilisé bind , elle aurait eu une erreur similaire : dns_master_load: michu.example:19: michu.example: cname and other data . l'enregistrement cname rentre en conflit avec les enregistrements qu'on trouve à l' apex d'une zone, comme le soa et les ns. la solution simple ne marche donc pas. www.michu.example. in cname michu-sa.example-cdn.net. aurait marché mais le service communication voudrait un url sans www devant. au passage, pourquoi est-ce que c'est interdit de mettre un alias et d'autres données au même nom ? la principale raison est qu'un enregistrement cname est censé créer un alias, un synonyme. si on pouvait écrire : michu.example. in aaaa 2001:db8::ff michu.example. in cname michu-sa.example-cdn.net. et qu'un client dns demande l'enregistrement de type aaaa pour michu.example , que faudrait-il lui répondre ? 2001:db8::ff , ou bien l'adresse ipv6 de michu-sa.example-cdn.net ? avec l'interdiction de coexistence du cname et d'autres données, le problème est réglé. bon, se dit alice, ça ne marche pas, mais on peut essayer autrement : cherchons l'adresse ip correspondant au nom michu-sa.example-cdn.net et mettons-là dans le fichier de zone : % dig +short aaaa michu-sa.example-cdn.net 2001:db8:1000:21::21:4 michu.example. in aaaa 2001:db8:1000:21::21:4 cette fois, ça marche, mais il y a plusieurs inconvénients : le principal est que le cdn peut changer l'adresse ip à tout moment, sans prévenir. au minimum, il faudra donc retester l'adresse, et changer la zone. à la main, aucune chance que ce soit fait assez souvent (il faut respecter le ttl du cdn). il faudra donc l'automatiser. des cdn renvoient une adresse ip différente selon l'adresse ip source du client dns, afin de diriger vers un serveur « proche ». l'astuce d'alice casse ce service. bref, que faire ? plusieurs sociétés ont développé une solution non-standard ne marchant que chez eux . l' ietf , dont c'est le rôle de développer des solutions standards, s'est penchée à de nombreuses reprises sur la question, et d'innombrables brouillons ont été produits, sans qu'un consensus ne se dégage. déjà, il n'y a pas d'accord clair sur le cahier des charges. (le scénario d'usage présenté plus haut n'est qu'un des scénarios possibles.) je ne vais pas présenter tous ces brouillons, juste dégager les pistes de solution. mais, comme vous le verrez, aucune n'est parfaite. une des contraintes fortes est qu'on sait bien que, quelle que soit la décision prise par l'ietf, le nouveau logiciel, mettant en œuvre la décision, ne sera pas déployé immédiatement : il faudra des années, voire davantage, pour qu'une part significative des clients et serveurs dns soient à jour. il faudra donc, non seulement modifier les règles du dns, mais également spécifier ce qu'il faudra faire pendant la très longue période de transition. (et, s'il vous plait, pas de yakafokon du genre « les gens n'ont qu'à mettre à jour leur logiciel plus souvent ». cela n'arrivera pas.) voici maintenant les diverses pistes envisagées. avant de dire « ah, celle-ci a l'air cool », prudence. rappelez-vous qu'il existe de nombreux cas (minimisation de la requête - rfc 7816 - ou pas, résolveur chaud - ayant déjà des informations dans sa mémoire - ou pas), et que la période de transition va être très longue, période pendant laquelle il faut que cela marche pour les anciens et pour les modernes. première idée, décider qu'il n'y a pas de problème. on laisse le dns comme il est et le problème doit être entièrement traité côté avitaillement (le type qui édite le fichier de zone, ou bien le logiciel qui le produit). c'est l'idée de base du hack utilisé par alice plus haut. cela peut se faire avec un script shell du genre : #!/bin/sh zonefile=$1 while : do target=$(awk '/alias/ {print $3}' $zonefile) ttl=$(dig a $target | awk "/^$target.*in\s+a/ {print \$2}" | head -n 1) ip=$(dig a $target | awk "/^$target.*in\s+a/ {print \$5}" | head -n 1) sed "s/in.*alias.*/ in $ttl a $ip/" $zonefile > ${zonefile}-patched echo "patched with ip address $ip" sleep $ttl done (en production, on voudra probablement quelque chose de plus propre, notamment en gestion d'erreurs, et de traitement des réponses multiples.) comme indiqué plus haut, cela marche, mais cela ne permet pas de tirer profit des caractéristiques du cdn, par exemple de la réponse différente selon le client. on peut voir cette variation de la réponse, en demandant à cent sondes ripe atlas : % blaeu-resolve --requested 100 --type a www.elysee.fr [208.178.167.254 4.26.226.126 4.27.28.126 8.27.4.254] : 1 occurrences [8.254.28.126 8.254.45.254 8.27.151.253 8.27.226.126] : 1 occurrences [205.128.73.126 206.33.35.125 209.84.20.126 8.27.243.253] : 1 occurrences [207.123.56.252 4.26.228.254 4.27.28.126 8.26.223.254] : 1 occurrences [205.128.90.126 209.84.9.126 8.254.214.254 8.254.94.254] : 1 occurrences [8.254.164.126 8.254.209.126 8.254.210.126 8.27.9.254] : 1 occurrences [4.23.62.126 4.26.227.126 8.254.173.254 8.254.95.126] : 1 occurrences [207.123.39.254 8.254.196.126 8.254.219.254 8.27.5.254] : 2 occurrences [120.28.42.254 36.66.10.126] : 1 occurrences ... deuxième idée, relâcher la contrainte donnée dans le rfc 1034 et autoriser le cname à l'apex (note au passage : beaucoup de gens sont nuls en arbrologie et appellent incorrectement l'apex la racine, ce qui a un tout autre sens dans le dns). l'expérience a été tentée par ondřej surý au hackathon de l'ietf à montréal en juillet 2018 (les résultats complets de l'équipe dns sont dans cette présentation ). une fois le serveur faisant autorité modifié pour autoriser le cname à l'apex, on l'interroge via un résolveur. en gros, dans la plupart des cas, le cname masque les autres enregistrements (ce qui est logique puisqu'il est censé être seul). ainsi, si on a : michu.example. in cname foobar.example.com. in mx 10 gimmedata.gafa.example. un client dns qui demande le mx de michu.example pour lui envoyer du courrier récupérera le mx de foobar.example.com , le vrai mx étant masqué. plus ennuyeux est le fait que cela dépend : dans certains cas, un autre enregistrement que celui du cname est récupéré. on ne
Informations Whois
Whois est un protocole qui permet d'accéder aux informations d'enregistrement.Vous pouvez atteindre quand le site Web a été enregistré, quand il va expirer, quelles sont les coordonnées du site avec les informations suivantes. En un mot, il comprend ces informations;
Domain Name: BORTZMEYER.ORG
Registry Domain ID: D107312751-LROR
Registrar WHOIS Server:
Registrar URL: http://www.gandi.net
Updated Date: 2017-07-29T06:41:29Z
Creation Date: 2005-08-29T09:32:04Z
Registry Expiry Date: 2018-08-29T09:32:04Z
Registrar Registration Expiration Date:
Registrar: Gandi SAS
Registrar IANA ID: 81
Registrar Abuse Contact Email:
Registrar Abuse Contact Phone:
Reseller:
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Registry Registrant ID: C15603507-LROR
Registrant Name: Stephane Bortzmeyer
Registrant Organization: Stephane Bortzmeyer
Registrant Street: 127, rue Brancion
Registrant City: Paris
Registrant State/Province:
Registrant Postal Code: 75015
Registrant Country: FR
Registrant Phone: +33.153689765
Registrant Phone Ext:
Registrant Fax:
Registrant Fax Ext:
Registrant Email: bortzmeyer+gandi@internatif.org
Registry Admin ID: C7429253-LROR
Admin Name: StAphane Bortzmeyer
Admin Organization:
Admin Street: Whois Protege / Obfuscated whois
Admin Street: Gandi, 15 place de la Nation
Admin City: Paris
Admin State/Province:
Admin Postal Code: 75011
Admin Country: FR
Admin Phone: +33.170377666
Admin Phone Ext:
Admin Fax: +33.143730576
Admin Fax Ext:
Admin Email: a4edcf75406c24a90c3b19d3711c0de1-18767@contact.gandi.net
Registry Tech ID: C6122580-LROR
Tech Name: Service Technique
Tech Organization: GANDI SARL
Tech Street: 63 - 65 Boulevard Massena
Tech City: Paris
Tech State/Province:
Tech Postal Code: 75013
Tech Country: FR
Tech Phone: +33.143737851
Tech Phone Ext:
Tech Fax:
Tech Fax Ext:
Tech Email: support@gandi.net
Name Server: NS.EU.ORG
Name Server: NS2.ABSOLIGHT.NET
Name Server: NS3.ABSOLIGHT.NET
Name Server: NS3.BORTZMEYER.ORG
Name Server: NS1.BORTZMEYER.ORG
Name Server: NS2.BORTZMEYER.ORG
DNSSEC: signedDelegation
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of WHOIS database: 2017-09-03T02:13:15Z <<<
For more information on Whois status codes, please visit https://icann.org/epp
Access to Public Interest Registry WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the Public Interest Registry registry database. The data in this record is provided by Public Interest Registry for informational purposes only, and Public Interest Registry does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to: (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Public Interest Registry reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
REFERRER http://www.pir.org/
REGISTRAR Public Interest Registry
SERVERS
SERVER org.whois-servers.net
ARGS bortzmeyer.org
PORT 43
TYPE domain
RegrInfo
DOMAIN
NAME bortzmeyer.org
HANDLE D107312751-LROR
CREATED 2005-08-29
STATUS
clientTransferProhibited https://icann.org/epp#clientTransferProhibited
NSERVER
NS.EU.ORG 93.19.226.142
NS2.ABSOLIGHT.NET 178.20.71.2
NS3.ABSOLIGHT.NET 217.174.201.33
NS3.BORTZMEYER.ORG 217.70.190.232
NS1.BORTZMEYER.ORG 204.62.14.153
NS2.BORTZMEYER.ORG 172.104.125.43
OWNER
HANDLE C15603507-LROR
NAME Stephane Bortzmeyer
ORGANIZATION Stephane Bortzmeyer
ADDRESS
STREET
127, rue Brancion
CITY Paris
PCODE 75015
COUNTRY FR
PHONE +33.153689765
EMAIL bortzmeyer+gandi@internatif.org
ADMIN
HANDLE C7429253-LROR
NAME StAphane Bortzmeyer
ADDRESS
STREET
Whois Protege / Obfuscated whois
Gandi, 15 place de la Nation
CITY Paris
PCODE 75011
COUNTRY FR
PHONE +33.170377666
EMAIL a4edcf75406c24a90c3b19d3711c0de1-18767@contact.gandi.net
TECH
HANDLE C6122580-LROR
NAME Service Technique
ORGANIZATION GANDI SARL
ADDRESS
STREET
63 - 65 Boulevard Massena
CITY Paris
PCODE 75013
COUNTRY FR
PHONE +33.143737851
EMAIL support@gandi.net
REGISTERED yes
Go to top