On Tue, Nov 29, 2005 at 11:26:49PM -0700, andrew fresh wrote: > Hijacking this thread, cuZ now I am worried . . . . > > > On Mon, Nov 28, 2005 at 11:46:56PM -0800, David Ulevitch wrote: > > > I'd like to hear how people are using OpenOSPFd > > I will prbly use OpenOSPFd in the future, but at the moment, my question > is about using OpenBGPd and multiple lines from the same provider. > > I am getting 4 T1s from a single provider. Issues with local telco > "facilities" for T3's and other things are causing me problems with > getting anything different. > > I am going to end up with something like this: > san0-\ > san1-\\ all connected to a single provider > san2-// > san3-/ > > Now, I assume I will have a single BGP session with them. (I have very > little information for lines that are supposed to be installed tomorrow > morning at 9am). > > Right now I have a cisco 3640 that has 2 T1's from AT&T and 2 from > Sprint, it has enough trouble with those which is why I want to replace > it with an OpenBSD box. I am going to have an iBGP session with the > 3640 and an eBGP session with my new provider. > > I will be adding 20Mb over ethernet at some point in the fairly near future > (if they can ever get it installed) and will hopefully be getting rid of > the 3640 at that point. > > The OpenBSD router will not be doing any NAT, it will be passing public IPs. > > > This is what has me worried: > On Tue, Nov 29, 2005 at 03:33:07PM +0100, Claudio Jeker wrote: > > There is no kernel support for multipath routing. > > > I want to load balancing across those 4 T1s and it is sounding like I > will not be able to do that and will have to figure out how to get these > 4 new lines into my old cisco router. > > Unfortunately trunk(4) doesn't work with san interfaces :-( and that is > how it looked possible to do the bonding/inverse muxing that I was going > for. > > $ ifconfig trunk0 trunkport san0 trunkport san1 > ifconfig: SIOCSTRUNKPORT: Protocol not supported >
It could be possible to use trunk with sppp but that needs some patching. At least a round-robin trunk should be possible. > It would be really kewl to use the trunk(4) interface for the BGP > peer address, since it now does failover, it would be up as long as any > individual lines were up. It would be even kewler if it would be able > to change the weighting on that interface depending on the number of > lines in the trunk, but I guess I am dreaming again. > Jep. > I guess I am looking for something like 'ip load-sharing per-packet' in > cisco terms. But my real question is: How do I get OpenBSD to treat > those 4 T1s as a single line and share the load across them? > > or, how do I get a reasonable approximation from OpenBSD? > Currently I think you can only do it with pf and route-to. > > Also, with those 4 T1s, I want to make sure that in case any of the 4 go down, > the BGP session will stay up. With a cisco box, I just bind the session > to a loopback address, add routes for each interface and it will choose > one of the interfaces that is up to get to the destination. How do I do > this with OpenBSD? > Using a loopback interface is no porblem with OpenBSD. Having 4 routes in the routing table and choosing the right one is a problem. Currently this is not possible. > Will the BGP session just work when I solve the load balancing issue? > I would guess so. > or do I have to do weird things with ifstated(8) (like 16 states for the > 4 lines and lots of route add/delete statements)? > You most probably need ifstated to make sure that failed routes get removed (if link is down). > or something with 'route-to' in pf? > http://marc.theaimsgroup.com/?l=openbsd-misc&m=112831360613745&w=2 > > This seems to work in my test environment: > # t1s is an interface group containing all of the links to that provider > pass out on t1s route-to { \ > (san0 10.35.0.2) \ > (san1 10.35.1.2) \ > (san2 10.35.2.2) \ > (san3 10.35.3.2) \ > } round-robin keep state > pass in on san0 reply-to (san0 10.35.0.2) keep state > pass in on san1 reply-to (san1 10.35.1.2) keep state > pass in on san2 reply-to (san2 10.35.2.2) keep state > pass in on san3 reply-to (san3 10.35.3.2) keep state > I would probably do it the same way. I'm not sure if pf pays attetion to the link state of route-to interfaces. -- :wq Claudio