Paul - I believe that this patch should fix your issue:
https://github.com/CumulusNetworks/quagga/commit/f4eeff72d5be6c1065f11face168a4bcd832de78 >From my notes it should apply cleanly to master. donald On Wed, Dec 2, 2015 at 5:11 AM, Paul Jakma <[email protected]> wrote: > Is it just me, or does the mpath code do strange stuff, at least under > asp-ath relaxed? E.g. if I run a set of bgpds in a ring, with each > connected to the previous and next 2 bgpd instances in the ring (using a > tweaked version of tools/multiple-bgpd.sh), current master without mpath > gives: > > # sh ip bg 10.7.0.0/24 > BGP routing table entry for 10.7.0.0/24 > Paths: (4 available, best #4, table Default-IP-Routing-Table) > Advertised to non peer-group peers: > 192.168.145.2 192.168.145.3 192.168.145.5 > 64563 64561 64567 > 192.168.145.3 from 192.168.145.3 (192.168.145.3) > Origin IGP, localpref 100, valid, external > Community: 64563:1 > Extended Community: RT:64561:1 RT:64563:1 RT:64567:1 SoO:64561:2 > SoO:64563:2 SoO:64567:2 > Last update: Wed Dec 2 09:47:14 2015 > > 64562 64568 64567 > 192.168.145.2 from 192.168.145.2 (192.168.145.2) > Origin IGP, localpref 100, valid, external > Community: 64562:1 > Extended Community: RT:64562:1 RT:64567:1 RT:64568:1 SoO:64562:2 > SoO:64567:2 SoO:64568:2 > Last update: Wed Dec 2 09:46:45 2015 > > 64565 64567 > 192.168.145.5 from 192.168.145.5 (192.168.145.5) > Origin IGP, localpref 100, valid, external > Community: 64565:1 > Extended Community: RT:64565:1 RT:64567:1 SoO:64565:2 SoO:64567:2 > Last update: Wed Dec 2 09:46:44 2015 > > 64566 64567 > 192.168.145.6 from 192.168.145.6 (192.168.145.6) > Origin IGP, localpref 100, valid, external, best > Community: 64566:1 > Extended Community: RT:64566:1 RT:64567:1 SoO:64566:2 SoO:64567:2 > Last update: Wed Dec 2 09:46:15 2015 > > The ASNs are 64560+x and each advertises 10.x.0.0/24 (amongst other > things). There are 8 in total in the ring, and the above is x == 4 / > AS64564. So the peerings are: > > peers x peers > 7 8 1 2 3 > 8 1 2 3 4 > 1 2 3 4 5 > 2 3 4 5 6 > 3 4 5 6 7 > 4 5 6 7 8 > 5 6 7 8 1 > 6 7 8 1 2 > > > 4 has paths 453, 423 and 43 to 3; and paths 457, 467, 4287 and 4317 to 7. > > Look what happens if I set: > > maximum-paths 32 > bgp bestpath as-path multipath-relax > > on all the bgpds. This is the view from 4: > > # sh ip bg 10.7.0.0/24 > BGP routing table entry for 10.7.0.0/24 > Paths: (4 available, best #4, table Default-IP-Routing-Table) > Advertised to non peer-group peers: > 192.168.145.2 192.168.145.3 192.168.145.6 > 64563 {64561,64562,64565,64567,64568} > 192.168.145.3 from 192.168.145.3 (192.168.145.3) > Origin IGP, localpref 100, valid, external, multipath > Community: 64563:1 > Extended Community: RT:64561:1 RT:64562:1 RT:64563:1 RT:64565:1 > RT:64567:1 RT:64568:1 SoO:64561:2 SoO:64562:2 SoO:64563:2 SoO:64565:2 > SoO:64567:2 SoO:64568:2 > Last update: Wed Dec 2 09:55:33 2015 > > 64562 {64561,64567,64568} > 192.168.145.2 from 192.168.145.2 (192.168.145.2) > Origin IGP, localpref 100, valid, external, multipath > Community: 64562:1 > Extended Community: RT:64561:1 RT:64562:1 RT:64567:1 RT:64568:1 > SoO:64561:2 SoO:64562:2 SoO:64567:2 SoO:64568:2 > Last update: Wed Dec 2 09:55:32 2015 > > 64566 64567 > 192.168.145.6 from 192.168.145.6 (192.168.145.6) > Origin IGP, localpref 100, valid, external, multipath > Community: 64566:1 > Extended Community: RT:64566:1 RT:64567:1 SoO:64566:2 SoO:64567:2 > Last update: Wed Dec 2 09:53:32 2015 > > 64565 64567 > 192.168.145.5 from 192.168.145.5 (192.168.145.5) > Origin IGP, localpref 100, valid, external, multipath, best > Community: 64565:1 > Extended Community: RT:64565:1 RT:64567:1 SoO:64565:2 SoO:64567:2 > Last update: Wed Dec 2 09:53:03 2015 > > That looks like it's multipathing over /all/ the paths to 7, including the > longer 3-hop paths. Also, the aggregates don't really make sense, do they? > > It is advertising this aggregate back to the neighbours from whose routes > the aggregate was constructed: > > # sh ip bgp neighbors 192.168.145.2 advertised-routes *> 10.7.0.0/24 > 192.168.145.4 0 > {64561,64562,64563,64565,64566,64567,64568} i > # sh ip bgp neighbors 192.168.145.3 advertised-routes > *> 10.7.0.0/24 192.168.145.4 0 > {64561,64562,64563,64565,64566,64567,64568} i > # sh ip bgp neighbors 192.168.145.5 advertised-routes > # sh ip bgp neighbors 192.168.145.6 advertised-routes > *> 10.7.0.0/24 192.168.145.4 0 > {64561,64562,64565,64566,64567,64568} i > > So, in terms of the advertised routes and deciding who to advertise a > route onto, it is taking only the 'best' path via 6 into consideration. > > Does this make sense to anyone? It seems seriously borken to me... > > Also, the mpath code probably should have been implemented using the > existing aggregation code... > > regards, > -- > Paul Jakma [email protected] @pjakma Key ID: 64A2FF6A > Fortune: > I have discovered the art of deceiving diplomats. I tell them the truth > and they never believe me. > -- Camillo Di Cavour > > _______________________________________________ > Quagga-dev mailing list > [email protected] > https://lists.quagga.net/mailman/listinfo/quagga-dev >
_______________________________________________ Quagga-dev mailing list [email protected] https://lists.quagga.net/mailman/listinfo/quagga-dev
