文章目录

  • CCNA4:OSPF——开放式最短路径优先协议
  • 1、OSPF的数据包:
  • 2、OSPF的工作过程:
  • 3、OSPF的状态机(重点):
  • 4、OSPF的配置、邻居表、数据库表、路由表:
  • 5、OSPF建立成为邻接关系的条件:
  • 6、OSPF的扩展配置:


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

OSPF是标准的链路状态路由协议,其实就是拓扑型协议。它是无类别协议,更新时携带子网掩码,使用组播(224.0.0.5、224.0.0.6)进行更新,管理距离110,度量为cost表示开销值。

OSPF是一个拓扑型协议,它最大的特点就是选路佳,不会出环。但是由于它是拓扑型协议,那么每多一台路由器,就会导致设备的更新量很大,会占用大量的资源。为了减少更新量,OSPF采用了 结构化部署:区域划分、地址规划
通过区域之内传拓扑,区域之间传路由这种方式,这就叫做链路状态型的距离矢量特征。

OSPF使用触发更新、周期更新(30分钟)。使用周期更新的原因是:由于更新量太大,会导致网络拥塞,可能无法收到某些数据包,导致数据库不统一,因此用周期更新,让路由器之间每过30分钟比对一次。

1、OSPF的数据包:

数据包

数据包的作用

Hello包

Hello包用于发现、建立、周期保活邻居关系,通过hello包的互发来发现邻居

Hello包中存在router ID——RID,相当于全网唯一的编号,使用IP地址。

DBD包

DBD包叫做数据库描述包:路由器通过收到这个包之后,来查看该DBD包中那一条LSA信息自己没有,起到比对作用。

LSR 链路状态请求包

路由器通过发送LSR链路状态请求包来向对端请求自己没有的LSA信息

LSU 链路状态更新包

该包中携带各种LSA,用于回复其它路由器的请求

LSack 链路状态确认包

表示自己已经收到更新包

2、OSPF的工作过程:

(1)启动配置完成后,本地使用组播(224.0.0.5、224.0.0.6)发送hello包到所有邻居处,若收集到其他邻居的hello包,那么建立邻居关系,生成邻居表

(2)紧接着和所有邻居间进行 条件匹配
若失败将停留于邻居关系,仅hello包周期保活即可。
若匹配成功,将建立邻接(毗邻)关系(需要DBD共享数据库目录),邻接关系将使用DBD/LSR/LSU/LSack来获取未知的LSA信息,当收集齐所有的LSA信息后,本地生成LSDB(链路状态数据库也就是数据库表)

(3)之后在本地基于LSDB计算到达所有未知网段的最佳路径,然后将其加载到路由表。

(4)收敛完成后,hello包周期保活邻居、邻接关系;每过30min周期性的使用DBD比对数据库。
(5)若结构突变:
①新增、断开网段时,直连设备使用DBD同步信息到所有的邻接处。
②设备断电无法沟通,dead time到时后断开邻居关系。
LSA:链路状态通告,或者说是拓扑或路由。
LSDB:链路状态数据库,用于存放所有的LSA集合。
OSPF协议的收敛被称作LSA洪泛、LSDB同步

3、OSPF的状态机(重点):

状态机

意义

Down

一旦本地发出hello包就进入下一个状态

Init(初始化)

接收到的hello包中,若存在本地RID,那么进入下一状态

2way(双向通信)

邻居关系建立的标志

条件匹配:点到点网络直接进入下一状态,MA网络中将进行DR/BDR选举(40s)非DR/BDR间不得进入下一状态

Exstart(预启动)

类hello的DBD,进行主从关系选举,RID数字为大者为主,优先进入下一状态

Exchange(准交换)

使用真正的DBD包,进行数据库目录的共享,需要ACK确认

Loading(加载)

使用LSR/LSU/LSack来获取未知的LSA信息

Full(完成)

邻接关系建立的标志

大致过程用图片来表示,是这样的:

ospf 宣告默认路由 ospf默认cost_开放式最短路径优先协议

4、OSPF的配置、邻居表、数据库表、路由表:

(1)OSPF的配置解释:
R1(config)#router ospf 1
R1(config-router)#router-id 1.1.1.1
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 12.1.1.0 0.0.0.255 area 0

#1 router ospf 1中1为进程号可以让一台路由器运行多个ospf进程,仅具有本地意义
#2 router-id 1.1.1.1 配置RID,要求为全网唯一,为手工配置,如果不配置默认取环回接口最大数字,最后再取物理接口最大数字。
#3 宣告所拥有的网段,使用反掩码来匹配可变动范围(12.1.1.0 0.0.0.255 表示为最后8位为可变动范围),达到宣告的目的,同时宣告自己所在的区域。这里的反掩码是说的范围,而掩码说的是网络位与主机位的区分,逻辑上是不一样的。

OSPF划分区域的原因:避免更新量太大,可以工作在更大的环境中。

OSPF划分规则:

①必须为星型结构——区域0为骨干区域,其余为中心站点。

②ABR——区域边界路由器,它是将一边区域拓扑计算所得路由发送到另一边

ospf 宣告默认路由 ospf默认cost_OSPF_02


(2)邻居表

为了更好的说明3张表,这里配置3台路由器。配置就按照上一步进行配置,如图:

ospf 宣告默认路由 ospf默认cost_工作过程_03


邻居表:启动配置完成后,所有设备间使用hello包,发现并建立邻居关系,邻居表生成。Hello time为10s,dead time 为hello time 的4倍,它会从40s开始倒计时,倒到30s时,新的hello包来了,那么又恢复到40s。

ospf 宣告默认路由 ospf默认cost_ospf 宣告默认路由_04


(3)数据库表

邻居关系建立后,邻居间进行调节匹配,匹配成功者之间进入邻接关系,基于DBD/LSR/LSU/LSack获取未知LSA信息,生成LSDB(数据库表),这只是几个目录:

ospf 宣告默认路由 ospf默认cost_工作过程_05


详细看其中的一条目录。

r2#show ip ospf database router 1.1.1.1

ospf 宣告默认路由 ospf默认cost_OSPF_06


这里我不会详细解释,之后我会在NP阶段写关于OSPF的详细讲解,敬请期待。

(4)路由表:

LSDB同步完成后,本地使用SPF最短路径选路规则,将到达未知网段的路由加载到路由表

ospf 宣告默认路由 ospf默认cost_状态机_07

O

本地区域内的路由,是本地通过拓扑计算所得

O IA

域间路由,其他区域的路由,通过ABR共享进入

其中管理距离为110,度量为cost值也就是开销值,由于度量值要越小越好,因此使用开销值:

ospf 宣告默认路由 ospf默认cost_工作过程_08


注:当接口带宽大于参考带宽时,比如1000M时,cost值为1。就有可能出现选路不佳,建议修改参考带宽,默认为Mbits

r1(config)#router ospf 1

r1(config-router)#auto-cost reference-bandwidth 1000

切记:整个网络所有设备均需要修改抑制。

5、OSPF建立成为邻接关系的条件:

邻接关系建立的条件是建立邻居关系:
邻居关系:只存在Hello包的保活,之间没有路由、拓扑的传递。
邻接关系:进行LSA的交互、洪泛(进行拓扑路由的传递)。

网络类型决定了邻接关系是怎样的:
点到点网络:在一个网段内只能存在两个节点。
MA网络:在一个网段内节点之间的数量不限制。

(1)点到点网络:
在点到点网络OSPF中只能直接建立邻接关系
(2)MA网络中:
在MA网络中为 避免重复的更新 ,将进行DR/BDR选举,所有的非DR/BDR间仅建立邻居关系;DR/BDR与其他非DR/BDR建立邻接关系,基于224.0.0.6(DR/BDR专用)沟通。因此要出现DRother与DRother之间的hello包沟通,至少需要4台路由器。

DR为老大,BDR为老二它用于接管DR临时故障导致网络瘫痪而设置的。DROTHER它们只和DR之间进行比对数据库,不和DROTHER比对数据库,减少更新量。

选举规则;
1、比较接口优先级,0-255,越大越好。 默认为1,0表示不参选。
2、接口优先级若相同,比较RID
R1(config)#interface f0/0
R1(config-if)#ip ospf priority 3 修改接口优先级

注:OSPF选举为非抢占的,因此在人为**修改优先级后,必须让所有重启设备一次性敲好所有配置命令,**然后最好在十几秒内重启OSPF进程,超出40s不成功。

或者是将设备的参选接口优先级修改为0,不参选,但至少留一台设备参选,否则无DR,网络将无法同行。

ospf 宣告默认路由 ospf默认cost_开放式最短路径优先协议_09

6、OSPF的扩展配置:

1) 认证----直接在连接邻居的接口上配置

ospf 宣告默认路由 ospf默认cost_ospf 宣告默认路由_10


2) 加快收敛—hello time 10s dead time 40s在这里插入图片描述

在直连邻居的接口上修改,且邻居间time必须完全一致,否则无法保持邻居关系匹配

ospf 宣告默认路由 ospf默认cost_ospf 宣告默认路由_11


3) 被动接口----仅接受不发送路由协议的信息,用于连接用户的接口,不得用于连接邻居的接口

ospf 宣告默认路由 ospf默认cost_状态机_12


4) 缺省路由----在边界路由器上配置缺省信息后,向内网发送缺省路由

ospf 宣告默认路由 ospf默认cost_工作过程_13