Read the quick start guide
None, actually. MaraDNS is relased to the public domain.
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.
This error message should not be visible. If it appears, subscribe to the mailing list at list-subscribe@maradns.org, and describe your problem by sending email to list@maradns.org. Be sure to include the following information:
Both 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 marcrc file:
default_rrany_set = 15
When MaraDNS is up, the relevent 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.
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
If I were to GPL my work, for example, I might have a hard time integrating my work with Python. Sometimes, the Python license is "GPL compatible", as decreed by the FSF, and sometimes it is not. I do not think it is particularly fair to the Python community to have the ability to integrate this program in to Python (for example, a Python DNS resolver library) be determined by the whims of the FSF.
Unlike the GPL or the BSD license, works placed under the public domain have a well defined set of legal protections. For example, no one else can copyright a public domain work (they can copyright changes, of course).
The multithreaded 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 multithreaded model.
I am devoting most of my effort to making MaraDNS a fully functional DNS server. I plan to meet all of the goals in the roadmap. Getting the code out is more important than this web page. I have seen too many proposed open-source projects set up a fancy web page, a mailing list, announce their project on comp.os.linux.announce, and never actually make the proposed code.
Contrast this to MaraDNS, which is already a fully functional authoritative name server. The maradns.com and maradns.org domans are both served by MaraDNS. I spent the last few days making a fully functioning zone transfer server for MaraDNS, and optimizing the code so that it runs six times faster, instead of setting up a mailing list or putting up fluff on the MaraDNS web page.
A number of features that users have requested are listed in the TODO file that is includes with MaraDNS. Feature requests are nice, and will be dutifully filed in the TODO file.
Feature requests which include a patch which implements the feature in question are much more likely to be added to MaraDNS proper.
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.
BIND 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.
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. I have heard that MaraDNS does not work on NetBSD at this time. 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.
There are two ways to do this:
To use the native thread suport you have to add -pthread to the CFLAGS.
To use the GNU pthread you need to install the pth package and add -L/usr/local/lib/pth to the linker.
(Florin Iucha provided this tip)
I know that this question has about nothing to do with MaraDNS, but since someone asked me this in private mail, I figure other people might want to know the answer I gave them.
I do not program in Visual Basic, so I can not assist people with this. What I do know is how to do this in C on a Linux machine--you use the res_query family of functions (man res_query).
Visual Basic, in the grand tradition of all things Microsoft, probably has no support for a DNS resolver library. In fact, I know that Visual Basic does not even have a simple SMTP client library, and that you have to pay big bucks to get one. All I can say is this: Get out your credit card and prepare to pay the big bucks for this basic level of functionality that Linux provides free out of the box.
Microsoft is good for some things. However, a cost-effective (read: libre) development system with a full network programming API is not one of them.