OSPF笔记

OSPF:开放式最短路径优先协议

使用范围:IGP

协议算法特点:链路状态型路由协议,SPF算法

协议是否传递网络掩码:传递网络掩码

协议封装:基于ip协议封装,协议号为89

一,ospf特点

1.ospf是一种典型的链路状态型路由协议

2.传递信息称作LSA,LSA链路状态通告,包含路由信息和拓扑信息

路由LSA:描述本路由器上接口的路由信息

拓扑LSA:描述路由器之间的连接状态

3.更新方式:触发更新+30分钟的链路状态刷新

4.更新地址:组播和单播更新,组播地址:224.0.0.5(all spf router) 224.0.0.6(all dr router)

5.支持路由认证

6.支持手工汇总

7.支持区域划分

8.ospf比较消耗设备资源

二,ospf区域

区域划分的意义

1.减少LSA的数量

2.减少LSA的传播范围

区域的划分是基于接口的(链路的)

区域的标记:使用32个二进制,类似于ip地址

区域的分类

骨干区域:区域标记为0或0.0.0.0

非骨干区域:区域标记不等于0或0.0.0.0

区域设计原则:向日葵型网络结构

1.ospf网络中必须存在并唯一的骨干区域(单区域除外)

2.若存在非骨干区域,非骨干区域必须与骨干区域直接相连

3.非骨干区域之间不允许直接相连相互发布区域间路由

ospf中路由器的角色

骨干路由器(BR)

非骨干路由器

区域边界路由器(ABR):骨干和非骨干之间的路由器

自治系统边界路由器(ASBR):能够产生5类或7类LSA的路由器,把非ospf路由引入ospf中

三,ospf消息数据包

1.hello数据包

周期性发送,周期时间10s或30s(根据不同的网络类型默认10s或30s)

目的:建立并维持ospf邻居关系

2.DBD:数据库描述数据包

主从选举DBD:比较双方的router-id,router-id大的一方为主(master),小的一方为从(slave);主用于控制LSA的交互

3**.LSR**:链路状态请求,按照DBD报文的未知LSA头部进行请求

4.LSU:链路状态更新,携带LSA信息

5**.LSACK**:链路状态确认

四,ospf邻居状态机制

  1. Down(失效)状态 :这是初始状态,表示尚未收到邻居的任何信息。
  2. **Attempt(过渡)状态:**特殊网络条件才有的状态,不支持广播网路
  3. Init(初始化)状态 :本路由器已经从邻居收到了 Hello 报文,但报文中未列出本路由器的 Router ID。
  4. 2-Way(双向通信)状态 :本路由器在收到的 Hello 报文中看到了自己的 Router ID,表明双方可以双向通信。如果是在广播型网络或 NBMA 网络中,此时还需要选举 DR(指定路由器)和 BDR(备份指定路由器)。
  5. ExStart(预启动)状态 :路由器开始协商主从关系,并确定用于交换数据库描述(DBD)报文的初始序列号。
  6. Exchange(交换)状态 :路由器使用 DBD 报文来描述自己的链路状态数据库,并向邻居请求缺失或更新的 LSA(链路状态通告)。
  7. Loading(加载)状态 :路由器根据收到的 LSR(链路状态请求)报文,向邻居发送 LSU(链路状态更新)报文来提供所需的 LSA 信息。
  8. Full(完全邻接)状态 :路由器的链路状态数据库已经与邻居同步,邻居关系建立完成,可以进行路由计算和数据转发。

邻居关系建立条件:

  1. router-id 必须不同 每台 OSPF 路由器都需要有唯一的 Router-ID 来标识自己。如果两台路由器的 Router-ID 相同,会导致 OSPF 协议无法正常区分它们,从而无法建立邻居关系。
  2. area ID 相同 OSPF 网络被划分为不同的区域,路由器要成为邻居,必须处于相同的区域,这样它们才能共享相同的链路状态信息,以计算准确的路由。
  3. 认证:认证类型(不认证=0 明文认证=1 MD5=2)认证数据 :为了保证网络的安全性和数据的完整性,OSPF 支持不同的认证方式。邻居之间的认证类型和认证数据必须匹配,否则无法建立邻居关系。
  4. hello 时间,dead 时间必须一致 :Hello 报文用于发现和维护邻居关系,Dead 时间用于判断邻居是否失效。如果这两个时间参数不一致,可能会导致邻居状态的错误判断和不稳定。
  5. 特殊区域标识一致(E(外部路由位)=1 ;N(NSSA 外部路由位)=0 P=0) :特殊区域具有特定的属性和路由传播规则,邻居路由器在这些特殊区域标识上必须一致,以确保对路由信息的处理方式相同。
  6. MA 网络中,网络掩码必须一致 :在多路访问(MA)网络中,如以太网,网络掩码一致是确保网络地址规划和路由计算的准确性的重要条件。
  7. 必须同时使用单播或组播更新 :这确保了邻居之间的更新报文发送方式的一致性,避免因发送和接收方式不同而导致更新报文丢失或无法处理。
  8. 更新源检测(双方的 IP 地址必须在同一网段) :只有当更新源(发送更新报文的接口 IP 地址)在同一网段,才能保证它们在逻辑上处于同一网络,从而能够正常通信和建立邻居关系。

邻居状态下,MA的网络中会选举DR(指定路由器) BDR(备份指定路由器)

DR选举:

1.比较优先级(范围:0-255,默认优先级为1,越大越优)

2.比较各自的router-id,越大越优

注意:1.DR抢占是关闭的 2.DR是一个接口概念 3.优先级范围0-255,数字为0代表不参加选举 4.先选BDR,再升级为DR

主从选举:发生在exstart状态,通过双方router-id进行比较,router-id大的一方为主。发送的主从选举DBD,DBD总包含了MTU值(若双方的MTU值不同,则卡在exstart状态)

router-id选举规则:

1.手工指定最优先

2.选举所有逻辑中ip地址最大的

3.选举所有物理接口ip地址最大的

五,ospf基本配置

开启 OSPF 进程并配置 Router ID:

ospf 1 router-id 1.1.1.1

其中,"1"是进程号,缺省为 1;"1.1.1.1"是手动配置的 Router ID

配置区域:

area 0/0.0.0.0

network 192.168.0.0 0.0.0.255

上述命令将 192.168.0.0/24 网段宣告到区域 0 中,使用反掩码(255.255.255.255 - 掩码)来匹配网段。

常用的 OSPF 配置命令

修改 Hello 包发送间隔:ospf timer hello 10 ,其中"10"为间隔时间(单位为秒)。

修改 Hello 包超时间隔:ospf timer dead 40 。

显示 OSPF 接口信息:display ospf interface g0/0/0 。

修改 OSPF 接口优先级:ospf dr-priority 100 。

修改开销(cost):ospf cost 10 ,取值范围为 1 至 65535,缺省为 1。

调整带宽参考值:bandwidth-reference 100 ,默认为 100Mbps,需在整个 OSPF 网络中统一调整。

重启 OSPF 进程:reset ospf process 。

ospf三张表:

  1. 邻居表(Neighbor Table):也称为邻居关系表。该表记录了与本地路由器建立了邻居关系的其他路由器的信息,包括邻居路由器的 Router ID、接口地址、状态、Hello 间隔、失效时间等。通过查看邻居表,可以了解到哪些路由器与本地路由器成功建立了邻居关系,以及它们的相关参数和状态。display ospf peer brief可查看

  2. 链路状态数据库(Link State Database,LSDB):存储了本区域内所有路由器的链路状态通告(LSA)。LSDB 中的 LSA 描述了网络的拓扑结构和链路状态信息。每个路由器通过与邻居交换 LSA 来同步 LSDB,确保所有路由器对网络拓扑有一致的认识。display ospf lsdb可查看

  3. 路由表(Routing Table):根据 LSDB 计算得出的最优路由信息表。OSPF 路由器使用 Dijkstra 算法根据 LSDB 中的链路状态信息计算出到达各个目标网络的最短路径,并将这些路由信息放入路由表中,用于数据的转发决策。display ip routing-table protocol ospf 可查看

相关推荐
petaexpress几秒前
常用的k8s容器网络模式有哪些?
网络·容器·kubernetes
青椒大仙KI1112 分钟前
24/9/19 算法笔记 kaggle BankChurn数据分类
笔记·算法·分类
liangbm31 小时前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
GoppViper1 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
Charles Ray2 小时前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码2 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
m0_609000422 小时前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
我要吐泡泡了哦3 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1233 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
贾saisai5 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发