路由器路由协议详解:从 RIP 到 OSPF 的技术演进
前言
在现代计算机网络中,路由器作为连接不同网络的核心设备,其核心功能之一便是通过路由协议动态计算和维护最佳路径,确保数据报文能够高效、准确地从源网络传输到目标网络。路由协议的选择直接影响网络的稳定性、收敛速度和可扩展性,是网络设计与运维的关键环节。
本文聚焦两种经典的内部网关路由协议 ——RIP(Routing Information Protocol)和 OSPF(Open Shortest Path First),系统梳理其核心原理、工作流程与技术特性。从 RIP 基于距离向量算法的简单实现,到 OSPF 基于链路状态算法的精细化设计,我们将深入剖析协议的演进逻辑:为何 RIP 因收敛慢、易产生环路等问题逐渐被取代?OSPF 又通过哪些机制突破了 RIP 的局限,成为中大型网络的主流选择?此外,本文还将结合具体配置案例与报文分析,帮助读者理解 OSPF 的邻居发现、链路状态同步、路由计算等核心过程,以及三张关键数据表(邻居表、链路状态数据库、路由表)的作用机制,为网络工程师掌握路由协议配置与故障排查提供全面参考。
一、RIP(Routing Information Protocol)协议
RIP是一种分布式的、基于距离向量的路由选择协议。
互联网的标准协议。
最大优点:简单。
要求网络中的每个路由器都要维护从它自己到其他每一个目的网络的距离记录。
RIP是一种基于距离矢量算法的路由协议,存在着收敛慢、易产生路由环路、可扩展性差等问题,目前已逐渐被OSPF取代。
二、OSPF(Open Shortest Path First)协议介绍
1. 基础内容
OSPF(开放最短路径优先,Open Shortest Path First)是一种,基于链路状态
的内部网关路由协议
,通过交换链路状态信息来实现路由的更新,用于计算最短路径(逻辑路径,非物理路径),旨在克服RIP的缺点。
- “开放”:协议公开发表,不受单一厂商控制。
- “最短路径优先”:采用Dijkstra提出的最短路径算法(SPF) 计算路径。
核心特点:
OSPF :开放式最短路径优先一种链路状态路由协议
采用(SPF算法)计算到达目的地的最短路径
路由协议优先级:10
链路 -> 路由器接口
状态 -> 描述接口与邻接路由器连接的关系
1.无环路 2.收敛快 3.更新效率高 4.不受网络规模限制 5.扩展性好 6.支持认证
链路状态:指本路由器与哪些路由器相邻,以及对应链路的“代价(cost)”(代价可表示费用、距离、时延、带宽等,由管理员配置)。
2. 原理图
OSPF工作流程的核心原理如下:
LSA泛洪:链路状态通告(LSA)由各路由器共享,包含直连网络、开销、相邻路由器等信息,用于在整个OSPF区域内同步链路状态,为SPF算法提供基础。
LSDB(链路状态数据库):所有收到的LSA存储于此,是全网拓扑信息的集合,确保所有OSPF路由器的LSDB一致。
SPF算法:每台路由器基于LSDB计算最短路径树。
生成路由表:根据最短路径树结果,更新路由表(含目的地址、下一跳、开销等)。
一、LSA泛洪的核心目的
OSPF是链路状态路由协议,每个路由器会生成描述自身直连链路、邻居关系、接口 metric(开销)等信息的LSA,然后通过泛洪(Flooding) 机制将这些LSA传播到区域内的所有其他路由器,最终实现“全网拓扑信息一致”。
二、LSA泛洪的关键规则
只泛洪更新的LSA
每个LSA包含一个序列号(Sequence Number) 和老化时间(Age):
序列号越大,LSA越新(初始为0x80000001,最大为0x7FFFFFFF,超过后老化);
路由器收到LSA时,会与本地存储的同类型LSA对比:
若收到的LSA更新(序列号更大或相同序列号但老化时间更小),则更新本地LSA,并向除接收端口外的所有其他端口泛洪;
若收到的LSA更旧(序列号更小),则向发送方回复自己存储的更新LSA,阻止旧信息传播。
避免泛洪环路
OSPF通过以下机制防止LSA在网络中无限循环:
老化时间(Age):LSA生成时Age=0,每经过1秒增加1,最大为3600秒(1小时),超时后被删除;
从非DR/BDR端口接收的LSA不泛洪到DR/BDR:在广播型网络(如以太网)中,DR(指定路由器)和BDR(备份指定路由器)负责集中转发LSA,避免多台路由器重复泛洪;
接口方向限制:收到LSA的接口不会再次向该接口泛洪(即“从哪来,不回哪去”)。
分片与重组(针对大型LSA)
当LSA大小超过接口MTU(最大传输单元)时,OSPF会将其分片(通过LSA的分片位和分片号标识),接收方再重组为完整LSA。三、LSA泛洪的过程示例(以广播型网络为例)
路由器A生成LSA(如描述自身直连网络的Type 2 LSA),Age=0,序列号=0x80000001;
路由器A将LSA发送给DR(若在广播网中),或直接发送给邻居(如点到点链路);
DR收到LSA后,检查其序列号:若为新LSA,更新本地数据库,并向所有其他路由器(包括BDR和非DR路由器)泛洪;
其他路由器(如路由器B)收到LSA后,对比本地存储:
若本地无此LSA或收到的更新,则存储并向除接收端口外的所有端口泛洪;
若本地LSA更新,则向发送方回复更新的LSA,终止旧LSA传播;
泛洪持续到区域内所有路由器均收到并存储最新LSA,拓扑数据库同步完成。
四、常见LSA类型的泛洪范围
不同类型的LSA泛洪范围不同(受区域边界限制),例如:
- Type 1(路由器LSA):仅在生成该LSA的路由器所在区域内泛洪;
- Type 2(网络LSA):仅在DR所在的区域内泛洪;
- Type 3(汇总LSA):由ABR(区域边界路由器)生成,用于在区域间传递路由信息,可跨区域泛洪;
- Type 5(外部LSA):由ASBR(自治系统边界路由器)生成,描述外部路由,在整个OSPF自治系统(除Stub区域外)泛洪。
五、LSA泛洪的重要性
泛洪机制是OSPF实现“动态适应拓扑变化”的核心:当网络拓扑发生变化(如链路故障、接口Up/Down)时,相关路由器会立即生成新的LSA(序列号+1),通过泛洪快速通知全网,所有路由器重新计算路由,实现路由收敛。
如果泛洪机制失效(如LSA序列号错误、老化时间异常),会导致拓扑数据库不一致,进而引发路由错误(如环路、黑洞)。
3. 核心概念
- 链路状态:本路由器的相邻路由器及链路代价。
- LSA(链路状态通告):传递链路状态信息的载体。
- LSDB(链路状态数据库):存储所有LSA,记录全网拓扑,确保区域内一致性。
- SPF算法:基于LSDB计算最短路径的核心算法。
- 区域:OSPF网络划分为多个区域,骨干区域(编号0)为核心,其他区域需连接骨干区域。
- DR(指定路由器):在广播型网络中汇总链路状态信息,协调LSA同步,减少冗余交互。
- BDR(备份指定路由器):作为DR的备份,DR失效时自动升级,保障拓扑同步不中断。
三、OSPF的基本工作原理
1.建立过程
路由器通过Hello报文(组播地址224.0.0.5)发现和维护邻居,周期性发送(默认间隔10秒,失效时间为40秒)。
邻居状态演进:
- Down:初始状态,未收到邻居Hello报文。
- Init:收到邻居Hello报文,但报文中无自身Router ID(未双向通信)。
- 2-Way:双方互相收到含对方Router ID的Hello报文,建立双向通信。
- Exstart:交换空DD报文,协商主从关系(为LSA交换做准备)。
- Exchange:用DD报文描述本地LSDB,开始交换链路状态信息。
- Loading:发送LSR报文请求本地缺失的LSA,同步LSDB。
- Full:LSDB同步完成,建立邻接关系,正常交互路由信息。
一、邻居发现:Hello报文的“初遇”(解决“和谁通信”)
OSPF路由器启动后,通过Hello报文发现邻居,过程分三个状态:
- Down状态:初始状态,路由器未收到任何Hello报文,主动发送Hello报文(含自身Router ID、区域ID、Hello时间间隔等)。
- Init状态:收到邻居的Hello报文,但报文中的“邻居列表”未包含自身Router ID(邻居还没“看见”自己)。
- 2-Way状态:收到邻居的Hello报文,且报文中包含自身Router ID → 邻居关系建立。
- full:已完成链路状态信息同步,完全同步。
👉 广播网络(如以太网)的特殊处理:
此时会触发DR/BDR选举(基于接口优先级+Router ID,优先级高/ID大的胜出),目的是减少邻接数量:
- DR(指定路由器):收集本网段所有路由器的LSA,汇总后泛洪。
- BDR(备用指定路由器):DR故障时接管,避免重新选举。
- 非DR/BDR路由器:仅与DR/BDR建立邻接,与其他非DR/BDR保持“2-Way邻居”(不交换LSA)。
二、邻接建立:LSDB同步的“深度交流”(解决“交换什么信息”)
邻居关系仅表示“互相认识”,邻接关系需通过LSDB(链路状态数据库)同步实现,分四个状态:
- ExStart状态:与DR/BDR(或点对点邻居)交换DD报文(数据库描述报文),确定主从关系(Master/Slave):
- 主(Master):Router ID大的路由器,控制DD报文的序列号。
- 从(Slave):Router ID小的路由器,序列号跟随主。
- Exchange状态:双方通过DD报文交换LSA摘要(仅含LSA头部,如类型、ID、序列号),同步“已知的LSA清单”。
- Loading状态:对比双方LSA摘要,若发现对方有自己没有的LSA,发送LSR报文(链路状态请求);对方用LSU报文(链路状态更新,含完整LSA内容)回应;收到LSU后,发送LSAck报文(链路状态确认)。
- Full状态:LSDB完全同步 → 邻接关系建立。之后通过Hello报文保活(默认10秒发送一次,40秒未收到则认为邻居失效),链路变化或30分钟周期更新LSA(泛洪LSU,用LSAck确认)。
三、区域划分:大规模网络的“降维优化”(解决“信息过载”)
当网络规模过大时,全量LSA泛洪会导致带宽/设备开销爆炸。OSPF通过**区域(Area)**划分解决:
1. 区域核心逻辑:
- 每个区域内的路由器仅维护本区域的LSDB,区域间通过ABR(区域边界路由器)传递汇总后的LSA(减少泛洪量)。
- 必须存在主干区域(Area 0),所有非主干区域需通过ABR连接到Area 0,形成“星型拓扑”。
2. 路由器角色分工:
- IR(区域内路由器):所有接口都在同一区域,仅处理本区域路由。
- ABR(区域边界路由器):连接多个区域(含Area 0),负责汇总非主干区域的LSA并注入主干,或从主干提取其他区域的LSA。
- BBR(主干路由器):位于Area 0的路由器(含ABR的Area 0接口),负责主干区域内的LSA转发。
- ASBR(自治系统边界路由器):连接OSPF自治系统与外部网络(如BGP、静态路由),将外部路由“重分发”到OSPF。
以上流程会导致一个问题,那就是发送的分组太多
为了使其能够用于规模很大的网络。
区域内路由器IR:路由器的所有接口都在同一个区域内。
区域边界路由器ABR:将本区域和其他自治区域连通。一个区域用于连接自身所在区域,另一个接口连接主干区域。
主干路由器BBR:主干区域内的路由器。同时也包括接口在主干区域的路由器。
自治系统边界路由器ASBR:主干区域内专门和本自治外的其他自治系统交换路由路由信息。
R3向主干区域发送自己所在区域1的链路状态通告。向自己所在区域发送区域0,2,3的链路状态通告
2.基本概念
(1)LSA链路状态通告
链路状态路由协议通告的的是链路状态而不是路由信息。
运行链路状态路由协议的路由器之间首先会建立邻居关系,然后彼此之间开始交互LSA(LinkState Advertisement,链路状态通告)。
(2)LSDB链路状态数据库
每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB(Link State DataBase,链路状态数据库)。路由器通过对LSDB中所存储的LSA进行解析,进而了解全网拓扑。
(3)SPF计算
每台路由器基于LSDB,使用**SPF(Shortest Path first,最短路径优先)**算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就已经知道了到达所有网段的优选路径。
(4)路由表生成
路由器将计算出来的优选路径,加载进自己的路由表**(Routing Table)**。
(5)Router ID
Router lD用于在自治系统中唯一标识一台运行OSPF的路由器,它是一个32位的无符号整数。
Router lD选举规则如下:
手动配置OSPF路由器的Router ID(建议手动配置)
如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID
(6)Area区域
OSPF Area用于标识一个OSPF的区域。
区域是从逻辑上将设备划分为不同的组,每个组用区域号(AreaID)来标识。
OSPF的区域ID是一个32bit的非负整数,按点分十进制的形式(与IPv4地址的格式一样)呈现例如Area0.0.0.1。为了简便起见,我们也会采用十进制的形式来表示。
(7)Cost开销
OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,缺省的Cost =100 Mbits/接口带宽。其中100 Mbit/s为OSPF指定的缺省参考值,该值是可配置的。
OSPF以“累计cost”为开销值,也就是流量从源网络到目的网络所经过所有路由器的出接口的cost总和。
接口处配置Cost值
(8)DR和BDR
DR(指定路由器):
- 负责在网络中汇总链路状态信息,所有其他路由器(DROther)仅与 DR 建立邻接关系并交换链路状态通告(LSA)。
- 统一协调 LSA 的同步,避免网络中大量路由器两两建立邻接关系导致的资源浪费和信息冗余。
BDR(备份指定路由器):
- 作为 DR 的备份,与所有 DROther (既不是DR又不是BDR的路由器)建立邻接关系,实时同步 DR 的链路状态信息。
- 当 DR 失效时,BDR 会自动升级为新的 DR,保证网络拓扑信息同步不中断。
邻居表:维护邻居关系的核心数据,记录邻居信息、状态(如Down、Init、2-Way、Full等),为交互奠基。
(4)邻居与邻接的区别
1. 邻居(Neighbor):基础发现关系
邻居是 OSPF 路由器通过 Hello 报文 “发现对方” 后形成的初始关系,核心特征如下:
- 形成条件:两台路由器通过 OSPF 接口互发 Hello 报文,且报文参数(如区域 ID、认证方式、Hello 间隔、Dead 间隔等)一致时,会将对方加入自己的 “邻居列表”,此时状态达到2-way(双向确认),即形成邻居关系。
- 本质:仅表示 “知道对方存在”,是一种 “浅层认知”,不涉及链路状态信息(LSA)的交换。
- 适用范围:所有能通过 Hello 报文互通且参数匹配的 OSPF 路由器,都会形成邻居关系(无论网络类型如何)。
2. 邻接(Adjacency):深度同步关系
邻接是在邻居基础上进一步建立的 “深度协作关系”,核心是为了同步链路状态数据库(LSDB),特征如下:
形成条件
:并非所有邻居都能成为邻接,需满足额外条件:
- 在广播型网络(如以太网) 或NBMA 网络(如帧中继) 中,仅 DR(指定路由器)、BDR(备份指定路由器)与其他路由器(DROther)之间,以及 DR 与 BDR 之间会形成邻接;DROther 之间仅维持邻居关系(不形成邻接)。
- 在点到点网络(如 PPP 链路) 或点到多点网络中,所有邻居会直接形成邻接(无需 DR/BDR 选举)。
本质:通过交换 DD(数据库描述)、LSR(链路状态请求)、LSU(链路状态更新)、LSAck(链路状态确认)等报文,最终实现 LSDB 的完全同步,状态达到Full(完全同步),此时即形成邻接关系。
本质:是 “深层协作” 关系,目的是通过同步 LSDB,确保双方对网络拓扑的认知一致,为后续 SPF 算法计算路由奠定基础。
生命周期:邻接关系一旦建立(达到 Full 状态),会持续维护(通过 Hello 报文保活),并非 “仅在 OSPF 创建第一瞬间存在”。只有当链路故障、Hello 超时或参数不匹配时,邻接才会断开(状态退化)。
核心区别总结
维度 | 邻居(Neighbor) | 邻接(Adjacency) |
---|---|---|
状态标识 | 最终稳定在2-way状态 | 最终稳定在Full状态 |
关系深度 | 仅 “知道对方存在”(浅层认知) | “同步 LSDB”(深层协作) |
信息交换 | 仅交换 Hello 报文 | 除 Hello 外,还交换 DD、LSR、LSU、LSAck |
形成范围 | 所有参数匹配的邻居都会形成 | 仅部分邻居(如 DR/BDR 与 DROther 之间) |
生命周期 | 持续存在(除非 Hello 超时) | 持续存在(除非 Full 状态被破坏) |
简言之:邻居是 “认识”,邻接是 “合作”—— 邻接是邻居的子集,是为了实现 LSDB 同步而建立的更紧密的关系。
四、OSPF报文
OSPF报文封装在IP数据报中(协议号89),主要类型如下:
- Hello报文:发现和维护邻居关系,含Router ID、邻居列表、Hello间隔、失效时间等。
- 数据库描述(DD)报文:描述本地LSDB的摘要,用于协商LSDB同步(Exstart和Exchange阶段)。
- 链路状态请求(LSR)报文:请求缺失的LSA(Loading阶段)。
- 链路状态更新(LSU)报文:携带LSA信息,用于更新邻居的LSDB(泛洪传播)。
- 链路状态确认(LSAck)报文:确认收到LSU,确保LSA可靠传输。
五、OSPF的三张表
1. 邻居表
- 核心定义:邻居表是路由器或网络设备中用于管理和维护与相邻设备之间邻居关系的核心数据结构,是实现路由信息交换和网络通信的基础。
- 核心功能
- 记录邻居信息:详细存储相邻设备的标识信息,如邻居的 IP 地址、设备 ID 等;同时记录邻居设备的接口信息,包括连接本设备的接口以及邻居设备用于连接的接口。
- 维护邻居状态:实时跟踪邻居关系所处的不同状态,以反映邻居之间的连接情况和交互程度。以 OSPF 协议为例,邻居状态包括 Down(未建立连接)、Init(初始化,收到邻居 Hello 报文但未发现自身信息)、2-Way(双向通信,双方互相收到 Hello 报文)、ExStart(交换开始,准备交换链路状态信息摘要)、Exchange(交换链路状态信息摘要)、Loading(加载,请求并接收完整的链路状态信息)、Full(完全邻接,邻居间链路状态数据库同步完成)等。
- 为后续交互奠基:通过对邻居状态的监控和管理,判断邻居是否可用,为路由协议之间的路由信息交换、链路状态信息同步等后续交互操作提供可靠的前提保障,确保网络通信的顺畅进行。
2. 链路状态数据库
- 核心定义:链路状态数据库(LSDB,Link-State Database)是路由器在链路状态路由协议(如 OSPF)中存储整个区域内完整网络拓扑信息的核心数据结构,区域内所有路由器的 LSDB 经过同步后保持一致。
- 核心内容:包含区域内所有路由器生成的链路状态通告(LSA,Link-State Advertisement)。LSA 类型丰富,主要有路由器 LSA(描述本路由器的接口和链路信息)、网络 LSA(描述广播型网络或 NBMA 网络中连接的路由器)、网络汇总 LSA(用于区域间传递网络信息)、AS 外部 LSA(描述自治系统外部的路由信息)等。
- 核心作用:为路由计算提供完整、准确的网络拓扑数据。路由器可基于 LSDB 中的信息,运用最短路径优先(SPF)算法计算出到达各个目标网络的最佳路径,进而生成路由表,是实现链路状态路由协议功能的关键组成部分。
3. 路由表
核心定义:路由表是路由器中存储到达各目标网络最佳路径信息的核心数据结构,能够指导数据报文从源地址高效、准确地到达目标地址。
核心功能:通过记录不同路径的特征参数,如优先级、开销等,在存在多条到达同一目标网络的路径时,进行路径选择,筛选出最优路径,保障数据传输的效率和可靠性。
关键字段说明
目标网络地址 (Destination/Mask):数据要到达的最终目的地网段,例如 192.168.1.0/24。它由目标网络的网络地址和子网掩码共同组成,子网掩码决定了目标网络的范围大小。
子网掩码 (/Mask):与目标网络地址配合使用,通过二进制的 “与” 运算,将 IP 地址划分为网络位和主机位,从而确定目标网络的边界和范围。例如 255.255.255.0 对应的子网掩码为 / 24,表示前 24 位为网络位。
协议类型或者来源 (Proto)
:标识路由信息的生成方式和来源,不同的协议类型或来源具有不同的特性和适用场景。
- Direct(直连):当路由器的接口配置 IP 地址且接口状态为 “UP” 时自动生成,无需人工干预,优先级通常较高,适用于与本设备直接相连的网络。
- OSPF:一种内部网关协议,通过在区域内传递链路状态信息,动态计算和生成路由,适用于中大型网络,具有收敛速度快、无路由环路等优点。
- static(静态):由网络管理员手动配置和添加到路由表中,具有较高的稳定性和可控性,适用于网络结构简单、变化较少的场景。
优先级 (Pre):用于衡量不同来源路由的可靠性和优先级,数值越小表示级别越高,路由越优先被采用。当存在多条到达同一目标网络的路由时,路由器会优先选择优先级高的路由。
下一跳地址 (NextHop):指数据报文从当前路由器出发后,需要转发到的下一个路由器的接口 IP 地址。它是数据报文在网络中传输的重要指引,确保数据能够沿着正确的路径继续传递。
开销 (Cost):用于衡量一条路由路径的优劣程度,通常与路径的长度、带宽、延迟等因素相关,不同的路由协议计算开销的方式可能不同。在优先级相同的多条路由中,开销较小的路由会被优先选择。
接口 (Interface):指当前路由器用于转发数据报文到目标网络所使用的物理接口,包含接口的名称、物理地址等信息,是数据报文从本设备发出的物理出口。
六、基础配置
1.创建OSPF
路由器1配置:
1、配置两个接口的路由IP地址
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip address 192.168.1.1 24
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.3.1 24
[Huawei-GigabitEthernet0/0/1]quit
2、启动路由器1的OSPF协议,设置路由ID和区域,并将接口001-000加入OSPF区域内
[Huawei]ospf 1 router-id 1.1.1.1
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]dis this
[V200R003C00]
#
area 0.0.0.0
network 192.168.1.0 0.0.0.255
network 192.168.3.0 0.0.0.255
#
return
路由器2配置:
1、配置两个接口的路由IP地址
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip address 192.168.1.2 24
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.2.1 24
[Huawei-GigabitEthernet0/0/1]quit
2、启动路由器1的OSPF协议,设置路由ID和区域,并将接口001-000加入OSPF区域内
[Huawei]ospf 1 router-id 2.2.2.2
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
路由器3配置:
1、配置两个接口的路由IP地址
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip address 192.168.2.2 24
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.3.2 24
2、启动路由器1的OSPF协议,设置路由ID和区域,并将接口001-000加入OSPF区域内
[Huawei]ospf 1 router-id 3.3.3.3
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]dis this
[V200R003C00]
#
area 0.0.0.0
network 192.168.2.0 0.0.0.255
network 192.168.3.0 0.0.0.255
#
return
2.邻居表 display ospf peer
邻居表的状态包含的内容:
1、init :收到的邻居的HELLO包,没有形成双向通信
2、2-way:已经建立链接的双向通信
3、full:已完成链路状态信息同步
如:在以上配置的OSPF环境路由器3中查看邻居表:
[Huawei-ospf-1]dis ospf peer
OSPF Process 1 with Router ID 3.3.3.3
Neighbors
Area 0.0.0.0 interface 192.168.2.2(GigabitEthernet0/0/0)'s neighbors
Router ID: 2.2.2.2 Address: 192.168.2.1
State: Full Mode:Nbr is Slave Priority: 1
DR: 192.168.2.1 BDR: 192.168.2.2 MTU: 0
Dead timer due in 40 sec
Retrans timer interval: 0
Neighbor is up for 00:01:34
Authentication Sequence: [ 0 ]
Neighbors
Area 0.0.0.0 interface 192.168.3.2(GigabitEthernet0/0/1)'s neighbors
Router ID: 1.1.1.1 Address: 192.168.3.1
State: Full Mode:Nbr is Slave Priority: 1
DR: 192.168.3.1 BDR: 192.168.3.2 MTU: 0
Dead timer due in 34 sec
Retrans timer interval: 5
Neighbor is up for 00:01:04
Authentication Sequence: [ 0 ]
Router id:是一个32位的值,用于在自治系统中唯一标识一台运行OSPF的路由器,每台运行OSPF的路 由器都有一个Router ID
3.链路状态数据库 dis ospf lsdb
列出网络中其他路由器的信息,由此显示了全网的网络拓扑
[Huawei]dis ospf lsdb
OSPF Process 1 with Router ID 3.3.3.3 #正在运行OSPF进程ID为1,路由器编号3.3.3.3
Link State Database #当前链路状态数据库存储的所有area0 区域内的链路状态信息
Area: 0.0.0.0 #当前区域 0 骨干区域
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 1656 48 80000008 1
Router 1.1.1.1 1.1.1.1 1621 48 8000000A 1
Router 3.3.3.3 3.3.3.3 1626 48 80000006 1
Network 192.168.3.1 1.1.1.1 1621 32 80000002 0
Network 192.168.2.1 2.2.2.2 1657 32 80000002 0
Network 192.168.1.1 1.1.1.1 186 32 80000003 0
字段 | 说明 |
---|---|
Type | 链路状态类型,Router 代表路由器 LSA,Network 代表网络 LSA |
LinkState ID | LSA 标识符 |
AdvRouter | 生成该 LSA 的路由器的 Router ID |
Age | LSA 的老化时间,单位为秒,最大值为 3600 秒 |
Len | LSA 的长度 |
Sequence | 序列号 |
Metric | 代价或权重 |
4.路由表 dis ip routing-table
显示当前所有路由信息,包括直连、静态路由、OSPF路由、其他RIP路由等
[Huawei]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 11 Routes : 12
Destination/Mask Proto Pre Cost Flags NextHop Interface
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.1.0/24 OSPF 10 2 D 192.168.2.1 GigabitEthernet 0/0/0
OSPF 10 2 D 192.168.3.1 GigabitEthernet 0/0/1
192.168.2.0/24 Direct 0 0 D 192.168.2.2 GigabitEthernet 0/0/0
192.168.2.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/0
192.168.2.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/0
192.168.3.0/24 Direct 0 0 D 192.168.3.2 GigabitEthernet 0/0/1
192.168.3.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/1
192.168.3.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/1
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
字段 | 说明 |
---|---|
Destination/Mask | 当前目标网络地址和掩码 |
Proto | 协议类型或者来源:Direct(直连)、OSPF、static(静态)等 |
Pre | 优先级,数值越小代表级别越高,路由越优先 |
Cost | 路由开销 |
NextHop | 下一跳地址 |
Interface | 接口,物理地址 |
5.查看OSPF路由表 dis ospf routing
[Huawei]dis ospf routing
OSPF Process 1 with Router ID 3.3.3.3
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
192.168.2.0/24 1 Transit 192.168.2.2 3.3.3.3 0.0.0.0
192.168.3.0/24 1 Transit 192.168.3.2 3.3.3.3 0.0.0.0
192.168.1.0/24 2 Transit 192.168.2.1 1.1.1.1 0.0.0.0
192.168.1.0/24 2 Transit 192.168.3.1 1.1.1.1 0.0.0.0
Total Nets: 4
Intra Area: 4 Inter Area: 0 ASE: 0 NSSA: 0
6.邻接关系建立过程 hello报文
whireshark筛选语句
ospf.msg.hello
1.建立邻接关系的过程
2.邻居发现的过程
3.数据库同步过程
(1)确认master
(2)
(3)
(4)
七、命令汇总
命令格式 | 功能说明 |
---|---|
ospf <进程号> router-id <ID> |
启动OSPF进程并设置Router ID |
area <区域号> |
进入指定OSPF区域配置视图 |
network <网段> <反掩码> |
将指定网段的接口加入当前OSPF进程和区域 |
dis ospf peer |
查看OSPF邻居表 |
dis ospf lsdb |
查看链路状态数据库 |
dis ip routing-table |
查看全局路由表 |
dis ospf routing |
查看OSPF路由表 |
脚注:
- 组播:“一对多” 数据投递,避免单播重复发送和广播资源浪费,OSPF Hello报文使用组播地址224.0.0.5。
结语
路由协议是路由器实现智能选路的 “大脑”,其技术发展始终围绕着提升网络效率、可靠性和可扩展性的目标展开。本文通过对比 RIP 与 OSPF 的技术特性,清晰展现了路由协议从简单到复杂、从低效到高效的演进轨迹:RIP 以其易于实现的优势曾在小型网络中广泛应用,但基于距离向量算法的先天缺陷使其难以适应大规模网络需求;而 OSPF 通过链路状态泛洪、区域划分、DR/BDR 选举等创新机制,有效解决了 RIP 的收敛慢、环路风险等问题,凭借无环路、收敛快、更新效率高的特性成为中大型网络的首选协议。
理解 OSPF 的核心概念(如 LSA、LSDB、SPF 算法)、工作流程(邻居发现、邻接建立、路由计算)以及三张关键数据表的交互逻辑,是掌握现代网络路由技术的基础。在实际网络部署中,需根据网络规模、拓扑结构和业务需求合理选择路由协议,并通过精细化配置(如区域规划、Cost 调整、认证设置)优化网络性能。随着网络技术的持续发展,路由协议仍在不断演进,但 OSPF 所体现的 “全网拓扑同步”“最短路径优先” 等设计思想,为理解更复杂的路由技术奠定了重要基础,值得每一位网络从业者深入学习与实践。