![]() |
||||
Download | Faq | Roadmap | Contact | Notes |
FREQUENTLY ASKED QUESTIONSHow to I try out MaraDNS?Read the quick start guide, which is the file named 0QuickStart in the MaraDNS distribution. What license is MaraDNS released under?None, actually. MaraDNS is released to the public domain. How do I get MaraDNS to bind to multiple IP addresses?The current method is to run multiple copies of MaraDNS, each using its own mararc file. E.g: maradns -f /etc/mararc.1 maradns -f /etc/mararc.2 etc. If you just want to bind to all IP addresses your computer has, bind to the IP "0.0.0.0". I don't think this will be too hard to correctly implement, since I already have code for specifying multiple IP addresses with the IP ACL code used by the zone server. Until then, I will add this workaround to the FAQ. How do I report bugs in MaraDNS?Before reporting a bug that MaraDNS has, please read the relevant man pages. The man pages should be installed when one installs MaraDNS, and, in addition, are available in the doc/man directory of the MaraDNS source tarball. (It is also possible that you are reading the man page right now) Some MaraDNS man pages (namely, the man pages for maradns, askmara, zoneserver, and mararc) have a section, titled "BUGS", which list already known bugs which I feel are not important enough to fix before the 1.0 release of MaraDNS. Bug reports which mention one of these bugs will be cheerfully ignored (or given a polite "thanks for the report, in this man page the bug is already mentioned" message if I am in a particularly good mood). Subscribe to the mailing list by sending mail to list-subscribe@maradns.org with "subscribe" as the subject line, and describe the bug by sending email to list@maradns.org. How to I get off the mailing list?Send an email to list-request@maradns.org with "unsubscribe" as the subject line.How do I set up reverse DNS on MaraDNS?By using PTR (pointer) records. For example, the PTR record which performs the reverse DNS lookup for the ip 1.2.3.4 looks like this in a CSV1 zone file:P4.3.2.1.in-addr.arpa.|86400|www.example.com. I am on a slow network, and MaraDNS can not process recursive queriesMaraDNS, by default, only waits two seconds for a reply from a remote DNS server. This default can be increased by adding a line like this in the mararc file:Note that making this too high will slow MaraDNS down when DNS servers are down, which is, alas, all too common on today's internet.timeout_seconds = 5 How do I get MaraDNS to automatically start up at system boot timeThe procedure for doing this depends, of course, on the exact UNIX or UNIX-like system one is using (yes, boy and girls, MaraDNS has a Windows port). On most Linux systems, this is done by adding the following lines to the file /etc/rc.d/rc.local: /usr/local/sbin/maradns > /dev/null & One of these days, I will add scripts to place in /etc/rc.d/init.d When I try to run MaraDNS, I get a Fatal error: Error running populate_main program or a Fatal error: init_cache() failed error message.This error message should not be visible. If it appears, subscribe to the mailing list (see above), and describe your problem by sending email to list@maradns.org. Be sure to include the following information:
I am trying to register a domain under the .au or the .de name space, and my registrar is not taking my domain nameBoth the German registrar and the Australian registrars require a RR_ANY request to return NS and SOA records. MaraDNS can do this if you add the following line to your mararc file: default_rrany_set = 15 After I start MaraDNS, I can not see the process when I run netstat -naUdp services do not have a prominent "LISTEN" when netstat is run.When MaraDNS is up, the relevant line in the netstat output looks like this: udp 0 0 127.0.0.4:53 0.0.0.0:* While on the topic of netstat, if you run netstat -nap as root, you can see the names of the processes which are providing internet services. What string library does MaraDNS use?MaraDNS uses her own string library, which is called the "js_string" library. Man pages for most of the functions in the js_string library are in the folder doc/man of the MaraDNS distribution Why is MaraDNS public domain instead of BSD or GPL licensed?So that MaraDNS can be integrated with Python without trouble. While Python is, I believe, currently GPL compatible, Python was not GPL-compatible at the time I decided on a license for MaraDNS. Why does MaraDNS use a multi-threaded model?The multi-threaded model is, plain and simple, the simplest way to write a functioning recursive DNS server. There is a reason why MaraDNS, pdnsd, and BIND 9 all use the multi-threaded model. I feel that XXX feature should be added to MaraDNSBefore sending mail to the list with a feature request, please read the UNIMPLEMENTED FEATURES section of the MaraDNS man page, which has a list of feature requests other people have already sent me. If you do not see your requested feature in this section of the man page, send an email to the mailing list so that I can add your feature request to the UNIMPLEMENTED FEATURES section of the MaraDNS man page. Feature requests which include a patch which implements the feature in question are may even be implemented by MaraDNS, as long as the patch comes with a declaration that the patch is public domain. Note that MaraDNS is currently "frozen". In other words, new features will not be added until after the 1.0 release. I feel that MaraDNS should use another documtation formatThe reason that MaraDNS uses its own documtation format is to satisfy both the needs of translators to have a unified document format and my own need to use a documtation format which I can add features on an as needed basis. The documentation format is essentially simplified HTML with some special tags added to meet MaraDNS' special needs. For people who prefer other formats of documentation, I am open to making filters which convert from MaraDNS' own "EJ" documentation format to the format in question. Having a given program have its own documentation format is not without precedent; Perl uses its own "pod" documentation format. Is there any process I need to follow to add a patch to MaraDNS?Yes. Send a patch to me in email, along with a statement that you place the contents of the patch in to the public domain. If I find that the patch works well, I will integrate it in to MaraDNS. Can MaraDNS act as a secondary nameserver?Yes, but not in the same manner as traditional DNS servers. MaraDNS' philosophy for the 1.0 release is simplicity and security. Since it is simpler to make the programs that handle the getting and serving of zone files separate applications, I have elected to use this approach for the 1.0 release. I feel that one of UNIX's great strengths is the ability to use a series of small, simple programs together to perform complex tasks. This is the approach I am taking with MaraDNS 1.0. The "core" of a DNS server ideally is doing little more than the following:
What is the difference between an authoritative and a recursive DNS server?A recursive DNS server is a DNS server that is able to contact other DNS servers in order to resolve a given domain name label. This is the kind of DNS server one points to in /etc/resolve.confAn authoritative DNS server is a DNS server that a recursive server contacts in order to find out the answer to a given DNS query. The getzone client isn't allowing me to add certain hostnames to my zoneFor security reasons, MaraDNS' getzone client does not add records which are not part of the zone in question. For example, if someone has a zone for example.com, and this record in the zone:P1.1.1.10.in-addr.arpa.|86400|dns.example.com. MaraDNS will not add the record, since the record is out-of-bailiwick. In other words, it is a host name that does not end in .example.com. There are two workarounds for this issue:
I have having problems transferring zones from MaraDNS' zone server to a BIND zone transfer clientBIND is rather picky about what kind of data it will accept from a zone server. Make sure the following is true with your domain:
Here is an example bad zone file: 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 Here is the same zone file, with corrections: 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. Is MaraDNS portable?While I intend to have MaraDNS be a portable DNS server which will compile on a variety of unices, right now all of MaraDNS's work development is being done on Linux. In terms of proprietary OSes, I know that SCO Open Server, SCO UNIXware and Solaris have issues running a UDP or TCP server in a chroot() environment. Word is that, with Solaris and UNIXware, placing /dev/tcp and /dev/udp in the chroot() jail will allow a server like MaraDNS to function. See below for why MaraDNS may have problems as a recursive nameserver in Solaris. How do I compile MaraDNS on OpenBSD?There are two ways to do this: To use the native thread support add -pthread to the CFLAGS variable. To use the GNU pthread library, install the pth package and add -L/usr/local/lib/pth to the linker. (Florin Iucha provided this tip) Can I use MaraDNS in Windows?Yes. Provided, of course, that one has the Cygwin environment which emulates a UNIX environment in Windows. MaraDNS should now compile fine on Cygwin systems. If not, join the mailing list and let me know; I will correct this FAQ entry. MaraDNS freezes up after being used for a whileIf using your ISP's name servers or some other name servers which are not, in fact, root name servers, please make sure that you are using the upstream_servers dictionary variable instead of the root_servers dictionary variable.If you still see MaraDNS freeze up after making this correction, please send a bug report to the mailing list. What kind of Python integration does MaraDNS haveThe mararc file uses the same syntax that Python uses; in fact, Python can parse a properly formatted mararc file.There is currently no other integration with Python. I am using MaraDNS on Solaris, and MaraDNS gives me an annoying error messageThere was a known issue with MaraDNS having memory leaks when used as a recursive nameserver on the Solaris operating system. This problem does not exist in Linux, so I can not currently verify that this issue is resolved. Until I can get access to a Solaris box, or a Solaris developer sends me a patch which fixes this problem (and confirms that the patch works), MaraDNS will output this annoying error message. |
Design and Layout Copyright 2001 by LEo, all content released to the public domain by Sam