BGP Multipath for Load Sharing


#1

I am trying to config a multihomed BGP.
The goal is to share the load between two providers, using partial BGP tables.
Since my router is not powerful enough for processing full bgp tables, I wanted to import the local networks from each provider and its default route.
Traffic that does not belong to ISP1 or ISP2 should load balance between default routes.
In order to simplify, I create a small lab to focus on this specific problem.

[align=center][/align]

The three routers (ISP1, ISP2, MyRouter) run VyOS.
[align=left]ISP1 and ISP2 gets a default gateway with DHCP and forward their default route + internal route to VyOS.[/align]

[align=left]Now, on my router I would like to have 2 default routes in the RIB, but I just get one.[/align]
[align=left]Here is MyRouter protocol config:[/align]
[align=left]vyos@MyRouter# show protocols bgp 3000 { maximum-paths { ebgp 2 } neighbor 10.0.0.1 { remote-as 1000 } neighbor 20.0.0.1 { remote-as 2000 } parameters { router-id 10.0.0.2 } }
[/align]

[align=left]Notice that I get both default routes in mine BGP table:[/align]

[align=left][code]vyos@MyRoter# run show ip bgp
BGP table version is 0, local router ID is 10.0.0.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

  • 0.0.0.0 10.0.0.1 0 1000 i
    *> 20.0.0.1 0 2000 i
    *> 192.168.0.0 10.0.0.1 0 0 1000 ?
    *> 192.168.1.0 20.0.0.1 0 0 2000 ?
    [/code]
    [/align]
    [align=left]However the 10.0.0.1 does not come in the RIB:[/align]

[align=left][code]vyos@MyRouter# run show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
I - ISIS, B - BGP, > - selected route, * - FIB route

B>* 0.0.0.0/0 [20/0] via 20.0.0.1, eth0.2000, 00:14:40
C>* 10.0.0.0/24 is directly connected, eth0.1000
C>* 20.0.0.0/24 is directly connected, eth0.2000
C>* 127.0.0.0/8 is directly connected, lo
B>* 192.168.0.0/24 [20/0] via 10.0.0.1, eth0.1000, 00:08:20
B>* 192.168.1.0/24 [20/0] via 20.0.0.1, eth0.2000, 00:14:39
[/code]
[/align]
[align=left]I would expect that maybe route 20.0.0.1 has some higher priority… but if I reset this route, the 10.0.0.1 takes over and when 20.0.0.1 is advertised, 10.0.0.1 stays in table.[/align]
[align=left]If would be the case that 20.0.0.1 had higher priority it would take the 10.0.0.1 over.[/align]

[align=left][code]vyos@MyRouter# run reset ip bgp 20.0.0.1

[edit]
vyos@MyRouter# run show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
I - ISIS, B - BGP, > - selected route, * - FIB route

B>* 0.0.0.0/0 [20/0] via 10.0.0.1, eth0.1000, 00:00:03
C>* 10.0.0.0/24 is directly connected, eth0.1000
C>* 20.0.0.0/24 is directly connected, eth0.2000
C>* 127.0.0.0/8 is directly connected, lo
B>* 192.168.0.0/24 [20/0] via 10.0.0.1, eth0.1000, 00:10:26

[edit]

vyos@MyRouter# run show ip bgp
BGP table version is 0, local router ID is 10.0.0.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

  • 0.0.0.0 20.0.0.1 0 2000 i
    *> 10.0.0.1 0 1000 i
    *> 192.168.0.0 10.0.0.1 0 0 1000 ?
    *> 192.168.1.0 20.0.0.1 0 0 2000 ?

[/code]
[/align]
I am clearly forgetting something, since in this thread “show ip route” shows 2 default routes in the RIB…
Any input will be much appreciated