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.