导图社区 OSPF
OSPF笔记,总结了基础术语、 特点、工作过程、网络类型、OSPF网络设备类型的划分、OSPF特殊区域、OSPF状态机等知识点。
编辑于2024-05-09 17:15:17OSPF
开放最短路径优先协议 是典型的IGP协议
基础术语
区域
Router-id
度量值
三表
特点
V2用于IPv4网络 V3用于IPv6网络
支持协议区域划分,提高网络可扩展性
每个区域维护不同的路由信息,降低设备性能要求
区域内不直接传递路由信息,而是传递链路描述信息
区域间和外部网络才传递路由信息
设备会将路由信息与链路描述信息抽象成LSA(链路状态通告)
每台设备都需要维护LSDB
采用SPF算法计算路径信息
支持多种网络类型
工作过程
1、发现建立邻居
前提:设备及相关接口须要启动该协议
创建协议进程,同时接口须要启动该功能
接口启动命令:NETWORK命令
network命令作用
将本地须要参与通信的直连路由通告给邻居设备,供邻居学习
在设备对应接口启动协议功能
实现方式:主要通过发送Hello报文实现
报文格式
通用报文头
每一个OSPF报文都必须携带的信息
Version
版本
V2
V3
Type
类型:报文类型的标识
Hello
DD
LSR
LSU
LSack
Packet Length
报文大小:整个报文大小
Router ID
路由器ID:在ospf网络中标识一台唯一的ospf路由器 可以手动指定可以自动选举
手动指定
自动选举
先选择逻辑接口最大的IP地址
选择物理接口最大的IP地址
Area ID
区域ID:用于标识设备的区域号 须要手动指定
标识方式
区域号
IP地址
Checksum
校验:差错校验
AuType
认证类型
不认证
简单认证
加密认证
Authentication
认证信息:密钥信息
Hello报文
发现建立邻居
Network Mask
掩码:用于计算建立邻居的通信地址是否属于同网段
Hellointerval
hello周期:主要定义发送hello报文的周期 默认10s 30s
Options
hello老化周期:主要定义hello报文的老化 默认40s 120s
Rtr Prl
功能选项字段:主要表达设备对ospf协议功能的支持
RouterDeadInterval
路由器优先级:也叫DR优先级,主要定义设备的优先级,用于在广播网络与NBMA网络中选举网络维护设备
Designated Router
Backup Designated Router
主要用于ospf网络维护,DR为主设备,BDR为DR的备份设备在广播网络与NBMA网络中存在
Neighbor
邻居信息:主要用于记录邻居
条件
主要是报文中的字段信息
版本号要相同
路由ID要不同
区域ID须要相同
认证需要相同
掩码须要相同
hello周期须要相同
hello老化周期须要相同
功能选项字段须要相同
DR与BDR要能够选举
2、同步链路信息
主要通过DD报文实现 并不会发送LSA明细
报文格式
接口MTU
主要用于DD报文分片 但华为设备默认关闭MTU协商
功能选项字段
与hello中的作用一摸一样
主从设备选举字段
I
代表初始化DD报文(第一个DD报文)
M
代表更多的DD报文(第二个DD报文)
MS
代表master设备(主设备)
主从设备选举意义
定义谁先向谁同步链路信息,主设备主动向从设备同步链路信息 因此主从有时候也称为主被动设备
DD报文序列号
主要用于标识每一个DD报文,同时也做为DD报文之间的相互确认报文(可靠性) 设备回复的每一个DD报文都会有序列号,一般是收到上一个DD报文的序列号+1
LSA头
描述LSA基本情况 不是每一个DD都存在该字段,例如第一个DD
3、计算维护路由
主要通过发送LSR,LSU,LSack报文实现
LSR报文
主要用于设备主动请求更新链路状态信息
LSU报文
主要用于针对LSR报文进行回复确认,同时也是携带详细的LSA内容
格式
通用报文头+LSA头+LSA明细
LSA类型
R
Summary-LSA
ASBR-summary-LSA
AS-External-LSA
NSSA-LSA
LSack报文
主要针对LSU报文进行确认
在OSPF网络中,使用LS type、Link State ID、Advertising Router三个信息描述一条唯一的LSA
OSPF区域内路由计算
主要通过Router-LSA、Network-LSA完成
关于LSA头中
Link State ID
不同类型的LS-Type对应的LS-ID也不一样
Router-LSA
Router ID
Network-LSA
DR接口IP
Summary-LSA
描述具体的网段
ASBR-summary-LSA
ASBR的Router ID
AS-External-LSA
描述具体的网段 七类也是如此
Advertising Router
一般基于路由器ID进行标识
关于Router-LSA明细
Flag位
V
基于虚连接设备产生的LSA
E
基于ASBR设备产生的LSA
B
基于ABR设备产生的LSA
Link-ID
描述设备对应的链路 不同类型的Link-Type对应的Link-ID也不一样
Link-Type
描述链路的类型 4种
Link-Data
描述具体的链路信息
三者之间的关系
开销
关于Network-LSA明细
仅存在于广播网络或者NBMA网络
掩码
主要用于描述本链路对应的网段范围
可达节点
描述本链路上连接的所有路由器(Router ID)
关于LSA1与LSA2的关系
一般情况下,有LSA2就一定有LSA1,有LSA1但不一定有LSA2(P2P/P2MP)
OSPF区域间路由计算
主要通过Summary-LSA 完成路由计算
关于Summary-LSA明细
掩码
描述网段的掩码地址
开销
思考:在LSA3明细中并没有携带相关网段的IP地址信息,那么三类(区域间)路由如何计算?
LSA3在计算过程中,通过LSA头中的LS-ID与LSA3中的明细(掩码+开销)标识对应的网段路由
OSPF外部路由计算
主要通过ASBR-summary-LSA、AS-External-LSA、NSSA-LSA完成计算
关于ASBR-summary-LSA明细
主要用于描述ASBR信息 格式与LSA3一摸一样
掩码
无意义
开销
LSA3与LSA4的差别
LSA3的LS-ID是一个网段地址,LSA4的LS-ID是一个IP地址(ASBR的Router ID) LSA3的掩码字段会用于区域间路由计算,LSA4的掩码字段没有使用。
关于AS-External-LSA明细
掩码
没有意义
外部网段类型
不同类型代表开销计算方式不同
type1
表示既要计算内部开销又要计算外部开销
type2(默认)
表示只计算外部开销
开销
本设备去该网段须要占用的开销值
转发地址
一般情况下为0 主要用于定义OSPF外部路由的下一跳IP地址
如果该字段为0 那么下一跳IP就是收到该路由且与本端直连的对端端口IP 与IP路由表中下一跳IP地址定义一样
如果该字段为非0 那么下一跳IP就是转发地址
FA地址为非0的场景
ASBR设备须要引入外部路由到ospf中
ASBR设备连接外部路由的网段与ASBR建立OSPF邻居的网段必须是同网段
与ASBR建立OSPF邻居的设备网段也必须与外部路由所在路由器的网段是同网段
建立OSPF邻居的接口网段地址必须是接口主地址,不能是从地址
关于NSSA-LSA明细
主要用于ospf特殊区域NSSA区域
4、邻居维护路由维护
网络类型
广播网络
只要邻居设备之间互联采用以太网口,默认就是广播网络
点到点网络
只要邻居设备之间互联采用串行接口且通信协议使用PPP,默认就是点到点网络
点到多点网络
须要手动修改
非广播多点可达网络
只要邻居设备之间互联采用串行接口且通信协议使用帧中继(FR),默认就是广播网络
虚连接网络
当两台路由器之间建立了虚连接形成的网络类型,默认就是虚连接 也叫V-Link
OSPF网络设备类型的划分
区域内部路由器
区域边界路由
自治系统边界路由器
骨干路由器
非骨干路由器
OSPF特殊区域
主要用于控制区域中的LSA数量,减小LSDB规模 注意:ospf骨干区域不能配置成特殊区域,只有非骨干区域才可以配置成特殊区域 在华为设备上,只要配置了NSSA区域,NSSA区域的ABR就会自动产生缺省路由的LSA7通告到NSSA区域中,因此在NSSA区域中会存在两条NSSA-LSA:一条是NSSA区域的ABR产生,FA地址为0;另一条是NSSA区域的ASBR产生,FA地址为非0
stub区域
不允许LSA5进入该区域,因此LSA4也不需要进入该区域 外部路由计算将受影响(外部路由掩码,开销,IP网段(LS-ID)) 为保证外部路由计算不受影响,此时STUB区域的ABR在收到外部路由网段时,虽然不会将LSA4与LSA5通告到stub区域,但会产生一条缺省(默认)路由到stub区域,保证stub区域内的设备可以访问外部网段,该缺省路由属于LSA3(缺省LSA3)。 须要在ABR的区域下配置,同时作为stub区域内的设备也需要配置
完全stub区域
不允许LSA5进入该区域,因此LSA4也不需要进入该区域,同时也不允许LSA3进入该区域 外部路由计算将受影响,同时区域间路由计算也会受影响 为保证外部路由与区域间路由计算不受影响,此时完全STUB区域的ABR在收到LSA3、LSA4、LSA5时,虽然不会将LSA3、LSA4与LSA5通告到完全stub区域,但会产生一条缺省(默认)路由到stub区域,保证stub区域内的设备可以访问外部网段与区域间网段,该缺省路由属于LSA3。
无论是stub区域内还是完全stub区域内,都不允许存在ASBR(在完全stub区域内、stub区域内无法引入外部路由)
NSSA区域
不允许LSA5直接进入该区域,因此LSA4也不需要进入该区域,但是LSA5能够以LSA7(NSSA-LSA)形式进入该区域 在该区域中,没有LSA5、LSA4但是有LSA7(相当于之过滤了LSA4)
路由计算
NSSA区域中允许ASBR存在,因此路由计算分为以下情况:
当ASBR在NSSA区域内,ASBR会将LSA5转换成LSA7进入该区域,同时为了保证其他区域也能够访问外部网段,NSSA区域的ABR会将LSA7再转成LSA5进入其他普通区域,此时NSSA区域内存在一个本身就是ASBR的设备,且NSSA区域的ABR也作为ASBR(将LSA7转换成LSA5)
当ASBR不在NSSA区域内,当NSSA区域的ABR收到LSA4、LSA5时,虽然并不会将LSA4与LSA5通告到NSSA区域,但会产生一条缺省路由到NSSA 区域,保证NSSA区域内的设备能够访问外部网段,该LSA为缺省路由LSA7。
完全NSSA区域
在普通NSSA区域基础上拒绝LSA3进入该区域
路由计算
完全NSSA区域的路由计算与NSSA区域相同
只是当ASBR不在NSSA区域内时,会在此基础上增加一条缺省路由的LSA3
OSPF状态机
主要用于描述OSPF协议运行过程
状态分类
down
设备启动了OSPF协议,但没有收到对端发送的hello,收到hello之后进入下一个状态
init
本端发送了hello报文,同时也收到了对端的hello报文,开始邻居初始化协商,邻居协商成功之后进入下一个状态
2-way
邻居初始化协商完成,完成邻居建立
进入2-way的条件
在收到对端的hello报文中找到了自己的router id,也是邻居建立完成的标志性事件。 设备状态进入2-way之后,如果须要建立邻接,则进入下一个状态,否则停留在此状态
Extart
标志邻接关系开始建立,开始发送DD报文,进入此状态意味着设备发送了第一个DD报文 该状态主要用于链路状态同步过程中的主从选举,选举完成之后进入下一个状态 该状态下发送的DD报文不携带LSA头部信息
Exchange
标志链路状态同步的开始,进入此状态意味着设备主从选举完成,设备已经发送了第二个DD报文 该状态下发送的DD报文会携带LSA头部信息,开始同步链路状态,同步完成后进入下一个状态 如果是主设备,完成链路状态同步之后直接进入full状态(因为主动开始发起同步),从设备会进入下一个状态。
Loading
标识链路信息开始同步,设备发送LSR、LSU、LSack报文,同步完成之后,设备进入下一个状态(从)
full
标志链路信息同步完成
OSPF路由之间的关系
邻居关系
只需要发送hello报文即可完成建立,设备之间也仅仅发送hello报文
邻接关系
须要发送DD报文、LSR报文、LSU报文、LSack报文,主要目的在于同步链路状态及详细链路信息,为路由计算做准备
场景
广播网络
只有DR-other(既不是DR也不是BDR)之间仅仅建立邻居关系即可
剩下的设备之间都要建立邻接
P2P、P2MP、V-LINK网络
设备之间都须要建立邻接
OSPF多区域
ospf支持多区域划分,不同区域维护不同的LSDB,路由计算也在各自的LSDB中完成计算,互不影响。
范围:0-2^32
部署规则
因为区域间采用矢量算法计算路由,存在环路问题,所以多区域规划须要满足以下部署规则
多区域网络中必须有骨干区域存在,单区域不要求
非骨干区域与骨干区域必须直连 ,该骨干区域必须能够正常运行(骨干区域中必须有活跃的端口宣告)
核心思想
水平分割原理
进入到非骨干区域的路由条目不能再从非骨干区域中出来 非骨干区域的路由器,没有路由信息的转发能力
OSPF虚连接
虚连接只需要再非骨干区域的ABR上配置即可,非骨干区域的ABR建立虚连接之后,相互之间就建立了逻辑的骨干区域(区域0),虚连接可以连续建立 一般情况下,不推荐使用虚连接部署多区域网络,因为虚连接会打乱路由计算过程,打乱网络拓扑,不利于后期网络维护
解决的问题
解决多区域部署过程中因为没有骨干区域存在导致路由无法计算的问题
解决多区域部署过程中因为非骨干与骨干无法直连导致路由无法计算的问题
解决多区域部署过程中因为骨干区域被分割导致路由无法计算的问题
核心思想
建立了虚连接的设备之间形成的网络类型叫虚连接网络,所谓虚连接网络其实就是一个逻辑上为区域0的骨干网络 将物理的非骨干网络强行转换成逻辑的骨干网络
在路由计算过程中
如果是物理骨干区域与物理非骨干区域之间计算,按照正常的计算过程即可实现
如果是物理非骨干区域与物理非骨干区域之间计算,则使用逻辑的区域0进行连接计算
OSPF认证
认证模式
两端密码保存方式不同不影响认证结果,只是在本设备上密码保存的方式不一样而已
不认证
简单认证
密码保存方式
加密保存
明文保存(默认)
加密认证
密码保存方式
加密保存(默认)
明文保存
认证内容
两种认证内容不能重叠,如果两种同时存在,以接口加密为准
接口加密
在接口下配置
区域加密
在区域下配置
OSPF报文通信地址
OSPF路由汇聚
ABR汇聚
只能在ABR上配置
ASBR汇聚
只能在ASBR上配置
OSPF缺省路由
手动产生
并不是手动配置静态缺省路由 而是在ASBR设备上通过default-route-advertise命令将缺省路由通告到普通OSPF区域 default-route-advertise命令:一般要求设备本地存在静态缺省路由才会生效;也可以添加always参数,强制性生成并通告
自动产生
特殊区域