Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Aug 2004 12:04:04 +0100
From:      fbsd-help@0x10.com
To:        freebsd-questions@freebsd.org
Subject:   (Another) NATD/IPFW port forwarding problem
Message-ID:  <E1BxOEf-00071r-1y@mk-webmail-1.b2b.uk.tiscali.com>

next in thread | raw e-mail | index | archive | help

                                .oO( Internet )Oo.
                                        ||
                                        || 

                                  [----DSL------]
                                  [ adsl router ]       <- No Nat
                                  [-------------] 

                                   |           |
                                   |           |
                                   |           |
                                   B           A
                  [--------WL-------]         [---BSD---]
     NAT ->       [ wireless router ]         [ bsd box ]
                  [-----------------]         [---------]
                                               X
                   |               |           |
                   |               |           |
                   |               |___________|
                   Y
[---------WEB--------]
[ web server + media ]
[--------------------] 

IP Addresses: 

A: External IP 82.*.*.A
B: External IP 82.*.*.B
X: Internal IP 192.168.1.101
Y: Internal IP 192.168.1.100 

### External Connectivity ### 

WEB -> WL -> (DSL) -> Internet [IP B]
BSD -> (DSL) -> Internet [IP A] 

Require:
Connection to A:80 forwarded to Y:80 

### Theoretical Solution ### 

Packet - [sourceip:port, destip:port] 

Packets IN 

[any:any, A:80] fwd/nat [A:80, X:80]
[A:80, X:80] fwd/nat [X:80, Y:80] 

Packets OUT 

[Y:80, X:80] fwd/nat [X:80, A:80]
[X:80, A:80] fwd/nat [A:80, any:any] 


### Description ### 

Hiya, 

As you can hopefully see, i'm trying to port forward a connection to an 
external ip on my BSD be box to the internal ip address of a machine that 
sits behind a wireless router. 

Please advise as to whether my "Theoretical Solution" is indeed correct for 
this purpose. 

I've been playing around with NATD and IPFW for a while now, and just cannot 
get it to respond. Assuming my logic is correct, my problem seems to be 
translating it in to the require configs/rules for natd and ipfw. 

In an attempt to simplify the problem, i have set apache to run on all the 
IPs of the BSD box. A telnet to 82.*.*.A 80 gets an index file showing 
"default", whereas a telnet to 192.168.1.101 80 gets an index file showing 
"192.168.1.101", the obvious trick being to get a telnet to 82.*.*.A to 
display "192.168.1.101" 

As this is failing badly too, i assume i am doing some really wrong. 

As you will see, i have a /29 external subnet but we're only really 
interested in 82.*.*.A 

rl0 -> external NIC going to ADSL Router
xl0 -> internal NIC going to Wireless Router 

IP Connectivity between all "hosts" is fine 

Details are as follows: 


 ----- rc.conf ----- 

defaultrouter="82.*.*.*"
hostname="XXX"
ifconfig_rl0="inet 82.*.*.*  netmask 255.255.255.248"
ifconfig_rl0_alias0="inet 82.*.*.A netmask 255.255.255.255"
ifconfig_rl0_alias1="inet 82.*.*.* netmask 255.255.255.255"
ifconfig_rl0_alias2="inet alias 82.*.*.* netmask 255.255.255.255"
ifconfig_xl0="inet 192.168.1.101 netmask 255.255.255.0"
ifconfig_xl0_alias0="inet 192.168.1.111 netmask 255.255.255.255" 

gateway_enable="YES"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-f /etc/natd.conf"
portmap_enable="YES"
firewall_enable="YES"
firewall_type="/etc/ipfw.rules/default"
firewall_quiet="NO" 

 ----- natd.conf ----- 

interface rl0
same_ports yes
redirect_port tcp 192.168.1.101:80 80 

 ----- KERNAL ----- 

options         IPFIREWALL
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFILTER
options         IPFILTER_LOG
options         IPDIVERT 

Cheers for the help!!!



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1BxOEf-00071r-1y>