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>