I have up-links to two separate ISPs on one router and receive a default route from each via BGP. Both links are the same speed and BGP is used only to advertise our prefixes out. Whats the best way to load balance across the two links? It was suggested that the easiest would be to add static default routes to the router.
2 Answers
You didn't mention vendor, but if Cisco IOS, you can use:
router bgp 43792
bgp bestpath as-path multipath-relax
address-family ipv4
maximum-paths 2
!
!
multipath-relax is needed as normally you'll only multipath with same as-path routes.
I'm personally strongly against carrying default routes via dynamic routing-protocols, there simply isn't any need, as long as you operate platform which supports recursive static routes.
Consider your operator router gets disconnect from their core, then you still receive the default route and your traffic is blackholed until you manually intervene. However if they'd send you some candidate route, perhaps their own PA block or maybe few PA blocks crucial to you, you could add static default routes towards these networks, if edge box is disconnected from core, the aggregate network is gone, and you can converge without manual intervention.
As @ytti mentioned, you could configure eBGP multipath, or you could also configure 2x static defaults, each one with a next-hop of your upstream. Since they're both on the same router and all you're receiving from them is a default from each provider, it's fairly simple to set up. You also want to make sure you have CEF per-packet load balancing turned off if you're running Cisco (the default setting is disabled anyway).