Hello,
I am using ExaBGP v3.4.20 and observing following behavior w.r.t 'group-updates' attribute:
'group-updates' is enabled and ExaBGP groups multiple NLRI in one BGP Update message *regardless* whether these multiple NLRIs have same (or different) next hop (MP_REACH) values.
(Note that I am using ExaBGP for FlowSpec routes but I guess for the problem statement, it should not matter whether it's FlowSpec routes or just 'normal' routes)
- If all the NLRIs have *same* next hop, BGP UPDATE message has one MP_REACH attribute and upstream router accept the BGP UPDATE message without any issues.
- If multiple NLRIs have *different* next hops (say 2 different next hops), BGP UPDATE message has multiple MP_REACH attributes and upstream router rejects the UPDATE message and sends back following error:
"UPDATE from A.B.C.D contains duplicate MP_REACH attribute"
I found the following thread which describes the same exact issue:
https://github.com/Exa-Networks/exabgp/issues/298
Just for my experimentation, I disabled 'group-updates' and this 'fixes' the multiple NLRI (with different next hops) to be sent in separate BGP UPDATE message.
However, this also now causes multiple BGP UPDATE messages for multiple NLRIs when they have 'same' next hop.
(Also, the other thread has following comment from author of ExaBGP: "I will update the code to only group IPv4."... )
So, my question(s) are:
1) How can we use 'group-updates' to still group multiple NLRI (as long as they have same next hop but not if they have different next hops).?
2) If that's not possible, can we clarify what's the intent of 'group-updates' and when/how should it be enabled for case when multiple NLRIs have *same nexthop*?
3) Also, what about IPV4/IPV6 handling? The other thread has a comment that confuses me w.r.t 'group-updates' implementation:
"I will update the code to only group IPv4."
Thanks!
P.S: the other thread talks about a patch.. however, I have not tried that yet (nor do I know if the patch fix is already included in 3.4.20