ospf的总结

各位好,在论坛这么久,这是第一次发帖,确定难免各类错误,请大神轻喷!最近在复习OSPF,所以打算发个帖子来提升本身,同时但愿广大思科学者也能看了此贴以后有所提升吧,多的不说,正题开始!
    OSPF是基于SPF算法的,因为跟RIP和EIGRP相比,在整个网络中每台运行OSPF的路由器都必需要知道整个网络的拓扑,因此有了区域的概念,因此让OSPF的链路有很是多的地方须要咱们去学习和掌握。OSPF针对不一样的网络拓扑设计出了很是多的网络类型以便咱们在解决某个网络的时候采用不一样的方案,所以机智的开发人员给出了多种不一样类型的网络类型。
网络类型:
      1.loopback>这种网络类型,它是专门为回环接口(loopback)而设计的,也就是说运行了OSPF的loobback接口的默认网络类型就是LOOPBACK,其余的任何类型的接口都不能修改成这个类型,可是改接口能够修改成任意其余的网络类型。在这种网络类型中,被通告出来的路由始终是以A stub network呈现的,并且是采用主机地址的掩码进行通告的,不过这个被通告的路由的掩码是能够进行手工修改的,在接口模式中ip ospf net point-to-point可让咱们通告的路由变成最初接口被配置的地址掩码。
     2.p2p>这种网络类型主要是在serial接口中的默认网络类型,这种网络类型的hello是10s,没有DR/BDR选举的说法,所以在这种网络类型中OSPF的收敛速度会特别的快。固然这种接口的网络类型除了LOOPBACK意外,能够手工修改成其余任意的网络类型。因为改链路类型是可以发送广播、组播数据流量的,因此咱们不须要neighbor指邻居。
     3.broadcast>这种网络类型是在以太网口中的默认网络类型,也是支持广播、组播的数据流量,所以默认不须要neighbor指邻居,hello是30s,这种网络类型中是须要选举DR/BDR的,至于DR/BDR的选举下面再给出总结。
     4.non-broadcast>这种网络类型是在帧中继中的默认网络类型,一看名字就知道,他是不支持广播和组播数据流量的,hello是30s,所以在FR中,咱们必需要在至少一端neighbor指邻居,须要选举DR/BDR。在两端都运行OSPF的路由器,因为在一端收到另外一端的组播hello以后,是可以得知目的的源ip地址的,所以这一端收到这个hello以后是可以回复一个单播的hello包给另外一端的,所以,只须要一端指便可,可是建议是双方都指,由于在CCIE考试中是双方指是最妥的,这么一说你们都懂的,既然能指全一点,这样考试就不会对这一个点有什么疑虑了。
     5.p2mp>这种类型是经过咱们手工进行修改的,这种网络类型固然是支持组播数据流量的,所以创建邻居的时候也是不须要指neighbor,而起也是不须要选DR和BDR,hello跟咱们的p2p是同样,都是10s,也只有这2中的hello time是10s,所以这两种网络类型的收敛相对会比较快。
     6.p2mp-non-broadcast>这种网络类型也是不须要选举DR/BDR的,不支持广播、组播数据流量,须要手工neighbor,hello 30s.
这里须要注意的是,咱们应该尽量的让运行OSPF的路由器的网络类型都一致,由于不一样的网络类型的hello time可能会出现不一致的状况,从而致使有可能邻居关系不可以创建起来,这里顺便复习一下OSPF邻居关系创建的几个必要的条件吧:
  a.链路双方的hello time 必须一致,否则是没法进行hello数据包交互的,否则邻居不能正常的创建。
  b.area id必定要相同
  c.authentication确定也是要相同的,这里须要注意的是,空密码也是要进行匹配的,也就是不论什么验证方式都要双向作才行。
  d.stub area tag,通常在末节区域的路由器上面都会携带这个参数,因此末节区域的路由器都要配置成末节路由器。
这里须要注意的一点是,建议网络类型要双方都一直,不过也有双方的链路类型不一致的时候,邻居关系照样能起得来,可是不会交互SLA报文,因此即便成为了邻居关系,也不能正常是首发路由,至于在FR中,有一种模式是P2P链接P2MP的类型,这是一种spoke and hub结构,所以这种方式是能够创建邻居关系的,并且当且仅当spoke节点被配置为DR的时候,咱们的整个FR中的链路交互才是正常是,所以在这种模型中,咱们通常建议在全部的hub节点配置ip ospf priority为0,当这个只是0的时候不具备DR/BDR的选举权,所以这样的配置可让spoke节点的路由器成为DR。
DR的选举:
               第一步:比较ospf接口的priority,最大的成为DR
               第二步:比较route id的大小,大的成为DR
route id的的选举,前提是在全部接口状态是up up的那些接口的IP地址进行比较。
              第一步:loopback,接口地址最大的成为该路由器的route id
              第二步:物理接口的ip地址,地址最大的成为该路由器的route id
OSPF的邻居状态机: 
   down:在这个状态中,路由器双方都尚未收到对方彼此的Hello报文,所以只是在尝试给对方发送Hello,试图去发现邻居。
   attemp:就是在hello包发送出去不能被其余的路由器接收到,或者在FR的非广播访问网段中,不能经过组播进行发现hello,经过手工指neighbor来发送单播的hello试图创建邻居关系。
   init:在这个状态中,其中有一方已经收到了对方的Hello包,可是在该hello包中没有发现本身的route id被对方列入,所以还在创建hello的交互。
   2-way:在这个状态中,若是有是broadcast或者non-broadcast,此时DR/BDR的选举已经完成,并且双方都能在对方的Hello包中看到本身。
此时的邻居关系已经创建,可是要造成邻接关系,必需要进行LSA的交互,所以还要继续发送,LSR、LSU、LS-ack等报文,若是是Dother,则不须要进行LSA的交互。
   Exstart:在OSPF邻居之间交互完成的LSA以前,必需要先发送DBD,LSR等数据包,可是在发送LSA以前必需要先肯定一个规则,是谁先发,谁后发,所以在这个状态要选择出主路由器和从路由器,由主路由器开始发起。须要注意的是,主路由器是route id最大的,而不必定是DR,也就是选举主从路由器的时候不会考虑priority.
 Exchange:这个状态就是交互DBD的时候,此时的DBD报文只是LSA的一些摘要信息,对方收到了这份DBD以后,会回复一个LSR的报文来告知对方本身须要哪些请求LSA的具体的报文信息。
   Loading:在这个状态就是收到了LSR的数据包以后会给对方回复LSU报文,这个状态也就是全部的SLA信息已经开始在交互。
   Full:这个状态就是双方都已经收到了LSA的中最后的LSU,双方的链路达到收敛状态。
所以总结:只有当邻居关系是在2-way和Full状态的时候邻居关系是正常的,其余的一切状态都表明邻居关系不正常。
OSPF不只是因为网络类型影响到邻居的LSA,也定义了一系列的链路类型也会影响到邻居的LSA的交互。可是网络类型和链路类型是不会相互影响彼此的工做的。
链路类型:
   1.stub network link
   2.point-to-point link
   3.Transit link
   4.Virtual link
OSPF的外部路由;
    在OSPF中也是经过太重分发的方式讲外部的路由引入到OSPF内部,此时重分发的路由器就是ASBR,此时的路由分为两种类型,在OSPF其余区域路由器中这些路由是以OE1 OE2的形式存在的,若是是NSSA区域进来的路由那么会用ON1 ON2 来表示这些路由,下面罗列出来他们的度量值的计算方式:
OE1:这种方式的cost计算是经过累加的方式,首先是一个外部路由重分发过来的一个默认的度量值,而后再加上内部其余区域到达该ASBR所须要的度量值组成。
OE2:这种方式的cost默认是20,也就是不会再去计算内部其余区域到达ASBR的cost,无论内部的开销是怎么样的,都不会去考虑他。
ON1:这种方式的cost计算和OE1同样,只是因为是特殊区域NSSA或者Totally nssa中重分发的,所以显示是ON1
ON2:这种方式的cost计算和OE2同样,只是因为是特殊区域nssa和Totally nssa中重分发的,显示是ON2
  为何会有这么多的度量值存在呢,个人理解以下:因为OSPF只支持等代价的负载均衡,所以若是有多条路径的状况下,可能存在次优路由的选择问题,在须要优先考虑去往外部路由开销的时候,咱们会用OE2,由于这种类型的路由它是不会计较内部其余区域到达ASBR的开销的,那么OE2的默认开销都是20,那么此时就应该是用到达forward地址的cost来进行比较了,最小的cost最优,固然若是这个forward地址是显示为0.0.0.0,那么比较的才是到达ASBR的cost(forward地址若是在ASBR中有通告这个forward地址的网络进入OSPF进程,那么这话地址显示的就是这台路由器到达该路由的真实地址,若是这个地址的网段没有被通告在ospf进程,那么这个地址将被显示为0.0.0.0)。若是是要优先考虑内部区域的cost优先,那么是应该直接用OE1比较好,这样只是须要考虑两条链路到达ASBR的最小cost,最小的就是最优的那个路由。至于ON1和ON2,其实他们的选路原则跟上面是同样的。
OSPF的末节区域,一共是分为4类:
      stub area(末节区域):在这种区域中,ABR会过滤来至于外部的external路由,固然该区域的全部路由器也是不能重分发外部路由进来的,也就是说这个区域的全部路由器将不可能成为ASBR,可是区域间的路由是能够传递的,因为该末节区域的全部路由器没有达到外部的路由,所以ABR会产生一条默认的全0路由下发到该区域。
      totally stub area(彻底末节区域):在这种区域中,ABR也会过滤来至于外部的external路由,该区域的全部路由器也不能成为ASBR,并且区域间的路由也将会被抑制,此时ABR也会下发一条默认的全0路由。
       nssa(不是那么的末节区域):在这种区域中,ABR会过滤掉来至外部的external路由,可是这个区域能够重分发,也就是说可以引入外部路由成为ASBR,区域间的路由也能够相互传递。此时ABR不会下发全0的默认路由
       totally nssa:(不是那么的彻底末节区域):在这种区域中,ABR会过滤掉来自外部的external和区域间的路由,也能够重分发,成为ASBR,并且ABR会下发一条全0的默认路由。
OSPF的LSA类型,一共须要掌握的有1,2,3,4,5,7六种类型
LSA1:这种类型的LSA是区域内的路由器产生的,每台路由器都会产生这个类型的LSA,并且区域内的LSA的下一跳地址是ABR不能更改的。
LSA2:这种类型的LSA是区域间须要选举DR和BDR产生的一中LSA
LSA3:这种类型的LSA是ABR产生的,是ABR将其余的区域的LSA信息进行扩散到另外的区域的
LSA4:这种类型的LSA是由ABR用来将ASBR的route id告知内部区域其余路由器的LSA,这里面的route id是ABR进行修改的。
LSA5:这种类型的LSA是由ASBR产生的,其中的route id 是任何路由器都不容许进行修改的。
LSA7:这种类型的LSA是由NSSA或者TOTALLY NSSA区域的路由器重分发进来的,而后这些LSA若是要传给NSSA区域之外的其余区域的路由器,那么就要通过ABR的7-5转换后,变为LSA5以后再进行转发。Virtual link(虚链路):在OSPF网络中,全部的区域都必须链接骨干区域来进行通讯,可是有些时候有些区域若是要跟骨干区域相链接可是却被中间的另一个区域隔离,这样的状况下咱们可使用virtual link的方式将中间这个区域虚拟为骨干区域,virtual link的创建是在双方ABR上指定对端的route id来实现的,其中必须有一个ABR是链接骨干区域的。虚链路被认为是OSPF的一个接口,一个链路,因此也是须要创建OSPF邻居的,只是在这种状况下创建的邻居是没有hello包发送的。
Authentication:
                  1.基于接口的验证(明文和密文)
                  2.基于区域的验证(明文和密文),在开启了区域验证以后就至关于属于这个区域的全部接口的验证所有开启,因此区域的验证也是要在这个区域的全部路由器上面都配置相同的秘钥才能实现邻居的创建,这里须要注意的是,若是在骨干区域配置了区域验证,那么这时虚链路的验证也将被开启,因为虚链路上面没有Hello包的交互,所以必须重置OSPF进程以后才虚链路的认证才会生效。
OSPF Summary:
咱们都知道,在OSPF同区域中的的LSA是不容许任何路由器进行修改的,也就是说在区域内的路由是没法进行汇总的,只有当ABR在发送区域间的路由的时候,能够在ABR上面进行汇总,可是对于external路由来讲,ABR是不能对他进行汇总的,即便汇总了也不会有效果,有且只有ASBR路由器才能够对external路由进行汇总。
以上为粗略的一个总结,后续有空了再把关于OSPF实验里面应该注意的知识点、细节总结出来!html

相关文章
相关标签/搜索