OSPF路由协议

发布于:2025-07-29 ⋅ 阅读:(13) ⋅ 点赞:(0)

OSPF路由协议概述

  • OSPF(Open Shortest Path First (开放式最短路径优先))属于内部网关协议、链路状态路由协议,采用SPF算法计算路由,从算法上保证了无路由环路,通过邻居关系维护路由,避免了定期更新对带宽的消耗,OSPF路由更新效率高,网络收敛快,适用于大中型网络。OSPF报文封装于IP,协议号89,组播地址224.0.0.5与224.0.0.6,支持变长子网掩码和汇总、层次区域划分等优点。

在这里插入图片描述


OSPF基本概念

LC

链路状态(LS):路由器周边的链路的状态。

  • 直连网段状态:通过接口网段和接口状态感知
    • 描述直连网段:(网段,掩码,接口开销)
  • 直连拓扑状态:通过OSPF邻居和邻居状态感知
    • 描述直连拓扑:(邻居RouterID,连接接口,接口开销)。
    • 接口开销:OSPF参考带宽/ 接口带宽
    • OSPF参考带宽默认为100Mbps。
    • Loopback接口的开销默认为1。

在这里插入图片描述


LSA


  • LSA报文头部:

在这里插入图片描述



  • 包含在各种报文中的LSA信息:

在这里插入图片描述



在这里插入图片描述

这张图是 OSPF协议中LSA(链路状态通告)类型的分类和功能说明,它清晰地展示了不同LSA的作用范围、发起设备及其承载的信息类型。以下是逐项解析:


1. LSA的分类逻辑
  • 拓扑信息(Topology):描述网络设备间的连接关系(如路由器接口、邻居关系)。
    • 对应LSA类型:1(Router LSA)、2(Network LSA)、4(ASBR LSA)
  • 路由信息(Routing):描述如何到达特定网络(如IP前缀、外部路由)。
    • 对应LSA类型:3(Summary LSA)、5(External LSA)、7(NSSA LSA)

2. 各LSA的详细说明
(1)Router LSA(Type 1)
  • 发起者:每个OSPF路由器都会生成。
  • 洪泛范围:仅在本区域内传播。
  • 作用
    • 描述路由器自身的直连接口(如接口IP、子网、邻居路由器ID)。
    • 示例:路由器R1通告:“我有接口10.1.1.0/24,邻居是R2。”
(2)Network LSA(Type 2)
  • 发起者:广播/NBMA网络中的DR(指定路由器)
  • 洪泛范围:仅在本区域内传播。
  • 作用
    • 描述多路访问网络(如以太网)中所有连接到DR的路由器列表。
    • 示例:DR通告:“这个以太网中有R1、R2、R3连接到我。”
(3)Summary LSA(Type 3)
  • 发起者ABR(区域边界路由器)
  • 洪泛范围:跨区域传播(从骨干区域Area 0到其他区域)。
  • 作用
    • 汇总区域间的路由信息(如将Area 1的10.1.0.0/16通告到Area 0)。
    • 示例:ABR通告:“Area 1可以通过我到达10.1.0.0/16。”
(4)ASBR LSA(Type 4)
  • 发起者ABR
  • 洪泛范围:区域内传播(除特殊区域外)。
  • 作用
    • 告知本区域内的路由器如何到达ASBR(自治系统边界路由器)。
    • 示例:ABR通告:“ASBR(R5)的路径是通过我。”
(5)External LSA(Type 5)
  • 发起者ASBR
  • 洪泛范围:整个OSPF域(除Stub/NSSA区域)。
  • 作用
    • 通告OSPF外部的路由(如重分布进来的静态路由或BGP路由)。
    • 示例:ASBR通告:“外部网络192.168.1.0/24可以通过我到达(下一跳为外部)。”
(6)NSSA LSA(Type 7)
  • 发起者NSSA区域的ASBR
  • 洪泛范围:仅在NSSA区域内传播(由ABR转换为Type 5后传递到其他区域)。
  • 作用
    • 在NSSA区域(特殊区域)内通告外部路由,避免Type 5的泛洪。
    • 示例:NSSA ASBR通告:“外部网络172.16.1.0/24在本地有效。”

3. 洪泛范围对比
LSA类型 洪泛范围 类似“邮递范围”
Type 1 本区域内 只在本村张贴公告
Type 2 本区域内 只在本村广播
Type 3 区域间(ABR转发) 跨村送信需通过邮局(ABR)
Type 4 区域内 告诉村民如何找到镇长(ASBR)
Type 5 全OSPF域 全国广播(除特殊地区)
Type 7 NSSA区域内 只在特区内部张贴

4. 实际应用场景
场景:多区域OSPF网络
  1. Area 0(骨干区域)
    • Type 1/2 LSA描述区域内拓扑。
    • Type 3 LSA汇总其他区域的路由。
  2. Area 1(普通区域)
    • ASBR引入外部路由,生成Type 5 LSA。
    • ABR生成Type 4 LSA,告知如何到达ASBR。
  3. Area 2(NSSA区域)
    • 使用Type 7 LSA代替Type 5,由ABR转换为Type 5后传入骨干区域。

5. 常见问题
  • 为什么需要Type 4 LSA?
    Type 5 LSA只告诉外部路由的存在,但未说明如何到达ASBR。Type 4补充了ASBR的可达性。
  • Type 7和Type 5的区别?
    Type 7是Type 5在NSSA区域的“替身”,避免Type 5泛洪到NSSA区域(节省资源)。

总结

这张表是理解OSPF路由计算的核心——不同类型的LSA分工明确:

  • Type 1/2/4 构建拓扑地图(“谁连接谁”)。
  • Type 3/5/7 提供路由信息(“如何到达目的地”)。
    掌握它们的作用范围和发起者,才能高效设计OSPF多区域网络!

LSDB

  • 链路状态数据库(LSDB)
  • 每台OSPF路由器都有一个LSDB,用于存储LSA。
  • 同一个区域中的OSPF路由器的LSDB一致。
    • LSA封装在LSU报文中,在区域内洪泛,最终达到区域内LSDB一致。
    • LSA在洪泛过程中内容保持不变。

在这里插入图片描述


SPF

  • 以自己LSA 1为根,进行SPF计算。
  • 各OSPF路由器单独进行SPF计算,互不影响。

在这里插入图片描述


OSPF网络类型

  • Broadcast广播多路访问:以太网接口
  • NBMA(Non-Broadcast Multi-Access,非广播多点访问网络):帧中继接口
  • P2MP(Point-to-MultiPoint,点到多点)
  • P2P(Point-to-Point,点到点):PPP 、HDLC接口

OSPF报文类型


在这里插入图片描述


OSPF报文的目的地址

在这里插入图片描述


邻居状态变换


在这里插入图片描述
在这里插入图片描述

  • Attempt在NBMA网络中。先创建邻居关系,在选举DR/BDR,非DR、BDR稳定后保持2-way状态,不建立邻接关系,然后在已建立邻接关系中,选举主从。
  • DR BDR选举:
    资格:优先级大于0
    过程:同一广播域中相邻路由器互发Hello报文(Hello中有自己选出的DR)
    开始时均认为自己是DR
    比较:1、优先级(高的胜出),0优先级不参与选举
    2、Router ID(大的胜)
    注意:1、DR是某个网段中的概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上有可能是BDR,或者是DR Other。
    2、路由器的优先级可以影响一个选取过程,但是当DR/BDR已经选取完毕,就算一台具有更高优先级的路由器变为有效,也不会替换该网段中已经选取的DR/BDR成为新的DR/BDR。
    3、DR并不一定就是路由器优先级最高的路由器接口;同理,BDR也并不一定就是路由器优先级次高的路由器接口

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


OSPF协议模型

在这里插入图片描述


OSPF四张表

在这里插入图片描述


建立邻居关系(点对点)

在这里插入图片描述


维持邻居关系(点对点)

1. 邻居失效的判定条件:

  • Dead Timer 超时:如果在 Dead Interval 内未收到邻居的 Hello 报文,则认为邻居失效。

    • 例如:Hello Interval = 10 秒,Dead Interval = 40 秒,若 40 秒内无 Hello,则删除邻居。
  • 主动失效:收到邻居的 Hello 报文,但其中不包含自己的 Router ID(表示对方已主动终止邻居关系)。


2. 不同网络类型的 Hello 行为

网络类型 Hello Interval Dead Interval 是否需要 DR/BDR
广播网络 10 秒 40 秒 是(如以太网)
点对点网络 10 秒 40 秒 否(如 PPP 链路)
NBMA 网络 30 秒 120 秒 是(如帧中继)
点对多点网络 30 秒 120 秒

DR/BDR的选举(广播多路访问)

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述



Router ID

  • 一台路由器如果要运行OSPF协议,则必须存在Router ID(RID)。
  • RID是一个32比特无符号整数,可以在一个自治系统中唯一的标识一台路由器。
  • RID可以手工配置,也可以自动生成。
  • 如果没有通过命令指定RID,将按照如下顺序自动生成一个RID:
    • 如果当前设备配置了Loopback接口,将选取所有Loopback接口上数值最大的IP地址作为RID;
    • 如果当前设备没有配置Loopback接口,将选取它所有已经配置IP地址且链路UP的接口上数值最大的IP地址作为RID

在这里插入图片描述


Hello报文

以下是OSPF Hello报文的结构图示(基于RFC 2328标准),并附关键字段说明:


OSPF Hello报文格式
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Version #   |     Type 1    |         Packet Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Router ID                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Area ID                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Checksum             |  Auth Type   |   Auth Data    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Network Mask                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Hello Interval            |    Options    |    Rtr Pri     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Router Dead Interval                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Designated Router (DR)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Backup Designated Router (BDR)              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Neighbor 1                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Neighbor 2                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ...                              |

字段说明(关键部分)
字段名 长度 说明
Version # 1字节 OSPF版本(OSPFv2为2)。
Type 1 1字节 报文类型(1表示Hello报文)。
Packet Length 2字节 整个Hello报文的长度(字节)。
Router ID 4字节 发送路由器的唯一标识(IPv4地址格式)。
Area ID 4字节 发送接口所属的OSPF区域(必须与邻居一致)。
Network Mask 4字节 发送接口的子网掩码(广播网络必须与邻居一致)。
Hello Interval 2字节 发送Hello报文的时间间隔(秒)。
Rtr Pri 1字节 路由器优先级(用于DR/BDR选举,0表示不参与选举)。
Router Dead Interval 4字节 邻居失效的超时时间(秒)。
DR/BDR 各4字节 当前网络的DR和BDR的Router ID(未选举时为0.0.0.0)。
Neighbor List 变长 已知邻居的Router ID列表(仅包含最近收到Hello报文的邻居)。

Hello报文交互示意图
+------------+               +------------+
| Router A   |               | Router B   |
| (RID 1.1.1.1) |           | (RID 2.2.2.2) |
+------------+               +------------+
       |                           |
       |       Hello (DR=0, Neighbor=[]) |
       |------------------------------->|
       |                           |
       |       Hello (DR=0, Neighbor=[1.1.1.1]) |
       |<-------------------------------|
       |                           |
       | 双向通信确认后,进入2-Way状态 |
       |(若网络类型需选举DR/BDR,则开始选举)|

关键点总结
  1. 参数一致性
    • 双方的 Area IDNetwork MaskHello/Dead Interval认证 必须一致。
  2. 邻居列表(Neighbor List)
    • 仅在收到对方的Hello报文且包含自己的Router ID时,才确认双向通信(2-Way状态)。
  3. DR/BDR字段
    • 在广播/NBMA网络中,Hello报文会携带DR/BDR的Router ID,用于选举同步。

泛洪新LSA

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到