routing to specific network

David Miller fquestions at d.sparks.net
Mon Jan 12 05:29:09 PST 2004


On Mon, 12 Jan 2004, Dinesh Nair wrote:

> 
> On Sun, 11 Jan 2004, David Miller wrote:
> 
> > So you want packets for 60.6.* to go out through ISP2?
> 
> it is amazing that how something which completely stumps you at 4am,
> suddenly becomes so clear after some sleep and coffee at 11am. i added a
> route for 60.6/16, but was trying to traceroute 61.6/16. the mistake kept
> perpetuating because i kept using the shell's history to run the
> traceroute, and the mind could not tell the difference between the 0 and
> the 1. my bad, and much apologies. all works fine now.

Oops. Now if I had a dollar for every time *I'd* done something like
that...

> 
> > Zebra implemets a number of routing protocols, including bgp.  With BGP
> > you can pick the best route *out* for your packet, but everyone else's
> > BGP sessions will decide the best route *in* for you.  In other words,
> 
> to me, if i can pick the source ip address of my _outgoing_ packet, i.e.
> on which interface the connection is made, i'd be a happy camper.

Isn't this equivilent to selecting the outbound route?  You want to select
10.a.b.c uf you want the connection routed out ISP 1 and 192.168.x.y
otherwise.


> since i have two interfaces with two ip addies, the first http connection
> can have a 192.168.0/24 ip address, with the flow being carried on fxp0.
> the second http connection have have a 10.1/16 address with the flow being
> carried on the aue0. that would actually solve the problem, without having
> to set up multiple static routes. would this be possible ?

I don't think that's really going to help much.  You still have to have
some basis for knowing which network you want to handle which
connections.  Unless you're doing heavy duty uploading somewhere you're
very likely to be limited by your inbound bandwidth, so it doesn't really
matter which interface you're going out anyway.

FreeBSD should pick the "closest" IP address for any outgoing connections
anyway.  Say you had two "real" addresses so we can forget about NAT,
12.1.2.3 and 24.2.3.4.  Say you routed 60.1/16 out the upstream for
24.2.3.4.  Say you pinged 60.1.2.3.  It would already see a source address
on the ping packets of 24.2.3.4, not 12.1.2.3.  You don't have to do
anything special for that to happen - your application would have to bind
to 12.1.2.3 exclusively in order for it to be the source address.

There are bizzare cases where it might make sense to try and load balance
two broadband connections, but they're really special cases and don't have
general purpose solutions:(

--- David



More information about the freebsd-questions mailing list