Routing to multiple uplinks

This may be slightly off topic however I have a very unique situation where I need to provide two diverse paths to a major stock exchange. Each host may either use route A or B for any given reason to access this particular exchange using two distinct routers and target address.

The applicatiOn running on these hosts must only see/use one target address this needs to be transparent as possible. NIC bonding/teaming on the host side isn't a viable solution because of the latency overhead same goes for vrrp/hsrp.

I believe my only option here is to setup multiple default routes with a preferred path of some sort. This seems to be possible using ip route2 on Linux.

This just seems wrong on many levels and I thought I would post here because I know there is something obvious I'm missing.
Please clue me in.

Thanks.

rodrick brown wrote:

This may be slightly off topic however I have a very unique situation where I need to provide two diverse paths to a major stock exchange. Each host may either use route A or B for any given reason to access this particular exchange using two distinct routers and target address.

Have you considered point-to-point circuits?

The applicatiOn running on these hosts must only see/use one target address this needs to be transparent as possible. NIC bonding/teaming on the host side isn't a viable solution because of the latency overhead same goes for vrrp/hsrp.

What latency do you mean when you talk about NIC bonding and VRRP?

Peter

If you're worried about the latency issues with NIC bonding, what do you
intend to do about the speed-of-light latency from Chicago to NYC?

Anycast?
http://www.nanog.org/meetings/nanog29/abstracts.php?pt=NjcxJm5hbm9nMjk=&nm=n
anog29

Might need to know a little more about the layout here for a better answer.

  -Scott

Maybe I am missing something, but how does VRRP/HSRP cause latency?

VRRP/HSRP does not cause latency the problem we faced prior was when links
flapped or timed out this would be too much of a hindrance for our users to
reconcile application state with various trading venues we are trading
thousands upon thousands of trades a minute to various destinations.

As stated before Path A and Path B are two distinct paths they do however
provide identical services but application state is not preserved. A new
session and state must be established if a user decides to switch between
paths.

Essentially we provide the ability for users either shutdown and start
sending orders to Path A or Path B based on latency from our servers to
these trading venues we're actively monitoring latency between both end
points.

The overall design is being driven by our rigorous application needs more
than anything.

The implementation is straight forward we receive a duplicate set of feeds
from site A and site B and can also access various services coming from site
A or site B however, at any given time a user will be sending/recieving data
from one of those destinations. Never both simultaneously. So my question
what is the best way to provide this type of redundancy at the host level?

The application will only use one target address.

HSRP/VRRP can be tweaked to less than 1s fail over time. Can you provide
a copy of your network map for analysis? GLBP might be a viable option
as fail over is not actually an issue at that point.

The overall design is being driven by our rigorous application needs
more
than anything.

The implementation is straight forward we receive a duplicate set of
feeds
from site A and site B and can also access various services coming from
site
A or site B however, at any given time a user will be sending/recieving
data
from one of those destinations. Never both simultaneously. So my
question
what is the best way to provide this type of redundancy at the host
level?

The application will only use one target address.

You've stated two seemingly contradictory things. 1) The User decides which paths to take yet the 2) application cannot see more than one path.

First, this sounds like a User issue. The application with such rigorous requirements should have the features you need to manage this.

Barring that... :slight_smile:

The mechanism the User uses to (manually) decide which path to take should make the election and handle the switchover in visibility. Presumably, since your application cannot tell when its switched destinations/paths it needs to be notified if the network makes a VRRP/HSRP decision. This all points to the mechanism you presumably already have in place for manual path decisions.

If you are using your Linux box or whatever to make your path choices, simply have a script that sees if the path preferences have changed and use your method to notify the Application.

If you are using a Cisco (or other) dedicated router, run something on the Application box or servers that will notice this change (if even by querying the router) so it can proactively detect this.

You've asked for a technical suggestion but have not provided any detail about the actual constraints you have -- though you've implied them without context.

Deepak Jain
AiNET

Am I right in assuming that you're establishing application-layer sessions to two hosts with two different IP addresses (outside of your control) which provide (close to) identical services? If so, there's not much you can do outside of the application itself (at least if you want a semi-robust solution).

You could try (reverse) load balancer, but even then the application session would have to be disconnected before being switched over to the other host.

As stated before Path A and Path B are two distinct paths they do however
provide identical services but application state is not preserved. A new
session and state must be established if a user decides to switch between
paths.

Ivan Pepelnjak
blog.ioshints.info / www.ioshints.info