OSPF的知识点总结及其扩展
作者:互联网
OSPF:开放式最短路径优先协议
无类别链路状态型IGP协议;由于其基于拓扑进行更新收敛,故更新量会随着拓扑的变大而成指数上升;故OSPF协议为了能在大、中型网络中运行,需要结构化的部署----合理的区域划分、良好的地址规划 正常等开销负载均衡; 跨层封装协议,协议号89;
组播更新 224.0.0.5 224.0.0.6 触发更新+周期更新(30min)
OSPF的五种数据包:
hello包 -- 组播收发,用于邻居、邻接关系的发现、建立、周期保活
DBD -- 数据库描述包-- 本地LSDB(链路状态数据库)目录
LSR---链路状态请求 -- 用于询问对端本地未知的LSA信息
LSU-- 链路状态更新 -- 用于共享具体的每一条LSA信息
LSack 链路状态确认 -- 确认包
OSPF的状态机(8种):
Down 一旦接收到对端的hello包进入下一个状态
Init 初始化 若接收到的hello包中存在本地的RID,那么进入下一个状态机
2way 双向通讯 邻居关系建立的标志
条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举,非DR/BDR之间不能进入下一个状态机;
Exstart预启动 使用不携带数据库目录信息的DBD包,进行主从关系的选举,RID数值大为主,优先进入下一个状态机
exchange准交换 使用携带数据库目录信息的DBD包,进行目录共享,需要ACK确认
loading加载 接收到其他邻接的目录信息后,和本地进行比对,若本地存在未知的LSA信息,将使用LSR询问对端,对端使用LSU来更新这些LSA信息,直至双方数据库一致;
LSU需要ACK确认;
Full 转发 标志着邻接关系已经建立;
补充:
1)在MA网络中(进行DR/BDR选举)存在7种状态机
init是路由器A收到邻居B的hello包,但该hello包中没有A的RID;
2)在点到点网络init状态机在判断可以建立邻居后,直接进入exstart状态机;没有2way状态机----6种状态机
在点到点网络实际仅存在邻接关系;在MA网络(选举DR/BDR)网络中存在邻居和邻接关系;
3)若邻接间的数据库默认一致,将不需要进入loading状态机;
4)在hello时间较大时,比如p2mp和nbma工作方式,默认hello time为30s;
hello包收发的间隔较大,从down状态到init需要很长时间的等待,故在两种状态机,存在一个尝试状态机;
5)华为设备中ospf存在加速建邻机制--- 在两台路由器进行过一次邻接关系建立后,双方存在对端的缓存信息后;二次建邻时将快速完成状态机的切换;--前提是缓存未删除---认证或拥塞
6)在hello包存活时间为30s时,双方建立邻居关系等待时间较长时,会进入一个状态Attempt
OSPF的工作过程:
路由器上启动OSPF协议后,直连的邻居间,开始组播收发hello包,hello包中将存储本地已知邻居的RID,在双方RID均已知的情况下,建立邻居关系,生成邻居表;
邻居关系建立后,邻居间将进行条件匹配,匹配失败将停留为邻居关系,仅hello周期保活即可;匹配成功者间将进行邻接关系的建立;
邻接关系间的路由器,将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息;使得同一区域内所有路由器的数据库完全一致;---- 数据库表;
当本地数据库完成同步后,将数据库-->有向图-->树型结构图-->将本地到达所有未知网段的最短路径加载于本地路由表中;
收敛完成,仅hello包周期保活即可;正常每30min,邻接关系间再进行一次DBD的对比,若一致及正常;若不一致将马上进行同步;
结构突变:触发更新
- 断开网段 直连断开网段的设备,直接使用LSU告知邻接,需确认
- 新增网段 直连新增网段的设备,直接使用LSU告知邻接,需确认
- 无法沟通 hello time 对应的 dead time ;dead time 到时时,断开邻居关系,去除基于该邻接共享的LSA计算所得路由;
关于OSPF协议从邻居建立成为邻接的条件:
根据网络类型决定
在点到点网络中,所有的邻居关系必然成为邻接关系
在MA网络中从邻居到邻接前将利用一个周期的dead time;进行DR/BDR选举;
先比较这些参选接口的优先级,默认1,取值范围0-255;越大越好,0标识不参选;
DR优先级最大,BDR次大;选举非抢占,故若希望干涉选举,需要重启ospf进程,或者将非DR/BDR修改为0;
[r2]interface GigabitEthernet 0/0/1
[r2-GigabitEthernet0/0/1]ospf dr-priority 3 修改优先级
重启进程
reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
非DR/BDR间为邻居关系;
OSPF的接口网络类型
网络类型 ospf接口网络类型
LoopBack P2P(LoopBack) 无hello 环回使用32位主机路由
点到点 (PPP/HDLC/GRE)P2P 10s hello time 不选DR/BDR
BMA (以太网) Broadcast 10s hello time 选DR/BDR
NBMA (MGRE) P2P
在tunnel接口上,ospf的默认工作方式为P2P,这种工作方式,只能建立一个邻居关系,故在MGRE环境中将无法正常工作;
修改接口的默认工作方式:
切记:一个网段中所有接口的ospf工作方式必须一致;否则将无法建立邻居关系,或者因为不同工作方式的hello time一样,错误建邻,无法收敛;
当MGRE环境中,使用OSPF,且所有tunnel接口修改为broadcast工作方式后,必须基于拓扑接口考虑DR位置问题
MGRE可以构建不同的拓扑结构:
- 星型--中心到站点--轴辐状 中心站点为DR,取消BDR
- 全连网状 --- 不需要再关注DR
- 部分网状 --- 基于能够全网段内正常共享LSA来考虑最佳的DR位置
关于OSPF的不规则区域问题:
- 远离骨干的非骨干
- 不连续骨干
解决方案:
- tunnel 在骨干区域与非法ABR间建立一条隧道,之后将该隧道链路宣告到OSPF协议中
缺点:
周期的hello与更新,包括触发更新,将一致占用中间穿越区域;
选路不佳
2.OSPF的虚链路
由非法ABR设备,通过直连区域的合法ABR进行授权,来转发路由
由于没有新增链路,故不存在选路不佳问题
[r2]ospf 1
[r2-ospf-1]area 1 两台ABR间的直连区域(同时处于该区域)
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID
[r2]display ospf vlink
缺点:虚链路上的两台ABR间的周期资源占用问题;
- 在思科中,取消两台设备的周期行为,hello、更新均收发一次;--不可靠
- 在华为中,保留周期--占资源
3.多进程双向重发布;
ospf多进程:一台路由器上的多个进程,每个进程拥有自己的数据库,独立计算路由条目,且计算所有不共享;最终将所有最佳路径加载于同一张路由表内;
路由器的一个接口只能工作在一个进程中;
可用于解决不规则区域,将不规则位置工作不同的进程中,实现分开,之后利用重发布技术来共享路由表; 解决了选路不佳和资源占用的问题
[r4]ospf 1
[r4-ospf-1]import-route ospf 2
[r4-ospf-1]q
[r4]ospf 2
[r4-ospf-2]import-route ospf 1
OSPF的数据库表:
所有类别LSA均携带的信息
Type : Router 类别名 此处为1类
Ls id : 2.2.2.2 link-id 在目录中的页码号
Adv rtr : 2.2.2.2 通告者,该条LSA发出起源设备的RID
Ls age : 1255 老化时间,正常1800s周期归0,触发归0;最大老化3609s
Len : 48 长度
Options : ABR E
seq# : 80000016 序列号
chksum : 0x4baa 校验和码
LSA类别 传播范围 通告者 携带信息
LSA1 Router 单区域,本地所在区域 单区域内的所有路由器 本地直连拓扑
LSA2 Network 单区域,本地所在区域 DR 单个MA网段的拓扑
LSA3summary 整个OSPF域 ABR 域间路由条目
LSA4 asbr 除ASBR所在区域外的 与ASBR在一个区域 ASBR所在位置
整个ospf域 直连区域0的ABR
ASBR所在区域基于1类获取ASBR位置
LSA5 ase 整个OSPF域 ASBR 域外路由条目
LSA7 nssa 单个NSSA区域 ASBR 域外路由条目
LSA类别 link-id 通告者
LSA1 Router 通告者的RID 单区域内的所有路由器
LSA2 Network DR接口的ip地址 每个MA网段内的DR
LSA3summary 域间路由的目标网络号 ABR,在经过下一台ABR时,修改
LSA4 asbr ASBR的RID ABR,在经过下一台ABR时,修改
LSA5 ase 域外路由的目标网络号 ASBR
LSA7 nssa 域外路由的目标网络号 ASBR
OSPF优化--减少LSA的更新量:
- 汇总 --- 减少骨干区域的路由条目数量
- 特殊区域-- 减少非骨干区域的路由条目数量
【1】汇总--OSPF协议不支持接口汇总,在一个区域内,邻接间传递的是拓扑信息,不能进行汇总;故只能在交互路由的边界设备进行汇总
- 域间路由汇总--在区域间的ABR上,交互区域间路由条目时进行汇总配置
[r2]ospf 1
[r2-ospf-1]area 1 本地通过该区域1/2类LSA计算所得路由,可以汇总后传递给其他区域
[r2-ospf-1-area-0.0.0.1]abr-summary 3.3.0.0 255.255.252.0
- 域外路由汇总---ASBR在将外部的路由条目通过重发布协议,共享到OSPF协议中时;
可以进行汇总
[r4]ospf 1
[r4-ospf-1]asbr-summary 99.1.0.0 255.255.252.0
【2】 特殊区域 -- 用于减少各个非骨干区域的LSA数量
不能为骨干区域,不能配置虚链路
[1] 同时不能存在ASBR
- 末梢区域--拒绝4/5类的LSA;由该区域连接骨干区域的ABR向该区域发布一条3类的缺省
[r2]ospf 1
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]stub
注:该区域内的所有路由器均需配置该命令
- 完全末梢区域 在末梢区域的基础上,进一步拒绝3类的LSA;仅保留一条3类的缺省路由
先将整个区域所有路由器配置为末梢区域;然后仅再在连接骨干区域的ABR上配置完全即可
[r2]ospf 1
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]stub no-summary
[2] 存在ASBR
- NSSA 非完全末梢区域 -- 该区域将拒绝4/5类LSA,由该区域连接骨干区域的ABR向该区域发布一条7类的缺省路由;该区域内的ASBR导入域外路由时,基于7类导入,之后通过该区域连接骨干的ABR传递到骨干区域时,转换为5类进入骨干区域;
NSSA设计的重点,不是减少该区域内ASBR产生的域外路由,而是网络中其他部分的ASBR产生的域外路由;
[r2]ospf 1
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]nssa 本区域内部所有设备均需配置
- 完成NSSA --- 在NSSA的基础上,进一步拒绝3类LSA的进入,由该区域连接骨干区域的ABR向该区域发布一条3类的缺省
先将该区域配置为NSSA区域,之后仅在该区域连接骨干的ABR上配置完全即可
[r2]ospf 1
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]nssa no-summary
切记:NSSA和完全NSSA的工作环境,需要考虑ISP(运营商)所在位置,否则可能导致环路出现
OSPF的扩展:
关于OSPF的DBD包--- 排序问题(隐性确认问题)
首先在exstart状态机,邻接设备间会使用不携带LSA头部信息的DBD包进行主从关系的选举,该选举的作用决定了那台设备优先进入exchange状态机的顺序;
同时在exchange状态时,邻接间将收发携带LSA头部信息的DBD包;可能由于LSA头部信息较多,将多次收发DBD,也需要进行排序;
所以主优先进入exchange,主在exchange优先发送DBD,在发送一个DBD后,需要接收到对端的DBD后,才能发出下一个DBD;目的在于避免两端同时发送携带LSA的DBD报头,导致链路拥塞; 故为了顺序正常,DBD需要进行隐性确认;
隐性确认:
从在收到主的DBD包后,复制该DBD包的序列号回复DBD;
在主或从未完成所有LSA头部信息的共享前,对端设备需要使用空包(不携带LSA信息,但复制了对端序列号的DBD)来完成确认;
隐性确认可以让ospf协议在exchange状态机取消ACK的确认;
DBD报头中存在标记位来告知邻接,是不是本地第一个DBD和最后一个DBD,同时标记主从关系;
I 为1 标识本地第一个DBD M位为一标识不是本地最后一个DBD
MS 位为1标识主,为0标识从; 第一次收发的DBD两端均人为是主;
DBD包中将携带接口的MTU值,两端MTU不一致将卡在exstart或exchange状态机;
默认华为不检测接口的MTU;
[r7]interface GigabitEthernet 0/0/1
[r7-GigabitEthernet0/0/1]ospf mtu-enable 开启接口mtu检测
「2」附录E --- link-id相同的问题
若一台ABR将两条3类LSA导入其他区域;同时这两条LSA的link-id会相同;
假设:短掩码网段先进入,link-id正常显示;长掩码进入时link-id加反掩码
20.1.0.0/16--link-id 20.1.0.0
20.1.0.0/24--link-id 20.1.0.255
若长掩码先进入,再短掩码进入时,长掩码的信息被刷新为反掩码;
「3」OSPF选路规则
- AD(管理距离,优先级)无关的一种情况:
r2(config)#router ospf 1
r2(config-router)#distance 109 1.1.1.1 0.0.0.0
本地从RID为1.1.1.1的设备处学习到路由条目,管理距离修改109;
一台路由器从两个OSPF邻居处学习到了两条相同的路由时,仅比较度量值,不关注管理距离;因为仅针对一台邻居进行管理距离修改的结果是要么两台都被改,要么修改失败;-关注IOS版本---有时修改RID大路由器管理距离生效,有时需要修改RID小的设备;
- AD(管理距离)无关的第二种情况 O IA 3类
O IA 与 O IA路由相遇,到达相同目标的两条3类路由,这两条路由均通过非骨干传递,仅关注cost值,不关注管理距离;
若一条通过骨干区域传递,另一条同过非骨干区域传递--非骨干传递的路由无效
OSPF的区域水平分割:区域标号为A的3类LSA,不能回到区域A;避免环路产生
先比类型(5/7的LSA才存在类型)-à 区域(骨干优于非骨干)àcost(小优)
- OE 与OE E为5类 N 为7类 默认所有重发布进入路由条目均为类型2,类型2在路由表中cost值不会显示沿途的累加,仅显示起始度量;
两条均为OE2或者均为N2,起始度量相同; 关注沿途的累加度量 (OE2路由在表中度量默认不显示内部度量,仅显示起始度量)
两条均为OE2或者均为N2,起始度量不同;优先起始度量小的路径;
注:以上设计是便于管理员快速干涉选路;
OE1路由仅比较总度量(起始度量+沿途累加),仅修改起始度量不一定能干涉选路,必须在修改后使得总度量产生区别才能干涉选路;
OSPF优选路径总结:
拓扑优于路由 1/2LSA计算所得路由优于3/4/5/7类计算所得
内部优于外部 3类优于4/5/7类
类型1优于类型2 E1优于E2,N1优于N2,E1优于N2,N1优于E2;
E1与N1相遇,或E2与N2相遇,先比总度量(起始+沿途)小优;度量一致5类优于7类
同一路由本地基于骨干区域和非骨干均学习到,不比较度量,直接优选骨干--非骨干传递的路由无效
OSPF的区域水平分割:区域标号为A的3类LSA,不能回到区域A;避免环路产生
【4】FA-转发地址
正常OSPF区域收到的5类LSA不存在FA值;
产生FA的条件:
1、5类LSA ---- 假设R2为ASBR,g0/0口工作的OSPF中,g0/1口工作在非ospf协议或不同ospf进程中;若g0/1也同时宣告在和g0/0相同的OSPF进程中,同时该接口的工作方式为广播型;
将在5类LSA中出现FA地址,地址为R2连接R3网段中R3的接口ip;
2、7类LSA---必然出现FA地址
假设R9为ASBR,S0/0口工作的OSPF中,S0/1口工作在非ospf协议或不同进程中;
S0/1未运行OSPF--FA地址为R9上最后宣告的环回地址(个别IOS也可能是最大环回接口ip地址),若R9没有环回接口;FA地址为R9上最后宣告的物理接口地址(个别IOS也可能是最大的物理接口ip地址)
R9的S0/1也工作OSPF协议中,S0/1接口工作方式为广播,那么FA地址为R10接口ip;
S0/1的工作方式为点到点,那么FA地址为R9的s0/1口ip
切记:在FA地址出现后,4类LSA无效;人为过滤掉4类LSA,依然可达域外;
当4类LSA存在,却人为过滤了到达FA地址的路由,那么将无法访问域外;
一旦出现FA地址,所有的选路计算均基于FA地址进行;
1、针对存在FA的5/7类路由,4类LSA无意义,仅递归到FA地址;若FA地址被策略过滤导致不可达;
2、路由表中的度量是到FA地址的度量,不是到ASBR的度量;
【5】NP位+E位 P位被加密,故抓包时看不见P位;
正常NSSA区域内的1类LSA中,N=1 E=0 标识该区域转发7类LSA,不转发5类
非NSSA区域E=1 N=0 标识可以转发5类,不能转发7类
P位为1,标识该区域将执行7类转5类; P为0,不能7转5;
区域0连接到两个非骨干区域,这两个非骨干假设为区域1和区域2;区域1/2同时连接同一个外部协议,且同时进行了重发布配置;区域1为NSSA区域,区域2为非NSSA区域;那么此时的区域1,P位=0不能进行7转5;故骨干区域只能收到从区域2来的外部路由;
若NSSA和非NSSA均将同一条域外路由向内部传递,仅非NSSA区域可以实现;
若区域1和区域2均为NSSA区域,那么ABR的RID大区域进行7转5,另一个区域不转,
故同一条域外路由,骨干区域只能收到从一个NSSA区域传递的外部路由;若以上条件中,两个区域均为非NSSA区域,那么P位无效,故两个区域的路由均回进入骨干区域;
【6】SFP算法 –OSPF防环机制
- 在同一个区域每台路由具有一致的LSDB
- 每台路由器以自己为根计算到达每个目标的最短路径(最小cost值)
- 必须区域划分--
优势-1)域间汇总减少路由条目数量
- 汇总路由是在所有明细路由均消失后才删除,网络更稳定
- 区域划分后不同类别的LSA传播范围不同,控制更新量
总结:观看OSPF防环文档
过程--基于本地LSDB(1/2类LSA)生成--生成有向图--基于有向图来进行最短路径树生成
最短路径树,关注本地LINK-ID的LSA开始--》基于该LSA内提及到点到点或传输网络信息再查看link-id递归到下一条信息;基于所有点到点和传输网络信息生成最短路径树主干;
然后用树中每台设备的末梢网络信息补充路由表,完成收敛;
标签:知识点,LSA,--,OSPF,扩展,区域,ospf,路由 来源: https://blog.csdn.net/HiCAIJI/article/details/122630858