I have a multi-homed server running bgp via quagga
If I fire up an application on this server that initiates a connection, by default it is going to choose the interface with the lowest metric, ie the address of the neighbour of the bgp router, which is unfortunate since these neighbour addresses are not even deliverable upstream.
In the event that the software initiating the connection does not have the ability to bind to a specific ip address, is it possible to make the application bind to a specific ip by another method? adjusting the metrics to prefer an interface doesn't seem viable with dynamic routing.
There is the option of running the bgp in a jail and using a vnic, if nothing else is going to work
EDIT
I Will award the bounty if someone explains:.
how to do this.
Explains how to do this on Linux if it isn't possible in BSD.
Provides an authoritative reference of why this isn't possible at this time.