动态路由---OSPF协议基础

一、动态路由

1.1、定义

动态路由是指在网络通信过程中,路由器根据当前网络的状态和拓扑结构等信息,动态计算出最优的数据传输路径。这一过程依赖于路由器之间的路由信息交换和路由表的维护。当网络拓扑结构发生变化时,如链路故障或节点增减,动态路由能够自动调整路由表,以确保数据包能够沿着最优的路径传输。

1.2、特点

  1. 自动适应网络变化:动态路由能够自动感知网络拓扑的变化,并据此调整路由表,无需人工干预。
  2. 提高网络可靠性:当网络中的链路或节点出现故障时,动态路由能够迅速选择替代路径,保证数据的正常传输。
  3. 优化网络性能:通过选择最优的传输路径,动态路由能够减少网络拥塞,提高数据传输的效率和速度。
  4. 减少管理负担:与静态路由相比,动态路由无需管理员手动配置和维护路由表,大大降低了管理成本和工作量。

1.3、工作流程

动态路由的工作流程通常包括以下几个阶段:

  1. 邻居发现:运行相同动态路由协议的路由器之间建立对等点关系,即邻居关系。
  2. 路由信息交换:邻居路由器之间定期或按需交换路由信息,包括网段信息、可达性信息和路径信息等。
  3. 路由表计算:路由器根据收集到的路由信息和自身的路由算法,计算出到达各个目的网络的最佳路径,并生成路由表。
  4. 路由表维护:路由器会不断监测网络状态的变化,并根据需要更新路由表,以确保路由信息的准确性和时效性。

1.4、分类

根据使用范围,动态路由可以分为两类

  1. 内部网关协议(IGP)
    • 主要应用在自治系统(AS)内部的路由协议。
    • 常见的IGP协议包括RIP(路由信息协议)、OSPF(开放式最短路径优先)、IS-IS(中间系统到中间系统)、EIGRP(增强型内部网关路由协议)等。
  2. 外部网关协议(EGP)
    • 主要应用在自治系统之间的路由协议。
    • 目前广泛使用的EGP协议是BGP(边界网关协议),它用于在AS之间传递路由信息,确保跨AS的数据包能够正确传输。

根据工作机制及算法,动态路由可以分为两类

距离矢量路由协议

  • 运行距离矢量路由协议的路由器周期性泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中,然后再通告给其他相邻路由器
  • 但是对于网络中的路由器来说,路由器并不清楚网络的拓扑,只是简单的知道要去往某个网络的方向在哪里,开销有多大

链路状态路由协议

链路状态协议有四个步骤:

  • 建立相邻路由器之间的邻居关系
  • 邻居之间交互链路状态信息LSA(LSA泄洪),将LSA放进LSDB进行同步(LSDB维护)
  • 进行优选路由计算(SPF计算),各自计算出以自己为根、无环、拥有最短路径的"树"
  • 将计算出的优选路径加载进自己的路由表

这次主要了解的是OSPF协议。想了解RIP协议的,可以看看下面这篇博客

动态路由--RIP协议https://blog.csdn.net/ZZZCY2003/article/details/139625749

二、OSPF协议

2.1、概述

OSPF是IETF定义的一种基于链路状态的内部网关路由协议。目前针对IPv4协议使用的是OSPF Version 2 (RFC2328);针对IPv6协议使用的是OSPF Version 3(RFC2740)

OSPF协议主要使用Dijkstra算法来计算最短路径树,从而选择最佳路由。

特点

  1. 无类别链路类型:OSPF是无类别链路类型的IGP协议,支持变长子网掩码(VLSM)和CIDR(无类别域间路由)
  2. 无跳数限制:与某些其他路由协议不同,OSPF没有路由跳数的限制,因此适用于更大规模的网络。比如企业用网等
  3. 组播通信:OSPF使用组播地址(如224.0.0.5和224.0.0.6)进行通信,可以减少对其他设备的干扰
  4. 收敛速度快:当你的网络拓扑发生变化时,OSPF能够更快地发送更新报文,使拓扑变化快速扩散到整个自治系统
  5. 避免环路:通过收集链路状态信息并使用SPF算法计算路由,OSPF从算法上保证了不会生成自环路由
  6. 支持负载分担:OSPF支持对等价路由进行负载分担

2.2、三大重要概念

2.2.1、router-id

定义:Router-ID是OSPF协议中用于唯一标识一个路由器的32位IP地址或数字。

# 进入OSPF进程视图,假设创建一个OSPF进程号为1  
[Huawei]ospf 1  
  
# 配置Router-ID为1.1.1.1  
[Huawei-ospf-1]router-id 1.1.1.1

选举规则

  • 手动配置OSPF路由器的Router ID(建议手动配置,命令如上述)
  • 如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
  • 如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID

作用

唯一标识:在一个OSPF域内,每个路由器都必须有一个唯一的Router-ID,以便于其他路由器识别和区分。

路由计算:Router-ID在OSPF的路由计算过程中扮演重要角色,帮助路由器确定网络拓扑结构,并计算出最短路径。

优先级判定:在OSPF区域内,Router-ID越小越优先。在某些情况下,如选举DR(Designated Router)或BDR(Backup Designated Router)时,Router-ID的优先级会起到决定性作用。

稳定性:Router-ID在路由器启动时就被分配,并且在路由器重新启动或网络拓扑发生变化时保持不变,确保路由器的稳定性。

2.2.2、Area

定义:在OSPF协议中,网络被划分为不同的逻辑区域(Area),每个区域都有一个唯一的标识符,称为Area ID。

# 进入接口视图,以GigabitEthernet0/0/1为例  
[Huawei]interface GigabitEthernet0/0/1  
  
# 配置接口加入OSPF区域0  
[Huawei-GigabitEthernet0/0/1]ospf 1 area 0

作用

管理路由信息:将网络划分为多个区域可以减少路由器之间的通信量,提高网络的可伸缩性。同时,通过合理划分区域,可以更好地控制路由信息的传输范围,避免整个网络范围内的路由信息洪泛。

提高网络性能:每个区域都有一个Area Border Router(ABR),负责连接不同区域的路由信息传递。通过ABR的存在,可以实现不同区域之间的信息隔离,降低网络的拓扑变化对整个网络的影响,提高网络的传输效率。

增强网络安全性:通过区域划分,可以实现对不同区域之间的访问控制和策略控制,提高网络的安全性。

2.2.3、Cost

定义:在OSPF协议中,Cost被称为路径成本,是衡量路由器到目的网络的一个度量值。

# 进入接口视图,以GigabitEthernet0/0/1为例  
[Huawei]interface GigabitEthernet0/0/1  
  
# 配置接口上运行OSPF协议的开销为65  
[Huawei-GigabitEthernet0/0/1]ospf cost 65

作用

计算最短路径 :OSPF根据路径的Cost值来选择最短的路径,并将优选路径存储在路由表中。当数据包需要转发时,路由器将根据目标地址的最佳路径进行转发。

负载均衡:当网络中存在多条到达目标地址的路径时,OSPF将根据路径的Cost值将负载均衡分布到各个路径上,提高网络的利用率。

性能优化:Cost的计算与带宽相关,表示数据包通过路径所需的传输时间和开销。通过合理设置Cost值,可以实现网络性能的优化。

2.3、OSPF路由器类型

在OSPF协议中,路由器根据其功能和在网络中的位置被划分为多种类型,如:IR、BR、ABR、ASBR。

内部路由器(Internal Router, IR)

定义:IR是仅连接到单个OSPF区域(Area)的路由器。

功能:IR主要负责在同一区域内转发数据包,并通过链路状态通告(LSA)与其他内部路由器交换拓扑信息,以构建和维护整个区域的拓扑数据库。它们只处理来自本区域内的路由信息,不与其他区域的路由器直接通信。

区域边界路由器(Area Border Router, ABR)

定义:ABR是连接两个或多个不同OSPF区域的路由器。

功能:ABR在OSPF网络中扮演着桥梁的角色,负责将数据包从一个区域传输到另一个区域,并在区域之间传播路由信息。它们通过LSA将来自一个区域的路由信息汇总后,再传递给其他区域,确保不同区域之间的路由可达性。

自治系统边界路由器(Autonomous System Boundary Router, ASBR)

定义:ASBR是连接OSPF域与其他自治系统(AS)的路由器。

功能:ASBR负责将来自其他路由协议(如BGP)的路由信息导入OSPF域中,同时也将OSPF域内的路由信息导出到其他路由协议中。它在不同自治系统之间传递路由信息,实现跨自治系统的路由通信。

定义:虚拟链路路由器是一种特殊的路由器类型,用于在特定情况下连接分布在不同OSPF区域中的两个OSPF区域。

功能:虚拟链路路由器允许在OSPF区域之间建立逻辑连接,绕过非OSPF区域的物理连接限制,从而确保数据包能够正确路由到目的地。这在复杂的网络拓扑结构中尤为重要,特别是在物理连接不可行或成本过高时。

2.4、OSPF的5种报文

OSPF是IP报文直接封装协议报文,协议号为89 。OSPF分为5种报文:Hello报文DBD报文LSR报文LSU报文LSAck报文

通用头部字段(OSPF Packet Headers)

  • Version:描述OSPF协议版本,通常被设置为2(支持IPv4)或3(支持IPv6)。
  • Type:描述OSPF报文类型,值1:Hello、值2:DBD、值3:LSR、值4:LSU、值5:LSAck。
  • Packet Length:OSPF报文总长度,包括报文头部,单位是字节。
  • Router ID:生成此报文的路由器的唯一标识符。
  • Area ID:此报文需要被通告到的OSPF区域的标识符。
  • Checksum:对整个数据包(包括包头)的标准IP校验和。
  • Auth Type/Authentication Type:验证此报文所应当使用的验证方法,如空(0)、明文(1)或MD5(2)等。
  • Authentication Data:验证此报文时所需要的密码等信息。

Hello报文:

主要用于发现和维持OSPF邻居关系。周期性以组播 的形式发送Hello报文,以维护OSPF的邻居关系。使用的组播地址为224.0.0.5(所有OSPF路由器)224.0.0.6(所有OSPF DR路由器)。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居信息。

Hello报文特有字段

  • Network Mask:发送Hello报文的接口的网络掩码
  • Hello Interval:发送Hello报文的时间间隔,单位为秒。默认情况下,对于广播和组播类型接口,该值为10秒;对于非广播、多点接入和点对点类型接口,该值为30秒
  • Options:标识发送此报文的OSPF路由器所支持的可选功能。E:是否支持外部路由;MC:是否支持转发组播数据包;N/P:是否为NSSA区域
  • Router Priority:DR的优先级,默认值为1,取值范围为0-255。若为0.则路由器不能参与DR或BDR的选举
  • Designated Router (DR):DR的IP地址。如果未选举DR,则该字段为0.0.0.0
  • Backup Designated Router (BDR):BDR的IP地址。如果未选举BDR,则该字段为0.0.0.0

DD报文:

描述本地LSDB摘要信息 ,用于两台设备进行数据库同步 。在邻接关系初始化 时,路由器会发送DD报文来告知对方自己的LSDB摘要信息。报文内容包括LSDB中每一条LSA(链路状态通告)的头部信息,以便对方判断哪些LSA是本地所缺少的或已经失效的。

LSR报文:

LSR报文用于向对方请求 所需要的LSA完整拷贝。当路由器发现本地LSDB中缺少某些LSA时,会发送LSR报文来请求这些LSA。LSR报文中包含所需LSA的摘要信息,以便对方能够识别并返回相应的LSA。

LSU报文:

LSU报文用于向对方发送其所需要的LSA 或者泛洪自己更新的LSA。当路由器收到LSR报文或自己的LSDB发生更新时,会发送LSU报文来通知邻居路由器。LSU报文中包含多条LSA的完整内容,以便邻居路由器能够更新自己的LSDB。

LSack报文:

LSAck报文用于对收到的LSA进行确认。当邻居路由器收到LSU报文后,会发送LSAck报文作为确认。这样,源路由器可以确认链路状态已被通知到邻居,从而实现Flooding的可靠性传输。

2.5、OSPF的3个步骤,生成3个表

步骤一、发现并建立邻居关系

路由器要先发现邻接的路由器,才能建立邻居关系。通过周期性发送Hello包并接收来自其他路由器的Hello包,进行建立并维护邻居关系。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居信息。

查看邻居表信息

[huawei]display ospf peer

步骤二、描述本地LSDB信息,并形成邻接关系

一旦建立了邻居关系,路由器会开始交换链路状态信息(LSI),将自己所知道的网络拓扑信息(如连接的网络、链路的状态、链路的成本等)发送给邻居。这个过程通过发送DBD报文、LSR报文和LSU报文来实现,最终所有路由器都会拥有一个同步的链路状态数据库LSDB

请求缺少的LSDB信息

查看链路状态数据库LSDB

[huawei]display opsf lsdb

步骤三、计算路由,并形成OSPF路由表

每个路由器都会根据LSDB中的信息,使用Dijkstra算法计算最短路径树(SPT),以找到到达网络中每个目的地的最短路径。计算出的最短路径信息会保留到OPSF路由表上。

[huawei]display ospf routing

2.6、DR和BDR

DR

DR是在OSPF网络中被选举出来的一个路由器,它负责收集和维护本地区域内的链路状态信息,并将这些信息传播给其他路由器。

DR充当了整个多点链路网络中的"代表" ,负责收集来自其他路由器的链路状态更新(LSU)消息,并将其汇总为一条链路状态数据库(Link State Database)。然后,DR将这个数据库发送给其他路由器,以减少链路状态更新的频率。

选举过程

在选举过程中,每个路由器都会发送Hello消息,其中包含自己的优先级值。优先级越高 ,被选举为DR的可能性就越大

如果没有路由器明确声明其优先级,则路由器会基于其Router ID(通常是一个IP地址)来选择DR,Router ID最小的路由器将成为DR
主要作用

减少链路状态更新的频率,帮助优化网络性能。

维护链路状态数据库并将其分发给其他路由器,确保所有路由器都拥有最新的网络拓扑信息。

根据链路状态数据库及时更新路由表,确保数据正确地转发到目标地址。

BDR

BDR是DR的备份,当DR发生故障或失效时,BDR会立即接替DR的角色,并继续执行相同的任务,确保在DR失效时能够无缝接替其工作

不同网络类型中DR和BDR的选举操作

选DR是需要时间的,大概是40秒延迟

还有一个要注意的就是(现实也会经常遇到):在以太网中有两台设备进行连接,他们会选举出DR和BDR,但是只有两台设备就跟PPP点对点一样,这时候我们就不需要选举出DR和BDR了(不浪费那40秒的延迟)

[Huawei-GigabitEthernet0/0/1]ospf network-type p2p

在接口上增加上面的那条命令之后,就不会选取DR和BDR了(注意:两边设备都需要配置这条命令)

2.7、OSPF相关命令

|-------------------------|---------------|
| 命令 | 作用 |
| display ospf brief | 查看OSPF的概要信息 |
| display ospf interface | 显示OSPF的接口 |
| display ospf lsdb | 显示OSPF的LSDB |
| display ospf peer | 显示OSPF中各区域的信息 |
| display ospf routing | 显示OSPF的路由表 |
| ospf | 启动OSPF |
| rouer-id | 配置路由id |
| default-route-advertise | 下发默认路由 |

相关推荐
无线认证x英利检测1 天前
进网许可认证、交换路由设备检测项目更新25年1月起
网络·智能路由器
网络安全Jack2 天前
防火墙技术与网络安全
web安全·智能路由器·php
节点小宝2 天前
如何远程登录路由器
运维·服务器·网络·docker·智能路由器·远程工作
腾科张老师2 天前
BGP的六种状态分别是什么?
网络·智能路由器
Koi慢热2 天前
黑客术语3
网络·安全·网络安全·智能路由器·空间安全·网络空间测绘安全
坚持就是胜利19862 天前
内网穿透玩法之京东云亚瑟路由器刷神卓互联教程
网络·智能路由器·京东云
Hacker_LaoYi3 天前
网络地址转换NAT
网络·智能路由器
日日行不惧千万里3 天前
移动魔百盒中的 OpenWrt作为旁路由 安装Tailscale并配置子网路由实现在外面通过家里的局域网ip访问内网设备
网络·tcp/ip·智能路由器
hgdlip4 天前
手机静态ip地址怎么获取?方法全解析‌
tcp/ip·智能手机·智能路由器
噠噠噠@4 天前
HCIE-day7
网络·网络协议·计算机网络·智能路由器