All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julian Anastasov <ja@ssi.bg>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] two upstreams without nat
Date: Thu, 26 Jun 2003 20:42:07 +0000	[thread overview]
Message-ID: <marc-lartc-105666086605716@msgid-missing> (raw)
In-Reply-To: <marc-lartc-105653036404370@msgid-missing>


	Hello,

On Wed, 25 Jun 2003, Tomas Bonnedahl wrote:

> im in the process of configurating our network to have two upstream 
> providers, it will be loadbalanced
> under normal operation and a complete failover if one of the lines would 
> fail.
>
> internet		internet
>   |			  |
> border			border
>   |                       |
>       |- core router - |
> 	     |
> 	    lan

	The problem is that the multipath route assumes one packet
can go through any of the defined nexthops. This is valid for setups
with many ISPs allowing spoofing, you can safely send packet with
saddr=IP1 via ISP2 and this works as long as ISP1 is UP to receive
the replies from remote hosts. But for your setup there is one
requirement: once one connection is routed via Border X all its
packets should go via the same border router for NAT purposes.
Even the related ICMP traffic. And this works ... for some time
until the routing cache is flushed and different Border router is
selected from the multipath route. The connection usually dies.

> the "problem" im having is that i will not do nat on the core router, but on the border routers.
> the multipath default route is on the core router. from what i understand, could be totally wrong,
> you have to have nat, at least connection tracking on the core to make the multipath route per
> flow and not per packet.

	I'm not sure the Linux conntracking has such feature. IIRC,
the netfilter follows the routing decision, i.e. nobody guarantees
that packets from one connection will continue to use same nexthop
while it is alive. Considering the fact that all cache entries
expire (on user request or on timeout) the current implementation
can not guarantee such persistence for the forwarded connections
that have multiple possible paths. This works only if the core router
performs NAT and when the NAT implementation does not blindly
follow the multipath route decision. The problem can be solved in
this way: the NAT connection requests route with saddr=the external
IP address attached for this connection. As result, the multipath
route is avoided and the traffic for one connection is bound to
one ISP (usually): http://www.ssi.bg/~ja/#routes

> any insight of this?
>
>
> -tomas bonnedahl

Regards

--
Julian Anastasov <ja@ssi.bg>


_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

  parent reply	other threads:[~2003-06-26 20:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-25  8:35 [LARTC] two upstreams without nat Tomas Bonnedahl
2003-06-25 17:32 ` William L. Thomson Jr.
2003-06-25 17:44 ` Aaron Dewell
2003-06-25 23:08 ` William L. Thomson Jr.
2003-06-25 23:19 ` William L. Thomson Jr.
2003-06-26 20:42 ` Julian Anastasov [this message]
2003-06-27  0:25 ` Tomas Bonnedahl

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-105666086605716@msgid-missing \
    --to=ja@ssi.bg \
    --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.