OSPF路由协议08学习目标通过本章的学习,希望您能够:掌握OSPF路由协议的工作原理掌握SPF算法掌握单区域OSPF配置方法本章内容OSPF概念SPF算法单区域OSPF配置方法课程议题OSPF概念OSPF概念OSPF:是一类InteriorGatewayProtocol(内部网关协议IGP)用于属于单个自治体系(AS)的路由器之间的路由选择。OSPF采用链路状态技术采用SPF算法路由器互相发送直接相连的链路信息和它所拥有的到其它路由器的链路信息。OSPF优势将OSPF路由协议与距离矢量路由协议RIP作一比较,归纳为如下几点:度量值VLSM支持收敛速度区域边界路由自环验证支持负载平衡路由更新方式课程议题SPF算法SPF工作过程SPF算法:是OSPF路由协议的基础。SPF算法有时也被称为Dijkstra算法,SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离,每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图,该结构图类似于一棵树,在SPF算法中,被称为最短路径树选举DR/BDR每一台路由器和他的邻居之间成为完全网状的OSPF邻接关系,这样5台路由器之间将需要形成10个邻接关系,同时将产生25条LSA。在多址的网络中,存在自己发出的LSA从邻居的邻居发回来,导致网络上产生很多LSA的拷贝,DR和BDR选取规则选举规则:优先级高的为DR,次高的为BDR,.默认优先级都为1。在优先级相同的情况下就比较RID,RID等级最高的为DR,次高的为BDR。路由器的每个多路访问接口都有个路由器优先级,8位长的一个整数,范围是0到255。Hello包里包含了优先级的字段,还包括了可能成为DR/BDR的相关接口地址。当接口在多路访问网络初次启动的时候,它把DR/BDR地址设置为0.0.0.0,同时设置等待计时器的值等于路由器无效时间间隔。DR和BDR选举过程选举过程:在和邻居建立双向通讯之后,检查邻居的Hello包中的优先级,DR和BDR字段。从这个有参与选举DR/BDR的列表中,创建一组没有声明自己就是DR的路由器的子集只要在Hello包中BDR字段就等于自己的接口的地址,优先级最高的就被选举为BDR,如果优先级一样,RID最高的被选举为BDR。如果在Hello包中DR字段等于自己地址,优先级最高的被选举为DR,如果优先级相等,RID最高的选举为DR,如果没有路由器宣称自己是DR,那么选举的BDR就成为DR。邻居和邻接关系在邻居关系中,OSPFHello报文中以下项内容必须相同,Hello/Deadintervals、区域ID、认证相同、stub区域标识相同,对于点到点的WAN串行连接,两个OSPF路由器通常使用HDLC或PPP来形成完全邻接状态。对于LAN连接,所有其他的和DR以及BDR相连的路由器形成完全邻接状态链路状态协议数据单元LSA也被称为链路状态协议数据单元(PDU),LSA具有以下特征LSA是可靠的,有一种用于确认LSA被成功传递的方法。LSA被扩散到整个区域。LSA有序列号和寿命,以确保每台路由器都知道自己有最新的LSA版本。LSA被定期刷新以确保拓扑信息的有效性,直到LSA从LSDB中被删除。只有可靠的方式扩散链路状态信息,才能确保区域中每台路由器对网络的认识都是最新、最准确的。OSPF报文类型OSPF报文是由多重封装构成的,封装在IP头部内的是5种OSPF报文类型中的一种,每一种报文类型都是由一个OSPF报文头部开始,这个OSPF报文头部对于所有的报文类型都是相同的。类型名称描述1Hello发现邻居并在它们之间建立邻接关系2数据库描述(DBD)检查路由器的数据库之间是否同步3链路状态请求(LSR)向另一台路由器请求特定的链路状态记录4LSU发送请求的链路状态记录5LSAck对其他类型的分组进行确认OSPF报头VersionnumberTypePacketlengthRouterIDAreaIDChecksumAuthenticationtypeAuthenticationDataOSPF状态OSPF的接口可以处于下面8种状态之一Dwon停止Attempt尝试Init初始Two-way双向Exstart准启动Exchange交换Loading加载Fulladjacency完全邻接OSPF状态OSPF状态课程议题单区域OSPF配置配置命令创建OSPF路由进程process-id只是在本路由器有效address和inverse-mask为网络(或接口)地址和wildcardmask。area-id为区域号Router(config)#routerospf[process-id]Router(config-router)#network[address][inverse-mask]area[area-id]配置示例验证OSPF配置在配置完成后,可以使用show命令来查看其状态:显示路由器通过学习获得的路由和这些路由是如何学习的,这是确定本地路由器和其他网络之间连接的最好方法之一显示邻居路由器的详细信息,包括它们的优级和状态。Router#showiprouteRouter#showipospfneighbordetail验证OSPF配置显示路由器维护的拓扑数据库的内容,这条命令可以显示路由器ID和OSPF进程ID,用这条命令的一些关键字可以显示数据库的类型。用来检验已经配置在目标的区域中的接口,如果没有指定环回地址,接口地址就会被认为是路由器ID,它也显示定时器的时间间隔,包括hello分组的时间间隔,还能显示毗邻关系。Router#showipospfdatabaseRouter#showipospfinterface验证OSPF配置用来显示最短路径优先算法执行次数,它也显示拓扑结构没有发生改变时,链路状态的的更新的时间间隔。Cleariproute*是用来清除整个ip路由选择表Debugipospf是用来测试OSPF但禁止在生产的环境中使用该命令Router#showipospfRouter#cleariproute*Router#debugipospf课程议题总结总结在单区域中使用OSPF路由选择协议适合于小型网络;OSPF协议的配置与其他路由协议相似,不同的是它是一种链路状态协议OSPF需要一个进程ID和一个路由器ID。OSPF链路状态路由协议不同于距离矢量路由协议,OSPF的路由器基于网络拓扑结构的完整信息来决定最佳路径。OSPF决定最佳路径的度量值是成本(cost),它是基于链路的速度,配合分级设计,OSPF适用于大型网络。总结最短路径算法用于决定最佳的无环路径,即到达链路或网络成本最低的路径。因为OSPF路由器需要一个完整网络拓扑,并且SPF算法比较复杂,所以需要内存更多的更强大的路由器。OSPF使路由器之间在交换路由信息前建立邻居关系。OSPF的Hello协议用于在毗邻路由器(adjacencyrouters)间建立邻居关系。