Date: Mon, 3 Apr 2000 09:24:02 +0300 From: "Ari Suutari" <ari@suutari.iki.fi> To: "Arun Sharma" <adsharma@sharmas.dhs.org>, <freebsd-net@FreeBSD.ORG> Subject: Re: kernel vs user level implementation of NAT Message-ID: <006401bf9d35$37bddb00$0e05a8c0@intranet.syncrontech.com> References: <20000331234156.A28140@sharmas.dhs.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi,
> Can someone point me to some discussion or literature on why *BSDs chose
> to implement natd as a daemon as opposed to a kernel service ? I'm
> particularly interested in the performance (latency) aspects of the issue.
>
The history goes something like this:
Some years ago I had a cable modem connection at home. I had
internal network with some hosts and a FreeBSD server machine
(running 2.x if I remember correctly). I was looking for solutions how
to get my internal machines to access internet with similar
manner as ip masquerading in Linux (Couldn't use Linux, I'v
always been fond of *BSD).
Well, I found that Darren Reed's ipfilter didn't work with 2.x so
that was out. Porting of it looked like too much effort at that time.
Then I found out from somewhere that user mode ppp had
nat features and took a look at it. Surprisingly all the functions
necessary to do it were packaged to a few source files
which I took into natd. These sources were written by Charles
Mott and eventually ended into libalias library.
There was also another similar program in the beginning,
Brian Somer's masqd. I don't remeber any more why I decided
to go along with natd - maybe both were at very early stage of
development
and I just had more time to play with natd. Anyway, Brian also
contributed to natd.
What I found good about doing this in user process was the
ease of debugging and testing of new versions.
Ari S.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?006401bf9d35$37bddb00$0e05a8c0>
