OSPF基础知识详解(二)
OSPF基础知识详解(一) https://www.wlgly.net/post-190.html
5、OSPF路由设备类型
图3 路由设备类型
OSPF协议中常用到的路由设备类型如上图3所示。由于OSPF把一个AS划分成了多个区域,这就使得OSPF网络中不同的路由设备扮演不同的角色。
1、区域内路由设备IR(Internal Router)
该类设备的所有接口都属于同一个OSPF区域。
2、区域边界路由设备ABR(Area Border Router)
该类设备可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
3、骨干路由设备BR(Backbone Router)
该类设备至少有一个接口属于骨干区域。所有的ABR和位于Area0的内部设备都是骨干路由设备。
4、自治系统边界路由设备ASBR(AS Boundary Router)
与其他AS交换路由信息的设备称为ASBR。ASBR并不一定位于AS的边界,它可能是区域内设备,也可能是ABR。只要一台OSPF设备引入了外部路由的信息,它就成为ASBR。
5、DR(Designated Router)与BDR(Backup Designated Router)路由设备
在广播网和NBMA网络中,任意两台路由设备之间都要交换路由信息。如果网络中有n台路由设备,则需要建立n(n-1)/2个邻接关系。这使得任何一台路由设备的路由变化都会导致多次传递,浪费了带宽资源。
为解决这一问题,OSPF协议定义了指定路由设备DR(Designated Router),所有路由设备都只将信息发送给DR,由DR将网络链路状态发送出去。如果DR由于某种故障而失效,则网络中的路由设备必须重新选举DR,再与新的DR同步。这需要较长的时间,在这段时间内,路由的计算是不正确的。
为了能够缩短这个过程,OSPF提出了BDR(Backup Designated Router,备份指定路由设备)的概念。
BDR实际上是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网段内的所有路由设备建立邻接关系并交换路由信息。当DR失效后,BDR会立即成为DR。由于不需要重新选举,并且邻接关系事先已建立,所以这个过程是非常短暂的。当然这时还需要再重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由的计算。
DR和BDR之外的路由设备(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息(即任何非DR、非BDR设备之间的通信都是通过与DR或BDR来进行数据交换的)。这样就减少了广播网和NBMA网络上各路由设备之间邻接关系的数量。
DR和BDR的选举规则为首先比较DR优先级,优先级高的为DR,次高为BDR,如果优先级相等,则Router ID数值高的为DR。如果一台设备的DR优先级为0则不参与选举。
DR的选举是针对设备的接口而言的,某台设备的一个接口是DR,在另一个接口上可能是BDR或DR Other。若DR选举完毕人为的修改DR优先级值也不会重新选举,即DR/BDR的选举是非抢占的。
6、OSPF路由类型
AS区域内和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由。OSPF将引入的AS外部路由分为Type1和Type2两类。下面按优先级从高到低顺序列出了路由类型。
1、区域内路由(Intra Area):仅用于区域内IR路由设备之间的路由,用于IR设备间的互联,不像区域外通告。
2、区域间路由(Inter Area):仅用于区域间ABR之间的路由。
3、外部路由:引入其他路由协议或不同OSPF进程的路由。根据路由开销的计算方式,外部路由可以分为以下两类。
3.1、第一类外部路由(Type1 External)
这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPF自身路由的开销具有可比性。到第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销。
3.2、第二类外部路由(Type2 External)
这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。所以,OSPF计算路由开销时只考虑ASBR到自治系统之外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销。
对于同一目的地址,第一类的外部路由的优先级要大于第二类外部路由。
7、OSPF支持的网络类型
OSPF根据链路层协议类型,将网络分为如下表所列四种类型。
1、广播类型(BroadcASt)
当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是BroadcASt。在该类型的网络中通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF设备的预留IP组播地址;224.0.0.6的组播地址为OSPF DR/BDR( Backup Designated Router)的预留IP组播地址。以单播形式发送DD报文和LSR报文。
2、NBMA类型(Non-BroadcASt Multi-Access)
当链路层协议是帧中继、X.25时,缺省情况下,OSPF认为网络类型是NBMA。
在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
3、P2MP类型(Point-to-Multipoint)
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。在该类型的网络中:
以组播形式(224.0.0.5)发送Hello报文。
以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。
4、P2P类型(point-to-point)
当链路层协议是PPP、HDLC和LAPB时,缺省情况下,OSPF认为网络类型是P2P。
在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
8、OSPF邻居状态机
老版本OSPF共有八种状态机,分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。
1、Down:
邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由设备的Hello数据包,此时接口不可用,不能用于收发流量。
2、Attempt(尝试连接):
该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(dead interval)超时后仍然没有回复Hello报文。此时路由设备依然每发送轮询Hello报文的时间间隔(poll interval)向对端发送Hello报文。
3、Init:
收到Hello报文后状态为Init。
4、2-way:
收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。
5、Exstart(预启动):
开始协商主从关系,并确定DD的序列号,此时状态为Exstart。
6、Exchange(交换、传输):
主从关系协商完毕后开始交换DD报文,此时状态为Exchange。
7、Loading:
DD报文交换完成即Exchange done,此时状态为Loading。
8、Full:
LSR重传列表为空,此时状态为Full。
新版OSPF共有以下七种状态:
1、Down:
接口的初始状态。表明此时接口不可用,不能用于收发流量。
2、Loopback:
设备到网络的接口处于环回状态。环回接口不能用于正常的数据传输,但可以通过Router-LSA进行通告。因此,进行连通性测试时能够发现到达这个接口的路径。
3、Waiting:
设备正在判定网络上的DR和BDR。在设备参与DR和BDR选举前,接口上会启动Waiting定时器。在这个定时器超时前,设备发送的Hello报文不包含DR和BDR信息,设备不能被选举为DR或BDR。这样可以避免不必要地改变链路中已存在的DR和BDR。仅NMBA网络、广播网络有此状态。
4、P-2-P:
接口连接到物理点对点网络或者是虚拟链路,这个时候设备会与链路连接的另一端设备建立邻接关系。仅P2P、P2MP网络有此状态。
5、DROther:
设备没有被选为DR或BDR,但连接到广播网络或NBMA网络上的其他设备被选举为DR。它会与DR和BDR建立邻接关系。
6、BDR:
设备是相连的网络中的BDR,并将在当前的DR失效时成为DR。该设备与接入该网络的所有其他设备建立邻接关系。
7、DR:
设备是相连的网络中的DR。该设备与接入该网络的所有其他设备建立邻接关系。
9、OSPF运行机制
OSPF的运行机制包括以下5个步骤:
1、通过交互Hello报文形成邻居关系
图4 通过交互Hello报文形成邻居关系
如图4所示,路由器运行OSPF协议后,会从所有启动OSPF协议的接口上发送Hello报文。如果两台路由器共享一条公共数据链路,并且能够成功协商各自Hello报文中所指定的某些参数,就能形成邻居关系。
2、通过泛洪LSA通告链路状态信息
图5 通过泛洪LSA通告链路状态信息
形成邻居关系的路由器之间进一步交互LSA形成邻接关系,如图5所示。每台路由器根据自己周围的网络拓扑结构生成LSA,LSA描述了路由器所有的链路、接口、邻居及链路状态等信息,路由器通过交互这些链路信息来了解整个网络的拓扑信息。由于链路的多样性,OSPF协议定义了多种LSA类型。详见OSPF LSA类型。
3、通过组建LSDB形成带权有向图
图6 通过组建LSDB形成带权有向图
通过LSA的泛洪,路由器会把收到的LSA汇总记录在LSDB中。最终,所有路由器都会形成同样的LSDB,如图6所示。LSA是对路由器周围网络拓扑结构的描述,而LSDB则是对整个自治系统的网络拓扑结构的描述,LSDB是LSA的汇总。
4、通过SPF算法计算并形成路由
图7 通过SPF算法计算并形成路由
如图7所示,当LSDB同步完成之后,每一台路由器都将以其自身为根,使用SPF算法来计算一个无环路的拓扑图来描述它所知道的到达每一个目的地的最短路径(最小的路径代价)。这个拓扑图就是最短路径树,有了这棵树,路由器就能知道到达自治系统中各个节点的最优路径。
5、维护和更新路由表
图8 维护和更新路由表
根据SPF算法得出最短路径树后,每台路由器将计算得出的最短路径加载到OSPF路由表形成指导数据转发的路由表项,并且实时更新,如图8所示。同时,邻居之间交互Hello报文进行保活,维持邻居关系或邻接关系,并且周期性地重传LSA。
发表评论