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.