Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

Blog de Stéphane Bortzmeyer  -  RFC 7553: The Uniform Resource Identifier (URI) DNS Resource Record

 -  Juin 2015 - 

Ce RFC est la documentation d'un nouveau type d'enregistrement DNS, le type URI qui permet de publier des URI et donc d'avoir un mécanisme pour faire correspondre un nom de domaine à un URI.

Petit rappel, les URI sont normalisés dans le RFC 3986 et permettent sous une forme simple et compacte d'identifier une ressource sur le Web et, très fréquemment, fournissent les moyens d'y accéder. Traditionnellement, quand on voulait mettre des URI dans le DNS et permettre de les retrouver, on utilisait les NAPTR des RFC 3401 et RFC 3404. Notre nouveau RFC critique cette solution en notant qu'une requête NAPTR récupère tous les NAPTR qu'il faut trier ensuite, pas uniquement ceux liés à un seul service (le triage est d'autant plus compliqué qu'il n'existe toujours aucune bibliothèque en logiciel libre pour manipuler des NAPTR). En effet, le nom du service fait partie des données du NAPTR, pas du nom de domaine (le seul critère de sélection dans une requête DNS, avec le type). La solution de notre RFC 7553 permet cette sélection en mettant le type de service souhaité dans le nom de domaine. En outre, l'URI est trivial à extraire, il est le dernier composant des données de l'enregistrement, et ne nécessite pas de traitement ultérieur (on est loin de la complexité des NAPTR, même si les S-NAPTR du RFC 3958 l'ont un tout petit peu simplifiée).

Donc, dès que vous avez besoin d'une correspondance simple entre un nom de domaine et un URL, allez-y, ce type d'enregistrement est fait pour vous. À quoi ressemble-t-il (section 4 du RFC) ? Le format de présentation en texte met dans les données (la partie droite de l'enregistrement) une priorité, suivie d'un poids et de l'URI (nommé Target). Cela donne comme exemple :

_ftp._tcp.example.net.    IN URI 10 1 "ftp://ftp1.example.com/public"
Priorité et poids ont la même sémantique que dans le RFC 2782 (voir plus loin).

Le nom de domaine suit certaines conventions (section 4.1), notamment d'indiquer le service demandé (pris dans le registre IANA qu'avait créé le RFC 6335) et le protocole utilisé, précédés d'un tiret bas.

L'enregistrement URI a le type 256 et figure à ce titre dans le registre IANA des types DNS.

On peut avoir plusieurs URI pour un même nom de domaine (donc un même service). La sélection se fait en examinant d'abord la priorité, puis le poids. La priorité est absolue. On contacte d'abord les URI ayant la priorité la meilleure (c'est le chiffre le plus bas, attention), et, seulement si cela échoue, on tente les autres. Par contre, à priorité équivalente, la sélection selon le poids est probabiliste. Cela permet de faire de la répartition de charge dans le DNS. Si j'écris deux URI avec la même priorité mais des poids différents :

_ftp._tcp.example.net.    IN URI 10 2 "ftp://ftp1.example.net/public"
                          IN URI 10 1 "ftp://ftp4.example.com/mirrors/example.net/"
Alors, l'URI ftp://ftp1.example.net/public a deux fois plus de chances d'être sélectionné, il recevra donc les deux tiers des requêtes. Si j'avais mis des priorités différentes :
_ftp._tcp.example.net.    IN URI 10 1 "ftp://ftp1.example.net/public"
                          IN URI 20 1 "ftp://ftp4.example.com/mirrors/example.net/"
Alors, ftp://ftp4.example.com/mirrors/example.net/ ne sera sélectionné que s'il n'y a pas le choix, uniquement si ftp1.example.net est en panne.

Et sur le réseau, comment est encodé ce nouveau type (section 4.5) ? C'est simple, deux octets pour la priorité, deux pour le poids et l'URI lui-même, sous forme de texte.

Les enregistrements URI permettent d'indiquer la même chose qu'un SRV (RFC 2782), à savoir un nom de serveur et un port, mais ils permettent en outre d'exprimer d'autres choses (comme le répertoire dans les exemples FTP plus haut). En contre partie, il faut pouvoir traiter les URI, les analyser, mais c'est aujourd'hui une tâche bien connue, pour laquelle on a déjà du code. Ainsi, ces deux informations sont presque équivalentes (si on sait que le protocole à utiliser est HTTP) :

_http._tcp    IN  SRV   0  1 8081  www.example.net.
_http._tcp    IN  URI   0  1 "http://www.example.net:8081"
Mais les enregistrements URI sont plus puissants, ceci ne pourrait pas être exprimé en SRV :
_http._tcp    IN  URI   0  1 "http://www.example.net:8081/actu/2015"
Les futurs protocoles pourraient donc n'utiliser que URI, et plus du tout SRV. (À l'heure actuelle, certains protocoles utilisent une combinaison de SRV + un enregistrement TXT, pour résoudre ce problème : l'enregistrement URI est plus élégant.)

Je ne peux pas m'empêcher de noter que bien des problèmes du Web auraient été évités si, dès le début, Tim Berners-Lee avait pensé à découpler le nom de domaine et le serveur, en utilisant les SRV. Actuellement, le nom dans l'URL doit être un nom de machine (il doit obéir aux règles syntaxiques restrictives sur les noms de machine, et il doit avoir une adresse IP). Cela oblige à mettre une adresse à l'apex (le sommet) de la zone DNS (si on veut que http://example.com/ marche, il faut une adresse IP mise au nom example.com, ce qui est compliqué à réaliser proprement). Si le Web utilisait les SRV ou, aujourd'hui, les enregistrements URI, on ne serait pas obligé de polluer l'apex de la zone avec des adresses IP, on aurait séparé le nom court (example.com), dans l'URL, et celui du serveur (qui ne serait pas visible à l'utilisateur ordinaire).

Bien que ce type d'enregistrement ait déjà plusieurs années (le RFC 6895 permet d'enregistrer un type d'enregistrement DNS sans avoir de RFC), certains logiciels ne le gèrent pas encore. Voici une version un peu ancienne d'OpenDNSSEC (je n'ai pas testé avec les versions plus récentes) :

ods-signerd: [adapter] error parsing RR at line 28 (Syntax error, could not parse the RR's rdata):   IN URI 0 1 "http://www.bortzmeyer.org/"
Aïe. Et pareil avec le signeur DNSSEC d'une version un peu vieille de BIND :
dnssec-signzone: warning: sources.org:23: unknown RR type 'URI'
dnssec-signzone: fatal: failed loading zone from 'sources.org': unknown class/type
Idem pour les formulaires Web qui permettent de créer des enregistrements DNS dans une zone gérée par son hébergeur DNS. Tous n'ont pas encore ce type, loin de là.

Pour une vision optimiste, voici le commit qui a ajouté le type URI à PowerDNS.

par Stéphane Bortzmeyer

Blog de Stéphane Bortzmeyer

Un million de routes

 -  17 avril - 

Si vous suivez l'actualité du routage sur l'Internet, vous avez peut-être vu des messages comme quoi on atteindrait bientôt « un million de routes ». (...)


RFC 9460: Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)

 -  31 mars - 

Ces deux nouveaux types d'enregistrement DNS, SVCB et sa variante HTTPS, permettent de donner des informations supplémentaires à un client réseau (...)


Association entre adresse IP et AS

 -  29 mars - 

Dans les discussions au sujet du réseau Internet, on voit souvent passer des demandes sur l'AS associé à une adresse IP ou bien le contraire. Mais (...)


DNS hackathon 2025 in Stockholm

 -  23 mars - 

On 15 and 16 March 2025, I was at the DNS hackathon 2025 in Stockholm, organised by RIPE NCC, DNS-OARC and Netnod. I worked on a mechanism to (...)


RFC 9755: IMAP Support for UTF-8

 -  18 mars - 

Successeur du RFC 6855, voici la normalisation de la gestion d'Unicode par le protocole IMAP (dans sa version 4rev1) d'accès aux boîtes aux (...)