<div dir="ltr">Thank you for your fast response Ondrej (now I am cc'ing the list too, forgot before)! <div>That is correct, however the BGP RR client cannot know which router actually withdrew<div>the prefix, since this information is lost if not attached to the withdrawal.</div><div>We also have an add-path setup, but the problem I am referring to is more generic</div><div>(related to understanding which monitor actually sent the withdrawal).</div><div>Withdrawal MRT files I checked carry the withdrawn route, but nothing more.</div><div>Just trying to understand if the RFC leaves this ambiguous (i.e., how an RR client</div><div>can know that the withdrawal it sees was actually generated by itself for example,</div><div>since without an originator ID this is not feasible). In the latter case an RR client cannot</div><div>know where the withdrawal came from, so it does not know if it should actually delete the route</div><div>from its routing table or not (other RS clients may have the route active).</div><div>Have you encountered this use case before?</div><div><br></div><div>Best regards,</div><div>Vasileios</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Dec 13, 2022 at 4:15 PM Ondrej Zajicek <<a href="mailto:santiago@crfreenet.org">santiago@crfreenet.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, Dec 13, 2022 at 12:46:24PM +0200, Vasileios Kotronis via Bird-users wrote:<br>
> Hello there,<br>
> <br>
> I am facing an issue with a route reflection setup on BIRD.<br>
> ...<br>
> The reflector reflects routes from the monitor (monitoring the external<br>
> router via BGP) to the client. However, I notice that the originator ID<br>
> (used for loop detection in a RR setup) is input by the BIRD RR only in<br>
> announcements, and not in withdrawals. This means that if the same<br>
> withdrawal (from the monitor) propagates within the RR cluster there is no<br>
> way to disambiguate this from another withdrawal.<br>
> ...<br>
> So, since RFC4456 is fully supported in BIRD, shouldn't this be present<br>
> both in route announcements and withdrawals?<br>
<br>
Hello<br>
<br>
No. In BGP, route attributes are associated with updates, never with<br>
withdrawals. That is a general principle for all attributes.<br>
<br>
BGP clients know their state (including received prefixes) so they<br>
know which route was withdrawn, as it is identified by the prefix.<br>
<br>
If there are multiple paths for the same network within RR cluster,<br>
then RR selects one and announce it, so for a receiver there is no<br>
ambiguity.<br>
<br>
That could lead to loss of information, so if you want multiple paths for<br>
the same network announced, you should enable 'add path' extension, which<br>
allow sending multiple paths for one network, disambiguated by 'path<br>
identifier' (which is not a route attribute, but an extension to NLRI).<br>
<br>
-- <br>
Elen sila lumenn' omentielvo<br>
<br>
Ondrej 'Santiago' Zajicek (email: <a href="mailto:santiago@crfreenet.org" target="_blank">santiago@crfreenet.org</a>)<br>
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, <a href="http://wwwkeys.pgp.net" rel="noreferrer" target="_blank">wwwkeys.pgp.net</a>)<br>
"To err is human -- to blame it on a computer is even more so."<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><span><div dir="ltr" style="margin-left:0pt" align="left"><span><div dir="ltr" style="margin-left:0pt" align="left"><table style="border:none;border-collapse:collapse"><colgroup><col width="111"><col width="316"></colgroup><tbody><tr style="height:72.0811pt"><td style="border-width:1pt;border-style:solid;border-color:rgb(255,255,255);vertical-align:top;padding:5pt;overflow:hidden"><p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span style="border:none;display:inline-block;overflow:hidden;width:84px;height:84px"><img src="https://lh4.googleusercontent.com/dKy7aF4mqdaJMvpZSZLfMMeiZuvmejLJFA3ebgzpQBq1Yjf70YiVBRNgBD70ATC-YrBI_n1c5rz4HbONHGnx8x8KrLMvRqKTw_O0eVx3jwiKaAA_jAuCdhtB1Fvj-OMIOnxofzGAXsOFgvhbiA" width="84" height="84" style="margin-left: 0px; margin-top: 0px;"></span></span></p></td><td style="border-width:1pt;border-style:solid;border-color:rgb(255,255,255);vertical-align:top;padding:5pt;overflow:hidden"><p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10.5pt;font-family:"Red Hat Display",sans-serif;color:rgb(9,43,80);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Vasileios Kotronis</span></p><p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10.5pt;font-family:"Red Hat Display",sans-serif;color:rgb(23,43,77);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">CTO & Co-founder</span><span style="font-size:10pt;font-family:"Red Hat Display",sans-serif;color:rgb(23,43,77);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><br></span><a href="http://www.codebgp.com" target="_blank"><span style="font-size:10.5pt;font-family:"Red Hat Display",sans-serif;color:rgb(59,98,240);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">www.codebgp.com</span></a></p><p dir="ltr" style="line-height:1.2;margin-top:10pt;margin-bottom:0pt"><span style="font-size:10.5pt;font-family:"Red Hat Display",sans-serif;color:rgb(9,43,80);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Monitor • Detect • Protect</span><span style="font-size:10pt;font-family:"Red Hat Display",sans-serif;color:rgb(9,43,80);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><br></span></p></td></tr></tbody></table></div></span><table style="border:none;border-collapse:collapse"><colgroup><col width="111"><col width="316"></colgroup><tbody></tbody></table></div></span></div></div>