87 lines
3.0 KiB
Plaintext
Executable File
87 lines
3.0 KiB
Plaintext
Executable File
dproxy
|
|
------
|
|
|
|
dproxy is a small, smart caching nameserver for use on gateway machines with
|
|
non-permenant connections. It includes support for PPP, Ethernet, ISDN and
|
|
DHCP connections. dproxy safely returns a DNS error, when it detects no
|
|
connection to the outside network, preventing programs like Netscape
|
|
from hanging as happens when BIND is used in the same situation.
|
|
|
|
dproxy also pre-caches all the entries in /etc/hosts, and provides access to
|
|
all cache entries when offline. This means dproxy can be used as a DNS server
|
|
for small networks. The cache is stored in human readable text file format
|
|
and has mechanisms to allow either pre-set times for cache expiries, or to
|
|
allow expires to be calculated from TTL returned on DNS lookups.
|
|
|
|
It is also suitable for use on stand alone workstations for
|
|
accelerating slower Internet connections.
|
|
|
|
Installing dproxy
|
|
-----------------
|
|
|
|
First build and install dproxy.
|
|
make
|
|
make install
|
|
|
|
You have to kill any existing named services on you gateway.
|
|
|
|
Edit the dproxy configuration file. By default this is installed as
|
|
/etc/dproxy.conf
|
|
|
|
See the next section on configuring dproxy.
|
|
|
|
You may want to add all the local machines to your /etc/hosts file so
|
|
dproxy can cache the names of those too.
|
|
|
|
On RedHat systems Makefile will have installed the init script in
|
|
/etc/rc.d/init.d/. Run "/sbin/chkconfig --del named" (to remove named service),
|
|
then "/sbin/chkconfig --level 345 dproxy on" to let dproxy start in runlevels
|
|
3, 4 and 5 (this works for RedHat 6.1, untested on other distributions.)
|
|
Shut down your named (if running) with "/etc/rc.d/init.d/named stop".
|
|
|
|
Then start dproxy on the gateway machine. (using
|
|
"/etc/rc.d/init.d/dproxy start".)
|
|
|
|
Next time you start your connection dproxy will pass all requests onto the
|
|
nameservers in /etc/resolv.conf and store the results of any queries before
|
|
passing the result back to the requesting client.
|
|
|
|
dproxy will also return cached entries when offline, but this
|
|
usually wont serve much purpose as the hosts will be unreachable anyway.
|
|
|
|
Configuring
|
|
-----------
|
|
|
|
Most of dproxy's configuration is done through its configuration file which
|
|
is usually installed in /etc/dproxy.conf
|
|
|
|
The configuration file can be generated from dproxy it self using the '-P'
|
|
option on the command line. For example:
|
|
|
|
# dproxy -P >/etc/dproxy.conf
|
|
|
|
Acknowledgements
|
|
----------------
|
|
|
|
Two other open source programs helped my immensely to write this program even
|
|
though I didn't end up using much code from them.
|
|
|
|
- Ethereal network analyser
|
|
The best packet sniffer / analyser out there. It actully
|
|
disassembles the DNS packets and displays the contents.
|
|
http://ethereal.zing.org
|
|
|
|
- Dents, dns server
|
|
Well written and documented code. Wish mine was as good.
|
|
http://www.dents.org/
|
|
|
|
Thanx to people involved in both those projects.
|
|
|
|
Individuals who have contributed bug fixes, patches, bugs reports, or thanks
|
|
can be found in the CREDITS file.
|
|
|
|
Matthew Pratt <mattpratt@yahoo.com>
|
|
|
|
|
|
|