RE: DNATed packet not hitting FORWARD chain

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

 



> James wrote:
> 
> >Hi,
> >
> >I'm having some trouble getting DNAT to work properly.  I have a gateway
> >machine that has two different connections to the Internet, on eth1 and
> >eth2.  I'm trying to allow inbound port 1723 to be forwarded to an
> internal
> >PPTP server through both interfaces.  It works on eth2, but not eth1.
> >Here's what I've got:
> >
> >
> >
> Hi
> I would try to check if packets arrives on .165 by tcpdump on this host.
> just to see if DNATTING and FORWARDING is done correctly, and it should
> be based on rules u showed us.
 
Packets don't arrive on .165.  They don't even hit the FORWARD chain, they
disappear somewhere between nat PREROUTING and filter FORWARD.


> Then i would ask how do you deal with routing packets on your gw. I
> mean, if u receive the connection on eth2 and you DNAT and forward to
> .167 , the returning packets from .167 should be routed to the eth2 and
> exit the gw from that interface. The same for eth1 and .165
> 
> What about you routing settings on the gw? maybe u use eth2 as default
> route interface and also the packets that come back from .165 exits and
> are routed by eth2. this way you'll never get the SNAT rule associated
> to the previous DNAT rule matched and applied .

Well, that was it.  I added a routing rule to route packets from .165 out
eth1, and suddenly packets are making it to the FORWARD chain.

I guess that the Linux routing decision checks the return path for the
packet as well, and drops it if there isn't one.  Since there wasn't a
return route, the packet was dropped between nat PREROUTING and filter
FORWARD.

> 
> BTW this is just an idea ;)
> 
> bye
> primero

Thanks, it was a good idea.



[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux