开放式最短路径优先协议(OSPF)本章内容OSPF工作原理OSPF的报文类型OSPF的邻居状态与数据库同步OSPF的区域概念OSPF网络类型OSPF基本配置OSPF路由器类型LSA类型OSPF路由汇总与配置OSPF特殊区域类型OSPF虚链路与配置课程议题链路状态路由协议的特点链路状态路由协议特征对网络发生的变化能够快速响应。当网络发生变化的时候发送触发式更新(triggeredupdate)。发送周期性更新(链路状态刷新),间隔时间为30分钟。链路状态数据结构邻居表(neighbortable):也叫adjacencydatabase。存储了邻居路由器的信息,如果一个OSPF路由器和它的邻居路由器失去联系,在几秒中的时间内,它会标记所有到达那条路由均为无效并且重新计算到达目标网络的路径。拓扑表(topologytable):一般叫做LSDB,OSPF路由器通过LSA学习到其他的路由器和网络状况,LSA存储在LSDB中。路由表(routingtable):也就是我们所说的路由表了,也叫forwardingdatabase,包含了到达目标网络的最佳路径的信息。课程议题OSPF的工作机制概述OSPF与RIPOSPF不再采用跳数的概念,而是根据接口的吞吐率、拥塞状况、往返时间、可靠性等实际链路的负载能力定出路由的代价,同时选择最短、最优路由并允许保持到达同一目标地址的多条路由,从而平衡网络负荷;OSPF支持不同服务类型的不同代价,从而实现不同QoS的路由服务;OSPF路由器不再交换路由表,而是同步各路由器对网络状态的认识,OSPF邻居关系路由器和别的路由器交换hello包,目标地址采用多播地址hello包交换完毕,邻接关系形成。接下来通过交换LSA和对接收方的确认进行同步LSDB。对于OSPF路由器而言,进入完全邻接状态。如果需要的话,路由器转发新的LSA给其他的邻居,来保证整个区域内LSDB的完全同步。OSPF泛洪机制OSPF路由器类型内部路由器区域边界路由器骨干路由器自治系统边界路由器Area10Area0RIPLSDBLSA:描述本地路由器或网络的数据单元,对路由器来说,它描述了路由器的接口状态和邻接状态。LSA类型描述1类路由器LSA2类网络LSA3类和4类汇总LSA5类AS外部LSA6类组播OSPFLSA7类为次未节区域定义的8类BGP的外部属性LSA9、10或11类不透明LSASPF算法SPF算法是OSPF路由协议的基础。SPF算法有时也被称为Dijkstra算法,这是因为最短路径优先算法SPF是Dijkstra发明的。课程议题OSPF报文类型OSPF报文OSPF报文是由多重封装构成的,封装在IP头部内的是5种OSPF报文类型中的一种,每一种报文类型都是由一个OSPF报文头部开始,这个OSPF报文头部对于所有的报文类型都是相同的。OSPF报文(续)OSPF有5种分组类型Hello数据库描述(DBD)链路状态请求(LSR)LSULSAckHello报文Hello协议用来建立和保持OSPF邻居关系,采用多播地址224.0.0.5。Hello报文(续)Hello/Deadintervals:Hello间隔和失效间隔,定义了发送hello包频率(默认在一个多路访问网络中间隔为10秒);dead间隔是4倍于hello包间隔。邻居路由器之间的这些计时器必须设置成一样,否则将不会建立邻接关系。数据库描述报文此报文类型用于描述,而非实际地传送链路状态数据库内容。DBD交换过程按询问/应答方式进行。链路状态请求报文报文用于请求相邻路由器链路-状态数据库中的一部分数据。链路状态更新报文链路状态更新报文用于把LSA发送给它的相邻节点。这些更新报文是用于对LSA请求的应答。有5种不同的LSA报文类型。这些报文类型用从1到5的类型号标识。LSA报头格式LSA使用一个通用的头格式。头20字节长并附加于标准的24字节OSPF头后面。LSA头惟一地标识了每种LSA链路状态确认报文OSPF的特点是可靠地分布LSA报文,可靠性意味着通告的接收方必须应答。课程议题OSPF的邻居状态与数据库同步建立双向通讯发现网络路由和添加链路条目完全邻接状态OSPF状态维护路由选择信息OSPF链路状态序列号LSDB中的每个LSA记录都有个序列号,序列号是32位长,以0x80000001开头,0x7FFFFFFF结尾。OSPF路由器默认每30分钟洪泛一次LSA来保证LSDB的同步,每洪泛1次,序列号就加1。课程议题OSPF区域概念OSPF区域太过频繁的SPF计算,造成路由器CPU负载过重。路由表过大。LSDB过大。解决方案将网络划分成多个OSPF区域,这种能力称为分层区域路由选择。SPF的计算频率更低路由选择表更小降低了链路状态更新(LSU)的开销区域概念OSPF的网络设计要求是双层层次化(2-layerhierarchy),包括如下2层:中转区域常规区域区域标识区域ID可以表示成一个十进制的数字,也可以表示成一个点分十进制的数字。OSPF区域特征减少了路由选择表条目。将区域内拓扑变化的影响限制在本地。将LSA扩散限制在区域内。要求采取层次网络设计。BackboneArea0Area1Area2Area3RouterARouterBRouterCRouterDRouterERouterFRouterGRouterH课程议题OSPF网络类型OSPF的网络类型OSPF有4种网络类型广播式非广播式点到点点到多点广播式网络多路访问(Multiaccess)广播型网络中(比如以太网和TokenRing),需要进行DR/BDR的选举,所有的非DR/BDR(即DROTHER)路由器和DR/BDR形成完全邻接关系,即DROTHER通过DR/BDR交换信息DR和BDR的选举优势:减少路由更新数据流管理链路状态同步DR和BD的选举(续)当选举DR/BDR的时候要比较Hello包中的优先级(priority),优先级高的为DR,次高的为BDR,.默认优先级都为1。在优先级相同的情况下就比较RID,RID等级最高的为DR,次高的为BDR。当你把优先级设置为0以后,OSPF路由器就不能成为DR/BDR,只能成为DROTHER。当网络中新加入一个优先级更高的的路由器,不会影响现有的DR/BDR,除非DR出故障,BDR随即升级为DR,并重新选举BDR,如果是BDR出故障了就重新选举BDR。非广播式网络NBMA网络比如帧中继,ATM和X.25,没有广播的能力。有了非广播式模型,DR和BDR被选出,并且所有路由器与它们形成邻接,这个联盟实现了优化扩散,因为所有LSA被送到DR,同时DR将它们扩散到网络中每一个单独的路由器上。因为广播式性能的缺陷,必须定义邻居来使用邻居命令。所有路由器在同一个子网。与广播式模型相同,也要选出DR,必须注意确认DR与所有的路由器有逻辑连接。Hello记时器是30秒,终结间隔是120秒,等待间隔是120秒。点到点式网络在点到点链路中一般采用PPP或者HDLC的封装格式,OSPF自动检测接口类型,并且不需要进行DR/BDR的选举。在点到点模型中,既没有DR也没有BDR,直接相连的路由器形成邻接。每个点到点链路要求一个分开的子网。Hello记时器为10秒,dead间隔为40秒,等待间隔为40秒。点到多点式网络没有DR不需要定义邻居,因为额外的LSA被用来传播邻居路由器连接。整个网络使用一个子网Hello记时器为30秒,终结间隔为120秒,等待时间为120秒。帧中继拓扑星型(Star/hub-and-spoke):最常见的帧中继网络拓扑,代价最小。全互连(Full-mesh):冗余,但是代价大。在这样的环境中计算VC的数量。使用n(n-1)/2的公式,n为网络中的节点数。部分互连(Partial-mesh):前两种的折中方案。帧中继拓扑(续)OSPF运行的模式NBMA:一般和部分互连的网络结合使用,需要选举DR/BDR和人工指定邻居。优点是相对point-to-multipoint模式它的负载较低。point-to-multipoint:把非广播的网络当作点到点连接的集合,自动发现邻居,不指定DR/BDR,一般和部分互连的网络结合使用。优点是配置较为简便point-to-multipointnonbroadcastbroadcastpoint-to-pointOSPF运行的模式Broadcast::使得WAN接口看上去像LAN接口,一个IP子网,多播hello包自动发现邻居,选举DR/BDR,要求网络全互连。Nonbroadcast(NBMA):一个IP子网,邻居手工指定,选举DR/BDR,DR/BDR要求和DROTHER完全互连,一般用在部分互连的网络中。Point-to-multipoint:一个IP子网,多播Hello包自动发现邻居,不要求DR/BDR的选举,一般用在部分互连的网络中。OSPF运行的模式Point-to-multipointnonbroadcast:如果VC中多播和广播能力没有启用的话就不能使用point-to-multipoint模式,也路由器没办法多播Hello包,邻居必须人工指定,不需选举DR/BDR。Point-to-point:一个子网,不选举DR/BDR,当只有2个路由器的接口要形成邻接关系的时候才使用,接口可以为LAN或WAN接口。NBMA配置point-to-multipoint模式multipointsubinterfaceNBMA拓扑上的OSPF小结OSPF模式NBMA拓扑子网地址Hello定时器邻接关系RFC/CISCO范例NBMA全互联相同30秒手工配置选举DR/BDRRFC配置了帧中继的串行接口广播全互联相同10秒自动发现选举DR/BDRCISCOLAN接口,如以太网点到多点部分互联或星型相同30秒自动发现不需要DR/BDRRFC无需DR的帧中继OSPF模式点到多点非广播部分互联或星型相同30秒手工配置不需要DR/BDRCISCO无需DR的帧中继OSPF模式点到点部分互联或使用星型的子接口每个子接口各不相同10秒自动发现不需要DR/BDRCISCOT1串行接口路由选择表:路由类型路由指示符路由类型描述OOSPF区域内路由路由器所在区域内的网络,以路由器LSA和网络LSA的方式通告OIAOSPF区域间路由位于路由器所在区域之外但在OSPF自主系统内的网络,以汇总LSA的方式通告通告OE11类外部路由位于当前自主系统之外的网络,以外部LSA的方式被通告OE22类外部路由E1和E2的区别E1:成本为外部成本加上分组经过的每条链路的内部成本,当多台ASBR将同一条外部路由通告到同一个AS中时,应使用这类型避免次优路由选择。E2:成本总是只包含其外部成本。只有一台ASBR将外部路由通告到AS中时,全用这种类型Showiprouter课程议题OSPF的基本配置OSPF基本配置routerospfprocess-idRouter(config)#创建OSPF路由进程networknetworkwildcardareaarea-idRouter(config-router)#定义接口所属区域配置OSPF接口参数ipospfcostcostRouter(config-if)#指定该接口的花费ipospfretransmit-intervalsecondsRouter(config-if)#定义OSPF链路状态通告重传时间间隔ipospftransmit-delaysecondsRouter(config-if)#设置OSPF发送一个更新报文的时间配置OSPF接口参数(续)ipospfprioritypriorityRouter(config-if)#设置OSPF优先值,用于确定指定路由器ipospfhello-interv