Page MenuHomeVyOS Platform

IPv6 route install failed
Open, Requires assessmentPublicBUG

Description

Log shows
Apr 03 20:11:29 tdcg-ams-er02 zebra[1507]: 0:2a0c:44c0:2::/48: Route install failed
Apr 03 20:11:29 tdcg-ams-er02 zebra[1507]: 0:2803:b140::/32: Route install failed
Apr 03 20:11:29 tdcg-ams-er02 zebra[1507]: [EC 4043309093] netlink-dp (NS 0) error: Invalid argument, type=RTM_NEWROUTE(24), seq=23598047, pid=3671141242
Apr 03 20:11:29 tdcg-ams-er02 zebra[1507]: [EC 4043309093] netlink-dp (NS 0) error: Invalid argument, type=RTM_NEWROUTE(24), seq=23598045, pid=3671141242

The route is listed 3 times in BGP
show ipv6 bgp 2a0c:44c0:2::/48 | strip-private
BGP routing table entry for xxxx:xxxx:2::/48
Paths: (3 available, best #1, table default)

Advertised to non peer-group peers:
xxxx:xxxx:15::231 xxxx:xxxx:15::232 xxxx:xxxx:15::233 xxxx:xxxx:15::234 fd00::xxxx:xxxx:137:229 fd00::xxxx:xxxx:137:230 fd00::xxxx:xxxx:137:236 fd00::xxxx:xxxx:137:238
20562 6830 198611
  xxxx:xxxx:0:1::123:3 from xxxx:xxxx:0:1::123:3 (xxx.xxx.0.241)
  (fe80::xxxx:xxxx:5978:a8c0) (used)
    Origin IGP, metric 0, localpref 140, valid, external, bestpath-from-AS 20562, best (Local Pref)
    Community: 30870:300 30870:320 30870:20562
    Last update: Fri Apr  3 xxxx:xxxx:52 2020
24785 6830 198611
  xxxx:xxxx:0:1::123:1 from xxxx:xxxx:0:1::123:1 (xxx.xxx.0.225)
  (fe80::xxxx:xxxx:5918:3c00) (used)
    Origin IGP, metric 0, localpref 90, valid, external, bestpath-from-AS 24785
    Community: 30870:500 30870:24785
    Last update: Fri Apr  3 xxxx:xxxx:51 2020
24785 6830 198611
  xxxx:xxxx:0:1::123:2 from xxxx:xxxx:0:1::123:2 (xxx.xxx.0.226)
  (fe80::xxxx:xxxx:5918:e400) (used)
    Origin IGP, metric 0, localpref 90, valid, external
    Community: 30870:500 30870:24785
    Last update: Fri Apr  3 xxxx:xxxx:51 2020

But only once in the routing table
show ipv6 route 2a0c:44c0:2::/48 | strip-private
Routing entry for xxxx:xxxx:2::/48

Known via "bgp", distance 20, metric 0, best
Last update xxxx:xxxx:13 ago
* fe80::xxxx:xxxx:5978:a8c0, via eth7.1881, weight 1

Some of the times BGP shows 4 and 2 are installed.
It only happens with IPv6 routes received from BGP peers.

Details

Difficulty level
Unknown (require assessment)
Version
1.2.5-epa
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)

Event Timeline

Merijn created this task.Apr 3 2020, 6:14 PM
Merijn added a comment.EditedApr 3 2020, 6:48 PM

After receiving
zebra[1507]: 0:2804:fa0:8000::/33: Route install failed

I tried manually installing it with information from the BGP routing table

sudo ip -6 route add 2804:fa0:8000::/33 via fe80::8aa2:5e07:5918:3c00 dev eth7.1881

show ipv6 route 2804:fa0:8000::/33

Routing entry for 2804:fa0:8000::/33
Known via "kernel", distance 0, metric 1024, best
Last update 00:00:09 ago
* fe80::8aa2:5e07:5918:3c00, via eth7.1881

So at least the kernel allows to add this route. But Zebra process fails.

@Merijn If you don't use ECMP, only one best route will be installed in routing table.
In your case, the best path via 20562 6830 198611 with localpref 140.
In the bgp table, all prefixes will be present.
It's a general BGP Best Path Selection Algorithm.
The same is true for ipv4.

Merijn added a comment.Apr 3 2020, 8:14 PM

I have the following:
set protocols bgp as maximum-paths ebgp '3'
set protocols bgp as maximum-paths ibgp '3'

And that does not explain the route install failed right? Or is it expected that when i have maximum-paths 3 the 4th route will give this message?

For the ECMP it's necessary that as-path length, weight, localpref, med, etc were the same.
Only, in that case, more than one eq route will be installed in the routing table.

p.s. I don't recommend using this function until there is a complete understanding of how it works.

Merijn added a comment.EditedApr 3 2020, 8:41 PM

I have had the maximum-paths setting for years since Vyos 1.1.x and I have a lot of routes ipv4 and ipv6 installed in the routing table with 2 or 3 routes even if they are not the same. I am not specifically using ecmp I just have multiple routes for fast failover.

show ipv6 route 2001:240:116::/48

Routing entry for 2001:240:116::/48
Known via "bgp", distance 20, metric 0, best
Last update 07:42:26 ago
* fe80::8aa2:5e07:5918:3c00, via eth7.1881, weight 1
* fe80::8aa2:5e07:5918:e400, via eth7.1881, weight 1
Merijn added a comment.Apr 3 2020, 8:52 PM

My main question is why is this message displayed and do we need to worry.

Merijn added a comment.EditedApr 12 2020, 9:54 PM

Trying to find more information with debugging settings of zebra process.
Apr 12 23:52:18 router zebra[1472]: 0:2404:5780:3::/48: Route install failed
Apr 12 23:52:18 router zebra[1472]: 0:2404:5780:3::/48 Stale dplane result for old_re 0x555f6166b300
Apr 12 23:52:18 router zebra[1472]: 0:2404:5780:3::/48 Processing dplane ctx 0x555f765ff7a0, op ROUTE_UPDATE result FAILURE

To track https://github.com/FRRouting/frr/issues/5215