OSPF(开放式最短路径优先协议)
-
- Open Shortest Path First(开放式最短路径优先协议)
- OSPF是一种链路状态路由协议,在RFC 2328中描述;
- Open意味着公有,任何厂商都能支撑OSPF,目前业内使用最广泛的IGP;
- 在华为设备上,OSPF协议优先级Internet 10(内部),External(外部) 150;
- 路由器之间交互的是链路状态信息,而不是直接交互路由;
- 每台OSPF路由器都知晓网络拓补结构,采用SPF算法计算达到目的的最短路径;
- 支持VLSM,支持手工路由汇总;
基本特点:
- 适应范围广:支持各种规模的网络
- 快速收敛:在网络的拓补结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。
- 无自环:使用SPF最短路径树算法进行路由计算,不会产生环路。
- 区域划分:允许网络被划分区域来管理,链路状态数据库仅需和区域内其他路由器保持一致。减小对路由器内存和CPU的消耗。同时区域间传送的路由信息减小,降低网络宽带占用。
- OSPF基于IP,协议号为89,采用组播方式交换OSPF包。OSPF组播地址:224.0.0.5(全部OSPF路由器)和224.0.0.6(指定路由器)。OSPF使用链路状态广播(Link State Advertisement,LSA)传送给某区域内的所有路由器。
- 其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络
- AS
- 自治系统(AS)是指使用同一个内部路由协议的一组网络。Internet可以被分割成许多不同的自治系统
- IGP类别协议
- 内部网关协议(Interior Gateway Protocol,IGP)在同一个自治系统内交换路由信息。IGP的主要目的时发现和计算自治域内的路由信息。IGP使用的路由协议有RIP、OSPF、IS-IS、EIGTP、IGRP
- EGP类别协议
- 外部网关协议(Exterior Gateway Protocol,EGP)是一种连接不同自治系统的相邻路由器之间交换路由信息的协议。EGP使用的路由协议有BGP
- 链路状态路由协议
- 链路状态路由协议基于最短路径优先(SPF)算法。该路由协议提供了整网的拓补视图,根据拓补图计算到达每个目标的最优路径;当网络发生变化时出发更新,发送周期性更新链路状态通告,不是相互交换各自的整张路由表
- 区域(Area)
- OSPF是分层路由协议,每个AS中,网络被分为不同的区域,每个区域拥有特定的标识符。OSPF的区域中必须包含Area 0,其他区域必须连接Area 0。不能连接Area 0的区域需要通过**虚链路**,通过中间区域连接。
OSPF的5类报文:
OSPF使用IP包头封装了5类报文,用来交换链路状态广播(LSA)
- Hello, 建立邻居关系
- 数据库描述(DD或DBD)消息,链路状态数据库描述信息(描述LSDB中的LSA头部信息)
- 链路状态请求(LSR)消息,向OSPF邻居请求链路状态信息
- 链路状态更新(LSU)消息,包含一条或多条LSA
链路状态应答(LSAck)消息,多LSU中的LSA进行确认
点对点网络上默认的Hello报文的发送间隔时间是10秒(每10s发送一次)
在NBMA网络中每30s发送一次
默认的无效时间间隔是Hello时间间隔的4倍
LSA每30分钟重传1次
工作过程:
-
-
- LSAs泛洪
运行链路状态路由协议的路由器,彼此间交互的部署路由信息,而是LSA(链路状态通告)。
- LSAs泛洪
-
-
-
- 什么是链路(LINK):路由器接口:如10M、1.54M
- 什么是状态(State):描述接口及其邻居路由器之间的关系
- 构建LSDB(LSDB:链路状态数据库)
每台路由器将搜集到的LSAs放入自己的LSDB存储起来。有了LSDB,路由器相当于掌握了全网的拓补。
-
- SPF计算(最短路径算法)
每台路由器基于LSDB,使用SPF进行计算,得到一个以自己为根、覆盖全网的一个无环的树。 - 维护路由表
每台路由器根据SPF计算结果,加载如路由表。
工作流程:
- 启动OSPF进程的接口,发送Hello消息
- 交换Hello消息建立邻居关系
- 每台路由器对所有邻居发送LSA
- 路由器接收邻居发过来的LSA并保存在LSDB中,发送一个LSAcopy给其他邻居
- LSA泛洪扩散到整个区域,区域内所有路由器都会形成相同的LSDB
- 当所有路由器的LSDB完全相同时,每台路由器将以自身为根,使用最短路径算法算出到达每个目的地的最短路径
- 每台路由通过最短路径构建出自己的路由表,包含区域内路由(最优)、区域间路由、E1外部路由和E2外部路由
OSPF区域概念
单区域存在问题:
- LSA泛洪严总,OSPF路由器的负担很大
- 区域内部动荡会引起全网路由器的SPF计算
- LSDB庞大,资源消耗过多,设备性能下降,影响数据转发
- 每台路由器都需要维护的路由表越来越大,单区域内路由无法汇总
OSPF多区域
- 所有非骨干区域必须与骨干区域直连
- 减少了LSA泛洪范围,有效把拓补变化控制在区域内,达到网络优化的目的
- 在区域边界可以做路由汇总,减小了路由表
- 充分利用OSPF特殊区域的扩展性,进一步减少LSA泛洪,从而优化路由
- 多区域提高了网络的扩展性,有利于组件大规模网络
OSPF基础配置
- 创建OSPF进程,并指定OSPF进程号及RouterID
[Router]ospf[process-id|router-id router-id]
- 在area0中宣告指定接口
[Router] area area-id
[Router] network ip-address wildcard-mask
通配符掩码:wildcard-mask
通配符是一个用于决定哪些IP地址该精确匹配(0代表需要匹配、1代表无所谓)哪些地址被忽略的32为数值。
通常用于访问控制列表(ACL)、OSPF路由协议通告。
可以理解为反掩码
例如:0.0.0.255代表前24为子网掩码必须匹配ip-address
RIP和OSPF的区别
- RIP使用距离矢量算法,通过学习其他路由器发送的路由表信息,生成路由表。OSPF首先获取全网拓补信息,然后利用SPF最短路径优先(也叫Djkstra)算法,生成路由表
- RIP一般适用于小型网络,OSPF适用于中大型网络。
- RIP和OSPF都是动态路由协议,可以根据拓补变化更新路由表。RIP配置简单,功能也相对简单,收敛速度慢,容易形成环路。OSPF支持层次化组网、网络优化、等价负载均衡、报文加密的功能。
- RIP支持路由自动汇总,OSPF不支持路由自动汇总;OSPF只能在ASBR和ABR手工汇总
链路状态协议与距离矢量协议
- 链路状态协议
- OSPF
- 在ABR执行路由汇总:对域间的路由执行汇总
- 在ASBR执行路由汇总:对引入的外部路由执行路由汇总
- OSPF
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)