Date: Wed, 04 Mar 1998 21:27:57 -0800 From: Ludwig Pummer <ludwigp@bigfoot.com> To: djacobse@umdsun2.umd.umich.edu, freebsd-questions@FreeBSD.ORG Subject: Re: natd Message-ID: <3.0.3.32.19980304212757.00714514@mail.plstn1.sfba.home.com> In-Reply-To: <199803042150.VAA02906@0.ml.org>
next in thread | previous in thread | raw e-mail | index | archive | help
At 09:50 PM 3/4/98 GMT, djacobse@umdsun2.umd.umich.edu wrote: >i'm having trouble getting natd to work, i have two ethernet devices, ed0 and ep0. i'm not sure >how to do it (tho i have experience with linux ip_masquerading) >but i switched to freebsd for stability and performance reasons. >unfortunately i must have something like ip masqing or natd to work >thank you for your help, >doug jacobsen >From the (2.2.5-R) natd man page (ahem ahem maybe you should RTFM next time): The following steps are necessary before attempting to run natd: 1. Get FreeBSD version 2.2 or higher. Versions before this do not sup- port divert(4) sockets. 2. Build a custom kernel with the following options: options IPFIREWALL options IPDIVERT Refer to the handbook for detailed instructions on building a custom kernel. 3. Ensure that your machine is acting as a gateway. This can be done by specifying the line gateway_enable=YES in /etc/rc.conf, or using the command sysctl -w net.inet.ip.forwarding=1 4. If you wish to use the -n or -interface flags, make sure that your interface is already configured. If, for example, you wish to spec- ify tun0 as your interface, and you're using ppp(8) on that inter- face, you must make sure that you start ppp prior to starting natd. 5. Create an entry in /etc/services: natd 6668/divert # Network Address Translation socket This gives a default for the -p or -port flag. Running natd is fairly straight forward. The line natd -interface ed0 should suffice in most cases (substituting the correct interface name). Once natd is running, you must ensure that traffic is diverted to natd: 1. You will need to adjust the /etc/rc.firewall script to taste. If you're not interested in having a firewall, the following lines will do: /sbin/ipfw -f flush /sbin/ipfw add divert natd all from any to any via ed0 /sbin/ipfw add pass all from any to any The second line depends on your interface (change ed0 as appropri- ate) and assumes that you've updated /etc/services with the natd en- try as above. If you specify real firewall rules, it's best to specify line 2 at the start of the script so that natd sees all packets before they are dropped by the firewall. The firewall rules will be run again on each packet after translation by natd, minus any divert rules. 2. Enable your firewall by setting firewall_enable=YES in /etc/rc.conf. This tells the system startup scripts to run the /etc/rc.firewall script. If you don't wish to reboot now, just run this by hand from the console. NEVER run this from a virtual ses- sion unless you put it into the background. If you do, you'll lock yourself out after the flush takes place, and execution of /etc/rc.firewall will stop at this point - blocking all accesses permanently. Running the script in the background should be enough to prevent this disaster. --Ludwig Pummer ludwigp@bigfoot.com ICQ UIN: 692441 http://chipweb.home.ml.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3.0.3.32.19980304212757.00714514>