1 OSPF基本概念
1.1 拓扑和路由器类型
OSPF整体拓扑
- OSPF把自治系统划分成逻辑意义上的一个或多个区域,所有其他区域必须与区域0(骨干区域)相连。
路由器类型
- 区域内路由器IR(Internal Router):该类设备的所有接口都属于同一个OSPF区域。
- 区域边界路由器ABR(Area Border Router):该类路由器可以同时属于两个以上的区域,但其中一个接口必须在骨干区域。
ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接(虚链路Virtual Link)。 - 骨干路由器BR(Backbone Router):该类路由器至少有一个接口属于骨干区域。所有ABR和位于Area0的内部路由器都是骨干路由器 。
- 自治系统边界路由器ASBR(AS Boundary Router)与其他AS交换路由信息的路由器称为ASBR。ASBR并不一定位于AS的边界,它可能是区域内路由器,也可能是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。
拓扑所体现的IS-IS与OSPF不同点
- 在OSPF中,每个链路只属于一个区域,而在IS-IS中,每个链路可以属于不同区域。
- 在IS-IS中,单个区域没有骨干与非骨干区域的概念,而在OSPF中,Area0被定义为骨干区域。
- 在IS-IS中Level-1和Level-2级别的路由都采用SPF算法,分别生成最短路径树SPT。而在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由器发布还是距离矢量算法,区域之间的路由需要通过骨干区域来转发。
1.2 OSPF网络类型,DR,BDR介绍
OSPF支持的网络类型
- 点到点P2P类型: 当链路层协议是PPP/HDLC时,缺省情况下,OSPF认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文/DD报文/LSR报文/LSU报文/LSAck报文)。
- 点到多点P2MP类型(Point-to-Multipoint):没有一种链路层协议会被缺省的认为是Point-to-Multipoint 类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。在该类型的网络中以组播形式(224.0.0.5)发送Hello报文,以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。
- NBMA类型(Non-broadcast multiple access):当链路层协议是ATM时,缺省情况下,OSPF认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
- 广播类型(Broadcast):当链路层协议是Ethernet/FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中,通常以组播的形式发送Hello报文/LSU报文和LSAck报文。其中224.0.0.5为OSPF路由器的预留IP地址,224.0.0.6为OSPF DR的预留IP组播地址。以单播形式发送DD报文和LSR报文。
在至少含有两个路由器的广播型网络和NBMA网络都有一个指定路由器(DR)和一个备份指定路由器(BDR)
DR/BDR的作用
- 减少邻居关系的数量,从而减少链路状态信息和路由信息的次数。DRother只与DR/BDR建立完全邻接关系。DR与BDR之间建立完全邻接关系。
- DR产生网络LSA来描述NBMA网络或者广播网段信息。
DR/BDR选举规则
- DR/BDR由OSPF的Hello协议选举,选举是根据端口的路由器优先级(Router Priority)进行的。
- 如果Router Priority被设置为0,那么该路由器将不允许被选举成DR或者BDR。
- Router Priority越大越优先。如果相同,Router ID大者优先。
- DR/BDR不能抢占。
- 如果当前DR故障,当前BDR自动成为新的DR,网络中重新选举BDR;如果当前BDR故障,则DR不变,重新选举BDR。
IS-IS DIS 与OSPF DR/BDR的不同点
- 在IS-IS广播网络中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举。
- 在IS-IS广播网中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选举成为新的DIS,原有的节点被删除。此更改会引起一组新的LSP泛洪。而在OSPF中,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。
- 在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器。
1.3 OSPF报文类型
Hello报文:用于建立和维持邻居关系
DD报文:描述本地LSDB的摘要信息,用于两台路由器进行数据库同步。
LSR报文:用于向对方请求所需的LSA,路由器只有在OSPF邻居双方成功交换DD报文后才会向对方发送LSR报文。
LSU报文:用于向对方发送其所需的LSA。
LSAck报文:用来对收到的LSA进行确认。
OSPF报文概述
- OSPF报文直接运行于IP之上,IP协议字段号为89。OSPF有五种报文类型,但是OSPF报文头部格式都是相同的。
- 除Hello报文外,其它的OSPF报文都携带LSA信息。