Re: IP forwarding with MASQUERADE

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

 



On 10/07/08 10:58, Michel Benoit wrote:
Thanks for the quick reply.  I'm still stumped by this problem.

You are welcome.

Here is the combined output from the netfilter LOG and tcpdump on ppp0 when i ping 10.0.0.1 from (2):

fwd:IN=eth0 OUT=ppp0 SRC=192.168.0.183 DST=10.0.0.1 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=2

msk:IN= OUT=ppp0 SRC=192.168.0.183 DST=10.0.0.1 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=259 SEQ

17:36:59.835282 IP 10.146.92.12 > mail1.telia.com: ICMP echo request, id 259, seq 1, length 64

Am I correct in presuming that "mail1.telia.com" is 10.0.0.1?

in:IN=ppp0 OUT= MAC= SRC=10.0.0.1 DST=10.146.92.12 LEN=84 TOS=0x08 PREC=0x80 TTL=57 ID=33913 PROTO=ICMP TYPE=0 CODE=0 ID=259

17:37:00.597894 IP mail1.telia.com > 10.146.92.12: ICMP echo reply, id 259, seq 1, length 64

Hum...

On the first line we see the LOG output from the FORWARD rule from eth0 to ppp0 catch the packet.

In the 2nd line we see that the MASQUERADE rule is taking effect and swaping the source address.

We then see in the 3rd line the tcpdump output where the ping packet gets sent to the destination machine.

*nod*

The two last lines show that the ping reply is being received and that for some reason it is not being DE-MASQUERADED because it ends up being processed by the INPUT LOG rule. The correct behaviour would have been to swap back the destination adress and apply the FORWARD rule to forward the ping reply to 192.168.0.183.

Agreed.

I setup the iptables after the ppp0 interface is up.

Ok.  I just had to double check.

Where can I go from here to debug the problem? Can I be missing a CONFIG option in linux? Attached is my linux .config file.

I'm not sure what to tell you to do. I've never had connection tracking fail on me like that.

I've set CONFIG_NETFILTER_DEBUG to y but I don't see any extra debug info. Is there something else that I need to do to get the netfilter code to give me some more information?

Not that I know of.

What could be causing the de-MASQUERADE operation to fail when the MASQUERADE operation succeeds? Is there any way to look at the masquerade tables or whatever place netfilter saves its masqueraded address+connections information?

I believe the connections that connection tracking is keeping track of are listed somewhere in /proc, but I don't know where off hand.

Can the combination of iptables v1.3.8 and linux kernel v2.6.25 be out of synch or corrupted?

I would not think. Usually if you have a mis-match between the iptables binary and the kernel you will get an error indicating such, not a weird mis-behavior like you are seeing.

My root file system is read-only? Could that cause problems? Does the netfilter code generate any files in the root filesystem?

No, that should not make a difference. Technically you can run a router in run level 0 with all file systems mounted read only and never have a problem.

The only thing that comes to mind is that there is something stale in your IPTables rules in memory. Will you please do an iptables-save and show us the output?



Grant. . . .
--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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