第三章OSPF原理

简介: 第三章OSPF原理

OSPF定义

OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。

作为一种链路状态的路由协议,OSPF将链路状态组播数据LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。


工作原理

OSPF的简单说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。整个过程使用了五种报文、三个阶段、四张表。


五种报文

Hello报文:建立并维护邻居关系。

DBD报文:发送链路状态头部信息。

LSR报文:把从DBD中找出需要的链路状态头部信息传给邻居,请求完整信息。

LSU报文:将LSR请求的头部信息对应的完整信息发给邻居。

LSACK:收到LSU报文后确认该报文。


三个阶段

邻居发现:通过发送Hello报文形成邻居关系。

路由通告:邻居间发送链路状态信息形成邻接关系。

路由计算:根据最短路径算法算出路由表。

四张表

邻居表:主要记录形成邻居关系路由器。

链路状态数据库:记录链路状态信息。

OSPF路由表:通过链路状态数据库得出。

全局路由表:OSPF路由与其他比较得出。


工作过程

(1)了解自身链路

每台路由器了解其自身的链路,即与其直连的网络。

(2)寻找邻居

不同于RIP,OSPF协议运行后,并不立即向网络广播路由信息,而是先寻找网络中可与自己交换链路状态信息的周边路由器。可以交互链路状态信息的路由器互为邻居。

(3)创建链路状态数据包

路由器一旦建立了邻居关系,就可以创建链路状态数据包。

(4)链路状态信息传递

路由器将描述链路状态的LSA泛洪到邻居,最终形成包含网络完整链路状态信息的链路状态数据库。

(5)计算路由

路由区域内的每台路由器都可以使用SPF算法来独立计算路由。


OSPF区域

骨干区域 :作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。

标准区域 :除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。

末梢区域 :即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的 AS 外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。[2]

完全末梢区域 :该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包换有自治系统边界路由器 ASBR。


OSPF身份

DR(Designated Router):指定路由器,OSPF协议启动后开始选举而来

BDR(Back-up Designated Router):备份指定路由器,同样是由OSPF启动后选举而来

DRothers:其他路由器,非DR非BDR的路由器都是DRothers。

ABR(Area Border Routers):区域边界路由器,连接不同OSPF区域。

ASBR(Autonomous System Boundary Router):自治系统边界路由器,位于OSPF和非OSPF网络之间。

骨干路由器:至少有一个借口连接到骨干区域(区域0)。


相关文章
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
8月前
|
前端开发 Linux 数据库
CMS网站管理系统如何选择CMS建站?
本文介绍了几款常用CMS系统,包括PageAdmin CMS,适用于公司、政务和学校等事业单位网站。该系统有上千款模板库,适合基础一般建站用户需求,同时支持Windows、Linux、麒麟服务器等多环境版本,支持国产化改造。
141 6
|
9月前
|
算法 安全 编译器
C++优势
C++优势
228 29
|
10月前
|
负载均衡 监控 算法
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
339 2
|
11月前
|
Java
Java中抽象类和接口有什么区别?
本文阐述了Java中抽象类和接口的区别,包括类型扩展、方法/属性访问控制符、方法实现、使用目的等方面的不同,并提供了抽象类和接口的使用示例,以及Java中其他类型的类(普通类、内部类等)的简介。
1617 0
Java中抽象类和接口有什么区别?
|
网络协议 安全 网络架构
|
关系型数据库 MySQL 测试技术
MySQL 报错 ERROR 1709: Index column size too large
MySQL 报错 ERROR 1709: Index column size too large
565 4
|
Java 应用服务中间件 数据库
SpringCloud:服务保护和分布式事务详解
SpringCloud:服务保护和分布式事务详解
319 0
|
安全 网络安全 网络虚拟化
|
域名解析 缓存 网络协议
DNS(Domain Name System,域名系统)详解
DNS(Domain Name System,域名系统)是互联网中用于将域名转换为相应IP地址的分布式命名系统。虽然不是严格意义上的局域网协议,但它在中大型局域网起着至关重要的作用。它负责将域名映射为IP地址,使得用户可以使用易记的名称访问网络资源。
1366 0

热门文章

最新文章