HICA学习--ospf动态路由协议

目录

比较动态路由协议好坏的依据

RIP动态路由协议

ospf动态路由协议(开放式最短路径优先协议)

开放最短路径优先协议

链路状态路由协议

选路依据

收敛速度

资源占用

ospf的三个版本

简单介绍三个版本

ospf V2和RIP V2比较

相同点

不同点

ospf的结构化部署

区域划分

信息传递方式

区域边界路由

区域划分原则

区域id

ospf工作过程

ospf数据包

hello包

dbd包(链路状态数据库描述包)

Lsr包(链路状态请求包)

Lsu包(链路状态更新报文)

Lsack包(确认包,可类比tcp的ack包)

ospf状态机(在工作过程所处的不同工作状态)

邻居关系建立

 邻居关系建立过程

lsdb同步

lsdb同步过程 

lsdb同步拓扑信息传输

完成收敛

ospf工作过程

稳定状态(可以停留的状态)

条件匹配

概念及原因

dr选择(指定路由)

bdr选择(备份指定路由)

Drother (其他路由器)

有的时候dr小于bdr的原因

比较动态路由协议好坏的依据

1、选路

2、收敛速度

3、资源占用

RIP动态路由协议

1、选路依据跳数,考虑太过片面(原因早期路由型号单一,带宽没有现在高)

2、所依托的贝尔曼福特算法不够优秀,算出来的路,可能出现环路

ospf动态路由协议(开放式最短路径优先协议)

开放最短路径优先协议

(Open Shortest Path First,OSPF)是内部网关协议,之所以叫“开放”是因为OSPF是公开发表,并不是某一家厂商独有;“最短路径优先”是因为OSPF使用的算法为Dijkstra提出的最短路径算法SPF(其实RIP也是最短路径优先,只不过OSPF使用的算法叫“最短路径算法”)

由于ospf资源占用较高所以收敛就会慢,所以ospf就不适合与中大型复杂网络工作,想要在中大型复杂网络中工作,需要结构化部署(区域之间传输路由占用资源少)结构化部署就是良好的IP地址规划和区域划分

链路状态路由协议

ospf是链路状态路由协议,靠传递拓扑信息来计算路由,每个路由器将其已知的链路状态信息告诉邻居,收敛以后,网络上每个路由器对全网的链路状态有相同的认识。然后每台路由器根据了解到的全网链路状态,独立计算路由。

例子

假设现在有个R1路由器和R2路由器都是g0/0/0接口连接12.0.0.0网段
将g0/0/0接口型号,连接带宽,接口连接信息发送过去,接口连接网段共享出去。收集lsa(拓扑信息形成一张有向图)在转换为一种树形结构(最短路径树)最后自己的最短路径优先算法计算得出路由。

选路依据

选路靠的是带宽,选路依据相对来说科学,且选路不会出现环路

收敛速度

收敛速度快,ospf计时器的周期时间更短

资源占用

资源占用较高

例子(与rip对比一下)

假设现在有个R1路由器和R2路由器、R2后面有一个网段缺失,当ospf要传输信息,传输过去的信息包含周围接口等信息,单个数据包资源占用量比rip大。rip有周期更新机制所以数据包多,整体的资源占用相比于ospf多,ospf因为单个数据包的数据量大所以资源占用也不少。在中大型网络,中rip资源占用很严重,网就会很卡。

但是ospf的作者想办法解决资源占用,rip无法去解决资源占用

所以ospf对比rip更加优秀

ospf的三个版本

简单介绍三个版本

V3 属于IPV6 、V1和V2属于IPV4

V1并没有投入市场,V1是实验版本,有些问题

V2版本才是在市场中使用的

ospf V2和RIP V2比较

相同点

1、ospf v2和rip v2 都是无类别的动态路由协议,都支持汇总和子网划分

2、都是通过组播划分(Ospf用到的组播地址用了两个224.0.0.5 和224.0.0.6,rip组播地址224.0.0.9)

3、ospf和rip都支持等开销负载均衡

不同点

ripv2只适用中小型网络环境,ospf适用于中大型网络环境

ospf的结构化部署

区域划分

ospf为了解决咨源占用高的问题,使用了结构化部署的思路,结构化部署就是区域划分

(具体如何划分看具体情况,区域划分的太大区域内部压力太大,区域和区域也要连接如果划分的太多区域和区域之间压力就大了)

信息传递方式

Ospf内部传递拓扑信息

Ospf之间通讯传递路由信息

区域边界路由

一个区域和另一个区域中间有一个路由,沟通两区域,这个路由就被称为区域边界路由(ABR)

这个路由知道了左右两边的拓扑信息就可以算出路由,然后将路由直接传输就行了

(Ospf进行子网汇总和划分就是靠区域之间传递的路由)

特点

同时属于两个区域

区域划分原则

1、必须存在ABR

2、必须按照星型拓扑结构部署

(Ospf必须有一个中间区域(骨干区域),剩下的区域都链接在中间区域,其他区域将信息都共享给中间,中间区域将信息传输给周边区域)

ospf可以区域划分,也可以不划分
没有区划分也有一个骨干区域
如果ospf有多个区域(多区域ospf网络)
Ospf网络没有区域划分只有一个区域(单区域ospf网络)

典型例子
如果有一个区域不连接在骨干区域那么这个区域上的abr就不会去工作
但是abr会学习到所有的路由,abr不去共享,这个abr叫非法区域边界路由
就比如下面这张图标红的部分

ABR可以不止有一台,一般现实配置的都是这种,如果只有一台abr万一坏了就g,多几台(可以不止两台)有利于网络稳定,算是一个备份

 一个abr可以同时属于多个区域,如下图

区域id

Ospf为了区别标识不同的ospf区域设计了一个区域id(area id 以32位二进制构成)

表示方法

以数字直接表示,写数字方便人类去配置,以点分十进制表示

骨干区域编号固定编号0 (area 0)

ospf工作过程

ospf数据包

跨层封装于三层报头,协议号89

hello包

邻居发现,关系建立,周期保活

用来周期性的发现建立和保活邻居关系

hello时间默认10秒 这个数据包很小,数据包携带一个路由id(rid32位2进制构成,用区别标识不同的ospf路由器)

保活:这个数据很小包是为了证明自己活着,一点点消息就够了,就是为了保活。

Dead time:死亡时间 默认是4倍的hello时间,现实网络环境不止以太网,在一些特殊的环境hello时间可能是30秒。

dbd包(链路状态数据库描述包)

链路状态数据库又被称为lsdb-拓扑信息被称为lsa

描述是为了减少ospf资源占用,相当于一个摘要简介目录。链路状态数据库中的信息可能有部分不用,然后根据这个描述在结合自身情况来判断要不要这个拓扑信息。

Lsr包(链路状态请求包)

用来请求未知的lsa信息,刚刚对比过了dbd包,被传递的路由里面没有的信息要发过来。

Lsu包(链路状态更新报文)

把对端向你请求需要的lsa信息发送过去,隐式确认lsr包

Lsack包(确认包,可类比tcp的ack包)

用来确认收到了lsa信息(lsack会确认dbd lsu)

ospf状态机(在工作过程所处的不同工作状态)

邻居间不同时间的不同关系

邻居关系建立

down状态

初始状态,没有接收到任何消息

lint状态

某台设备进入lint状态,表示这台设备,已经接收到了hello报文,但是另一台设备尚未与本设备建立双向通信关系(接受到的hello包中存在自身的rid进入下一状态)

two-way状态

双向通讯状态(标志着邻居关系的建立)

 邻居关系建立过程

1、A开启ospf动态协议后,A会向B发送一个hello包。这时A的hello包中携带A的rid,B在接收到A的hello包后将状态置为lnit

2、B向A发送邻居列表中含有A的Hello报文,A在收到的Hello包邻居列表中发现自己的rid,状态置为2-way,没有lnit包。

3、A向B发送邻居列表中含有B的Hello报文,B在收到的Hello包邻居列表中发现自己的rid,状态置为2-way。

(ospf通过组播形式发送hello报文 目的组播地址224.0.0.5)

two-way状态会有一个条件匹配的过程因为你发的消息别人不一定要,条件匹配成功才能继续向下进行,如果失败,停留在邻居关系之后仅使用hello包进行保活。

lsdb同步

exstart阶段(主从关系的竞争)条件匹配成功后进入

发送未携带数据的dbd包,空的dbd包也可以用作保活,Hello包也可以完成这个功能,发dbd原因是为了区别状态,代表已经不再是邻居关系的建立过程,已经条件匹配成功了。

在这个阶段路由器会决定出主从关系,决定主从关系的依据,比较rid谁大谁先,谁先发送消息

enchange阶段

主关系先发送lsdb,从关系先去比对信息,从设备先去要信息

使用携带数据库汇总信息的dbd包进行交互,需要ack确认

作用是错开发送,可以类比一下rip的异步传输

lsdb同步过程 

1、A向B发送一个dbd包,宣告自己要成为主

2、B向A发送一个dbd包,且B的rid更大,B成为主,这时A会由exstart变为enchange

3、然后A回包,包里包含lsdb,B由exstart变为enchange

4、B发送一个包含lsdb的dbd包。

(避免同时更新,导致网络拥塞)

lsdb同步拓扑信息传输

loading阶段

加载基于其他设备发送过来的dbd包,对比本地缺失的las信息;使用lsr进行查询,对端使用lsa信息共享;需要ack确认。是为了完成邻接间的数据库一致

full阶段(邻接关系建立的标志)

主收到了从发来的确认后会进入此状态

进入full状态,标志着邻接关系的建立,并且只有达到邻接状态才能共享lsa信息

完成收敛

基于自己本地的链路状态数据库,依靠ospf算法形成有向图--最终计算出路由加载到自己的本地路由表中。

ospf工作过程

建立邻居关系:启动配置完成后,OSPF将将本地所有运行了OSPF协议的接口,以组播
224.0.0.5(目标IP)周期性的发送hello包,hello包中将携带自己本地的RID,邻居接收到对端的
RID将会把这些信息存储在 邻居表
条件匹配:如果条件匹配成功则进入下一个状态,如果匹配失败则,停留在邻居关系。需要用
hello包进行周期保活。
建立邻接关系:进行主从关系的选举,首先采用未携带数据(真正LSA摘要)的DBD包进行选
举----对比RID,RID大的作为主设备,后续将由主设备优先共享自己的数据库摘要信息,同时也将
由主设备先共享自己的LSA信息。之后使用LSR/LSU/LSACK获取本地未知的LSA信息,完成了本地 lsdb的建立----形成 本地链路数据库表
完成收敛:基于自己本地的链路状态数据库,依靠OSPF算法形成有向图---最终计算得出路由----加
载到自己本地的 路由表 中。
收敛完成后,将使用hello包周期保活,每30min进行周期更新。

稳定状态(可以停留的状态)

Down State

two-way state

Full state

条件匹配

概念及原因

指定一台路由器(dr)和其他ospf网络设备建立邻接关系,其他设备仅保持邻居关系。这样做的原因网段消失每两台设备都要触发更新共享一次1.0消失的消息这个时候就会有垃圾信息,这个时候如果R1和其他路由是邻接关系其他路由两两是邻居关系只有r1可以和其他路由发送更新,其他路由不会重复更新。

dr选择(指定路由)

首先看接口优先级,优先级大成为指定路由 (dr为指定路由)(priority)当优先级数值相同会选择选接口IP大的作为指定路由器,优先级置为0将不会参与选举。在一个广播域中是指定路由在另一个广播域就可能不是指定路由,看接口IP大小,这个优先级,只看接口IP可能选出来的指定路由不是自己想要的,有优先级就是要人为的去干预这个指定路由的选择。

bdr选择(备份指定路由)

也需要和其他路由建立邻接关系。bdr作用当一个dr失效时立即顶替dr工作。

Drother (其他路由器)

有的时候dr小于bdr的原因

如果新来一台IP很大的设备,难道要强性改变自己的身份?并不是这样,dr和bdr是一个非抢占的,选出来是谁就是谁,需要设计一个时间用来选择dr和bdr时间一般是死亡时间40秒。

邻居表 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值