Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm configuring a dd-wrt router to allow access via VPN to a remote desktop server. The router will sit behind another router providing NAT. I'm configuring it with a backup 3G mobile broadband link.

My primary concern is maintaining connection to a Citrix server. The land-line connection bounces (alternates between being up and down) sometimes, and the frequent disconnects wreak havoc on the remote desktop session.

Can I configure reliable multipathing over the two WAN connections?

  • Is this even possible behind two routers with NAT?
  • Will the latency of the 3G connection cause problems?
  • Can I maintain enough connection quality to prevent disconnect?

I'm not concerned with a truly 'seamless' failover, if it stutters for thirty seconds and comes back up that's sweet victory. The connection is only shared with one or two machines, and I'd like to get this done on a Linksys WRT54GL.

share|improve this question
What streaming? Are you planning to watch video over a Windows Remote Desktop connection over the VPN connection? Is that what you're referring to as "streaming"? If not, then what software/protocols are you planning to use for streaming, and where is the source/server and viewer/client of the stream? – Spiff Jul 28 '12 at 20:39
Streaming of the remote desktop using Citrix. Does the content make a difference? The server could be located across the country. – Tanner Faulkner Jul 28 '12 at 20:55
I didn't realize some people might call using a computer remotely to be "streaming". I generally think of streaming to be one-way, non-interactive. So when you said "streaming", I thought you might have left something out of your question, because nothing in your question sounded like streaming to me. – Spiff Jul 28 '12 at 22:53
@Spiff thanks I removed 'streaming' from the description. That explains the blank stares I've been getting... – Tanner Faulkner Jul 29 '12 at 2:31
I wanted to make this work until I saw Connectify beat me to it. :( Looks like their new Dispatch product does this, or at least tries to. – Tanner Faulkner Aug 17 '12 at 21:49
up vote 1 down vote accepted

I think the biggest problem you're facing is that most software's concept of a connection or session is between one server IP address and one client IP address. So, since your client -- or actually the NAT gateway that the server thinks is the client -- probably has two different public IP addresses, one for each WAN uplink, then when one of those uplinks fails, that IP address is no longer reachable, and the Remote Desktop connection (as well as the VPN connection) would terminate.

If you were a big institution, you could have an Autonomous System Number (ASN) and a block of IP addresses assigned directly to you by the RIR instead of being carved off from a block that was allocated to your ISPs, and then you could advertise more than one route to your network (one through each failover WAN link) and then you could have a single public IP address for your NAT gateway or for your client and the packets would find the right route to you, even if one of the links goes down.

But short of that, you're probably stuck trying to find Remote Desktop type software that can establish multiple TCP connections for a single client login session, so that when one TCP connection fails, the other one takes over. But I don't know of any software that can do that.

There are research projects and proposed new protocols that are not widely deployed that act as kinds of redundant, flexible transport layer protocols that could handle the situation you described. One that comes to mind is SCTP. There are probably many, many others. Unfortunately, I don't know of any apps that use any of these research projects or proposed protocols, so it doesn't seem likely that you'll find an easy way to do this.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .