FOIRE AUX QUESTIONS Comment puis-je essayer MaraDNS ? Lisez le guide de démarrage rapide, dans le fichier 0QuickStart de la distribution MaraDNS. Sous quelle licence MaraDNS est-il produit ? Aucune, en fait. MaraDNS est produit dans le domaine publique. Comment puis-je faire fonctionner MaraDNS sur plusieurs adresses IP ? La méthode actuelle est de faire tourner plusieurs copies de MaraDNS, chacune avec son propre fichier mararc. Par exemple: maradns -f /etc/mararc.1 maradns -f /etc/mararc.2 etc. Si vous souhaitez simplement faire tourner MaraDNS sur toutes les adresses IP disponibles sur la machine, utilisez l'adresse "0.0.0.0". Je ne pense pas que ceci soit trop difficile à implémenter correctement, puisque j'ai déjà du code pour spécifier plusieurs adresses IP dans les ACL utilisées par le serveur de zones. En attendant, la FAQ indiquera cette solution. Comment puis-je faire un rapport de bogues sur MaraDNS ? Avant de rapporter un bogue de MaraDNS, lisez les pages de manuel concernées. Les pages de manuel devraient avoir été installées à l'installation de MaraDNS, et, de plus, sont disponibles dans le répertoire doc/man dans le tarball source de MaraDNS. Il est également possible que vous soyez en train de lire cette page de manuel. Certaines pages de manuel de MaraDNS (actuellement, les pages pour maradns, askmara, zoneserver, et mararc) disposent d'une section "BOGUES" (BUGS en anglais), qui liste certains bogues déjà connus de MaraDNS que l'auteur ne juge pas assez importants pour être corrigés avant la sortie de la version 1.0 de MaraDNS. Les rapports de bogues concernant l'un de ces bogues mentionnés seront joyeusement ignorés. (NDT: consultez la page de manuel originale en anglais pour être sûr de disposer de la dernière version). Abonnez-vous à la liste de diffusion en envoyant un courrier à list-subscribe@maradns.org avec "subscribe" comme sujet, et décrivez ensuite le bogue en envoyant un courrier à list@maradns.org. Lorsque je lance MaraDNS, j'obtiens un message Fatal error: Error running populate_main program or a Faral error: init_cache() failed error message. Ce message d'erreur ne devrait pas être visible. S'il apparaît, abonnez-vous à la liste de diffusion (voir au dessus), et décrivez votre problème en envoyant un courrier. Indiquez : * Le contenu de votre fichier /etc/mararc * Le contenu de tout fichier de /etc/maradns * La sortie complète de MaraDNS Je cherche à enregistrer un domaine sous le TLD .au ou .de, et le registrar refuse mon nom de domaine. Les registrars allemands et australiens obligent que l'on renvoie les enregistrements NS et SOA à une requête RR_ANY. MaraDNS peut faire ceci si vous spécifiez dans votre fichier mararc : default_rrany_set = 15 Après avec lancé MaraDNS, je ne vois pas le processus dans netstat -na Les services UDP ne montrent pas un "LISTEN" voyant dans la sortie de netstat. Lorsque MaraDNS est en fonctionnement, la ligne concernée dans la sortie de netstat ressemble à : udp 0 0 127.0.0.4:53 0.0.0.0:* Au sujet de netstat, si vous lancez netstat -nap en tant que root, vous verrez les noms des processus faisant fonctionner des services réseaux (sous Linux) Quelle bibliothèque de manipulation de chaînes utilise MaraDNS ? MaraDNS utilise sa propre bibliothèque de manipulation de chaînes, intitulée bibliothèque "js_string". Des pages de manuel pour la plupart des fonctions de la bibliothèque sont disponibles dans le répertoire doc/man de la distribution de MaraDNS. Pourquoi MaraDNS est-il dans le domaine public, plutôt que sous licence GPL ou BSD ? Afin que l'on puisse intégrer MaraDNS avec Python sans souci. Bien que maintenant Python soit, je crois, compatible avec la GPL, il ne l'était pas au moment où j'ai choisi une licence pour MaraDNS. Pourquoi MaraDNS utilise un modèle multi-threadé ? Le modèle multi-threadé est, tout simplement, la manière la plus simple d'écrire un serveur DNS récursif qui fonctionne. C'est la raison pour laquelle MaraDNS, pdnsd, et BIND 9 utilisent tous un modèle multi-threadé. Je trouve que telle et telle fonctionnalité devrait être ajoutée à MaraDNS Avant d'envoyer un mail à la liste avec une demande de fonctionnalité nouvelle, lisez la section FONCTIONS NON MISES EN OEUVRE (ou UNIMPLEMENTED FEATURES) de la page de manuel de MaraDNS, qui comporte une liste de ce que des gens ont pu souhaiter comme nouvelles fonctionnalités. Si vous ne voyez pas ce que vous souhaiteriez implémenté, envoyer un courrier à la liste afin que j'ajoute cette demande à la page de manuel. Des demandes de fonctions nouvelles qui incluent un correctif le mettant en oeuvre peuvent être intégrées à MaraDNS, tant que le correctif mentionne son appartenance au domaine public. Notez que MaraDNS est désormais "gelé". C'est à dire qu'aucune nouvelle fonctionnalité ne sera ajoutée avant la sortie de la version 1.0. Y a t'il une marche à suivre pour demander l'incorporation d'un patch à MaraDNS ? Oui. Envoyez le patch par email, avec une déclaration de son appartenance au domaine public. Si je trouve que le patch fonctionne bien, je l'intègrerai à MaraDNS. MaraDNS peut-il servir de serveur de noms secondaire ? Oui, mais pas d'une manière traditionnelle. La philosophie de MaraDNS pour la version 1.0 est : simplicité et sécurité. Parce qu'il est plus simple de faire des programmes séparés pour le rappatriement et la mise à disposition de zones, j'ai choisi cette approche pour la version 1.0 Je trouve que l'une des grandes forces d'UNIX est de pouvoir combiner une série de petits programmes simples ensemble pour réaliser une tâche complexe. C'est l'approche suivie pour MaraDNS 1.0. Le "coeur" d'un serveur DNS ne devrait idéalement pas faire plus que : * Convertir des données externes dans le format interne du serveur DNS en utilisant des modules. * Conserver les données chargées de sources "lentes" (serveur DNS externes, serveurs SQL, etc.) * Convertir les paquets DNS en des requêtes de données pour les sources en question. * Convertir les données de ces sources en paquets DNS. (Maintenant, vue la manière dont j'ai codé la résolution récursive de MaraDNS, j'ai dévié de cet idéal, mais c'est une autre histoire. Quelle est la différence entre un serveur DNS autoritaire et un serveur récursif ? Un serveur DNS récursif est un serveur DNS en mesure de contacter un autre serveur DNS afin de résoudre un nom DNS donné. C'est le genre de serveurs que l'on renseigne dans /etc/resolv.conf. Un serveur DNS autoritaire répond à ses requêtes émanant de serveurs récursifs en leur donnant la réponse à une requête DNS donnée. Le client getzone ne m'autorise pas à ajouter certains noms de ma zone Pour des raisons de sécurité, le client getzone de MaraDNS n'ajoute pas à la zone des enregistrements n'en faisant pas partie. Par exemple, si dans une zone example.com on a un enregistrement du type : P1.1.1.10.in-addr.arpa.|86400|dns.example.com. MaraDNS n'ajoutera pas cet enregistrement, car il est en dehors de la zone. En d'autres mots, il ne se termine pas par example.com. Il y a deux parades à ce problème : * Créer un fichier de zone 1.1.10.in-addr.arpa., pour les enregistrements PTR. * Utiliser rcp, rsync, ou toute autre méthode, pour synchroniser les fichiers de zone concernés. Je rencontre des problèmes en transférant des zones depuis le serveur de zones de MaraDNS vers un client de transfert BIND. BIND est plutôt exigeant quant à quelle type de données accepter depuis un serveur de zones. Assurez-vous que : * Les enregistrements NS autoritaires sont tout en haut de votre zone, juste après l'enregistrement SOA. * Les enregistrements NS autoritaires sont bien des NS de votre zone. * Afin de pallier un bogue connu de MaraDNS, assurez-vous d'avoir au moins un enregistrement non-NS entre les enregistrements NS autoritaires de la zone et un enregistrement NS de délégation qui existerait dans votre zone. Voici un exemple à ne pas suivre : Sexample.com.|86400|example.com.|hostmaster@example.com.|1|86400|3600|6048000|86400 Nbad.example.com.|86400|ns1.example.com. Nbad.example.com.|86400|ns2.example.com. Nsubdomain.example.com.|86400|ns.subdomain.example.com. Aexample.com.|12345|10.2.3.4 Et le même exemple, après correction : Sexample.com.|86400|example.com.|hostmaster@example.com.|1|86400|3600|6048000|86400 Nexample.com.|86400|ns1.example.com. Nexample.com.|86400|ns2.example.com. Aexample.com.|12345|10.2.3.4 Nsubdomain.example.com.|86400|ns.subdomain.example.com. MaraDNS est-il portable ? Même si je compte faire de MaraDNS un serveur portable, qui compilera sur de nombreux Unix, à ce moment même le développement de MaraDNS est fait sous Linux. En termes d'OS propriétaires, je sais que SCO Open Server, SCO Unixware, et Solaris posent des problèmes quand il s'agit de faire fonctionner un serveur UDP ou TCP dans un environnement chroot(). Il semblerait que, sous Solaris ou UNIXware, placer /dev/tcp et /dev/udp dans la cage chroot() permettrait à un serveur comme MaraDNS de fonctionner. Comment compiler MaraDNS sous OpenBSD ? Il y a deux manières de faire ceci: Pour utiliser le support natif des threads vous devez ajouter -pthread à la variable CFLAGS. Pour utiliser la bibliothèque GNU pthread, vous devez installer le port pth et ajouter -L/usr/local/lib/pth au linker. (Florin Iucha a fourni ce conseil) ()