OSPF学习心得OSPF简介OSPF术语及概念OSPF选路过程OSPF数据包格式OSPF组网应用RERP简介及与OSPF的对比开放最短路径优先协议(OSPFv2)•OSPF:OpenShortestPathFirst•由Internet工程任务组(InternetEngineeringTaskForce,IETF)开发的路由选择协议,用来代替存在一些问题的RIP协议•更新之处:›快速收敛›使用区域›支持无类别路由表查询›支持多链路等价负载均衡›安全认证第4页/共75页路由模型建立的过程•1、宣告OSPF的路由器从所有启动OSPF协议的接口上发出Hello数据包•2、邻居路由器通过交换Hello信息的路由器类型和网络类型,形成邻接关系•3、每一台路由器都会在所有形成邻接关系的邻居之间发送包含路由器所有链路、接口以及链路状态信息的链路状态通告(LinkStateAdvertisement,LSA)•4、每一台收到从邻居路由器发出的LSA的路由器都会把这些LAS记录在他的链路状态数据库中,并且发送一份LSA的拷贝给该路由器的其他所有邻居•5、通过LSA范洪扩散到整个区域,所有的路由器都会形成统一的链路状态数据库•6、数据库相同后,路由器以自己为根,用SPF算计技术一个无环路拓扑图,即SPF算法树•7、每一台路由器都将从SPF算法树中构建自己的路由表•8、路由表创建成功,邻居间交换的hello数据包成为keepalive,每隔30min重传一次第5页/共75页邻居和邻接•邻居:同一个网段上的路由器,一旦在其相邻路由器的Hello报文中发现他们自己,则他们就成为邻居关系了•邻接:如果两个邻居之间需要同步LSDB,那么它们之间需要建立邻接关系•邻居和邻接关系:发送任何LSA通告之前,OSPF路由器都必须首先发现他们的邻居路由器并建立起邻接关系第7页/共75页•OSPF区域内唯一标识一台路由器的IP地址•配置方法:›1、手工配置›2、loopback接口上数值最高的IP地址›3、物理接口上数值最大的IP地址•使用loopback接口作为路由器ID有两个好处:›1、loopback接口比任何其他物理接口更稳定›2、预先分配和识别路由器ID的地址是更灵活第8页/共75页包的作用•1、发现邻居•2、建立邻居时,用来通告参数•3、建立邻居后,当keepalive角色•4、确保邻居路由器之间的双向通信•5、选DR,BDR•HELLO间隔是基于每端口配置的,广播型网络的默认值是10S,非广播型的默认是30S,失效时间默认为4倍间隔。第9页/共75页包•一台路由器收到HELLO包时,核对参数,如果不匹配则丢弃且无法建立邻接关系,匹配则认为有效•匹配后,如果邻居表中有发送方ID,则更新失效时间•如果邻居表中没有发送方ID,则把该ID加入邻居表;如果HELLO包中的邻居ID中,有自己的ID,则认为双向通信(two-waycommunication)建立成功•影响邻接建立的因素:Hello信息匹配,网络类型第10页/共75页页/共75页是否自动建立邻居是否需要DR/BDRHello间隔Dead间隔P2P(point-to-point)是否10s40s广播型网络(Broadcast)是是10s40s非广播多路访问(NBMA)否是30s120s点到多点网络(point-to-point)是否30s120s虚链路(virtuallinks)否否10s40s页/共75页比较接口优先级,越高越优先比较Route-ID,越大越优先比较IP地址,越大越优先•1、在构建相关路由器之间的邻接关系时,会创建很多不必要的LSA(N的二次方个)•2、在同一个网络上创建很多相同的LSA副本•解决办法:•通过DR描述这个多了访问网络和OSPF区域内其余与其相连的路由器•通过DR管理这个多路访问网络上的范洪扩散过程第13页/共75页的过程:•1、路由器和它的邻居简历双向通信(2way),检查邻居路由器发送的Hello数据包的优先级、DR和BDR字段。列出所有有资格选举的路由器列表,所有路由器同时宣称自己是DR和BDR路由器。•2、创建一个没有宣告为DR路由器的所有路由器的子集•3、从这个子集中选举最高优先级的路由器位BDR•4、如果一路由器在Hello数据包的DR字段包含了它们自己的接口地址,那具有最高优先级的路由器被选为DR路由器•5、如果没有路由器宣告自己为DR路由器,那么新选举的BDR路由器成为DR路由器•6、如果DR或BDR失效,重复2-5步骤•注意:如果一台路由器新加入到一个已经收敛的OSPF域,无论参数如何,都不会成为DR/BDR。第14页/共75页建立邻接的过程•Down:只邻接关系Down,开启OSPF进程后,端口没有收到OSPF的Hello包•Attempt:路由器尝试发送hello报文(特殊机制,只有在NBMA或帧中继上才有)•Init:路由器只收到单项hello报文•2-Way:路由器收到了双向的包含对方路由器ID的hello报文(邻居关系建立成功)•ExStrart:短暂的状态,前两个DD报文不包括lsa信息,协商主从关系•Exchange:本地路由器将向他的邻居路由器发送可以描述它整个链路状态数据库信息的数据库描述数据包•Loading:本地路由器将会向他的邻居路由器发送链路状态请求数据包,请求一些链路更新或回复•Full:完成邻接关系建立,并通过默认10s的Hello包(keepalive)来维持第15页/共75页页/共75页R1R2DownDownInitExStartHello(DR=0.0.0.0,Neighbors=0)Hello(DR=R2,Neighbors=R1)DD(Seq=x,I=1,M=1,MS=1)DD(Seq=y,I=1,M=1,MS=1)ExStartDD(Seq=y,I=0,M=1,MS=0)DD(Seq=y+1,I=0,M=1,MS=1)DD(Seq=y+1,I=0,M=1,MS=0)ExchangeExchangeDD(Seq=y+n,I=0,M=0,MS=1)DD(Seq=y+n,I=0,M=0,MS=0)LoadingFullFullLSRequestLSUpdateLSAck2-Way种数据包类型•1、数据库描述数据包•2、链路状态请求数据包•3、链路状态更新数据包第17页/共75页数据库描述数据包标志位•有3个标志位用来管理邻接关系的简历过程:›I:初始位(Initialbit),置1,说明这是第一个数据库描述数据包›M:后继位(Morebit),置1,说明所发送的不是最后一个数据库描述数据包›MS:主/从位(Master/Slavebit),发送数据库描述数据包的路由器为主,置1,为从,置0第18页/共75页范洪扩散(Flooding)•将网络变化或新的LSA发送到整个网络中去,以确保每一个节点的数据库都可以更新,最终保持所有其他节点的数据库的一致性。•范洪扩散会使用以下两种类型的OSPF数据包:›链路状态更新数据包(LinkStateUpdatepackets)›链路状态确认数据包(LinkSTateAcknowledgmentpackets)第19页/共75页页/共75页网络类型扩散方式发送源发送目的地点到点组播路由器224.0.0.5点到多点单播路由器邻接接口地址虚链路单播路由器邻接接口地址广播组播DRDRother224.0.0.5224.0.0.6单区域存在的问题•1、同一个区域内所有路由器LSDB完全相同•2、收到的LSA通告太多了•3、内部动荡会引起全网路由器的完全SPF计算•4、区域内路由无法汇总,需要维护的路由表越来越大,资源消耗过多,性能下降,影响数据转发第21页/共75页ABRArea0解决单区域存在的问题把大型网络分隔为多个较小、可管理的单元——–区域area第22页/共75页划分区域的好处•1、控制LSA只在区域内洪泛,有效地把拓扑变化控制在区域内,拓扑的变化影响限制在本区域•2、在区域边界可以做路由汇总,减小了路由表•3、提高了网络的稳定性和的扩展性,有利于组建大规模的网络第23页/共75页ABRABRArea0Area1Area2路由器类型•内部路由器(InternalRouter):所有接口都属于同一个区域的路由器•区域边界路由器(AreaBorderRouter,ABR):链接一个或多个区域到骨干区域的路由器•骨干路由器(BackboneRouter):至少有一个接口是和骨干区域相连的路由器•自主系统边界路由器(AutonomousSystemBoundaryRouter,ASBR):把其他路由选择协议学校到路由,通过路由器选择重分配的方式注入到OSPF域的路由器第24页/共75页末梢区域(stub)•是一个不允许AS外部LSA通告在其内部进行范洪扩散的区域(阻塞4/5类LSA)•限制条件:›1、hello数据包中E-bit置0,其他置1的hello数据包将不会匹配,要求末梢区域内的所有路由器必须匹配,否则不能建立邻接关系›2、不能配置虚链路›3、末梢区域不能存在ASBR›4、末梢区域可以有多台ABR,由于用缺省路由,无法确定到达ASBR路由器的最优网关第25页/共75页非纯末梢区域(NSSA)•允许外部路由器通告到OSPF自主系统内部,同时保留自主系统其余部分的末梢区域特征•在NSSA中ASBR将始发7类LSA来通告外部的目的网络,7类LSA在NSSA区域内范洪,在ABR处阻塞。•P-bit•置1,NSSA区域的ABR将把7类LSA转换成5类LSA,并且将这条LSA范洪到其他区域•置0,丢弃•作用:使NSSA区域学到的目的地址仅仅在NSSA区域范洪第26页/共75页页/共75页LSA区域123457骨干OOOOOX标准OOOOOXStubOOOXXX完全stubOOXXXXNSSAOOOXXO完全NSSAOOXXXO路径类型•区域内路径:指在路由器所在区域内部就可以到达目的地的路径•区域间路径:指目的地址在其他区域,但还是在OSPF自主系统内的路径•类型1的外部路径(E1):指目的地址在OSPF自主系统外部的路径,ASBR负责通告外部路由的代价值(cost=外部代价+到达ASBR代价)•类型2的外部路径(E1):指目的地址在OSPF自主系统外部的路径,ASBR负责通告外