2

I'm looking at a network with two independent core routers, each with a different sized uplink, one 50mbps and the other 100mbps to a different ISP. I'm trying to get redundancy as well as load balancing across both links.

Predominantly there are service routers connected to the core so I was thinking of doing iBGP in this area and publishing two default routes to access the internet. I thought of using VRRP but that would be more of a master/slave arrangement.

Is this a good approach to HA? If so, how could I engineer the traffic flow in this environment?

4
  • Are you using BGP on the connections to the ISP's? If so, are they providing a full table or just a default route?
    – Teun Vink
    Commented Aug 13, 2015 at 8:16
  • Hi Teun, BGP full tables, 500k+ routes
    – OJS
    Commented Aug 14, 2015 at 0:38
  • Ok, and do you have a public AS number and routable IP-space as well?
    – Teun Vink
    Commented Aug 14, 2015 at 7:28
  • @TeunVink Yes I do have a public AS with some /24s
    – OJS
    Commented Aug 17, 2015 at 1:00

2 Answers 2

1

In case you can't setup a full-mesh iBGP and passing tables to SVC routers, I would suggest to setup an IGP between Core and SVC Routers and let it load-balance the default route.

Also you can have iBGP to SVC routers and publish the default route. So, if you get multipath enabled and the metrics to both Core Routers match, then you will also have two default routes on SVC routers. Keep in mind that you need to have it full-mesh.

Regarding HA in core layer, definitely iBGP between Core Routers would be the best strategy.

One point I forgot to add is, in case you are using Cisco routers, you might also need BGP relaxed best-path selection, which allows load-sharing between two similar routes from different ASs. You can read more here.

1

With two default routes you can achieve redundancy but other routers in your network will just follow the default route to the closest core router so load balancing might not be according to your needs.

The easy solution is to just have full table everywhere but if some routers aren't up for it (limited TCAM or similar) you might need to opt for using a default route.

Make sure that your core routers have a direct link between each other and exchange the full table over the iBGP session between them. If both core routers inject a default route but one loses its ISP link it needs to see the routes from the other core router so it still have valid paths to the Internet.

With full tables like this you can also fine-tune the local-preference/MED/whatever of routes you receive from respective ISP to achieve more even load balancing. Do note how your other routers will still follow the default so traffic might go via one core router to the next core router and exit to your ISP. Full table avoids that.

2
  • Thanks @kll, In my simulation for deployment to IRL i have this setup: 2 ISP routers, connected together also using BGP (with some public ranges on them) 2 Border routers, each connecting to an ISP via BGP to get a full table. They have nexthop-self set so that the iBGP routes share for networks that I'm not advertising explicitly and they are directly connected. 2 SVC routers, each with OSPF to both border routers who then publish a default route each for any stir/repeat SVC router additions for expansion.
    – OJS
    Commented Aug 20, 2015 at 5:32
  • When I use this method using iBGP i don't get two routes to any given destination. When both bdrA and B are up, on bdrB i have one route to say 1.1.0.0/16 via bdrA. This route is advertised from ISP-A and B. If I reboot bdrA router uncleanly (eg simulation power cut) the iBGP route from bdrA is removed and replaced with 1.1.0.0/16 nexthop ISP-B. Sometimes svcA and B still can't ping 1.1.1.1 even if bdrB can. Shouldn't the routing table on bdrB have both routes from both sources at once? FYI ebgp multihop is off.
    – OJS
    Commented Aug 20, 2015 at 5:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.