SOLVED re: mult public conn/mult private conn routing
steve at freeslacker.net
steve at freeslacker.net
Sun May 11 18:25:34 PDT 2003
This has now been solved. Here's how for anyone who might be put in such a situation in the future and need a hand like I did.
1. Add firewall and divert to kernel
... <snip>
options IPFIREWALL
options IPDIVERT
... <snip>
2. configure rc.conf
... <snip>
defaultrouter="<gateway IP for 1st public network>"
gateway_enable="YES"
ifconfig_fxp0="inet <public IP #1> netmask 255.255.255.192"
ifconfig_fxp1="inet <public IP #2> netmask 255.255.255.192"
ifconfig_em0="inet <private IP #1> netmask 255.255.255.0"
ifconfig_em1="inet <private IP #2> netmask 255.255.255.0"
firewall_enable="YES"
firewall_type="/etc/ipfw.conf"
natd_enable="YES"
natd_program="/usr/local/sbin/natdhack"
... <snip>
3. configure /etc/ipfw.conf
... <snip>
add 00100 divert 8668 ip from <private IP #1>/24 to any
add 00100 divert 8669 ip from <private IP #2>/24 to any
add 00200 divert 8668 ip from any to <public IP #1>
add 00200 divert 8669 ip from any to <public IP #2>
add 00300 fwd <gateway IP for 2nd public network> ip from <public IP #2> to any
... <snip>
4. configure natd_program # /usr/local/sbin/natdhack
#!/bin/sh -
#
# Initialization script for multiple natd's
/sbin/natd -m -s -p 8668 -alias_address <public IP #1>;
/sbin/natd -m -s -p 8669 -alias_address <public IP #2>;
many thx to David for repeatedly helping me. without that help I am sure I would still not have this solved.
Steve Stremciuc
------------------ original question post
Hello,
I am having a problem with setting up a box I just built for the
dedicated purpose of being a freebsd router. Below is a diagram describing my
physical setup:
ISP conn #1 ISP conn #2
| |
\ 68.x.x.x/26 24.x.x.x/26 /
-----------------_____-------------------
fxp0| |fxp1
| |
em0| ____|em1
/ \
192.168.0.1/24____| |_____192.168.100.1/24
fxp0 is 3.2Mb/s down 256Kbp/s up and will be used by all normal hosts
on em0
fxp1 is 3.2Mb/s down 450Kbp/s up and will be used by servers on em1
What I want to achieve is having all outbound traffic from em0
(192.168.0.1/24) use fxp0, and all outbound traffic from em1 (192.168.100.1/24)
use fxp1. em0 and em1 should be able to talk to each other. The problem
is that since defaultrouter="68.x.x.x" is specified in /etc/rc.conf all
traffic gets routed out through fxp0. Also, since natd_interface="fxp0"
is specified, all packets are nat'ed from either em0 or em1 through
fxp0.
Is it possible to have natd on both fxp0 *and* fxp1 (i tried putting
both natd_interface="fxp0" and natd_interface="fxp1" in /etc/rc.conf but
this did not work)? Once a packet gets routed to fxp1, it just times
out since the default route is atached to only fxp0.
I've read up on routed and ipfw, but do not see a way to tell fxp0 to
use defaultrouter A, and tell fxp1 to use defaultrouter B. Do I have to
run a routing daemon for this? (examples/suggestions would be
appreciated)
Any ideas?
Steve Stremciuc
More information about the freebsd-net
mailing list