freebsd-skq/sbin/natd
Paolo Pisati be4f3cd0d9 Summer of Code 2005: improve libalias - part 1 of 2
With the first part of my previous Summer of Code work, we get:

-made libalias modular:

 -support for 'particular' protocols (like ftp/irc/etcetc) is no more
  hardcoded inside libalias, but it's available through external
  modules loadable at runtime

 -modules are available both in kernel (/boot/kernel/alias_*.ko) and
  user land (/lib/libalias_*)

 -protocols/applications modularized are: cuseeme, ftp, irc, nbt, pptp,
  skinny and smedia

-added logging support for kernel side

-cleanup

After a buildworld, do a 'mergemaster -i' to install the file libalias.conf
in /etc or manually copy it.

During startup (and after every HUP signal) user land applications running
the new libalias will try to read a file in /etc called libalias.conf:
that file contains the list of modules to load.

User land applications affected by this commit are ppp and natd:
if libalias.conf is present in /etc you won't notice any difference.

The only kernel land bit affected by this commit is ng_nat:
if you are using ng_nat, and it doesn't correctly handle
ftp/irc/etcetc sessions anymore, remember to kldload
the correspondent module (i.e. kldload alias_ftp).

General information and details about the inner working are available
in the libalias man page under the section 'MODULAR ARCHITECTURE
(AND ipfw(4) SUPPORT)'.

NOTA BENE: this commit affects _ONLY_ libalias, ipfw in-kernel nat
support will be part of the next libalias-related commit.

Approved by: glebius
Reviewed by: glebius, ru
2006-09-26 23:26:53 +00:00
..
samples
HISTORY
icmp.c Give natd multi-instance capabilities. 2004-07-04 12:53:54 +00:00
Makefile
natd.8 Eliminate macro calls inside literal displays. 2005-01-15 12:28:01 +00:00
natd.c Summer of Code 2005: improve libalias - part 1 of 2 2006-09-26 23:26:53 +00:00
natd.h Give natd multi-instance capabilities. 2004-07-04 12:53:54 +00:00
README

# $FreeBSD$

	A Network Address Translation Daemon for FreeBSD


1. WHAT IS NATD ?

	This is a simple daemon based on FreeBSD divert sockets
	which performs network address translation (or masquerading)
	for IP packets (see related RFCs 1631 and 1918).
	It is based on packet aliasing package (see README.alias)
	written by Charles Mott <cm@linktel.net>.

	This package works with any network interface (doesn't have
	to be ppp). I run it on a computer having two ethernet cards,
	one connected to internet and the other one to local network.

2. GETTING IT RUNNING

	1) Get FreeBSD 2.2 - I think the divert sockets are
	   not available on earlier versions,

	2) Compile this software by executing "make".

	3) Install the software by executing "make install".

	4) See man natd for further instructions.

3. FTP SITES FOR NATD

	This package is available at ftp://ftp.suutari.iki.fi/pub/natd.

4. AUTHORS

	This program is the result of the efforts of many people
	at different times:

	Archie Cobbs <archie@whistle.com>	Divert sockets
	Charles Mott <cm@linktel.net>		Packet aliasing engine
	Eivind Eklund <eivind@dimaga.com>	Packet aliasing engine
	Ari Suutari <suutari@iki.fi>		Natd
	Brian Somers <brian@awfulhak.org>	Manual page, glue and
						bunch of good ideas.
				
	Happy Networking - comments and fixes are welcome!

	Ari S.	(suutari@iki.fi)