OSPF总结
作者:互联网
Ospf:开放式最短路径优先协议
使用范围:IGP
协议算法:链路状态路由协议,SPF算法
基于IP协议封装
OSPF 特点
1.OSPF 是一种典型的链路状态型路由协议
2.传递信息称作LSA,LSA 链路状态通告,包含路由信息和拓扑信息。
路由LSA:描述本路由器上接口的路由信息
拓扑LSA:描述路由器之间的链接状态
3.更新方式: 触发更新+30分钟的链路状态刷新
4.更新地址: 组播和单播更新,组播地址: 224.0.0.5(ALL SPF router) 224.0.0.6(ALL DR router)
5.支持路由认证
6.支持手工汇总
7.支持区域划分
8.OSPF 比较消耗设备资源一个路由器上最多支持31个OSPF 进程
无类别链路状态路由协议–传递网络掩码
公有协议;
跨层封装到IP报头,协议号89;
触发更新、周期更新
2.Hello:用于邻居、邻接 发现、建立、保活 hello time 默认10s或30s
DBD:数据库描述包 ------主从选举DBD: 比较双方的router-id ,router-id大的一方为主(master ),小的一方为从 (slave);主用于控制LSA的交互
LSR:链路状态请求 —链路状态请求,按照DBD中报文的未知LSA头部进行请求。
LSU:链路状态更新 ----携带LSA信息
LSack:链路状态确认(30min);
Down:一旦本地发出hello包进入下一个状态
Init:初始化 收到的hello包若存在本地的RID进入下一个状态
2way:双向通讯 邻居关系建立的标志
条件匹配:点到点网络将直接进入下一个状态; MA网络类型将进行DR/BDR选举,非DR/BDR间将无法进入下一状态;
DR选举: 1.比较优先级 (范围:0255,默认优先级为1 ,越大越优)
2.比较各自的routerid,越大越优
注意:1.DR抢占是关闭的 2.DR是一个接口概念 3.优先级范围0-255,数字为0代表不参与选举 4.先 选举BDR ,再升级为DR
Exstart:预启动 使用类似hello的DBD进行主从关系的选举,RID大为主优选进入下一状态
主从选举:发生在exstart状态, 通过双方的router-id进行比较,router-id大的一方为主。 发送的 主从选举DBD,DBD中包含了MTU值(默认思科直接启用,华为中默认不包含MTU,可以使用命令 激活传递MTU值的功能,若双方的MTU值不值则卡在exstart 状态)。
Exchange 准交换 使用真正的DBD进行数据库目录的共享,需要使用ACK确认
Loading 加载 使用LSR/LSU/LSAck来获取未知的LSA信息;
Full转发 邻接关系建立的标志
LSA:链路状态通告,在不同的网络条件下将产生不同类别的LSA信息来代表拓扑或者路由条目;
LSDB:链路状态数据库 装载和存储所有各种类别的LSA;
3.OSPF的工作过程
OSPF协议启动后,A向本地所有启动了OSPF协议的直连接口组播224.00.5发送hello包;本地hello包中携带本地的全网唯一的router-id;
之后对端B运行OSPF协议的设备将回复hello包,该hello包中若携带了A的routerid,那么A/B建立为邻居关系;生成邻居表;
邻居关系建立后,邻居间进行条件匹配,匹配失败就停留于邻居关系,仅hello包周期保活;
条件匹配成功可以开始建立邻接关系:
邻接间共享DBD包,将本地和邻接的DBD包进行对比,查找到本地没有的LSA信息目录;
之后使用LSR来询问,对端使用LSU应答具体的LSA信息,之后本地再使用ack确认,可靠;
该过程完成后,生成数据库表;
再之后本地基于数据库表,启用SPF选路规则,计算到达所有未知网段的最短路径,然后加其加载到本地的路由表中;收敛完成,hello包周期保活,每30min再周期收发一次DBD来判断和邻接间数据库是否一致;
结构突变:
1)新增网段 直连新增网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
2)断开网段 直连断开网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
3)无法沟通 dead time 为hello time 的4倍;当dead time到时时,断开邻居关系,删除通过该邻接生成的路由协议;
Router-id : 路由器标识符,用于标识本路由器在OSPF网络中的唯一性
OSPF router-id 选举规则:
1.手工指定最优先
选举所有逻辑中IP地址最大的
3.选举所有物理接口IP 地址最大的 华为中: 若以上三点都不满足,则可以创建router-id 为0.0.0.0 ;在使用逻辑或物理接口IP地址时, 接口可以是关闭状态;若一台路由器启用了多个OSPF进程,不同进程可以使用相同router-id(不 推荐);
思科中:若以上三点都不满足,则无法启用OSPF;在使用逻辑或物理接口时,接口必须双 up ,该 接口可以不通过在OSPF中;同一路由器上多个OSPF进程必须router-id必须不同; 全局模式下可以选择针对所有的OSPF进程修改router-id ;(若同时在接口部署时,接口优先生效)
邻居关系建立的条件:
Hello包中邻居间必须完全一致的参数:任意参数不同,均导致邻居关系无法建立
子网掩码(华为)发送hello包接口的源ip地址其掩码
Hello dead time – OSPF接口网络类型相关
认证字段 – 更新安全
区域ID – 要求区域间存在ABR
5、末梢区域标记 --特殊区域
关于OSPF,DBD包的几个知识点:
1、DBD包中携带MTU值,要求邻居MTU值必须相同,否则将卡在exstart或exchange状态;
默认华为未开启MTU检测
2、隐性确认—不使用确认包,而是从设备复制主设备的序列号来确认收到了主的DBD
3.OSPF标记位 I M MS I为1本地发出的第一个DBD包
M为0,表示本地发出的最后一个DBD; MS为1代表主,为0代表从;
数据库建立后,本地基于SPF选路规则,计算到达未知网段最短路径加载于路由表中;
字母
Cisco
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
O 同一区域内,本地通过拓扑计算所得
O IA 域间路由,ABR通过其他区域的拓扑计算所得路由,然后共享到另一个区域;本地区域另一区域
O E1/2 域外路由 其他协议或其他进程产生后,通过ASBR重发布进入到OSPF协议
ON1/2 NSSA域外路由 其他协议或其他进程产生后,通过ASBR重发布进入到OSPF协议,同时学习到这条路由的设备处于ospf的一种NSSA的特殊区域中
管理距离(华为为优先级)
Cisco设备定义管理距离为110 在华为设备上优先级为10
度量(cost)
开销值 参考带宽/接口带宽 华为设备,环回接口不计算为一段路径;默认的参考带宽为1000M;
优选cost值之和最小路径;
区域的分类:
骨干区域: 区域标记为0或0.0.0.0
非骨干区域:区域标记不等于0或0.0.0.0
二、 OSPF协议邻居成为邻接关系的条件
在点到点网络中,所有的OSPF邻居将直接建立为邻接关系;
在MA网络中,为了避免大量的重复的LSA更新—因为OSPF需要邻接间进行DBD对比,故没有接口水分割机制;故必须进行DR/BDR选举,非DR/BDR间仅建立邻居关系;—在每一个MA网络中均需要进行一次选举;
选举规则:
优先级 数值大优,默认为1; 若为0为放弃选举;
优先级一致,比较参选接口所有设备的router-id,数值大优;
[r1-GigabitEthernet0/0/1]ospf dr-priority 2
修改参选接口的优先级
切记:DR选举非抢占 ,故在修改优先级后,必须重启参选设备ospf进程来重新选举
三.OSPF接口网络类型 –OSPF协议在不同网路类型的接口下,其不同的工作方式
接口网络类型 OSPF接口网络类型(ospf工作方式)
LoopBack 0. Cisco – LoopBack 没有hello包 以32位主机路由发送
华为—显示为p2p类型 实际为LoopBack工作方式
点到点
(串线HDLC/PPP/GRE) p2p. hello time10s 自动建邻 不选DR/BDR
BMA 以太网 Broadcast hello time 10s 自动建邻 选DR/BDR
NBMA 帧中继 nbma hello time 30s 手工建立邻居 选DR/BDR
MGRE p2p. hello time10s 自动建邻 不选DR/BDR –在一个网段中只能存在一个邻居;华为设备在一个MGRE网段,接口为点到点工
作方式时,仅和最先收到hello的设备建立邻居关系;
Cisco在这种情况将出现邻居的翻滚;
注:在MGRE环境中,接口默认的ospf工作方式为点到点,这种方式无法实现该NBMA网段的邻居全连;故只能去修改接口的工作方式:
修改MGRE网段所有接口为Broadcast工作方式,切记若一部分接口修改为Broadcast,另一部分接口依然保持为点到点,由于hello time相同可以建立邻居关系,但工作机制在DR/BDR选举处不同,故最终该网段无法正常收敛;
同时,必须关注网络拓扑结构;若该网段为全连网状结构,那么DR选举将正常进行;但若为部分网状或中心到站点拓扑,将可能出现DR位置错误问题;
若网络拓扑只能为部分网状或中心到站点,需要人为手工干预DR位置
或者将所有接口的工作方式修改为点到多点工作方式;
Ospf的点到多点工作方式:只能手工配置,适用于部分网状结构拓扑;
Hello time30s,不选DR/BDR,自动建立邻居关系;
四.OSPF的不规则区域
一台ABR设备若没有连接到骨干区域0,那么默认不得区域间路由的共享
远离了骨干的非骨干区域
不连续骨干
解决方案:
在合法与非法ABR上建立tunnel,然后将其宣告到ospf协议中
缺点:1、周期更新、保活,触发更新对中间穿越区域产生资源占用
2、选路不佳 -- 当ospf学习到两条相同目标,但不同区域同时过来时,优选骨干区域;
虚链路 — 在合法与非法ABR上建立虚链路,由合法ABR为非法ABR进行授权;
使得非法ABR可以进行区域间路由的共享;
因为并没有增添新的路径,故不存在选路不佳的问题
多进程双向重发布(推荐)
多进程— 同一台设备上,不同的进程可以工作在不同的接口上,建立各自的邻居关系,生成各自的数据库(不共享);仅将各自计算所得路由加载于同一张路由表内;一个接口只能被一个进程来宣告;
双向重发布,ASBR(自治系统边界路由器、协议边界路由器),将不同进程或不同协议产生的路由进行双向共享;
OSPF的LSA是1800会更新一次更新一次序列号会加一
LSA的新旧比较
1、会先比较序列号,序列号越大越优,
2、如果序列号相同,会比较校验值(checksum)越大越优
3、如果校验值也相同,会比较LSA Age时间,是否等于MAX-age时间(3600)
4、如果age时间不等于max-age时间,会比较他们的差值,如果差值大15分钟(900秒),小的优
5、如果age时间不等于max-age时间,会比较他们的差值,如果差值小于15分钟,说明是同一条LSA,忽略其中一条
什么情况下LSA会更新:
1、1800到期会周期更新
2、触发更新(接口地址变化(增加,或删除),修改接口开销值,删除接口,或者删除通告)
类别名 传播范围 通告者 携带的信息
1类LSA-router 本区域内 本区域内的每台路由器 该区域每台设备的直连拓扑
2类LSA-Network 本区域内 该网段的DR 该网段的拓扑
3类LSA-summary 整个OSPF域 ABR O IA 域间路由
4类LSA-asbr 除ASBR所在区域外的 ABR ASBR的位置
整个ospf域;ASBR所在区域使用
1类标记位置
5类LSA-ase 整个OSPF域 ASBR O E 域外路由
类别名 link-id 通告者
1类LSA-router 通告者的RID 本区域内的每台路由器
2类LSA-Network DR接口的ip地址 每个MA网段中的DR
3类LSA-summary 域间路由的目标网络号 ABR,在经过下一台ABR时,修改为新的ABR
4类LSA-asbr ASBR的RID ABR,在经过下一台ABR时,修改为新的ABR
5类LSA-ase 域外路由的目标网络号 ASBR 在ospf内部传递时不变
OSPF的LSA优化—减少LSA更新量
汇总 – 减少骨干区域的LSA数量 – 前提要求网络存在合理的地址规划
特殊区域 – 减少各个非骨干区域的LSA数量
FA: 转发地址,当5类或7类LSA中携带了FA地址,则计算路径开销值时计算的是当前路由器到 达FA地址的开销值之和+种子度量值。(若FA地址不可达,则路由不能加表)
FA 地址:
1.默认7类LSA 产生FA地址,5类LSA不产生的(7转5 的5类LSA 携带FA地址 )
2.7类LSA 产生规则:默认产生的FA地址为产生7类LSA 的ASBR 最大的环回接口地址 ;若连接
其他协议的接口也运行了OSPF协议,网络类型为BMA,则产生的7类LSA中FA地址为连接其他 接口对应的下一跳地址;若网络类型为P2P,则FA地址依然为环回接口中IP地址最大的 3.5类LSA FA地址规则: 默认不产生,若连接其他协议的接口运行了OSPF 协议并且网络类型 为BMA则FA地址为重发布之前路由的下一跳地址,若网络类型为P2P,则不会产生FA地址。
汇总
域间路由汇总—ABR将本地直连的A区域1/2类LSA计算所得路由,再通过3类LSA共享到其它本地所直连的B区域时;
[r1]ospf 1
[r1-ospf-1]area 1 明细路由所在区域
[r1-ospf-1-area-0.0.0.1]abr-summary 3.3.2.0 255.255.254.0
域外路由汇总—在ASBR上操作,将5类/7类LSA向OSPF发布时进行汇总;
[r2]ospf 1
[r2-ospf-1]asbr-summary 99.1.0.0 255.255.252.0
注:切记华为设备默认设备不会在进行汇总配置的设备上,自动生成空接口防环路由;
特殊区域:
1.不得出现 4 5类LSA ,stub区域不能进行重发布,不能存ASBR stub
2.区域边界ABR会自动产生3类缺省LSA,保证stub区域路由器与外网保持通信。
3.stub区域不能使用虚链路
4.stub区域不能为骨干区域
5.若设置stub区域,存在该区域的所有路由器都必须设置
特殊区域 不能是骨干区域,不能存在虚链路;
同时不存在ASBR
1)末梢区域—该区域拒绝4/5的LSA进入;由该区域连接骨干区域的ABR设备,向区域内发送一条3类的缺省路由;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub
注:该区域内所有设备均需要定义,否则无法建立邻居关系;
2)完全末梢区域,在末梢区域的基础上进一步拒绝3类的LSA;仅保留一条3类的缺省路由;
先将该区域配置为末梢区域,然后仅在ABR上定义完全末梢即可;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub no-summary
同时存在ASBR
NSSA 非完全末梢区域—拒绝非本区域内部产生4/5LSA,本区域ASBR产生的5类将通过7类LSA传输,到达ABR处进入骨干区域时,由7类转换回5类;
在cisco设备中为了避免环路的出现,OSPF协议在NSSA区域配置完成后,不会自动产生缺省路由;而是由管理员在缺省网络无环的前提下,手工添加;
在华为的设备中让由该区域连接骨干0的ABR自动下发一下7类缺省;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]nssa
注:该区域内所有设备均需要定义,否则无法建立邻居关系;
完全NSSA – 完全的非完全末梢区域;在普通NSSA的基础上,近一步拒绝3类的LSA,由ABR产生一条3类缺省
先将该区域配置为普通的NSSA,然后仅在ABR上定义完全NSSA即可
1.过滤4 5 类LSA
2.边界ABR自动产生7类缺省LSA (默认度量值为1)
3.允许进行重发布(运行出现ASBR),产生7类LSA
查看默认产生7类缺省LSA
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]nssa no-summary
特别注意事项:
由于特殊区域将自动产生缺省路由,指向骨干;故ISP所连接的位置很关键,否则将可能与特殊区域产生的缺省路由互为环路;要求ISP所在位置的OSPF区域不要做任何特殊区域配置;
完全的末节区域: 在stub区域基础上,由ABR过滤所有的3类LSA,只保3类缺省LSA ; 在ABR上过滤3类LSA:
NSSA区域:(not so stub area) 非完全末节区域
1.过滤4 5 类LSA
2.边界ABR自动产生7类缺省LSA (默认度量值为1) 允许进行重发布(运行出现ASBR),产生7类LSA 查看默认产生7类缺省LSA :
3.完全的非完全的末节区域:
在NSSA区域的基础上继续过滤3类LSA,产生3类缺省LSA的
4.3类LSA汇总:
位置: 产生该3类LSA 的路由器上
度量值:所有明细路由中metric最大的
5.5类LSA 汇总:
位置:产生该LSA的ASBR上
6.7类LSA 汇总:
位置: 产生该LSA的ASBR上
7.7转5过程中汇总:
位置:7转5 的ASBR 上
标签:总结,LSA,接口,ABR,区域,OSPF,路由 来源: https://blog.csdn.net/weixin_43774619/article/details/110443237