一、前言¶
在学习完基础的OSPF和IS-IS知识后,可能很多人都知道这两个协议都是链路状态协议,同时了解到OSPF应用于大型的企业网,IS-IS偏向于运营商。接下来,和我一起深度学习OSPF和IS-IS。看看OSPF和ISIS协议知识大家了解多少呢?
二、OSPF和IS-IS产生背景¶
在1987年那个年代,NSFNET骨干网和许多地区性的网络在部署路由协议时,只能部署静态路由或者RIP动态协议。因静态路由扩展性差和RIP协议"跳数限制"导致这两种协议弊端频现。所以,才萌生出开发一种具备高扩展性,适用于大型网络的链路状态协议。但是,当时IETF内部分为两个派系:"改造IS-IS"系和"自造OSPF"系。所谓改造IS-IS就是对IS-IS协议进行改进,使其支持TCP/IP;而自造OSPF就是重新开发出一种开放的、非私有的ARPANET版SPF协议。
三、链路状态协议基本知识¶
3.1 矢量(vector)协议基础¶
在此之前,先说说数学中的矢量,数学中的矢量包括大小和方向。而在网络中IP路由就是一种矢量,其方向指的是某个出站接口或下一跳地址。而IP路由的"幅度"相当于数学中矢量的"大小",指的是IP路由的度量值。
运行矢量路由协议的路由器掌握目的网络前缀信息的三种方法,如下: * 直连网络前缀 * 以配置命令的方式,使路由器生成的目的网络前缀 * 从另一种路由协议学习到的目的网络前缀
3.1.1 矢量协议的收敛¶
1、在运行距离矢量路由协议的网络中,路由信息会以逐跳的方式完成收敛。 2、运行距离矢量路由协议的路由器在处理路由更新消息时,会分两个步骤来进行: (1)会把收到邻居路由器通告的路由更新消息中所包含的跳数加1。 (2)运行距离矢量路由协议的路由器会拿收到的路由及其新增的跳数跟路由表中相应的表项进行比对。如果发现收到的路由中目的网络表项自身没有,就会生成相关路由表项;如果发现收到的路由中目的网络表项自身存在,就会将该路由表项的跳数加1;如果发现收到的路由中的目的网络表项自身存在且跳数高于或等于路由表中相关表项的跳数,就会"置之不理";如果发现收到的路由中的目的网络表项自身存在且跳数低于路由表中相关表项的跳数,就会使用新收路由来替换。
3.1.2 矢量协议的共性¶
可归纳出所由矢量协议具备三种重要的共性: 1、路由传播途中的每一台路由器都会参与路由计算。 (1)缺点:只要有任何一台路由器计算错误,那么后来接收此路由的路由器都会"继承"这样的错误。 2、只有完成本机路由计算之后,路由器才会向自己的邻居通告相关路由。 (1)缺点:收敛时间长 3、若目的网络为非本机直连,则路由器所知道的与此目的网络相对应的路由信息,都是由跟自己直连的邻居路由器"转告"。 (1)缺点:邻居路由器可能会提供错误的转发信息。
3.1.3 路由环路¶
因为每台运行距离矢量路由协议的路由器存在"信息差",它们只知道邻居路由器的路由器,至于非直连路由器的路由信息只是"道听途说",这就很容易出现路由环路问题。而针对路由环路也出现以下特性: 1、水平分割 (1)原理:路由器不会把从某接口学到的路由,通过同一接口向外通告。 (2)优点:在直线型网络中,避免单跳路由环路问题。 (3)缺点:网络中的物理环路中可能让距离矢量路由协议引发路由环路。 2、触发更新 (1)原理:路由器根据第二层协议判断出链路中断,都会立刻向自己的邻居发出路由更新。 (2)优点:大多数情况下,加快网络的收敛。 (3)缺点:当运行距离矢量协议的网络中有链路发生中断时,只要路由更新的发送时机不理想,导致路由更新循环,直至路由的跳数达到极值。可以给路由的跳数设定一个上限值,只要达到该值,便视相应的路由为不可达路由。 3、holddown计时器 (1)原理:若路由器先从一邻居路由器学到一条路由,然后又从同一邻居路由器获悉其已不再可达,便会启动一个与那条路由挂钩的holddown计时器。在这一计时器到期之前,除以下两种情况外(又从同一台邻居路由器学到了与所涉目的网络有关的路由;收到了另一台邻居路由器通告的与所涉目的网络相同的路由,但距离值等于或低于之前所学到的那条路由),路由器将不会接受与所涉目的网络有关的任何路由信息。 (2)优点:防止计数到无穷大问题(路由更新循环传递的局面会一直持续,直至路由的跳数达到极值)。 (3)缺点:延长网络的收敛时间。 4、扩散修正算法-EIGRP的"高招" (1)原理:EIGRP路由器维护一张拓扑表,表内会保存邻居路由器所通告的距离值在特定范围的路由。只有那些可行路由中的最优路由才会进驻路由器的路由表。而当收到邻居路由器所通告的路由之后,EIGRP路由器会拿路由的距离值跟自己所掌握的(通往同一目的网络的)路由的距离值进行比较,若前者的距离值更低,便会视其为可行路由。 (2)