Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email firstname.lastname@example.org
From: Alex Zinin (azininNEXSI.COM)
Date: Mon May 28 2001 - 03:58:45 CDT
> I am new to OSPF and am currently reading RFC2328.
> I have some questions regarding the DR/BDR election (section 9.4 of
> (1) Why does the step (4) of the election process apply only to the router
> doing the calculation and not to other routers.
Repeating steps 2 and 3 on other router would give the same results,
as they have the same input until they receive different info in
Hello packets, while if the calculating router changes its "personal
opinion about himself" during the first iteration, the results of
the second will be different.
> Specifically, why do we
> disallow the calculating router from becoming both DR and BDR
Because otherwise there would be no real BDR on the segment.
> but allow some
> other router to become both DR/BDR ?
We just allow other routers to _think_ that the same router is both
DR and BDR until the ex-BDR understands he is the DR and the new BDR
accepted his new responsibilities.
> (2) I can understand that steps (2) and (3) are required to be re-run when
> the calculating router becomes DR/BDR. But why are steps (2) and (3)
> required to be re-run when the calculating router is **no longer** a DR/BDR?
Think about it this way---the DR election algorithm considers all
routers on the segment, and only what _they_ explicitly say about
themselves (which may be different from what the calculating router
thinks at the moment). Whenever some router changes its opinion
(e.g., some router announces or stops announcing itself as the BDR),
we need to recalculate DR/BDR pair. We know about the change in
opinion when we see that the contents of the Hellos from the nbr changed
and this happens when the neighbor has completed the DR election
algo on its side and got new results. Now, the calculating router
itself is "a router" from the DR election algo perspective, so we
need to rerun the algo when our self changes the opinion, but we do
not process any Hello packets from ourselves, so we check the results
Hope this helps a bit :)