OSPF笔记

本文探讨了动态路由协议如OSPF和RIP的评判标准,重点关注收敛速度、选路策略和资源占用。OSPF以其快速收敛、链路状态协议和区域结构的优势胜过RIP,后者因计时器限制和资源消耗在大型网络中表现不佳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动态路由协议的评判标准----收敛速度、选路、占用资源

OSPF---开放式最短路径优先---动态路由协议

动态路由协议好坏的评判标准-----收敛速度(越快越好)、选路、占用资源(设备资源)

RIP---路由信息协议---费尔蒙福特算法

       对于RIP的收敛速度不快:RIP的计时器限制了其收敛速度

计时器:三个计时器

        更新计时器30s,每三十秒的为一个周期发送一个更新报文

        无效计时器180s,每一个通过路由学来的路由项,路由项的计时器,超过180s,路由器会将该路由项的cost值设置为16,而不是删除,后启动垃圾收集计时器

        垃圾收集计时器90~120s,倒计时目的是为了向别的路由器通告4次,某条路由项不可用

OSPF特性:
IGP
链路状态型协议
SPF算法
组播224.0.0.5/224.0.0.6
10/150
OSPFv2RIPv2对比
相同点
        无类别路由协议
        均采用组播通讯
        均支持等开销负载均衡
不同点
        OSPF可以工作在大型网络中
 当R1环回失效,或与R1断开后,R1的触发更新会告诉R2, R2会将192.168.1.0/24网段的开销值设为16,并启动垃圾收集计时器,随后R2会向R3通告四次,触发更新和三次周期更新,若R2给R3的触发更新丢包了,即R3没有收到R2第一时间发送的触发更新,只能等到触发更新后的周期更新(30s后)才能收到192.168.1.0/24这个网段没有了的消息
RIP  可能出现环路---原因

RIP占用资源大---30s周期跟新,在多设备的拓扑中,每个设备的周期跟新计时器的时间不同,从而导致,在30的周期跟新中,可能会出现很多RIP报文

RIP的开销最大值15跳----只能工作在小型网络中

选路不佳

OSPF的选路优先级高于RIP

       OSPF cost算法:根据带宽,默认带宽(100)/实际带宽

       OSPF一般不会使用30分钟的周期跟新,OSPF在开启时才会传输LSA信息,仅限第一次,除非出现链路的改变

OSPF的结构化部署---区域划分

       设备通过进程号区分不同的域

       不同区域访问:

              路由信息在区域间传递,告诉有哪些网段属于该区域,当数据包需要跨区域传输时,会看自己的目的网段在哪一个区域,从而选择通过哪一个边界路由器进行转发,

区域内的拓扑信息不会传出自己的区域,而路由信息在区域间传递

论链路状态型协议中的距离矢量特征

       链路状态型协议:OSPF---传递拓扑

       距离矢量型协议:RIP---传递路由

              链路状态型协议中的距离矢量----OSPF中的不同区域之间相互传递路由信息,区域内部传递拓扑信息

拓扑的LSA不会传递出去,能传递的是将LSA转换为路由的信息

LSDB---链路状态数据库

       当一个路由器将两个区域相连时

区域内部传递拓扑信息,区域间传递路由信息---链路状态型协议的距离矢量特征。
多区域提高了网络的扩展性,有利于组件更大规模的网络
区域IDArea-ID):32bit组成的非负整数,按点分十进制表示

多区域划分要求

       Area 0就是骨干区域(默认情况下)

       当只有一个区域时,无论该区域编号,该区域就是骨干区域,但一般都会命名为Area 0。

       要求:

1、OSPF要求域中的所有的非骨干区域(区域ID不为0的区域)都必须与骨干区域直接相连
2、骨干区域不能被分割,即Area 0区域有且只有一个

ABR:转发计算出来的路由

防止环路:OSPF定义了ABR(区域边界路由器)来确保遵守这条规则---只有真正的ABR设备才可以转发区域间路由信息,路由先传递到骨干,再从骨干传递到其他区域

ABR规则

  1. 至少连接两个区域
  2. 连接的区域至少有一个接口连接Area0
  3. 在Area0当中至少由一个活跃的邻居

内部路由器---IR

       所有接口都接入同一个区域的路由器R4、R5、R1

区域边界路由器---ABR

       R2 R3

骨干路由器

       接入Area0的路由器R2R3R1R6

AS(自治系统)边界路由器

       工作在OSPF自治系统边界路由器,负责将OSPF域外的路由器引入本域,可能运行多个不同的路由协议R6

       但不是所有运行多个路由协议的路由器都是AS路由器,必须执行力重发布操作的路由器才会被称为ASBR

hello包 

用来发现、建立周期保活OSPF邻居关系,通过组播224.0.0.5发送
10s发送一次用以确定邻居存在
hold-time---死亡时间----hello-time*4
Router-ID(RID)在OSPF环境下的RID---全域唯一,标识路由器身份

        配置方式
                手工配置
                        自动配置
                                路由器的RID选取规则:默认优选最大环回IP地址,没有环回就选择最大物理IP地址

在华为设备中,若没有接口IP,则OSPF启动后,RID为0.0.0.0

在思科设备中,若没有接口IP,则OSPF无法启动

                     华为标准:状态最先UP的接口的IP地址作为Router id

                     FRC标准(网络的所有规则定义的集合):

1、取loopback接口中最大的作为Router id
2、若没有loopback接口,则选择物理接口IP地址中最大的作为Router id


无论是采用手工还是自动选取的方式,一旦OSPF确定了RID,则之后不会改变---重启OSPF进程

DBD报文
       1、 数据库描述报文
        2、该报文中携带的是路径信息的摘要,收到摘要的一方通过摘要中对应的元素,在对发送方进行申请详细信息----避免重复更新,减少更新量的一种做法
lSR报文
       1、链路状态请求报文---用以获取未知的LSA(链路状态通告)信息
LSU报文
        1、链路状态更新报文
        2、携带真实的LSA信息的数据包
LSAck报文
        1、链路状态确认报文


OSPF七种状态机

  • down---关闭---一旦启动了OSPF协议,则发出hello报文进入下一个状态
  • init---初始化---收到的hello报文中存在本地RID值,进入下一个状态
  • 2-way---双向通讯---邻居关系建立的标志

条件匹配:匹配成功则进入下一个状态,匹配失败则停留在邻居状态

  • exstart---预启动---使用未携带信息的DBD报文进行主从关系选举,RID大的为主。
  • exchange---准交换---使用携带目录信息的DBD报文进行目录共享
  • loading---加载---邻居间使用LSR/LSU/LSACK报文来获取完整的LSA信息
  • full---转发---拓扑交换完成后,根据算法计算出路由进入该状态,标志在邻接关系的建立

稳定状态:2-way,full

条件匹配

       决定了谁给谁传递了拓扑信息。

       DR/BDR/DRother---接口角色

选举规则
1. 优先级,0~255;选择优先级大的为DR设备,默认为1,若优先级为0则代表放弃选举
2. 若选举优先级相同,则比较RID值,越大越优先
        选取范围---一个广播域
        非抢占模式---重选则需要重启OSPF进程
        在一个MA网络中,可以没有BDR,但是必须存在DR

条件选举的过程(为了消除重复跟新)

        1、DR、BDR的选举是通过Hello报文完成的,条件匹配时间处于two-way之后exstart状态之前,在建立完邻居之后完成条件匹配,条件匹配成功会进入下一个阶段exstart,即开始建立邻接状态,在exstart状态之前都是处于邻居状态,hello报文是处于邻居状态时使用的唯一一种报文结构
        2、路由器将自己的接口的DR优先级填写在hello报文的“DR优先字段”
DR选举时先看优先级(接口优先级,每个接口都可以有),后看RootID,所以这些信息都要在hello报文中存在

        1、华为数通产品的接口优先级默认为1,该参数值可以通过
进入接口修改的方式修改(DR优先级为0,则代表该接口不具备选举DR和BDR的资格)

OSPF工作过程

三步 确定可达性(2-way ) --- 摘要同步(DBD) --- 完整信息同步(LSR LSU LSACK)

一. 启动OSPF配置后,OSPF向本地所有运行了OSPF协议的接口以组播224.0.0.5发出hello报文;hello
报文中携带了本地的RID参数以及本地已知的邻居RID值。
        1. 邻居的RID获取方式:通过接收其他邻居的hello报文来获取本地邻居
        2. 建立邻居关系,并生成邻居表。
二. 邻居关系建立后,进行条件匹配;匹配失败则停留在邻居关系,即2-way状态,仅使用hello报文保
活。该状态为稳定态。
三. 匹配成功的邻居开始建立邻接关系。
        1. 首先使用未携带数据的DBD报文进行主从关系选举,之后使用携带信息的DBD报文来共享数
据库目录;
        2. 然后本地通过对方共享的目录信息与本地数据库进行对比,通过使用LSR报文请求未知的LSA
信息。
        3. 对端使用LSU报文回复完整LSA信息
        4. 本端使用LSAck报文确认回复。
四. 当本地接收到所有的未知LSA信息后,将信息存放在LSDB中。
        1. 之后基于本地数据库生成有向图和最短路径树。
        2. 根据最短路径树计算本地到达拓扑中所有未知网段的最短路径,并将其加入到OSPF路由表
中。
        3. 从OSPF路由表中选择最优路由加载入本地全局路由表。
五. 收敛完成后,hello报文周期保活。每30min进行一次周期链路刷新。
结构突变
1. 新增网段
        直接使用LSU报文告知邻居,邻居使用ACK进行确认。
2. 断开网段
        直接使用LSU报文告知邻居,邻居使用ACK进行确认。
3. 无法沟通
        dead time----4*hello time,状态为down,删除信息。
OSPF基本配置
1. 启动OSPF协议
[r1]ospf 1 router-id 1.1.1.1
2. 创建区域
[r1-ospf-1]area 0
3. 宣告
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 ----精准宣告
[r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255 ----范围宣告

OSPF报文格式

5种报文名称,跨层封装

       OSPF协议号---89

报文头部信息

      

  • 版本---恒为2
  • 类型---描述OSPF数据包类型

~ hello---1

~ dbd---2

~ lsr---3

~lsu---4

~lsack---5

  • 报文长度

        不包含头部信息

  • 路由器ID---RID
  • 区域ID---发出该报文的接口所属区域的ID值
  • 校验和---校验完整数据包,包括头部以及数据部分
  • 验证类型

                指示给数据报文使用的认证类型
                不认证;简单认证---1;MD5认证—2

  • 验证数据

                用于报文认证的内容
                多认证类型不为认证,则该字段全为0

1、hello包

网络掩码

  1. 两台OSPF路由器如果通过以太网接口直连,那么双方的直连接口必须配置相同的网络掩码
  2. 如果一方在接口上收到的hello报文种,网络掩码字段与本地接口配置的掩码不同,则该路由忽略该hello报文,此时邻居关系无法建立
  3. 注意:只有在华为设备中才会检测网络掩码信息

hello时间间隔

  1. 如果两台路由器的hello时间间隔不同,则不会建立邻居关系
  2. 在Broadcast类型和P2P网络类型中hello时间间隔为10s;而在NBMA或P2MP网络类型中,Hello时间为30s

可选项

  1. 有8个标志位,每一个标记位为1,则代表其符合OSPF的某种特性
  2. 会影响特殊区域标记位
  3. 路由器优先级

接口优先级 8bit

用于选举DR和BDR

在点到点网络中不需要选举DR与BDR

路由器失效时间

两台设备建立ospf邻居需要确保死亡时间相同
默认情况下是hello时间间隔的4倍
若修改hello时间,则死亡时间随之改变;若修改死亡时间,则hello时间不变

指定路由器---DR

       该参数位网络中DR的接口地址

       若没有选举出来,则使用0.0.0.0 占位

备份指定路由器---BDR

若没有选举出来,则使用0.0.0.0 占位

邻居内容:在直连链路中发现的有效邻居,填充的是邻居的RID
组播:所有224.0.0.X格式的组播地址称为本地链路组播地址,目标是本地链路的数据包的TTl值被设定为1。所有本地链路组播存在对应的组播MAC地址,10-00-5e后23位,后23位为组播IP地址的后23位

限制邻居关系建立的参数

子网掩码 发送数据包的接口网络掩码

  • R1修改掩码后会立即将状态置为down,而R2会在40s死亡时间后进行状态切换
  • 原因在于:R1在修改IP地址的掩码后,会认为之前的连接中断,需要重新建立连接,所以会直接重置状态机。而R2认为此时属于结构突变中的无法沟通

hello时间 10s

int g/0/0/0

ospf timer hello 20

双方经过死亡时间后,状态才发送改变

dead时间

在接口内:ospf timer dead 80

认证 再更改后再经过死亡时间后才会实施

        区域认证 只要处于该区域就开启认证,开启区域内所有接口的认证

                ospf 1

                area 0

                authenticantion-mode simple plain 123456

        接口认证 两端需配置相同的认证类型(加密方式)

                int 接口

                ospf authentication-mode simple plain 123456

可选项 8bit:与修改掩码信息结果相同

2、DBD包

DBD报文:发送数据库的目录信息

  1. 使用未携带数据的DBD报文进行主从关系选举
  2. 使用携带数据的DBD报文进行拓扑目录共享
  3. 使用未携带数据的DBD报文进行确认

MTU---接口最大传输单元(16bit)

  1. 在华为AR系列路由器上默认为0
  2. 该字段是用于进行OSPF的MTU检测,而华为默认不开启MTU检测机制

MTU检测机制在两个OSPF路由器上传输,若两台设备开启了MTU检测,就会去比对最大传输单元,若一致就建立邻接关系,不一致就不会进入full状态,在exchange,过一段时间后会去到exstart状态

在接口处打开MTU检测机制:ospf mtu-enable


可选项---与hello报文中的可选项字段一致,与修改掩码信息结果相同

I---主从关系选举

如果该位为1,则代表数据报文是用于进行主从关系选举。且此时的数据包中不会携带真实的数据库目录信息


M

若为1,则代表后续还存在DD报文
若为0,则代表后续没有DD报文


MS---是否为主设备

若为1,则代表本设备为Master设备
若为0,则代表本设备为Slave设备


DD序列号

用于确保DD报文传输的有序性和可靠性
在DD报文交互的过程中,DD序列号被逐次加1。且DD序列号必须由Master路由器来决定,而Slave路由器只能使用Master路由器发送的DD序列号来发送自己的DD报文。
隐形确认机制----通过对方发送的数据包中的DD序列号,起到确认的效果。而主从关系选举就是为了完成隐形确认。(不管报文存不存在都有)

3、LSR包

链路状态类型、链路状态ID、通告路由器----LSA的三元组信息---通过这三个参数可以标识出一条LSA信息

4、LSU包---链路状态跟新报文 ---携带LSA

   

5、LSAck包---链路状态确认报文

       完成显式确认机制

红茶是一种热饮料,而OSPF是一个开放式最短路径优先(Open Shortest Path First)的路由协议。它主要应用于计算机网络中,用于动态选择路径和路由信息的传递。现在,假设我们在一家咖啡厅里喝红茶,同时我替你记下关于OSPF的三杯笔记。 第一杯红茶,我们谈论了OSPF的基本原则和概念。OSPF是一种链路状态路由协议,它使用链路状态数据库来记录网络中所有的路由器和链路状态信息。每个路由器都会从其他路由器中获取链路状态信息,并使用该信息计算出最短路径。OSPF通过洪泛算法(flooding algorithm)来传递链路状态信息,并使用Dijkstra算法来计算最短路径。 第二杯红茶,我们聊到了OSPF的区域。OSPF将网络划分为不同的区域,从而提高了网络的可扩展性和可管理性。每个区域都有一个区域内部的路由器,该路由器会将区域内部的路由信息汇总,并向其他区域的路由器发送摘要信息。这种分层结构减少了链路状态数据库的规模,并减少了网络更新的开销。 第三杯红茶,我们讨论了OSPF的路由选择过程。当一个路由器加入到OSPF域中时,它会与其他邻居路由器建立邻接关系,并通过发送Hello消息来维护连接。一旦建立了邻接关系,路由器之间就可以交换链路状态信息。通过分析这些信息,路由器可以计算出最短路径,并将其存储在路由表中。在路由选择过程中,OSPF考虑了路径的带宽、延迟和可靠性等因素。 通过这三杯红茶,我们对OSPF有了更深入的了解。红茶也给了我们愉快的喝茶经历,而同时我们也学到了有关OSPF的重要知识。无论是享受茶的美味还是学习计算机网络,都让我们的时光变得更加有趣和充实。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值