OSPF复习

目录

一、OSPF基础(开放式最短路径优先协议)

1、技术背景(RIP中存在的问题)

2、OSPF协议特点

3、OSPF三张表

4、OSPF数据包(可抓包)

头部数据包内容:

OSPF数据包(五种)

(1)hello包

(2)DBD(数据库描述报文)

(3)LSR:链路状态请求

(4)LSU:链路状态更新信息

(5)LSAck:对LSU的确认

5、OSPF工作过程

(1)确认可达性,建立邻居

(2)摘要同步,开始建立邻接关系

(3)完整信息同步,完全邻接关系建立

6、OSPF的状态机(七加一个)

7、LSDB的更新

8、OSPF开销计算

(1)参考带宽:

(2)计算方法:

二、OSPF的区域划分

1、区域产生背景

2、分区好处

3、区域类型

4、OSPF的路由器类型

三、OSFP基础实验


一、OSPF基础(开放式最短路径优先协议)

1、技术背景(RIP中存在的问题)

1. RIP中存在最大跳数为15的限制,不能适应大规模组网

2.周期性发送全部路由信息,占用大量的带宽资源

3.路由收敛速度慢

4.以跳数作为度量值

5.存在路由环路可能性

6.每隔30秒更新

2、OSPF协议特点

1.没有跳数限制,适合大规模组网

2.使用组播更新变化的路由和网络信息

3.路由收敛快

4.以COST作为度量值

5.采用SPF算法(最短路由优先算法---dijstart )有效避免环路

6.每隔30分钟更新

7.在互联网上大量使用,是运用最广泛的路由

注意:OSPF传递的是拓扑信息路由信息**,RIP传递的是****路由表、**

以下内容若无刻意强调,则都基于该图进行讨论:

OSPF配置:(以R2为例)

R2ospf 1**(协议号1)**
R2-ospf-1area 0**(区域编号0)**
R2-ospf-1-area-0.0.0.0network 192.168.1.0 0.0.0.255
R2-ospf-1-area-0.0.0.0network 2.2.2.2 0.0.0.0
R2-ospf-1-area-0.0.0.0network 192.168.2.0 0.0.0.255

router-id****不是相要的id则可以经行手动修改,命令如下:

R2ospf 1 router-id 2.2.2.2

修改之后在进行重置OSPF进程 ,命令如下:

<R2>reset ospf process

注意:重置之后之前宣告的网段依然存在;

3、OSPF三张表

**邻居表:**记录邻居状态和关系

查看邻居简表: <R1>display ospf peer brief

查看邻居表:<R2>display ospf peer

**拓扑表:**链路状态数据库(LSDB)----存放LSA(链路状态)的信息

(同一区域的链路状态表相同)

查看拓扑表 :****<R2>display ospf lsdb

**OSPF路由表:**记录由SPF算法计算的路由,存放在OSPF路由表中

查看路由总表:<R3>display ip routing-table

查看OSPF路由表 :<R3>display ospf routing (含自身直连)

查看OSPF路由表 <R3>display ip routing-table protocol ospf

4、OSPF数据包(可抓包)

OSPF报文直接封装在IP报文中,协议号89

头部数据包内容:

数据包内容简析:

**版本(Version):**对于OSPFv2,该字段值恒为2。OSPFV3---IPV6

**类型(Type):**该OSPF报文的类型。该字段的值与报文类型的对应关系是:1-Hello;2-DBD;3-LSR;4-LSU;5-LSAck。

**报文长度(Packet Length):**整个OSPF 报文的长度(字节数)。

**路由器ID (Router Identification):**路由器的OSPF Router-ID。

**区域ID (Area Identification):**该报文所属的区域ID,这是一个32bit 的数值。

**校验和(Checksum):**用于校验报文有效性的字段。保证数据的完整性

**认证类型(Authentication Type):**指示该报文使用的认证类型。

**认证数据(Authentication Data):**用于报文认证的内容。

IGP:内部网关协议(RIP/OSPF)

EGP:外部网关协议(BGP)

OSPF数据包(五种)

(1)hello包

hello包携带自己的router ID: 用来周期保活 的,发现建立邻居关系。

只容纳RID:"具体区分和标识不同的OSPF"路由的身份,32位二进制构成

(具有唯一性,统一性"按照IP地址格式执行")

**网络掩码(Network Mask):**该字段填充的是该接口的网络掩码。两台OSPF 路由器如果通过以太网接口直连,那 么双方的直连接口必须配置相同的网络掩码,否则影响邻居关系建立。

**Hello间隔(Hello Interval):**接口周期性发送Hello报文的时间间隔(单位为s)。两台直连路由器要建立OSPF邻居关 系,需确保接口的Hello Interval相同,否则邻居关系无法正常建立。

Hello时间 :默认每10秒发送一次

Dead time 死亡时间 :默认等于四倍的Hello时间 40秒

OSPF在某些特殊的网络环境下会出现每30秒发送一次Hello包的情况

设备获取RID方法: (路由器的身份)

1.手工配置

2.自动生成

若路由器配置了环回地址 ,那么他会选择环回地址数值最大的作为自

身RID

若路由器没有配置环回地址 ,那么他会选择接口IP地址数值最大的作为

自身的RID

**可选项(Options):**该字段一共8bit,每个比特位都用于指示该路由器的某个特定的OSPF 特性。(了解)

**路由器优先级(Router Priority):**路由器优先级,范围:0-255,数字越大优先级越高,默认是1,也叫DR优先级, 该字段用于DR、BDR 的选举

修改路由器的优先级:****R1-GigabitEthernet0/0/0ospf dr-priority 100

路由器(邻居死亡)失效时间(Router Dead Interval):需确保双方直连接口的Router Dead Interval相同,否则 邻居关系无法正常建立。缺省情况下,OSPF路由器接口的Router Dead Interval为该接口的Hello Interval的4倍

修改死亡时间:

**指定路由器(Designated Router):**网络中DR的接口IP地址。如果该字段值为0.0.0.0,则表示没有DR,或者DR尚 未选举出来。

**备份指定路由器(Backup Designated Router):**网络中 BDR的接口IP地址。如果该字段值为0.0.0.0,则表示网络 中没有BDR,或者BDR尚未选举出来。

**邻居(Neighbor):**在直连链路上发现的有效邻居,此处填充的是邻居的Router-iD,如果发现了多个邻居,则包含 多个邻居字段。

(2)DBD(数据库描述报文)

DBD(数据库描述报文):描述LSDB中LSA的摘要信息类似于LSA的目录)

LSBB数据库 :链路状态数据库(是用来存储LSA"拓扑信息"

接口最大传输单元(Interface Maximum Transmission Unit):接口的MTU。最大1500个字节

可选项(Options):路由器支持的OSPF可选项功能。

DBD报文置位符:

I:init位(初始),I=1,这是第一次报文的第一个DD报文

M:more位,M=1表示后续还有DD报文

MS:master位,MS=1,表示本端为主

DD序列号(DD Sequence Number ): DD报文的序列号,在DD报文交互的过程中,DD序列号被逐次加1,用于确保 DD报文传输的有序和可靠性。值得注意的是,DD序列号必须是由Master路由器来决定的,而Slave路由器只能使 用Master路由器发送的DD序列号来发送自己的DD报文。

(3)LSR:链路状态请求

**LSR:链路状态请求,**在与DBD包(LSA目录)比对后请求我没有的LSA信息.

请求自己没有的或则比自己更新的链路状态详细信息

链路状态类型:LSA的类型

链路状态ID:在type1LSA中填入的是路由ID,type2LSA中填入的是发出该LSA的IP地址,type3LSA 中填入的是想要传播的路由条目的相关网络号

通告路由器:通告该LSA的路由ID

链路状态类型,链路状态ID,通告路由器 ---- "LSA三元组" --- 通过着三个参数可以唯一的标识出一条LSA

(4)LSU:链路状态更新信息

LSU: 回复LSR包,真正携带LSA信息的数据包, 链路状态更新信息 一个LSU报文可以包含多个LSA

当路由器感知到网络发生变化时,也可以触发LSU报文的泛洪,以便将该变化通知给网络中的其他OSPF 路由器。

在MA网络中,非 DR、BDR路由器向224.0.0.6这个组播地址发送LSU报文,而DR及 BDR会侦听这个组播地址,DR 在接收LSU报文后向224.0.0.5发送LSU报文,从而将更新信息泛洪到整个OSPF区域,所有的OSPF 路由器都会侦听 224.0.0.5这个组播地址。

224.0.0.6----DR和BDR

244.0.0.5---DRother

(5)LSAck:对LSU的确认

LSAck:对LSU的确认,回复R1信息以到达. 报文中包含着路由器所确认的LSA的头部(每个LSA头部的长度为20byte)

5、OSPF工作过程

俩种关系:

**邻居:**双方通过hello报文,相互认识

邻接: 邻居关系建立好后,进行一系列报文交互,当两台路由器LSDB同步完成,开始独立计算路由时 ,这两台路由 器形成了邻接关系

只要第一个Hello包发出路由器就进入了init状态

(1)确认可达性,建立邻居

hello 包三次握手:

router ID:标明的是路由器身份

手工配置:IPV4地址格式

自动选举:

**环回口:**IP地址大的优先(若无环回口则从物理口中选择)

**物理口:**IP地址大的优先

(2)摘要同步,开始建立邻接关系

1.向邻接路由器发送DD报文,通告本地LSDB中所有LSA的摘要信息

2.收到DD报文后,与本地LSDB对比,向对方发送LSR报文,请求发送本地所需要的LSA的完整信息

3.收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方

4.收到LSU后,向对方回复LSAck报文,进行确认

(3)完整信息同步,完全邻接关系建立

完全邻接关系建立,LSDB表与OSPF路由表形成

6、OSPF的状态机(七加一个)

(1)down:关闭状态(稳定状态),这种情况处于手动指定邻居的情况下,发送hello包之后进入下一个状态

**(2)INIT:**初始化状态,收到对方的hello报文,但没有收到对方的hello确认报文

**(3)Attempt:**一般不会出现,只出现在NBMA网络中,发出hello,但收不到对方的hello包、

(4)2-way(稳定状态):双方互相发现,邻居状态稳定,并确认了DR/BDR的角色;

2-way前,确认DR/BDR

选举原因**:广播网络中使路由信息交换更加高速有序,可以降低需要维护的邻接关系数量**

**选举范围:**每个网段都需要选出一个DR和BDR(0-255)

选举规则:1.优先级大的优先,默认优先级是1;

2.router-id大的优先

注:DR/BDR的选举没有抢占性

关系状态:DRother与DR建立邻接关系;

DRother与BDR建立邻接关系;

DR /BDR建立邻接关系;

DRother之间保持邻居关系 当选举完毕后 ,就算出现 一台优先级更高的路由器也不会替换成新的DR\BDR需要 原DR\BDR失效 ,或重置OSPF进程 才会成为新的DR\BDR

2-way的前提:

Router-id无冲突,修改router-id需要重置ospf进程使生效;

掩码长度一致(MA网络中);

区域ID一致;

验证密码一致;

hello-time一致;

dead-time一致;

特殊区域类型一致;

**(5)Exstart:**交换开始状态;发送第一个DD报文,但不发送LSA摘要,仅用于确定LSDB协商的主从,ROUTER-ID大 的成为master

**(6)Exchange:**交换状态;发送后续DD报文,用于通告LSDB中的LSA摘要

**(7)Loading:**读取状态,进行LSA的请求、加入和确认

**(8)Full:**邻接状态(稳定状态),两端同步LSDB;

**FULL的前提:**两端MTU一致,否则可能卡在EXSTART\Exchange状态

**能够计算路由的前提:**两端网络类型一致,否则邻居状态full,但无法学习路由

7、LSDB的更新

注:广播网络中的更新:只由DR发起

8、OSPF开销计算

(1)参考带宽:

默认是100M

计算开销的基准带宽值

参考带宽仅本地有效

建议把网络中最高的链路带宽设置为参考带宽(不然 千兆链路和百兆链路的开销值都是1,无法判断哪条线路最 优)

(2)cost 计算方法:

链路带宽大于等于参考带宽 cost=1

反之,cost=参考带宽/链路带宽(Mb)

注:在路由器上。千兆以太网、百兆以太网、十兆以太网的缺省OSPF链路开销值分别是:1、1、10

二、OSPF的区域划分

1、区域产生背景

OSPF路由器在同一个区域中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内 进行同步。不同区域的LSDB是不一样的

如果OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸多问题。

2、分区好处

减少LSA泛洪范围;

减小路由表规模;

提高网络扩展性,有利于组建大规模的网络;

3、区域类型

**骨干区域:**area 0

非骨干区域:

特殊区域:减少邻居关系 ,减小OSPF路由表的规模

邻居关系过多缺点:

(1)大量产生hello包,消耗CPU性能

(2)产生重复路由通告,消耗CPU性能

(3)任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源

多区互连原则:

非骨干区域非骨干区域不能直接相连;

所有非骨干区域必须与骨干区域相连

此设计是为防止区域间环路;

4、OSPF的路由器类型

区域内路由器(IR):所有接口在同一区域

骨干路由器(BR):有接口在骨干区域

区域边界路由器(ABR):连接骨干区域非骨干区域

自治系统边界路由器(ASBR):连接外部自治系统并引入外部路由

三、OSFP基础实验

OSPF基础实验并尝试抓取OSPF的数据包

实验具体步骤请看博客**"OSFP基础实验"**

相关推荐
fangzhanpeng1684 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心6 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552712 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552713 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝14 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552714 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552715 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552717 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552717 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552718 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节