1.MA网络
多路访问(Multiple-Access)网络指的是在同一个共享介质中连接着多个设备的网络,在这个网络中,任意两台设备之间都能够直接地进行二层通信。多路访问网络有两种,一种是广播型多路访问(Broadcast Multiple-Access,BMA)网络,例如以太网。另一种则是非广播型多路访问(Non-Broadcast Multiple-Access,NBMA)网络,例如帧中继。
BMA网络的一个典型示例是一台以太网交换机连接着多台路由器,这些路由器的接口具备从这个网络访问其他路由器的能力,若有一个广播数据被发出,则整个网络中的路由器都会收到。而在帧中继环境中,多台路由器同样可以通过帧中继链路构建一个MA网络,只不过帧中继链路并不支持广播,但不管怎样,这不影响一台路由器通过这个共享介质去访问其他设备,只要虚电路建立得当。
2.为什么要选DR和BDR
下面以BMA网络为例,讲讲OSPF需要面对的问题。现在假设有多台路由器接入到同一台以太网交换机,这些路由器的接口都配置同一个网段的IP地址,并且都在接口上激活OSPF。完成上述操作后,组播Hello报文立即开始在网络中交互,设想一下如果这些路由器的接口两两建立OSPF邻接关系,这就意味着网络中共有n(n-1)/2个邻接关系(n为路由器的个数)。维护如此多的邻接关系不仅仅额外消耗设备资源,也增加了网络中LSA的泛洪数量。为优化该场景下的OSPF邻接关系数量,并减少不必要的协议流量,OSPF会在每一个MA网络中选举一个DR(Designated Router指定路由器)和一个BDR(Backup Designated Router备用指定路由器)。
我们把既不是DR又不是BDR的路由器称为DROther,MA网络中的所有DROther都只和DR以及BDR建立OSPF邻接关系,BDR也与DR建立邻接关系,而DROther之间只停留在2Way状态。如此OSPF邻接关系来,网络中的路由器所需维护的邻接关系数量便得到了优化。
3.DR和BDR的作用
DR在网络中的LSDB同步方面有着关键性的作用,它负责侦听网络中的拓扑变更信息并将变更信息通知给其他路由器。它为网络生成Type2LSA(一种LSA类型),在该LSA中显示出了连接在这个MA网络的所有OSPF路由器的Router-ID,其中也包括DR自己。BDR会监控DR的状态,并在当前DR发生故障时接替它的工作。
4.DR和BDR的选举
DR、BDR的选举是通过Hello报文来实现的,选举过程发生在2Way状态之后路由器将自己接口的DR优先级填写在Hello报文的“DR优先级”字段之中。华为数通产品的接口DR优先级缺省为1,这个值可以在接口视图下通过执行ospf dr-priority <0~255>命令修改。DR优先级为0的接口不具备DR及BDR选举资格。当接口激活OSPF后,它首先会检查网络上是否已经存在DR,如果是则接受已经存在的DR(因此DR的角色不具备可抢占性),否则拥有最高DR优先级的路由器将成为DR,当DR优先级相等时,拥有最大Router-ID的路由器将成为DR。除了DR的选举,OSPF还会进行BDR的选举,BDR的选举过程与DR类似,此处不再赘述。
5.DR和BDR的其他细节
值得注意的是,DR及BDR是一个接口级别的概念,所以“某台路由器是DR”的说法其实是不够严谨的,严格地说应该是:“某台路由器的某个接口在这个MA网络中是DR”。在一个MA网络中,DR负责确保接入该网络中的所有OSPF路由器拥有相同的LSDB,也就是确保这些LSDB的同步。DR使用组播目的IP地址224.0.0.5向该网络中发送LSU报文,所有的OSPF路由器都会侦听这个目的IP地址,并与DR同步自己的LSDB。而DROther感知到拓扑变化时,向224.0.0.6发送LSU报文以便通告这个变化,DR及BDR会侦听这个组播地址。在路由器上,使用 display ospf interface命令可以查看某个特定接口的OSPF信息。
转载请注明:零五宝典 » OSPF从入门到精通系列(24)—DR和BDR