0
点赞
收藏
分享

微信扫一扫

OSPF 基本特性

OSPF(OPen Shortest Path First)开放式最短路径优先是一个典型的链路状态路由协议,他是根据(Dijkstra)算法进行最短路径树的计算,最后得出最优最短路径的路由表。协议具备快速收敛、层次化多区域结构设计,目前大都部署在中大型网络中且使用频率较高,所以这个协议知识点也是很多,我分两章讲吧,基本特性这一章先带大家初步了解一下 OSPF 的基本特性。

RIP 的缺点:

讲到 OSPF 必定会提到一些 RIP 协议,他们属于两个不同协议类型的典型,这里也可以理解为 距离矢量路由协议链路状态路由协议 的对比。 RIP 协议的缺点; 1、以跳数作为度量值限制了网络规模。 2、以跳数作为度量值无法准确判断最优路径。 3、路由信息更新每次需要发送完整路由表,消耗带宽。 4、收敛速度慢。 5、自身协议会产生路由环路。 6、无身份验证功能。 对于上述 6 点缺点, OSPF 全都解决了,带着 RIP 协议的这些缺点,来进行了解 OSPF 的相关特点会有额外的理解。

基本原理:

OSPF 的基本工作原理,运行了 OSPF 协议的路由器设备,需要建立了邻居之后再建立邻接关系才会开始进行路由表的同步工作。 OSPF 在建立邻居的时候发送的第一个报文就会进行一个 DR/BDR 的选举工作,每个OSPF 路由器广播链路都会选举一个 DR 和 BDR ,这个 DR 就是这个广播区域内的老大,所有其他设备 OSPF 路由表全都以 DR 的为准,且下面所有的新增路由条目或者删除路由条目,都需要上报到 DR 设备由他来完成路由表的更新,然后区域内其他设备全都再对齐 DR 设备的 OSPF 路由表,每次有路由变化时会第一时间发送给 DR 设备,DR 设备会以增量的方式传递给其他路由器,不会像 RIP 一样每次都是传递完整的路由表,他只会告诉下面某条新增路由或者删除某条故障路由的信息。 OSPF 是以区域来进行区分不同业务的,你可以每个区域对应不同的业务,也可以去对应不同的接入点,以区域划分的好处有,故障排查可以按照分区域当有故障的时候,OSPF 故故障大都是单区域内部故障,故障点就只需要在区域内部划分,把故障限制在区域内不用全局排查,管理区域也是一样,若有做相关调整,可以只影响区域内部的设备。也有一些特殊区域 stub、totally stub 、NSSA 、totally NSSA一共四种不同区域用于不同的场景 。重点:所有其他区域都需要和 Area 0 向连,且一个 OSPF 网络内只存在一个 Area 0 ,OSPF 网络中所有其他区域的路由条目都需要经过骨干区域才可以互相访问。

报文:

OSPF 一共有五种报文分别是Hello报文、DD报文、LSR报文、LSU报文、LSACK报文。这五种报文分别作用; Hello报文: 为建立和维护相邻邻居路由器之间的链路关系,两边路由器运行了 OSPF 协议后,第一个向外发送的报文就是 Hello 报文,报文内容包含了所在接口的 IP 地址,子网掩码、本机的 OSPF route-id 信息、本机优先级、失效时间。若长时间未收到对端的 Hello 报文将会中断与邻居之间的关系。 DD报文: 是由两台路由器在建立了邻接关系的初始化时,发送的第一个报文,报文内容是交换机本机的 LSDB ,进行最终的 LSA 数据同步。 LSR报文: 两台路由器交换了 DD 报文之后,知道对端路由器的 LSA 时,用对端传递过来的 LSA 进行比对本机路由表,会针对于本机所缺少、对端缺少、或者失效的路由条目进行打包成 LSR 报文,发送给对端。 LSU报文: 当本机设备接收到对端的LSR报文后,会整理出对端缺失的LSA条目,进行打包并回复给对端设备,而接收到对端的失效 LSA 后,等待一个失效时间后若依旧没有收到该路由条目的更新,就会从本机路由表删除该路由条目。 LSACK报文: 这个ack大家属性吧,这个报文的作用就是接收到 LSU 报文后,回复给对端设备的确认报文。

邻居建立:

OSPF 路由器对于对端设备有两种关系的建立,第一种就是邻居关系,确认你开启了 OSPF 协议,跟我是同网段,接口类型一致等一些基本信息后,就会确认建立邻居关系。 再往后面更深层次的就是建立邻接关系,这个时候会进行路由条目的更换,通过算法得出最优路径树,会把自己的路由条目同步给其他邻接路由器。所以这里要注意的就是 OSPF 设备建立了邻接关系之后才会涉及到路由条目的交换同步。 邻接建立过程: 1、down 属于接口关闭状态,设备两端都没有开启 OSPF 进程,或者物理接口没有 UP 。 2、init 路由器之间发送 Hello 报文,确认了对方设备信息,并发送了本机的第一个 Hello 报文,这个时候会把对端的 route-id 设置为自己的邻居列表。 3、2-way 发送本机信息比对 route-id 后,确认 DR/BDR 设备。并建立了邻居关系。 4、Exstart 进入邻接关系建立的第一个步骤,开始进行 LSA 数据库的交换,发送第一个空的 DD 报文。 5、Exchange 开始进入 LSA 的链路信息交换阶段。 6、Loading 交换本机缺少的 LSA 链路信息,打包发送 LSR 报文,对端收到后会回复一个 LSU 报文,来同步数据库。 7、Full 这个状态就是完成了邻接关系的建立,意味着 LSDB 库完成了同步,发送最后的 LSACK报文。 这个过程就是 OSPF 邻居建立过程的全部过程了,这里面可能会有一些看不懂的缩写,没事我会在后面对这些名词汇总解释,大家对于这个邻居过程建立一定要熟记于心,几乎所有的关于 OSPF 的故障排错都会涉及到这一部分。

OSPF的三张表:

邻居表: OSPF 用邻居机制来发现和维护路由的存在,邻居表存储了双向通信的邻居关系 OSPF 路由器列表信息。 拓扑表: OSPF 用 LSA 描述网络拓扑信息,然后 OSPF 路由器用拓扑数据库来存储网络的这些LSA。 OSPF路由表: 对链路状态数据库进行了计算后,得出的 OSPF 路由表,这个表里的路由条目是都是最优路径的路由条目。

影响邻居建立的问题:

这下面列出的故障问题,前提是你的 OSPF 协议运行,版本相同,直连接口在同一个网段内,且接口 UP ,当然接口类型也是需要一样。这些基本全都配置正确的情况,OSPF 邻居还是无法建立,才会开始考虑下面故障。 1、Router-id Router-id 相同的话,Router-id 是同区域内作为邻居标识的唯一编号,所以直连接口的所有设备不能有相同的,会一直卡在 Down的状态 2、Area-id 区域号不同的话,OSPF 邻居关系无法成功建立。这里需要区分一下 OSPF 进程号和 Area-id 区域号的区别。OSPF 进程号只在本机自己生效,可以随意自定义,Area-id 区域号是指定你路由器所在的区域的,区域不同无法建立邻居。 3、认证 若配置了接口认证,需要完成身份验证才可以建立邻居。 4、区域类型 相同的区域类型内的设备才可以建立,比如都是默认区域,或者都是特殊区域才可以建立。 5、网络类型 OSPF 连接对端设备的网口的网络类型需要一致,网络接口类型有 p2p/BMA/p2mp/NBMA 四种类型,接口类型不一致默认的 Hello 时间和 Deal 时间也不一样。 7、静默接口 当你接口配置了静默状态后,改接口是不会发送 OSPF 协议的相关报文的,他只会接收相关报文。 8、接口 MTU 值不一致,表示在不分片的情况下,此接口最大可发出的IP报文长度,当接口不一致的时候,MTU 值小的一端无法处理 MTU 值大的一端的 OSFP 报文,会导致状态一直无法 Full。

DR/BDR 选举:

确保网络中的路由信息更加高效有序,有一个主的路由器(DR)他来收集了所有设备的路由信息,然后根据相关算法来进行算出最优路径,确保链路状态信息的稳定性以及最优性,还会选举一个备用路由器(BDR)来进行冗余,当 DR 故障后网络中会立刻切换 BDR 为主路由器,其他设备直接等主路由器计算完成后再同步到自身就行了。不会出现 RIP 那种环路情况。 选举范围每条广播链路上都需要选举出一个 DR 和 BDR ,也就是每个路由器接口都需要选择出一个 DR ,若有一些特殊链路是不需要选举的例如 P2P 网络,他的环境就是点到点对端就你一台设备,所以不需要选举。 选举规则以 Router-id 最大的优先,这个 Router-id 可以手动指定,若没有手动指定那么会按照设备默认 Loopback 接口的 IP 来比较,若还是比较不出来,会按照物理接口 IP 来比较。一般我们都是会手动指定,避免这些自己计算的情况。 所有开启了 OSPF 路由协议的设备当选举完成了 DR 之后,随之第二大的就是 BDR ,其他的全都是 DRother了,DRother 设备只会和 DR/BDR 建立邻接关系,也就是交换链路状态数据的关系 DRother 之间是只会建立在邻居关系,确保对端设备还活着的状态,这样就减少了 LSA 的泛洪,确保了链路状态信息库内的路由都是最优路径。 若这个时候新加了一个网络设备,他的 Router-id 是最大的,原本网络中的 DR 也不会变成他,需要重新再全局重启一次 OSPF 协议重新计算才会让他变成 DR 。所以网络中已经选举好了 DR 和 BDR 后,再新增的设备并不会去动摇原本已经选举好了的 DR/BDR 的地位。

路由选路:

OSPF 路由表内的路由都是经过计算得出最优的路径,路由条目转发的路径是最优的,那么怎么比对路由条目的信息,来得出最优路由呢。 1、自己本机区域内的路由优先。 2、区域间传递的路由优先。 3、外部引入的一类路由优先。 4、外部引入的二类路由优先。 5、Cost值小的优先,若路由Cost值相同则会形成负载分担。(来源一致) 6、跨区域的路由优先。若跨区域的 Cost 值开销相同也会形成负载分担。(来源一致) 根据这 6 条比对信息之后会比较出最优路径的路由信息存入 OSPF 路由信息中,也就是 LSDB 链路状态数据库中。

相关名词解释:

LSA: 运行了 OSPF 路由协议设备,所产生的的 OSPF 的路由条目。 LSDB: 运行了 OSPF 路由协议设备的所有 OSPF 路由条目的汇总。 DR: 指定路由器,在 OSPF 网络中发布 LSDB 库的设备。 BDR: 备份指定路由器,当 DR 故障后,立刻顶替 DR 设备的路由器。 P2P: 点到点网络类型,是一种特殊的链路类型,通过特殊的线缆链接,这一条线路上只存在两台设备。 MA: MA 网络就是多路访问网络,他分为两种一种是 Broadcast 广播(BMA),二是 Nonbroadcast (NBMA)非广播的多路访问网络,MA 网络在 OSPF 中需要选出 DR/BDR 来减少 LSA 的泛洪。 Area0: 骨干区域,所有区域都需要连接骨干区域,且一个 OSPF 网络中有且仅有一个骨干区域,没有相连骨干区域的设备将无法学习到其他区域的路由信息。 ABR: 连接两个不同区域的设备叫做区域边界路由器。 ASBR: 连接外部自治系统的路由。 IR: 在同一个区域内部的所有路由统称。

举报

相关推荐

0 条评论