【HCIP】OSPF动态路由协议

目录

1、OSPF简单介绍

OSPF的概念

传统的动态路由协议

OSPF的特点

2、OSPF的运行机制

3、区域划分

OSPF 区域设计

OSPF 区域设计原则

OSPF区域划分的目的

不规则区域类型

不规则区域的解决

4、OSPF数据包

OSPF报头

Hello

DBD

LSR

LSU

LSACK

5、OSPF状态机

6、OSPF工作过程   

7、OSPF接口网络类型

8、OSPF的各LSA

LSA头部信息

1类LSA

2类LSA

3类LSA

4类LSA

5类LSA

7类LSA

9、OSPF的优化

OSPF汇总

特殊区域

stub

nssa


1、OSPF简单介绍

OSPF的概念

OSPF(Open Shortest Path First 开放式最短路径优先)是一种动态路由协议,属于内部网关协议(Interior Gateway Protocol,简称 IGP),是基于链路状态算法的路由协议

 

传统的动态路由协议

传统的动态路由协议有,如RIP(路由信息协议)和IGRP(内部网关路由协议)等,它们在大型网络中会出现路由环路、路由抖动、路由表过大等问题,从而影响网络的可靠性和性能

 

OSPF的特点

OSPF(Open Shortest Path First)协议是一种用于在IP网络中动态分配路由的开放标准链路状态路由协议。其主要特点可以归纳如下:

1. 分层路由与区域划分

  • 分层设计:OSPF协议使用分层设计,将网络划分为多个区域(Area)。每个区域内部使用自己的链路状态数据库计算最短路径,区域之间通过区域边界路由器(ABR)进行信息交换。这种分层设计可以简化网络的管理和维护,提高路由算法的效率。
  • 区域划分:通过区域划分,可以限制路由信息的传播范围,降低路由器之间的通信量,特别是在大型网络中,这有助于提高网络的性能和可伸缩性。

2. 快速收敛

  • 收敛速度快:OSPF协议采用链路状态路由算法,能够快速检测并通告自治系统内的拓扑变化。当网络出现故障或拓扑结构发生变化时,OSPF协议可以迅速调整路由,保证数据的快速传输。
  • 触发更新与周期更新:OSPF支持触发更新,即当链路状态发生变化时立即通知其他路由器;同时,它也支持每30分钟一次的周期更新,确保路由信息的实时性和准确性。

3. 高可靠性和防环机制

  • 无环路:OSPF协议从设计上保证了无路由环路。它利用Dijkstra算法计算最短路径,并通过区域间的连接规则确保无路由环路。
  • 高可靠性:每个节点都维护一个完整的网络拓扑图,节点之间通过链路状态数据包(LSA)来交换路由信息。这种高度冗余的路由信息可以保证网络的可靠性和稳定性。

4. 良好的扩展性

  • 支持多种网络拓扑结构:OSPF协议支持多种网络拓扑结构,如点对点、广播、非广播多路访问等,能够适应不同规模的网络环境。
  • 适应大中型网络:当网络上路由器越来越多,路由信息流量急剧增长时,OSPF的分层设计使得其特别适用于大中型网络。

5. 支持多种功能

  • 支持虚拟链路:OSPF协议支持虚拟链路技术,可以通过建立虚拟链路来连接不同的区域,使得整个网络结构更加灵活和可靠。
  • 支持VLSM:OSPF协议支持可变长度子网掩码(VLSM),可以根据不同子网的规模来分配不同的子网掩码,提高了IP地址的利用率和网络的灵活性。
  • 支持认证:OSPF协议支持多种认证方式(如明文、密文等),可以确保路由信息的安全性。通过配置适当的访问控制列表(ACL),可以进一步限制路由信息的传播范围。

6. 开放标准

  • 开放标准协议:OSPF协议是一个由IETF(Internet工程任务组)制定和维护的开放标准协议。这意味着任何厂商都可以实现和支持OSPF协议,使得不同供应商的路由器可以在一个网络中互相通信和协作。

综上所述,OSPF协议以其分层路由、快速收敛、高可靠性、良好的扩展性、支持多种功能以及开放标准等特点,在现代计算机网络中发挥着重要作用,特别适用于大型企业网络和互联网服务提供商的内部网络。

 

2、OSPF的运行机制

1.通过交互Hello报文形成邻居关系

路由器运行OSPF协议后,会从所有启动OSPF协议的接口上发送Hello报文。如果两台路由器共享一条公共数据链路,并且能够成功协商各自Hello报文中所指定的某些参数,就能形成邻居关系。

2.通过泛洪LSA通告链路状态信息

形成邻接关系的路由器之间可以交互LSA。LSA描述了路由器所有的链路、接口、邻居及链路状态等信息。路由器通过交互这些链路信息来了解整个网络的拓扑信息。由于链路的多样性,OSPF协议定义了多种LSA类型。

3.通过组建LSDB形成带权有向图

通过LSA的泛洪,路由器会把收到的LSA汇总记录在LSDB中。最终,所有路由器都会形成同样的LSDB。LSA是对路由器周围网络拓扑结构的描述,而LSDB则是对整个自治系统的网络拓扑结构的描述,LSDB是LSA的汇总。

4.通过SPF算法计算并形成路由

当LSDB同步完成之后,每一台路由器都将以其自身为根,使用SPF算法来计算一个无环路的拓扑图来描述它所知道的到达每一个目的地的最短路径(最小的路径代价)。这个拓扑图就是最短路径树,有了这棵树,路由器就能知道到达自治系统中各个节点的最优路径。

5.维护和更新路由表

根据SPF算法得出最短路径树后,每台路由器将计算得出的最短路径加载到OSPF路由表形成指导数据转发的路由表项,并且实时更新。同时,邻居之间交互Hello报文进行保活,维持邻居关系或邻接关系,并且周期性地重传LSA。

3、区域划分

OSPF 区域设计

区域标识:使用十进制数或类似于IP地址方式
区域的划分:基于接口的(链路的)


两种区域类型
1.骨干区域:区域0 存在并且唯一
2.非骨干区域:非0区域


OSPF 路由器角色
1.骨干路由器:一个路由器的所有接口都在0区域内
2.非骨干路由器:一个路由器的所有接口都不在0区域内
3.ABR:区域边界路由器,能够产生3类LSA的路由器,有接口属于0区域,还有接口不属于0区域
4.ASBR:自治系统边界路由器,能够产生5类或7类LSA的路由器,把不属于OSPF的路由条目引入到OSPF协议中

OSPF 区域设计原则

规则区域的划分
1.OSPF网络中必须存在并唯一的骨干区域(若OSPF仅仅存在一个区域可以为非0区域)
2.非骨干区域必须与骨干区域直接相连(非骨干不能非骨干直接相连)
星型结构:骨干区域位中心,非骨干为分支 必须存在ABR(区域边界路由器)设备同时工作多个区域内

OSPF区域划分的目的

1.减少LSA数量
2.减少LSA的传播范围
OSPF的不规则区域

不规则区域类型

1、远离骨干的非骨干区域 (非骨干区域没有连接到0区域上)
2、不连续骨干(存在多个0区域)

不规则区域的解决

tunnel隧道

分为GRE和MGRE两种,在0区域与不规则区域边界上启用tunnel,配置tunnel地址,将tunnel接口通告进入OSPF area 0 或不规则区域中,宣告在某个区域就相当于扩大了某个区域

缺点

1.选路不佳

2.还会有周期和触发信息,每次发包都会进行封装,造成资源占用

virtual-link虚链路

穿越某个区域,延长了0区域,在virtual-link两端建立OSPF 邻居,网络中合法的ABR(工作的区域0的ABR),和非法ABR间建立一条虚链路(在OSPF协议中构建,没有新生网段) 由合法ABR授权非法ABR进行区域间路由共享

优点
没有新生链路,故选路正常

缺点
1.做了虚链路就不能做特殊区域

2.通过virtual-link学习的LSA不老化,不可靠,不稳定

多进程重发布

进程号仅具有本地意义,邻居间建立邻居关系时可以使用不同的进程号;若在一台设备上同时启动多个进程,那么不同进程存在自己的邻居关系,生成不同的数据库(不共享);最终将所有数据库计算所得路由加载于同一张路由表中;

优点
1.选路正常 

2.无周期信息,但依然可靠(触发更新、邻居关系周期保障)

 

4、OSPF数据包

OSPF报头

所有数据报文均有的头部信息

版本:OSPFv2、OSPFv3等

类型:HELLO、DBD、LSR、LSU、LSACK

报文长度:报头+数据包本体的总长度

路由器ID:发出数据包的路由器的ID

区域ID:数据包所处区域的ID

校验和:校验数据包完整性

验证类型:OSPF认证类型(空认证、md5认证、简单认证等)

认证数据: 认证携带的数据(账号、密码等)

Hello

用于邻居路由器之间发现和建立邻居关系的一种协议包,里面含有本地路由的路由ID、下一个Hello包的时间间隔、路由状态、网络类型等

  网络掩码
接口发出hello时会携带该接口的掩码。在建立邻居时会比较两端设备的掩码,如果掩码不一致则会导致建邻失败——注意:只有以太网链路才会检测掩码hello时间和死亡时间,注意这两个参数如果两端对应不上也会导致建邻失败。
可选项
是OSPF的一些特性(OSPF的特殊区域的标记会在选项字段携带,如果字段不统一则会导致建邻失败)
路由器优先级
ospf dr-priority用来条件匹配选择DR设备的参数
指定路由器
DR的身份(RID)
备份指定路由器
BDR的身份(RID):注意在一个广播域中
PS:所有设备的DR和BDR的认知必须统一。 只有DR和BDR会监听224.0.0.6的组播地址  

 

DBD

用来建立主、从关系的一种关系包,里面存有LSA的摘要(就是不完整LSA信息)

作用
1.用来主从关系选举(没有携带lsa摘要信息的DBD报文)
2.用来减少OSPF重复更新,利用携带LSA摘要信息的DBD进行 本地数据库比对
3.主从关系选举之后由主设备会主导后续的DBD报文交互的有序性(确保DBD报文的可靠传输)---隐性确认
接口最大传输单元
接口MTU值,[r2-GigabitEthernet0/0/0]ospf mtu-enable --OSPF协议默认是不进行接口MTU检测的,如果想要开启该功能需要手工配置。如果两端均开启了接口MTU检测功能如果接口MTU不一致会导致状态停留在预启动状态。
I
如果I为置为1则代表该DBD包是进行主从关系选举的DBD包
M
MORE,如果M标志位置为1则代表本设备后续还有DBD报文需要发送,如果置为0则代表该数据包已经是最后一个DBD报文。
MS
标注该DBD报文是主设备发送的DBD报文
序列号
隐性确认,去确保DBD报文的有序可靠传输

 

 

LSR

向对方请求本地数据库所缺少的LSA完整信息

OSPF靠三元组(链路状态类型、链路状态ID、通告路由器)来表示一条LSA

 

LSU

根据对方发给我的LSA完整信息,进行本地数据库的更新

 

LSACK

向对方回应我已经接受到你的LSA并且更新完毕

 

LSACK的确认,是对每一条请求的LSA进行确认

5、OSPF状态机

状态机

DOWN:本地一旦发出hello包,进入下一状态

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

2-WAY:邻居关系建立标志

EXSTART:使用类hello 的DBD包进行主从关系选举,RID数值大为主,主优先进入 下一状态

EXCHANGE:使用真正的DBD进行数据库目录的共享,需要ACK

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

FULL:邻接关系建立的标志

 

6、OSPF工作过程

   
1.建立邻居
启动配置之后,ospf将向本地所有的运行了ospf 协议的端口发送hello包(224.0.0.5),hello包中携带自己的 RID用来区分不同路由器的身份(不携带路由信息),同时携带自己已知的邻居RID,之后会将这些RID存储在自己的邻居表中
2.条件匹配
邻居表建立完成之后,会进行条件匹配,在一个广播域中需要选择一台路由器(DR)和剩下所有路由器建立邻接关系,同时需要选择一台备份设备,充当DR的备份,当DR设备出现故障需要行使DR的工作。
3.匹配成功
则开始建立邻接关系-之后会使用未携带数据DBD包(并没有携带LSDB的摘要信息)进行主从关系的选举。主路由器会优先进入下一个状态,会优先发送摘要进行比对,比对之后,会请求自己本地没有的lsa信息。对端会发送真正携带lsa信息的LSU包,会利用LSACK进行确认。本地的链路状态数据库建立完成,生成本地链路数据库表
4.完成收敛
基于本地的链路状态数据库收集的lsa,根据自己的spf算法计算得出最短路径树。生成路由表
5.周期更新
收敛完成后,会使用hello包每10s发送一次,用来保活邻居关系。ospf会每30min进行一次周期更新

7、OSPF接口网络类型

OSPF接口工作在不同的网络环境下工作方式有所区别

广播类型(Broadcast)

类型:Broadcast 特点:需要进行DR和BDR的选举, Timers: Hello 10 , Dead 40

 

NBMA类型(Non-Broadcast Multl-Access)

隧道环境类型:OSPF中默认识别隧道接口的ospf接口类型为P2P,导致只能存在两台设备,在MGRE环境下,必须修改接口的工作方式使隧道接口可用识别多台设备

 

点到点P2MP类型(Point to-Multipoint)

接口网络类型:P2MP ,特点不需要进行DR和BDR的选举,Hello 30 , Dead 120

 

点到点P2P类型(point-to-point)

Type: P2P:特点:不需要进行DR和BDR的选举(条件匹配),Timers: Hello 10 , Dead 40

8、OSPF的各LSA

LSA头部信息

Type
类型字段(标注一条LSA的类型)
LSID
链路状态ID(标识符),相当于一条LSA的名字
ADV-router
通告路由器:产生并通告这条LSA的设备的RID,表明该LSA是谁发的必须靠LSA的三元组才能唯一的标识一条LSA
LS AGE
一条LSA的老化时间:默认一条LSA的最大老化时间是1800S等于OSPF周期更新的时间,当一条LSA老化时间达到1800s则会将该LSA从自身数据库中刷新。
MAX-AGE最大老化时间
当OSPF周期跟新机制出现问题可能导致不能即时刷新lsa,则等待最大老化时间直接删除
LEN
lsa长度:整个LSA的大小
SEQ
LSA的序列号,主要用来做LSA的新旧判断。
0X80000001-0X7FFFFFFE----
当序列号到达0X7FFFFFFE时设备就知道后面没有序列号可用,则会直接将该LSA的老化时间设置为3600S,相当于清空整个OSPF网络设备中存储的该LSA,之后会立刻重新发送一条内容完全一致的LSA只不过序号刷新为0X80000001

 

1类LSA

router -LSA
功能: 产生本路由器针对某个区域的路由信息和拓信息
传播范围:本区域内传输
Link ID : 产生者的router-id
ADV router: 产生者的router-id
特性: 在单个区域中分别产生一条1类LSA,若存在MA网络,1类LSA不完整,需要配合二类
LSA生成路由信息以及拓扑信息。
1类LSA 内容类型: 

2类LSA

network LSA ,网络LSA
功能: 用于在MA网络中,描述本网络路由器的数量以及本MA网络的网络掩码
Link ID:DR接口的IP地址
ADV router:DR所在路由器的router-ID
特性: 只会出现在MA网络,用于补充1类LSA(1.MA网络的掩码 2.MA网络路由器的数量)

3类LSA

summary LSA 汇总LSA
功能:用于在区域之间传递路由信息
link-id :传递路由的网络号
ADV router:默认为所在区域ABR的router-id
特性: 在穿越不同区域时,有其他的ABR重新产生(ADV router 是变化的)

4类LSA

summary ASBR LSA
功能:除了产生5类LSA所在区域,用于通告ASBR位置
Link id:ASBR的router-id
ADV router: 默认ASBR所在区域的ABR的 router-id
特点:在穿越不同区域时,有新的ABR重新产生。(与3类LSA一致)

5类LSA

外部LSA
功能: 用于在整个OSPF中传递外部路由(原本不属于OSPF域)
5类LSA有两种类型: 类型1 类型2(区别:)
Link id :传递外部路由的网络号
ADV router : 产生该LSA的 router-id
传播范围:在整个OSPF域中传输

7类LSA

NSSA LSA
功能: 在NSSA区域中,传递外部路由。
Link id :传递路由网络号
ADV router:产生该LSA的 router-id

特性:默认为类型2 ,度量值为1 。 携带了FA地址(转发地址)
FA: 转发地址,当5类或7类LSA中携带了FA地址,则计算路径开销值时计算的是当前路由器到达FA地址的开销值之和+种子度量值。(若FA地址不可达,则路由不能加表)

9、OSPF的优化

OSPF汇总

域间路由手工汇总
配置位置是该区域对应的ABR设备的对应区域中配置
[r1-ospf-1-area-0.0.0.2]abr-summary 1.1.0.0 255.255.252.0---网段汇总之后的
结果(必须写汇总网段的真实掩码)
只有自己通告1-2类LSA计算出来的3类LSA才能被汇总
域外路由手工汇总
配置位置是ASBR设备的协议进程中配置
[Huawei-ospf-1]asbr-summary 172.16.0.0 255.255.252.0
汇总实质是对3类和5类LSA进行汇总

特殊区域

stub

stub(末梢)区域的配置条件:
不能是骨干区域 不能存在虚链路V-LINK 不能存在ASBR设备
[r6-ospf-1-area-0.0.0.2]stub
PS:因为特殊区域的标记会影响建邻居,所以必须该特殊区域的设备都需要配置,否则无法建邻。
一旦将区域配置为stub区域,该区域将拒绝学习4类和5类LSA
Totally-stub完全末梢区域:配置位置只需要在ABR设备上配置
[r1-ospf-1-area-0.0.0.2]stub no-summary

nssa

NSSA非完全末梢区域
配置条件:
不能是骨干区域 不能存在虚链路V-LINK 必须存在ASBR设备
[Huawei-ospf-1-area-0.0.0.1]nssa
PS:因为特殊区域的标记会影响建邻居,所以必须该特殊区域的设备都需要配置,否则无法建邻。
一旦将区域配置为nssa区域,该区域将拒绝学习4类和5类LSA,同时由本区域的ABR设备生成一条7类缺省
因为NSSA区域拒绝了4类和5类LSA,就导致域外路由信息无法直接引入(域外是5类LSA),所以必须由ASBR设备进行5转7操作,之后因为普通区域(尤其骨干区域不能配置特殊区域)导致这些区域并不识别7类LSA,所以必须由本区域的ABR设备进行7转5LSA
Totally-NSSA -完全的非完全末梢区域
配置位置只需要在ABR设备上配置
[r3-ospf-1-area-0.0.0.1]nssa no-summary
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值