Re: nat throught different gateways

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

 



On Mon, 2004-10-25 at 22:27, Christian Fassina Costa wrote:
> Hi ppl,
> 
> I have the following scenario:
> 
> A internal network 10.1.0.0/24
> A gateway with 3 interfaces
> eth0 adsl provided ip address
> eth1 10.1.0.1 (internal network)
> ppp0 192.168.0.234 (vpn to a foreign computer)
> The host in the other end is doing NAT with iptables for all addresses.
> 
> What I'd like to do:
> 
> Since I have several computer in my LAN I'd like one of them to use ppp0
> as output interface. I added a route to my internal network in the other
> end of my vpn (route add -net 10.1.0.0/24 gw 192.168.0.234). 
> If I add a static route, for instance: route add -host www.google.com gw
> 192.168.0.1, it works fine.
> 
> I tried adding an iptables rule as it follows:
> iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -o ppp0 -j MASQUERADE
> 
> I can successfully ping 192.168.0.1 but I figured out that the NAT is
> not working as I expected (traffic going out via ppp0).
> 
> I even tried setting up an alias for my eth1 with a different network
> 10.2.0.1
> 
> then I set up my computer with the address 10.1.0.2 with default gw
> 10.2.0.1.
> 
> If I use the following rule:
> 
> iptables -t nat -A POSTROUTING -s 0/0 -o eth0 -j MASQUERADE
> 
> it works fine for me and the other computers in the 10.1.0.0 network.
> 
> Then I tried
> iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth0 -j MASQUERADE
> iptables -t nat -A POSTROUTING -s 10.2.0.0/24 -o ppp0 -j MASQUERADE
> 
> 
> I worked fine for the 10.1.0.0 network but no for the 10.2.0.0 network.
> 
> Does anyone know how to solve this issue? I also read some ip route
> documentation but did not find anything suitable to solve this problem.

is it safe to assume that the default gateway of your netfilter machine
is the ADSL router?

if so--follow the instructions at:
        http://lartc.org/howto/lartc.netfilter.html
to setup an alternate default route for the "special case."

something like this:

# create an alternate route lookup table
echo 201 ppp0.out >> /etc/iproute2/rt_tables

# add a routing rule based on a netfilter mark
ip rule add fwmark 1 table ppp0.out

# add a default route to the alternate table
ip route add default via 192.168.0.1 dev ppp0 table ppp0.out

# mark the packets from the special source machine to be routed over ppp0
iptables -t mangle -A PREROUTING -i eth1 -s $SPECIAL_MACHINE -j MARK --set-mark 1

# make sure our MASQ rules use the IP of the exit interface
iptables -t nat -A POSTROUTING -s -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s -o ppp0 -j MASQUERADE

-j

-- 
Jason Opperisano <opie@xxxxxxxxxxx>



[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