写点什么

OSPF 路由协议一

作者:初学者
  • 2022-11-17
    河北
  • 本文字数:1364 字

    阅读完需:约 4 分钟

一 OSPF 路由协议

OSPF 路由协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。适用于 IPv4 的 OSPFv2 协议定义于 RFC 2328 ,RFC 5340 定义了适用于 IPv6 的 OSPFv3。

二 OSPF 路由概述

OSPF(下称"协议"或"本协议")仅在单一自治系统内部路由网际协议(IP)数据包,因此被分类为内部网关协议。该协议从所有可用的路由器中搜集链路状态(Link-state)信息从而构建该网络的拓扑图,由此决定提交给网际层(Internet Layer)的路由表,最终路由器依据在网际协议数据包中发现的目的 IP 地址,结合路由表作出转发决策。OSPF 原生支持 VLSM 与 CIDR。

本协议使用 Dijkstra 算法计算出到达每一网络的最短路径,并在检测链路的变化情况(如链路失效)时执行该算法快速收敛到新的无环路拓扑。

本协议可以通过调整路由界面的开销值来管控数据包的流向(也就是说,OSPF 通过开销值来落实管理员锁制定的路由策略)。开销值是 RTT、链路吞吐量、链路可用(可靠)性等衡量因素的无量纲整数表达。

一个 OSPF 网络可以划分成多个与骨干区域(Backbone Area,区域号为 0)相连的区域,各区域的区域号可以使用正整数(如 0)或点分十进制记法(如 0.0.0.0)表达。0 号(或 0.0.0.0 号)区域分配给该网络的核心,称为骨干区域,其他区域必须与骨干区域通过区域边界路由器(Area Border Router)直接或间接(通过 OSPF 虚链接)相连。同时,ABR 负责维护全网的聚合路由,并为每个区域保留一份单独的链路状态数据库(Link-State Database)。

与大多数路由协议不同(参考 BGP 和 RIP 的工作过程),本协议不依赖于传输层协议(如 TCP、UDP)提供数据传输、错误检测与恢复服务,数据包直接封装在网际协议(协议号 89)内传输。

本协议使用多播(Multicast)技术提供邻居发现(Neighbor Discovery)服务,对于不支持多播(广播)功能的链路,协议提供了相应的配置选项以便正常工作。默认情况下,协议监听 224.0.0.5(IPv4)、FF02::5(IPv6)组播地址(别名:AllSPFRouters)。对于 DR 与 BDR,协议会额外监听 224.0.0.6(IPv4)、FF02::6(IPv6)组播地址(别名:AllDRRouters)。本协议数据包只传输一跳(TTL 或 Hop Count 等于且仅等于 1),不能跨越广播域。

在 IPv4 协议上工作时,OSPF 可通过内建的安全机制保护链路状态数据库的安全性。在 IPv6 网络上,本协议使用 IPSec 提供安全服务。

OSPFv3 对 OSPFv2 进行了如下修改:

1. 邻居路由器只使用链路本地地址进行路由信息交换(虚拟链路除外)

2. OSPFv3 基于每条单独的链路进行工作

3. 链路状态通告与 Hello 报文中不再包含网际协议前缀(IP Prefix)信息

三 OSPF 路由工作过程

运行 OSPF 路由协议的路由器之间建立邻居关系,OSPF 的操作就是基于邻居关系之上完成的,邻居关系建立起之后,路由器之间泛洪 LSA 的信息,LSA 叫链路状态通告,链路状态用于描述整个网络拓扑结构的一系列信息(接口 Cost,IP 地址等),有助于每台路由器了解网络拓扑结构,大家都泛洪 LSA 也收集 LSA。(运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系。之后彼此之间开始交互 LSA,也就是链路状态通告,注意这里交互的不是路由信息,而是链路状态通告,那么什么是链路状态通告呢,你可以简单的理解为每台路由器都产 8 生一个描述自己直连接口状态(包括接口的开销、与邻居路由器之间的关系等)的通告,更通俗点的讲法是,每台路由器都产生一个通告,这个通告描述它自家门口的情况。)

发布于: 刚刚阅读数: 3
用户头像

初学者

关注

总以为清者自清 却忘了人言可畏 2022-11-03 加入

我是一名网络运维专业人员有两年经验

评论

发布
暂无评论
OSPF路由协议一_11月月更_初学者_InfoQ写作社区