From: Noah McNallie on
just as the topic describes.

I'm currently doing SNAT to force some destination tcp ports to be routed
through a specific route rather than the default route. To accomplish this
I mark thoes packets with iptables, use 'ip' to specify marked packets via
the specified route, and then use iptables to change their source address.

one problem i've noticed is that in netstat (and hence /proc/net/tcp) the
connections are shown as their original source. this causes problems with
some things such as identd, because identd won't see the SNATed to ip with
that port open. hence it will reply that it has no connection.

anyway i can get around this?

noah
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Alexander Clouter on
Noah McNallie <n0ah(a)n0ah.org> wrote:
>
> just as the topic describes.
>
Probably better to post this to netdev?

> I'm currently doing SNAT to force some destination tcp ports to be routed
> through a specific route rather than the default route. To accomplish this
> I mark thoes packets with iptables, use 'ip' to specify marked packets via
> the specified route, and then use iptables to change their source address.
>
SNAT'ing locally sourced traffic? That's pretty nasty.

Look into using 'ip rule' and a second routing table.

http://lartc.org/howto/lartc.rpdb.html

You will still need use iptables/MARK to do L4 (tcp/udp/etc) policy
routing though, however now you can dump the ugly SNATing.

Cheers

--
Alexander Clouter
..sigmonster says: Where do your SOCKS go when you lose them in th' WASHER?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Noah McNallie on
On Sun, 11 Jul 2010 10:30:25 -0400, Alexander Clouter <alex(a)digriz.org.uk>
wrote:

> Noah McNallie <n0ah(a)n0ah.org> wrote:
>>
>> just as the topic describes.
>>
> Probably better to post this to netdev?
>
>> I'm currently doing SNAT to force some destination tcp ports to be
>> routed
>> through a specific route rather than the default route. To accomplish
>> this
>> I mark thoes packets with iptables, use 'ip' to specify marked packets
>> via
>> the specified route, and then use iptables to change their source
>> address.
>>
> SNAT'ing locally sourced traffic? That's pretty nasty.
>
> Look into using 'ip rule' and a second routing table.
>
> http://lartc.org/howto/lartc.rpdb.html
>
> You will still need use iptables/MARK to do L4 (tcp/udp/etc) policy
> routing though, however now you can dump the ugly SNATing.
>
> Cheers
>

ok i'll stick it there i must have missed that browsing mailing lists last
night... uhh as far as ip rule i am using that, that's how i match the
packets with the firewall mark that need to go out a specific interface
and to a specific route... i don't believe ip rule has any option to match
packets based on destination port and change their source address and
route them out any specific interface, or i'd be doing that all along as
that would be much better.

noah
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Alexander Clouter on
Noah McNallie <n0ah(a)n0ah.org> wrote:
>
>> Look into using 'ip rule' and a second routing table.
>>
>> http://lartc.org/howto/lartc.rpdb.html
>>
>> You will still need use iptables/MARK to do L4 (tcp/udp/etc) policy
>> routing though, however now you can dump the ugly SNATing.
>
> ok i'll stick it there i must have missed that browsing mailing lists last
> night... uhh as far as ip rule i am using that, that's how i match the
> packets with the firewall mark that need to go out a specific interface
> and to a specific route... i don't believe ip rule has any option to match
> packets based on destination port and change their source address and
> route them out any specific interface, or i'd be doing that all along as
> that would be much better.
>
I read your original post as saying were using iptables and the SNAT
action, I am suggesting you use 'ip rule' to say "if x/tcp or y/udp
using routing table 'alternative'". Might be easier if you actually put
here the ip/iptables rules you are actually using?

In the alternative routing table you can say to use a different source
IP and/or alternative default gateway address (using something like 'ip
route ... src ... via ... dev'). As I mentioned before, as 'ip rule'
only knows about IP addresses (and not tcp/udp/etc port numbers and what
not) you will need to use iptables MARK action and the fwmark in 'ip
rule' to get the L4 policy based routing you want.

By using a second routing table (as described in the LARTC link), you
can stop using the 'iptables -j SNAT' I think you are using. Then,
hopefully all your netstat output for locally sourced traffic will be
correct.

Cheers

--
Alexander Clouter
..sigmonster says: You will be married within a year, and divorced within two.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/