<div dir="ltr"><div class="gmail_extra">I do have two bird instances on two seperate appliances (bird uses a custom forwarding plane instead of kernel) . These appliances have their own FIB but share interfaces. The appliances send keep-alives between them to provide failover </div><div class="gmail_extra">They cannot use seperate interfaces. Due to this reason, only the 'active' appliance receives packets (say LSA). BIRD running on active appliance has all the routes in its FIB but the one running on secondary appliance has an empty fib. However, since the appliances talk to each other, they sync up their FIB (forwarding plane routing table is synced up) so after failover, the secondary appliance can take over with minimal outage. </div><div class="gmail_extra">My problem as I mentioned earlier is :</div><div class="gmail_extra">After failover, BIRD running on secondary instance will need to learn routes since it will now start receiving packets from peers :</div><div class="gmail_extra">Apart from Graceful Recovery, is there a way BIRD knows that its synced up all the routes from neighbors (need to support both OSPF and BGP).</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 17, 2015 at 5:37 AM, Ondrej Zajicek <span dir="ltr"><<a href="mailto:santiago@crfreenet.org" target="_blank">santiago@crfreenet.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Sep 15, 2015 at 09:08:00AM -0400, Jigar Mehta wrote:<br>
> I have BIRD installed to test working with a custom forwarding plane. The<br>
> forwarding plane supports HA in the following way :<br>
><br>
> -  Syncs up routing tables<br>
> -  Provides millisecond failover (since routing tables are synced up)<br>
> - Shared MAC<br>
> - At any given time only one of the appliance is actively receiving and<br>
> processing packets.<br>
> - Both appliances have BIRD running (rte_notify sends route updates to<br>
> forwarding plane) and a small wrapper that processes forwarding table<br>
> routing updates (static routes , etc)<br>
<br>
</span>Hello<br>
<br>
Am i understand it correctly that you have two BIRD instances on two<br>
separate appliances/OSes that share a FIB and network interfaces? Does<br>
one instance sees routes in FIB from the other instance? How failover<br>
works, is it somehow signalized to appliances, or BIRD just start<br>
receiving packets? Could both appliances communicate each with other?<br>
<br>
Could the hardware be configured in such a way that intefaces have<br>
separate MACs for both appliances so both could receive and process<br>
packets destinated to it? In that case you could just run two regular<br>
routing instances (from the neighbor point of view), both generating the<br>
same routing table.<br>
<br>
I don't think BFD could be used for this purpose.<br>
<br>
Graceful recovery could be used in this case, but you are right that BIRD<br>
currently does not support it for OSPF and it would also needed some<br>
modifications - BIRD starts graceful recovery immediately after start,<br>
so you could either postpone BIRD startup after failover or modify BIRD<br>
to wait for it.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Elen sila lumenn' omentielvo<br>
<br>
Ondrej 'Santiago' Zajicek (email: <a href="mailto:santiago@crfreenet.org">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>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Jigar Mehta<br><br><br></div>
</div></div>