[wellylug] iptables

Cliff Pratt enkidu at cliffp.com
Sun Mar 27 10:12:27 NZST 2005


Ewen McNeill wrote:
> In message <1111747857.15666.11.camel at munter>, Jamie Baddeley writes:
> 
>>I'm trying to do some nat for my hosts on the Lan side. It's simple, I
>>want to snat any lan hosts to my exterior address. In this case the
>>exterior address is actually a vtun tunnel (i.e a device tun0)
>>
>>I'm using this:
>>iptables -t nat -A POSTROUTING -o tun0  -s 192.168.91.0/24 -j SNAT --to-source 
>>203.96.174.134	  
>>[but it doesn't work]
> 
> 
> If you don't do the SNAT what interface does the traffic go out on?  My
> guess would be that it doesn't go out the vtun, it goes out the default
> route, because the source address doesn't match the vtun end point
> and/or it's not being routed through vtun.
> 
> If vtun is anything like IPSec tunnels, etc, then I'd suspect that (a)
> you'll need to ensure the address matches what the tunnel is prepared to
> carry and (b) you'll have to do that before the routing decision is
> made.
> 
> If it were me I'd try putting that rule into the PREROUTING and see if
> that improves the routing decisions.  And/or look at iproute2's ability
> to set the src address.
> 
> At very least you need to confirm that the unnatted traffic is actually
> going out through the vtun before you can expect a POSTROUTING rule to
> have any effect.
> 
> Ewen
> 
> PS: I used GRE tunnels for a similar setup in my case because GRE
>     tunnels do not have any notion of what "belongs" on the tunnel, you
>     just route traffic through them.
> 
You can't SNAT in a PREROUTING rule. You use DNAT on 
PREROUTING rule, and he doesn't want to change the 
destination. For what he is doing I think he needs a 
MASQUERADE rule in the POSTROUTING chain of the nat table.

I'd forgotten about the routing. That's probably the answer.

Cheers,

Cliff




More information about the wellylug mailing list