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

RE: Multiple TCP source addresses?



I'm cc'ing multi6@ops.ietf.org, which was recently formed to discuss site
multihoming issues like this, albeit in the context of IPv6 instead of IPv4.
This is definitely an important problem to solve.

You're headed down the path to one possible solution, in which hosts have
multiple addresses and are smart enough to try different combinations of
src/dst address to find a working path.

There are other approaches that are more routing based. For example suppose
your house has one address prefix, which was allocated out of a block
assigned to your metro area/region. Your house network prefix is advertised
inside all ISP networks in your region, but not to other regions. Only the
shorter region prefix is advertised to other regions. Then routing protocols
take care of finding a working path inside the metro region.

Rich

> -----Original Message-----
> From: der Mouse [mailto:mouse@Rodents.Montreal.QC.CA]
> Sent: Friday, December 15, 2000 6:20 AM
> To: tcp-impl@grc.nasa.gov
> Subject: Multiple TCP source addresses?
> 
> 
> I've got a problem I'm trying to invent a solution to and I 
> thought I'd
> ask if there's any past work I should look at, or perhaps it's already
> been solved and I just don't know it.
> 
> Most of the hosts on my home LAN are multihomed; I have address space
> from two different places and I run both subnets over the same house
> Ethernet.  (Network interfaces are configured to have both addresses.)
> Sometimes one block of address space is reachable while the other one
> isn't, and outgoing packets are routed to one of two tunnels (one to
> each provider of address space) based on which subnet their source
> addresses fall into.
> 
> This all works well in normal circumstances.  The problem is with
> outgoing connections when one block of address space is 
> unreachable for
> some reason.  All the hosts have their default routes pointing to the
> off-LAN gateway, but I had to pick one of its two addresses, and the
> source address for the outgoing connection is always in the
> corresponding subnet.  When that subnet is unreachable from the
> destination host, outgoing connections fail even if I do have
> connectivity to that host via the other subnet.
> 
> I could deal with the case where a subnet goes completely unreachable
> with a routing protocol of some sort, perhaps.  But 
> reachability is not
> always all-or-nothing; depending on where the outage is, which hosts
> can reach which subnet varies.
> 
> So I'd like to do something so that outgoing connections for which the
> application has not specified a source address don't always try with
> one source address and give up if that doesn't work; conceptually, I'd
> like to try from all local addresses.  I was thinking of sending out
> multiple SYNs, one for each local address; as soon as one gets
> SYN-ACKed, that would commit the local address and SYN-ACKs for the
> others would draw RSTs.  It does occur to me that I may want 
> to do this
> round-robin among the addresses, rather than in bursts, to avoid
> creating unnecessary embryonic connections on the taget host in case
> both addresses work.  (Of course, they would be torn down quickly in
> response to the RST, but still.)
> 
> Comments?  Thoughts?  Prior art?
> 
> 					der Mouse
> 
> 			       mouse@rodents.montreal.qc.ca
> 		     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B
>