[LARTC] Routing with SNAT

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 22, 2002 at 07:31:32AM -0600, Ti Leggett wrote:
> I've been having some problems recently with regards to getting a
> particular configuration setup. Excuse me if this has been asked before
> but I couldn't think of a way to search for this type of question. What
> I have is this: a wireless NAP that does PPPoE, an ARM netwinder running
> debian, an Intel box running RedHat/Windows. I'm currently using DSL and
> get a static IP via PPPoE. What I want to do is this:

Ok.         

> - I want the wireless NAP to connect to my DSL (ARM pppoe just isn't
> there yet).

No? The stuff in the kernel seems very generic and works tremendously well.

> - I want the netwinder right behind the NAP and fully open to the
> internet (this is achieved using the NAP's DMZ feature)
> - The netwinder will run netfilter doing my packet filtering, NAT, and
> traffic shaping
> - The netwinder will also be connected to a hub
> - All machines behind the netwinder will connect to the hub and use the
> netwinder's NAT to gain net


Can people please draw a picture? It's not that hard and it makes it lots
easier to see what you want. Anybody wanting to answer this question now has
to draw this (mental) picture first, making the people who you want answers
from do the work :-)

         ARM - NAP  - DSL 
          |
       -------
       x x x x

> Let's say my static ip is 1.2.3.4. The NAP's local address is
> 192.168.123.254. The netwinder's interface to the NAP (eth0) is
> 192.168.123.1. The netwinder's hub interface (eth1) is 192.168.1.1. The
> netwinder's default route is 192.168.123.254. All other machines
> connected to the hub are in the network 192.168.1.0/24 and have the
> default route 192.168.1.1. On the netwinder I use netfilter to do SNAT
> using the following rule:
> 
> -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth0 -j SNAT --to
> 1.2.3.4

        eth0
        123.1  123.254 
        ARM  -    NAP   -  DSL 
    eth1 | 1.1
         |
      -------
      x x x x

> What works:
> 
> -The netwinder can see both local nets .123 and .1 as well as the
> outside internet
> -All machines behind the netwinder get one way communication outwards.
> Example:


This is good - letting people know what does work helps :-)

> On the intel machine which has address 192.168.1.2 I try to ping 2.3.4.5
> (an outside IP). I have root access on 2.3.4.5 so I put the ethernet
> interface into promiscuous mode and run "tcpdump -i eth0 -p icmp". On
> the netwinder I put eth0 into promiscuous mode and do the same. What I
> see is that the netwinder sees the outgoing ICMP requests with my static
> ip (1.2.3.4). 2.3.4.5 sees the request coming from 1.2.3.4 and sends
> replies. The netwinder never sees the replies. What I've gathered is
> that the netwinder needs to broadcast that it is the route for 1.2.3.4
> so that these return packets get past the NAP and routed to the
> netwinder. In my searching I haven't found how to do this. Can anyone
> let me know how this might be achieved or let me know the proper way to
> get this working? Thanks!

What you did is invent an IP address :-) Your ISP shouldn't even let a
packet with source 1.2.3.4 go out, unless that IP address is *yours*.

In this case, you should change 1.2.3.4 to an address that is routed to you,
or ask your ISP to route one to you.

To see what I mean, traceroute to 1.2.3.4 from 2.3.4.5 and you will that
packets aren't even going near you.

Good luck!

-- 
http://www.PowerDNS.com          Versatile DNS Software & Services
http://www.tk                              the dot in .tk
http://lartc.org           Linux Advanced Routing & Traffic Control HOWTO


[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux