<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Hello,<div><br><div><blockquote type="cite"><div dir="ltr">How do you distinguish that the router loses connectivity to the rest of the mesh? I mean if your mesh is split in parts because of connectivity problems, which part is "the rest of the mesh"?</div></blockquote><div><br></div><div>I have N edge routers, which all of them announces exactly the same prefixes to different upstreams. They are interconnected to downstream segments and between each other with common switching fabric that backs up „edge router mesh” (in iBGP sense obviously). If edge router loses connectivity to upstreams it just stops advertising to downstreams and other neighbors. Case of losing connectivity to either downstreams or other neighbors only causes suboptimal routing, but when edge router loses connectivity to switching fabric it would become kind of zombie - advertising aggregated routes to prefixes that it does not have access. This is also condition in which router ends up when is sole survivor of failure, but I don’t think this would be recoverable remotely. Also I know this might seem far fetched for some, but jackasses with excavators already ruined many days of my life ;)</div><div><br></div><div><blockquote type="cite"><div dir="ltr">AFAIK, bird does not have conditional announces based on presense of other announces. So I would think about some external daemon, that would monitor, for example, availability of some route/s in bird or kernel table, and enable/disable some pipe protocols based on that.</div></blockquote><div><br></div>That was my conclusion too, but last time I read BIRD doc thoroughly was quite a lot of years ago, so I rather wanted to consult.</div><div>As feature suggestion I would have opted for adding bfd stanza to pipe protocol so it can be automagically disabled when selected bfd session is in failed state. </div><div>
<br>Best regards,<br>Lukasz Jarosz
</div>
<div><br><blockquote type="cite"><div>Wiadomość napisana przez Alexander Zubkov <green@qrator.net> w dniu 05.01.2026, o godz. 11:44:</div><br class="Apple-interchange-newline"><div><div dir="ltr"><div>Hi Lukasz,</div><div><br></div><div>How do you distinguish that the router loses connectivity to the rest of the mesh? I mean if your mesh is split in parts because of connectivity problems, which part is "the rest of the mesh"?</div><div><br></div><div>AFAIK, bird does not have conditional announces based on presense of other announces. So I would think about some external daemon, that would monitor, for example, availability of some route/s in bird or kernel table, and enable/disable some pipe protocols based on that.</div><div><br></div><div>Regards,</div><div>Alexander Zubkov</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, Jan 5, 2026 at 11:15 AM Lukasz Jarosz <<a href="mailto:lukasz@jarosz.in">lukasz@jarosz.in</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"><div>Hello,<div>I am currently working on handling edge cases of BGP advertisements malfunctions in my network. I am writing to this mailing list to confirm that I haven’t missed BIRD native solution.</div><div>Issue in question is when BGP router loses its connectivity to rest of the internal mesh and still advertise routes to upstreams (I use manual aggregates, because my internal routes have very long prefixes and address space is non continuous).</div><div>AFAIK (these were my ideas how to implement safeguards):</div><div>- I can’t use BFD to guard advertisement of static blackhole route,</div><div>- I can’t use BFD to guard pipe protocol.</div><div>As I understand my only solutions are to use external monitoring tooling to disable advertisements to upstreams or restructure BGP configuration in a way that externally advertised prefixes come to BIRD routers through channel that is dependent on connection to internal mesh. </div><div>Have I missed something? </div><div><div>
<br>Best regards,<br>Lukasz Jarosz
</div>
<br></div></div></blockquote></div>
</div></blockquote></div><br></div></div></body></html>