Linux Netfilter discussions
 help / color / mirror / Atom feed
From: Ramin Dousti <ramin@cannon.eng.us.uu.net>
To: Stephen Bylo <stephenbylo@yahoo.com.sg>
Cc: netfilter@lists.netfilter.org
Subject: Re: DNAT/SNAT & existing connections
Date: Tue, 15 Jul 2003 22:50:41 -0400	[thread overview]
Message-ID: <20030716025041.GE25639@cannon.eng.us.uu.net> (raw)
In-Reply-To: <20030716021258.95036.qmail@web13103.mail.yahoo.com>

Hi Stephen,

You lost me here. M is a remote host with two interfaces. There are
two networks (AS) between your router R and M. I take that R is a
linux box (??).  Interface 1 is always up and interface 2 is sometimes
up. Now you want to send the packets (mostly UDP) from your server S to M
and you want the router R to do some kind of magic and know when 2 is up
and nat to 2 and use 1 otherwise. While this might work for UDP (if I only
knew how) there is no way you can switch between dst IP's of a TCP session.

What you could do is:
1) Have a loopback(dummy) interface D on M
2) Use some kind of routing protocol on M to propagate this D through
   1 and 2 to the networks..
3) Receive this route from those networks on R

Then you could assign a higher cost to the network connected to 1. When 2 is
up your preference would be through the lower network. When 2 is down, the
only path would be through 1. At any rate the server S should only talk to
D. This solution works for both UDP and TCP...

But I'm certain that M (being mobile) cannot send out any routing information.
And besides your ISP's are not willing to receive the route from M and also
are not willing to pass that route to R.

So, no, sorry I don't have any solution for you.

Ramin


On Wed, Jul 16, 2003 at 10:12:58AM +0800, Stephen Bylo wrote:

> Dear Ramin & List,
> 
> Thanx for your mail.  The world is getting more
> mobile, so here is some detail to my problem:
> 
> A mobile host M has two interfaces 1 & 2.
> M is reading an open udp stream from host S (server)
> on interface 1.  Interface 1 is always on-line. 
> Interface 2 is only sometimes online and the route to
> 2 provides much more bandwidth than the route to 1.  I
> want to route the stream through the higher bandwidth
> without S having to know about it.  S should always
> think its communicating with the IP on interface 1.
> 
>                       ____some network___(1) slow
>    S -------- NAT ---R___________________ M
>                           some network   (2) fast
> 
> R = our router to two different external networks
> 
> Tcp connections should also be "kept alive" and
> diverted to interface 2 on M.
> 
> After reading
> "netfilter-hacking-HOWTO.linuxdoc-4.html" and
> "iptables-tutorial.html" I find that existing
> connections will not be "diverted" in this way, only
> new connections are looked up in the NAT table.
> Would it be possible to change the dst values in the
> "conntrack" table as well as changing the NAT entry
> when interface (2) comes on-line ?
> 
> Any other ideas ?
> 
> Thanx for any help,
> Steve
> 
>  --- Ramin Dousti <ramin@cannon.eng.us.uu.net> wrote:
> > On Tue, Jul 15, 2003 at 06:01:15PM +0800, Stephen
> > Bylo wrote:
> > 
> > > Dear list,
> > > 
> > > I am looking into the use of a NAT "router" to
> > change
> > > the destination (or source) IP addresses of
> > packets in
> > > existing connections.  Maybe it sounds weird why I
> > > might want to do this, but I need to divert
> > streams to
> > > other destinations!
> > > 
> > > I understand from the iptables docs that only the
> > > first packet of a connection is examined for NAT
> > > entries, subsequent packets do not need to be
> > > processed again.
> > 
> > They do get processed. There is a short circuit to
> > identify these
> > packets and avoid traversing the whole nat table.
> > 
> > It's not clear to me what you precisely want to do.
> > 
> > Ramin
> > 
> > > I would like all packets to be
> > > examined OR I would like to be able to "reset" the
> > > particular entry in the table so that the existing
> > > connection will be "re-considered" again using the
> > > NAT.
> > > 
> > > Is this possible in some way with iptables?  If
> > not,
> > > can you point me in the right direction to a
> > solution,
> > > please?
> > > 
> > > Thanx,
> > > Steve
> > > 
> > > __________________________________________________
> > > Do You Yahoo!?
> > > Send free SMS from your PC!
> > > http://sg.sms.yahoo.com 
> 
> __________________________________________________
> Do You Yahoo!?
> Send free SMS from your PC!
> http://sg.sms.yahoo.com


  reply	other threads:[~2003-07-16  2:50 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-15 10:01 DNAT/SNAT & existing connections Stephen Bylo
2003-07-15 14:04 ` Ramin Dousti
2003-07-16  2:12   ` Stephen Bylo
2003-07-16  2:50     ` Ramin Dousti [this message]
2003-07-16  5:25       ` Stephen Bylo
2003-07-16 14:06         ` Ramin Dousti
2003-07-17  2:14           ` Stephen Bylo
2003-07-17 12:29             ` Ramin Dousti
2003-07-18  1:09               ` Stephen Bylo
2003-07-18 13:59                 ` Ramin Dousti

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=20030716025041.GE25639@cannon.eng.us.uu.net \
    --to=ramin@cannon.eng.us.uu.net \
    --cc=netfilter@lists.netfilter.org \
    --cc=stephenbylo@yahoo.com.sg \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox