My system has multiple Internet connections, and I want to be able to specify which of these connections particular applications will use. I run Windows XP Pro.
Connection A is EVDO. It's low-latency but has a limited amount of bandwidth usage per month (with steep overage charges if I exceed it), and is ideal for highly interactive applications (such as VNC, Remote Desktop, SSH, Skype, and certain web sites).
Connection B is satellite. It's high-latency, but without any limitations on monthly bandwidth usage, which makes it ideal for large downloads and general web browsing.
I want to be able to specify that certain applications use connection A (e.g. PuTTY, VNC, and RoyalTS), and have the other applications use connection B. I'd also like to be able to block certain applications from accessing the Internet at all, or only allow them to access certain IP address ranges. If it were possible to have connections from an application to certain IP addresses use connection A, and connections from the same application to other IP addresses use connection B, that would be really cool (but this is functionality I can live without if that is not possible).
Another very nice feature would be the ability to monitor total bandwidth usage on each Internet connection. If it was possible to monitor bandwidth usage per-application, that would be even better!
Can anyone recommend some software that will help? Googling gives me tonnes of hits for blocking and firewall software, but I didn't come across anything that looked like it does what I want.
Ideally, this would be one package with a nice GUI, but mixing and matching is fine, and I'm entirely comfortable with a text editor and the command-line if required. If I need to, I'd be OK with setting up a Linux (or *BSD) firewall box to manage my connections, but I'd rather not have to resort to that (recommendations for distributions that would make this relatively painless are appreciated).
My fellow programmers and I generally assume that desktop software is going to run on a machine with a single internet connection. Or, that the user won't care what connection to use in any particular case.
As a result, when we're programming, and we go to select an external IP with which to associate a new remote connection, we just tell the computer to give us whichever one it wants. We certainly could do otherwise, by specifying which of the available external IPs with which to associate. However, you would then be irritated by the fact that every time you browsed to a website, we popped up a little box asking you what external IP you'd like. 99% of people would think there was a virus or something.
So, I think that it would be highly unlikely that you will find an easy and universal way of pulling off per-application bindings.
The router can handle this for you, aside from deep magic traffic shaping. For instance, if you wanted to redirect PuTTY, you'd set up a firewall/router and filter ssh packets out a different interface than HTTP packets. But, you're going to need plenty of technical expertise for this to work like you imagine it.
Honestly, I'd just switch between the two different connections physically depending on what you're doing with it.
posted by Netzapper at 4:01 PM on March 5