Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Apr 2000 14:56:26 -0700 (PDT)
From:      Archie Cobbs <archie@whistle.com>
To:        ari@suutari.iki.fi (Ari Suutari)
Cc:        adsharma@sharmas.dhs.org (Arun Sharma), freebsd-net@FreeBSD.ORG
Subject:   Re: kernel vs user level implementation of NAT
Message-ID:  <200004062156.OAA76934@bubba.whistle.com>
In-Reply-To: <006401bf9d35$37bddb00$0e05a8c0@intranet.syncrontech.com> from Ari Suutari at "Apr 3, 2000 09:24:02 am"

next in thread | previous in thread | raw e-mail | index | archive | help
Ari Suutari writes:
> > 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.

Some even earlier history..

Whistle started working on NAT way back in 1995 for the InterJet.
We needed an easy way to develop the code, so we invented divert(4)
sockets, which make it easy to do NAT in userland. Our product was
I/O limited rather than CPU limited so performance was not an issue.

We wrote our own proprietary NAT daemon but 'natd' appeared shortly
after divert sockets were added anyway (as we figured it would).

-Archie

___________________________________________________________________________
Archie Cobbs   *   Whistle Communications, Inc.  *   http://www.whistle.com


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?200004062156.OAA76934>