Date: Mon, 12 Jan 2004 08:29:07 -0500 (EST) From: David Miller <fquestions@d.sparks.net> To: Dinesh Nair <dinesh@alphaque.com> Cc: freebsd-questions@freebsd.org Subject: Re: routing to specific network Message-ID: <Pine.BSF.4.21.0401120818400.57987-100000@search.sparks.net> In-Reply-To: <20040112120129.L336-100000@prophet.alphaque.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0401120818400.57987-100000>