[FROG] Advisory - FRR BGP peer flaps @ 2019-01-07

Lou Berger lberger at labn.net
Wed Jan 9 10:38:22 EST 2019


Job, (Mikael)

Some more detail.

On 1/8/2019 3:48 AM, Job Snijders wrote:
> Dear Lou,
>
> I have some follow up questions:
>
> - when was this bug introduced?

The VNC code was submitted as a patch to Quagga in 2014, although 
authored a bit earlier - basically t the same time RFC5566 was being 
worked.  It was included in the original FRR release.

The issue was related to a development attribute that was intended to be 
disabled in production use.  Per rfc2042, the (VNC) code was using 255 
as a development value for features that ended up never being 
standardized.  The intent was to disable this usage for non-development 
use.  Since 255 was a known attribute, the parsing code (bgp_attr.c) 
tried to parse the attribute that was generated as part of the 
experiment -- and failed as it was an unknown format.  This failure in 
turn resulted in common attribute parsing error behavior being 
triggered. Which is  is governed by 
https://tools.ietf.org/html/rfc4271#section-6.3 and RFC4271 Page 74, 
event 28.


>
> - why is the session flapping at all? Doesn’t RFC 7606 suggest to 
> handle such instances in a more graceful way, aka “treat-as-withdraw” 
> rather than destroy the world and kill the session? Or perhaps rfc 
> 5512 section 6 is of relevance too.

As Donald mentioned, FRR does not yet support 7606, so FRR behaves per 
RFC4271 Page 74, event 28.

>
> - what timeline do you propose? Right now these quagga deployments are 
> obstructing legitimate research (the experiment isn’t about finding 
> broken BGP implementations).
>
Thanks to the hard work of notably Donald and Martin the code is in and 
releases are being rolled.

The fix is to disable usage of the development attribute type [1] and 
long term to implement 7606 [2].

Lou

[1]https://github.com/FRRouting/frr/commit/943d595a018e69b550db08cccba1d0778a86705a#diff-d081a503fd40b967e697f8114c83ab58

[2] https://github.com/FRRouting/frr/issues/3583


> Kind regards,
>
> Job
>
> On Tue, Jan 8, 2019 at 11:31 Lou Berger <lberger at labn.net 
> <mailto:lberger at labn.net>> wrote:
>
>     To add some more detail here.  The root cause of the this issue
>     was the
>     use of a BGP attribute reserved for development in the VNC
>     code[1].  The
>     original intent was to disable use of this attribute by VNC[1] and
>     FRR
>     in production, but this didn't happen.  My apologies for this.  A
>     proper
>     fix has been submitted for all active releases and is undergoing
>     testing.  For those who are interested, release specific PRs can be
>     found at [3].
>
>     Lou
>
>     [3] https://github.com/FRRouting/frr/pulls
>
>     On 1/7/2019 1:31 PM, Quentin Young wrote:
>     > Hello operators,
>     >
>     > This morning some users running FRR BGP noticed that their
>     sessions were
>     > flapping. Investigation revealed that this was caused by an
>     experiment being
>     > run by SwiNOG [0] which was triggering an undesired code path in
>     FRR.
>     > Specifically, FRR uses attribute type 0xFF as the attribute code
>     for VNC [1].
>     > This code was intended to be turned off by default, but our
>     current published
>     > builds [2] have it turned on. Consequently, bgpd attempts to
>     parse the received
>     > attribute as a VNC attribute and fails, triggering a session reset.
>     >
>     > We have a patch in testing now and expect to have new build
>     artifacts published
>     > shortly. Additionally, we have contacted the experiment
>     operators and requested
>     > a pause in the experiment while we handle this issue.
>     >
>     > Thank you to the operators that notified us this morning!
>     >
>     > - FRR maintainer team
>     >
>     > [0] http://lists.swinog.ch/public/swinog/2018-December/007110.html
>     > [1] http://docs.frrouting.org/en/latest/vnc.html
>     > [2] https://github.com/FRRouting/frr/releases
>     > _______________________________________________
>     > frog mailing list
>     > frog at lists.frrouting.org <mailto:frog at lists.frrouting.org>
>     > https://lists.frrouting.org/listinfo/frog
>
>     _______________________________________________
>     frog mailing list
>     frog at lists.frrouting.org <mailto:frog at lists.frrouting.org>
>     https://lists.frrouting.org/listinfo/frog
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.frrouting.org/pipermail/frog/attachments/20190109/4dea9dab/attachment.html>


More information about the frog mailing list