DR
每一个广播网和NBMA网络有一个DR。它主要执行两种功能。
1)DR产生所在网络的network-LSA。而不用每个相连的路由器都产生network-LSA。
2)与网络中其它所有的路由器建立邻接关系。减少LSDB交互时的带宽和路由器开销。
DR是很多邻接关系的端点。为了更有效的在广播网上进行泛洪,DR使用地址AllSPFRouters(224.0.0.5)多播它的LS更新包,而不是为每个邻接路由器单独发送更新包。
BDR
为了使新的DR的产生更平滑,每个广播网和NBMA网有一个BDR。
BDR也同网络上其它所有路由器建立邻接关系,在DR fail 时成为DR。
如果没有BDR,则DR fail时,需要重新选举DR,新选出的DR要与网络中所有其它的路由器建立邻接关系(同步LSDB),在这期间,网络将无法传输数据(发现DR down了之后,对应的network LSA将会失效,经过这个network的路由被删除)和LSA(没有邻接关系)。没有采用额外机制的情况,需要等到邻居DR的dead interval超时,才知道DR down了,这需要30-40秒的时间,期间,下一跳是DR的数据会丢失,下一跳是其他路由器的数据被正常转发。
有了BDR后,当DR down时,虽然网络传输数据被打断(所以要避免DR的变换,将可靠性高的路由的优先级配置高一些,并且先启用OSPF),但是LSA的传输不会被打断,但是数据中断的时间只是泛洪新的network LSA的时间(当然,还有其他路由器计算路由的时间)。
注意:DR和BDR之间也要建立邻接关系。