INSTALLATION INSTRUCTIONS
=========================

Download and extract tarball before running
these commands in its base directory:

  perl Makefile.PL
  make
  make test
  make install

For RPM installation, download tarball before
running these commands in your _topdir:

  rpm -ta SOURCES/Net-DNAT-*.tar.gz
  rpm -ih RPMS/noarch/perl-Net-DNAT-*.rpm


PREREQUISITES
=============

When running "perl Makefile.PL" or "make test",
you may notice that some modules are required
before it will install correctly, namely:

  Net::Server
  IO::Multiplex
  mod_perl

These can all be obtained from CPAN:

http://search.cpan.org/


EXAMPLE CONFIGURATION
=====================

HARDWARE:


  \  |     |  /
   \_|_____|_/
   /         \
  |           |
  | INTERNET  |
  |           |
   \_________/
        |
        |
  ======|========= Firewall ================
        |
   _____|_____ Public Interface  (x.x.x.x)
  |           |
  | Net::DNAT |
  |___________|
     |         Private Interface (10.0.0.1)
     |
     |   _________________________
     \__| Apache::DNAT (10.0.0.2) |
     |  |_________________________|
     |
     |   _________________________
  H  \__| Apache::DNAT (10.0.0.3) |
  U  |  |_________________________|
  B  |
     |   _________________________
     \__| Apache::DNAT (10.0.0.4) |
     |  |_________________________|
     |
     |   _________________________
     \__| Apache::DNAT (10.0.0.5) |
        |_________________________|


SOFTWARE (Public):

#!/usr/bin/perl
# Program: dnat.pl
# Run this at startup on the box with both
# the public and the private interfaces.

use strict;
use Net::DNAT;

my $pools = {
  main => [ "10.0.0.2", "10.0.0.3" ],
  banner => "10.0.0.4",
  devel =>  "10.0.0.5:8080",
};

my $site2pool = {
  "site.com"     => "main",
  "www.site.com" => "main",
  "banner.site.com" => "banner",
  "dev.site.com" => "devel",
};

run Net::DNAT
  port => 80,
  pools => $pools,
  default_pool => "main",
  host_switch_table => $site2pool,
  ;


SOFTWARE (Private):

# Install these lines into the httpd.conf
# of the boxes with the private interface.
PerlModule Apache::DNAT
PerlInitHandler Apache::DNAT


EXAMPLES
========

See demo/* from the distribution for some
working examples.
