dproxy
What is it?

dproxy is a small caching name server (DNS) for use between Local Area Networks and the internet.

It features:

  • small size: less than 3000 lines of code, ~25KB binary
  • modest resource requirements (runs great on an old 486)
  • discovers and serves names from /etc/hosts and dhcp lease files
  • human readable/editable ASCII text cache file
  • drops root priveledges early after startup

dproxy was initially written when Netscape Navigator 4 was the only browser availble for Linux, and BIND was a bloated beast with many security issues (is it still?).

Unfortunately Netscape 4 had an annoying bug where it would lockup and eat all your CPU while it was attempting to resolve a name. This would happen whenever your PPP dialup connection would drop.

Without the source code to Navigator, all I could do was write some software that always replied promptly to Netscape. dproxy was written to run on dial-up gateway machines and behave nicely when the gateway was not connected.

So it turns out that a few years later ADSL and WIFI are all the rage and many embedded routers run Linux. Most need some basic DNS support that doesn't consume much flash space. dproxy becomes useful once more.

Known products that use dproxy:


 
Whats new

dproxy-nexgen
dproxy-nexgen is a rewrite of the core of dproxy. dproxy no longer uses gethostbyname() and so has no need to fork to handle new requests. This means dproxy is much faster and lighter resources.

dproxy-0.5

  • proper config file support
  • deny file support to help filtering add/spam
  • better install support
  • bug fixes
dproxy-0.4
  • Entries in "/etc/hosts" are permenantly cached
  • Better RFC compliance
  • cache file locking, meaning no duplicated cache entries
  • install and config options for RedHat, Debian and SuSE
  • numerous other bug fixes
dproxy-0.3
  • PPP_DETECT now properly used
  • Zombie problems fixed
dproxy-0.2
  • ISDN support
  • DHCP support
  • Dial-on-Demand support
  • Zombie process bug fix
  • Rejects packets that are too small to be DNS queries
dproxy-0.1
  • Initaial Release
Where to get it

Thanks to soureforge.net dproxy can be accessed by a number of means:

NEW! dproxy-nexgen.tar.gz
Give it a try and let me know how it works. It seems to work much better than dproxy-0.5 for most people.

Useful Resources
Here are some sites that were helpful while writing this software:

Matthew Pratt 1999 - 2004