From: Sebastian Bleikamp <Sebastian.Bleikamp@web.de>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] Splitting locally generated traffic based on destination port
Date: Sat, 31 Aug 2002 19:47:57 +0000 [thread overview]
Message-ID: <marc-lartc-103082339922978@msgid-missing> (raw)
In-Reply-To: <marc-lartc-103082070321370@msgid-missing>
Arthur Donkers wrote:
> My question now is how to define a policy so specific traffic, generated
> locally by sendmail and ssh, uses eth0 as its interface in stead of eth1
> which is used for the default route ?
>
> I already mark outgoing traffic in the mangle table thus
> iptables -A OUTPUT -t mangle -p tcp --dport 25 -j MARK --set-mark 1
> I have to SNAT outgoing traffic as well:
> iptables -A POSTROUTING -t nat -m mark --mark 1 -j SNAT --to-source <eth0>
> I have added a table mail.out to /etc/iproute2/rt_tables and defined rules
> like this:
> ip rule add fwmark 1 table mail.out
> ip route add default via <gw on eth0 network> dev eth0 src <eth0>
>
> And when I do this:
> telnet <mailhost> 25
>
> I indeed see a SYN packet coming out of eth0 to <mailhost>, and a SYN/ACK
> packet comes back. The problem is that it appears that the Linux box does
> not see this SYN/ACK packet and resends the SYN packet after a few
> seconds, which again is answered by a SYN/ACK and this goes on a few
> times. No other packet filters are active on the Linux box (yet).
Hello Arthur,
I´m not a professional in routing, but I think I´ve read something about
the routing mechanism:
Packet ---> Table PREROUTING -+-> Table FORWARD -+-> Table POSTROUTING
| | (and then out)
+-> Table INCOMING |
|
Table OUTGOING -+
The problem is, that the routing decision is done AFTER processing the
forward table, but BEFORE the postrouting table (NAT). So it is possible
to modify the packets in POSTROUTING that way, that they will go out via
device A, but have the ip of the other device B.
If the "answer" packet comes in at A (but are addressed to B), the
address will be checked and device A drops (/does not listen to) them.
("Hey, that packet is not for me !").
Possible unclean variant to fix that would be to put device A in the so
called "promisc" (promiscueing ?) mode, where all packets are processed.
Clean variant is _not_ to do NAT by the filter. Make the _routing_
decision depending on the filter. And NAT is done afterwards based on
the routing.
Hope I told not too much wrong,
Sebastian
-=> Sebastian Bleikamp
-=> EMail: <Sebastian.Bleikamp@web.de>
-=> Phone: +49-172-6545394
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
next prev parent reply other threads:[~2002-08-31 19:47 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-31 19:03 [LARTC] Splitting locally generated traffic based on destination port Arthur Donkers
2002-08-31 19:46 ` [LARTC] Splitting locally generated traffic based on destination Miernik
2002-08-31 19:47 ` Sebastian Bleikamp [this message]
2002-08-31 20:41 ` [LARTC] Splitting locally generated traffic based on destination port Arthur Donkers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-lartc-103082339922978@msgid-missing \
--to=sebastian.bleikamp@web.de \
--cc=lartc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.