[haiku-development] Proposal: {dns,name,resolver}_server

  • From: Alexander Botero-Lowry <alex.boterolowry@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Tue, 10 Nov 2009 22:43:38 -0800

Hi all,

Emacs is taunting me, so I figured I'd context switch for a bit before going 
back
to it.

Seeing Axel's dns related commits yesterday made me think about how painful the 
dns
experience is across the various oses that I've used and seen. Invariably 
they're either
limited or inconsistent, or sometimes both, and usually require you just run 
your own
nameserver to do anything actually advanced or interesting.

OS X for example provides the very cool /etc/resolver which lets you provide a 
different
resolv.conf for a particular hostname match. OS X combines this with its lovely 
ability
to have multiple DNS resolution infrastructures going on that make it so some 
tools behave
correctly while others don't. 

So I'm proposing, and if there isn't massive objection, intending to implement 
a _very_
basic forwarding dns server that will be used libbind for all DNS requests. 
This server
will accept messages for introspecting and setting DNS settings, so that the 
network preflet
can just send a message to update DNS settings instead of writing resolv.conf.

Advanced features that I currently use dnsmasq to do would be forthcoming:

1) ability to mark a domain as bogus (so if your ISP resolves all IPs to some
dumb error page, you can override that)
2) ability to setup a wildcard DNS pointing at some IP (i use this for work 
*.acre.z points
at my laptop)
3) ability to have certain domain pathes be resolved by a different DNS server 
then
the default one (I use this for VPN, so that only my work DNS requests go to 
the work
DNS server)

I'm sure there are other desireable features, these are the basics for me, and 
I think
it would give Haiku a much more consistent DNS experience for users and power 
users alike.

There is also the ability to put some DNS caching in the dns_server if desired,
which will be used by all apps (this is a fun one on OS X, some apps don't use 
the cache).

Alex

Other related posts: