2021-01-25

OSPF介绍

OSPF:开放式最短路径优先协议
无类别(携带掩码)链路状态(基于拓扑)型IGP(AS内部)协议
存在更新量大的问题,为了能在中大型网络生存,进行结构化的部署,因而存在区域划分、地址规划,触发更新,每30min周期更新;组播更新—224.0.0.5—all ospf 224.0.0.6—DR/BDR
存在V1-V3 目前通用V2; V3是IPV6使用;
跨层封装3层报头,协议号89;支持等开销负载均衡;

一、OSPF的数据包类型
OSPF数据包的头部结构
跨层封装到IP报头,协议号89;
存在5个类型的数据包:
1)Hello 组播周期发送,用于邻居、邻接关系的发现、建立、周期保活;
在hello包中存在本地已知邻居的RID,用于保活这些邻居; hello time 10s或者 30s
Dead time 为hello time 的4倍;
2)DBD:数据库描述包
3)LSR 链路状态请求
4)LSU 链路状态更新 --携带具体的LSA信息
5)LSack 链路状态确认

二、状态机
Down 一旦接收到hello包,进入下一个状态机
Init 初始化 接收到的hello包中,若存在本地的RID,进入下一个状态
2way 双向通讯 邻居关系建立的标志
条件匹配:

Exstart 预启动: 使用不携带信息的DBD包进行主从关系选举,RID数值大为主,优先进入
下一个状态机;
Exchange准交换:使用DBD进行数据库目录的共享,需要ACK确认;
Loading加载:基于对端的数据库目录,对照本地,然后使用LSR来获取未知的LSA信息;
对端使用LSU来共享LSA,需要ACK确认;
Full转发:邻接关系建立的标志

三、OSPF的工作过程
启动配置完成后,邻居间组播收发hello包,建立邻居关系;生成邻居表:
之后进行条件的匹配,匹配失败的邻居将保持为邻居关系,仅hello包周期保活即可;
匹配成功的邻居间,将进行邻接关系的建立;过程中先使用DBD进行目录交互,在使用LSR/LSU/LSack来获取本地未知的LSA信息;最终完成邻接关系间的LSDB同步;生成数据库表;再然后,本地基于LSDB,生成有向图—>树型结构—>最短选路 SPF算法
基于树形结构计算本地到达所有未知网段的最短路径,然后将其加载到路由表中;
收敛完成,hello包周期保活;每30min邻居间再周期比对DBD包;
结构突变:
1、新增网段 –直连新增网段的设备,直接使用更新包告知本地的所有的邻接
2、断开网段 -直连断开网段的设备,直接使用更新包告知本地的所有的邻接
3、无法沟通 -dead time倒计时结束后,邻居间断开关系,删除信息;

相关名词:
LSA 链路状态通告,在不同环境下产生不同的拓扑或路由,一条信息为一个LSA
LSDB 链路状态数据库 整个网络LSA的集合
LSDB同步 OSPF的收敛行为,整个网络LSDB需要一致
LSA洪泛 OSPF的收敛行为,需要整个网络接收到同一条LSA

四、OSPF的基础配置
[r1]ospf 1 router-id 1.1.1.1 启动时需要定义进程号,仅具有本地意义
建议配置RID—全网唯一—手工配置—本地环回接口最大数值—物理接口最大数值
[r1-ospf-1]area 0 进入对应的区域进行宣告
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0

OSPF的区域划分规则:
1、星型拓扑—非骨干区域需要连接骨干区域
2、必须存在ABR—区域边界路由器—区域间必须存在一个边界设备

启动配置完成后,邻居间收发hello包,建立邻居关系,生成邻居表:
邻居间在进行邻居关系建立时,hello包有几个参数必须完全一致,否则无法建立邻居关系:
Hello time和dead time 区域ID(ABR) 认证字段 末梢区域标记
华为设备还要求邻居间建立邻居的接口ip地址子网掩码必须一致
[r2]display ospf peer 查看邻居表
[r2]display ospf peer brief 查看邻居表的简表
邻居关系建立后,进行条件的匹配;匹配失败将保持为邻居关系,仅hello包周期保活;
匹配成功将可以建立为邻接关系:
首先使用DBD进行主从关系选举,在使用DBD进行数据库目录的交互:
关于DBD包的几个参数:
1、MTU OSPF协议会在DBD包中携带与邻居直连接口的MTU值;要求邻居的MTU值必须完全一致,否则将卡在exstart状态机;默认华为设备间不检测这个MTU值;
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable 在于邻居间直连的接口上开启MTU检测;若一端开启,另一端也必须开启;
2、隐性确认 一台设备使用和另一台设备一样的序列号来确认对端的数据 OSPF中从来对主进行隐性确认;
3、描述字段 I为1标识本地发出的第一个DBD M为0本地发出的最后一个DBD MS 为1代表主 S为0代表从

在使用DBD相互交互完数据库目录后,再使用LSR/LSU/LSack来获取未知的LSA信息;
最终实现所有设备的LSDB一致;生成数据库表:
display ospf lsdb 查看数据库表

当数据库同步完成后,OSPF将基于本地的LSDB,计算为有向图—>树型结构—>最短路径加载于路由表中:
华为设备优先级默认10;
display ospf routing 查看本地所有与OSPF相关路由,发出+接收的
度量为cost值=开销值=参考带宽/接口带宽
OSPF选择整段路径cost值之和最小为最短路径;默认参考带宽100M
若接口带宽大于参考带宽,cost值为1;可能导致选路不佳
可以修改设备的参考带宽:
[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000
切记:若进行修改,整个网络中所有设备需要修改为一致;

五、OSPF从邻居关系建立为邻接关系的条件
关注网络类型
1、点到点网络 邻居正常必然成为邻接关系
2、MA网络中 由于OSPF不支持接口的水平分割;故若两两设备间均为邻接关系,将导致大量的重复更新;因此必须进行DR/BDR选举,DR/BDR使用组播224.0.0.6;
在该网段内的非DR/BDR设备间只能建立为邻居关系;
选举规则:先比较参选接口的优先级0-255 数值大优,为0标识不参选
默认为1;若优先级相同,比较参选设备的RID值,数值大优;
修改接口优先级可以干涉选举:
[r1-GigabitEthernet0/0/1]ospf dr-priority 2 参选接口修改优先级
注:DR选举为非抢占行为;故修改优先级需要重启的OSPF进程
reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y

六、ospf的接口网络类型 – ospf的协议在不同网路类型的接口上,其工作方式不同
display ospf interface GigabitEthernet 0/0/1 查看OSPF协议在该接口的工作方式
网络类型 ospf的工作方式
LoopBack 显示P-2-P,实际为环回专用工作方式 无hello包 32位主机路由传递
点到点(串线HDLC/PPP) P-2-P hello time10s 不选DR 自接建立邻居关系
BMA(以太网) Broadcast hello time 10s 选DR/BDR
NBAM(MGRE) 默认接口工作方式为p2p,该工作方式仅允许建立一个邻居关系;
导致在MGRE环境中无法建立所有的邻居关系;
可以通过修改接口的工作方式来解决:
修改所有接口的工作访问broadcast
[r1-Tunnel0/0/0]ospf network-type broadcast
切记:在MGRE环境下,若一个网段的部分接口修改为broadcast,其他依然为点到点;由于建邻的条件匹配,故可以建立邻居关系;但broadcast需要DR,点到点不需要,所以最终不能正常收敛;需要该网段所有节点均为broadcast;

拓扑结构:
中心到站点(轴辐状-星型结构) DR必须定在中心站点,没有BDR
部分网状结构 基于实际环境关注是否固定DR;
全连网状结构 — DR/BDR选举正常

七.OSPF的不规则区域
1)远离了骨干的非骨干区域
2)不连续骨干区域—本地学习到来自区域x的路由后,不得共享到X区域
解决方案:
1、普通GRE,tunnel 隧道
在合法与非法ABR间使用tunnel建立一条新的逻辑链路;之后将该链路宣告到OSPF协议中
缺点:
1)周期的OSPF进行需要实际通过中间区域进行传递,大大增加中间区域的资源占用
2)选路不佳—ospf设备接收到两条去往同一网段的路由时,先关注两条路由获取的区域ID;骨干区域优于非骨干

2、OSPF的虚链路技术
由合法的ABR对非法ABR进行授权,之后非法ABR可以进行区域间路由共享
[r2-ospf-1]area 1 进入穿越区域
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID;

优点:没有建立新的通道,不存在选路不佳问题;
缺点:1、两台ABR设备间的周期信息,依然对中间照成影响—华为
2、两台ABR设备间不保活,无周期信息;即可不可靠—cisco

3、多进程双向重发布—最佳方案
重发布:多协议间利用ASBR(自治系统边界路由器、协议边界路由器)
多进程:在一台设备上若同时启动多个OSPF进程,不同的进程将宣告不同的接口,拥有各自的数据库,且不共享;仅将计算所得路由加载于同一张路由表中;

在非法ABR处,将不同区域的接口宣告到不同进程中,形成独立的数据库;之后使用重发布技术来实现路由共享,全网可达;不担心选路问题,资源占用问题;
[r4-ospf-1]import-route ospf 2
[r4-ospf-2]import-route ospf 1

八.OSPF的数据库表
[r1]display ospf lsdb 查看数据库目录

[r1]display ospf lsdb router 1.1.1.1 详细查看该条目的信息
类别名 link-id(页码)
OSPF Process 1 with Router ID 1.1.1.1
Area: 0.0.0.0
Link State Database
以下信息为所有条目均拥有信息
Type : Router 类别名
Ls id : 1.1.1.1 link-id(页码)
Adv rtr : 1.1.1.1 通告者的RID,来源
Ls age : 723 老化时间,1秒加1;1800s周期归0,触发当下归0,最大老化3609
Len : 48 长度
Options : E 标记位
seq# : 80000016 序列号
chksum : 0x6d96 校验盒码

OSPF协议在不同的环境下,使用不同类别的LSA来传输路由或拓扑信息;

类别 传播范围 通告者 携带信息
1 Router 单区域 该区域每台路由器 本地直连拓扑
2 Network 单区域 DR 单个MA网段的拓扑
3 summary 整个OSPF的域 ABR 域间路由(其他区域的路由)
4 asbr 除ASBR所在区域外 ABR ASBR的位置
整个OSPF的域
ASBR所在区域,通过1类告知位置;通告者为与ASBR在同一区域连接其他区域的ABR
5 External 整个OSPF的域 ASBR 域外路由(重发布进入的路由)

类别 link-id 通告者
1 Router 通告者的RID 该区域的每台路由器
2 network DR的接口ip地址 该网段的DR
3 summary 域间路由网络号 ABR,经过下一台ABR时,修改为新的ABR
4 ASBR ASBR的RID ABR,经过下一台ABR时,修改为新的ABR
5 External 域外路由网络号 ASBR(不变化)

[r4]ospf
[r4-ospf-1]import-route rip 将rip重发布到OSPF的进程1;
一、减少OSPF的LSA更新量
1)汇总 --主要用于间骨干区域的LSA数量
2)特殊区域—针对非骨干区域的优化

【1】汇总—OSPF单区域内部传递拓扑信息,不得进行汇总—1.2LSA不能汇总
1)域间路由汇总—在ABR上操作 --汇总3类LSA
[r4-ospf-1]area 2 来源区域(一定是ABR通过该区域的1/2类计算所得路由)
[r4-ospf-1-area-0.0.0.2]abr-summary 5.5.4.0 255.255.254.0
2)域外路由汇总
在ASBR上配置即可
[r1-ospf-1]import-route rip 重发布
[r1-ospf-1]asbr-summary 99.1.0.0 255.255.252.0

【2】特殊区域
不能是骨干区域,不能存在ospf虚链路
「1」不能存在ASBR
1)末梢区域 – 该区域将拒绝4/5的LSA;由该区域同时连接骨干区域的ABR,向该区域发布一条3类的缺省
[r5-ospf-1-area-0.0.0.2]stub
注:该区域所有设备均需配置,否则无法建立邻居关系

2)完全末梢区域—在末梢区域的基础上,进一步拒绝3类的LSA;仅保留一条3类的缺省;
先将该区域配置为末梢区域,然后仅在ABR上进行完全配置即可
[r4-ospf-1-area-0.0.0.2]stub no-summary

不能是骨干区域,不能存在ospf虚链路
「2」存在ASBR
1)NSSA –非完全末梢区域 — 拒绝4/5的LSA;主要用于拒绝网络中,该区域以外的区域产生的4/5类LSA,进入该NSSA区域;原属于该区域的5类LSA,以7类的名义发向骨干区域;在进入骨干时由ABR兼职ASBR,进行7转5;
在华为设备中,由该NSSA区域连接骨干的ABR向内发布一条7类的缺省;
在cisco设备中,不发布,需要管理员手工发布;
[r2-ospf-1-area-0.0.0.1]nssa 该区域每台设备均需配置

2)完全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

类别 传播范围 link-id 携带信息 通告者
7类LSA 单个NSSA区域 域外路由网络号 域外路由 ASBR
切记:在使用NSSA或完全NSSA时,一定要关注该网络连接ISP的接口所在位置;小心环路的出现;

九.ospf扩展配置
1、认证
接口认证—在和邻居连接的接口进行配置即可
[r1-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456

区域认证
[r2-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
配置完成后,该设备所有属于区域0的接口全部基于该秘钥认证

虚链路认证—在虚链路建立后,进行配置即可
[r2-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2 md5 1 cipher 123456

2、被动接口—沉默接口 用于连接PC终端的接口,仅接收不发送路由协议信息;
切记不能配置于连接邻居的接口,否则无法建立邻居关系;
[r1-ospf-1]silent-interface GigabitEthernet 0/0/2

3、加快收敛
修改计时器 hello time 10s或30s dead time 为hello time 的4倍
修改本端的hello time,本端的dead time自动4倍关系匹配;要求和对端hello time、dead time必须完全一致,否则无法建立邻居关系;修改时不宜修改的过小
[r1-GigabitEthernet0/0/1]ospf timer hello 10

4、缺省路由
1)3类缺省 配置特殊区域产生;将一个非骨干区域配置为末梢、完全末梢、完全NSSA区域后;该区域连接到骨干区域的ABR将向该区域发送

2)5类缺省
在边界路由器上,先静态或通过其他动态产生缺省路由;之后该设备的路由表中已经拥有缺省才能向内部发布缺省路由
[r5-ospf-1]default-route-advertise 将本地路由表中通过其他方式产生的缺省路由重发布到OSPF的协议中;

若本地没有缺省路由,但还想向内网发布缺省;可以让设备强制发送一条
[r5-ospf-1]default-route-advertise always

默认所有的5类LSA基于类型2传递;
类型1 现在总cost值
类型2 仅显示起始cost值

3)7类缺省
普通的NSSA区域,该区域连接骨干区域的ABR,将向该区域发布7类缺省
[r5-ospf-1-area-0.0.0.1]nssa default-route-advertise 手工在NSSA区域发布缺省路由;
默认也为类型2

注:若同一台设备,同时接收到多条不同类型的缺省时;
内部优于外部 类型1优于类型2

十、OSPF的扩展知识点
「1」附录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
若长掩码先进入,再短掩码进入时,长掩码的信息被刷新为反掩码;

「2」OSPF选路规则
1、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小的设备;

2、AD(管理距离)无关的第二种情况 O IA 3类
O IA 与 O IA路由相遇,到达相同目标的两条3类路由,这两条路由均通过非骨干传递,仅关注cost值,不关注管理距离;
若一条通过骨干区域传递,另一条同过非骨干区域传递–非骨干传递的路由无效
OSPF的区域水平分割:区域标号为A的3类LSA,不能回到区域A;
先比类型- 区域cost

3、OE 与OE E为5类 N 为7类 默认所有重发布进入路由条目均为类型2,类型2在路由表中cost值不会显示沿途的累加,仅显示起始度量;

两条均为OE2或者均为N2,起始度量相同; 关注沿途的累加度量 (OE2路由在表中度量默认不显示内部度量,仅显示起始度量)
两条均为OE2或者均为N2,起始度量不同;优先起始度量小的路径;
注:以上设计是便于管理员快速干涉选路;

OE1路由仅比较总度量(起始度量+沿途累加),仅修改起始度量不一定能干涉选路,必须在修改后使得总度量产生区别才能干涉选路;
4、拓扑优于路由 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类

【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区域,那么P位无效,故两个区域的路由均回进入骨干区域;

【6】SFP算法 –OSPF防环机制
1、在同一个区域每台路由具有一致的LSDB
2、每台路由器以自己为根计算到达每个目标的最短路径(最小cost值)
3、必须区域划分–
优势-1)域间汇总减少路由条目数量
2)汇总路由是在所有明细路由均消失后才删除,网络更稳定
3)区域划分后不同类别的LSA传播范围不同,控制更新量
总结:观看OSPF防环文档
过程–基于本地LSDB(1/2类LSA)生成–生成有向图–基于有向图来进行最短路径树生成
最短路径树,关注本地LINK-ID的LSA开始–》基于该LSA内提及到点到点或传输网络信息再查看link-id递归到下一条信息;基于所有点到点和传输网络信息生成最短路径树主干;
然后用树中每台设备的末梢网络信息补充路由表,完成收敛;

已标记关键词 清除标记
相关推荐
<p> <strong><span style="font-size:16px;color:#003399;">会用Python分析金融数据 or 金融行业会用Python</span></strong> </p> <p> <strong><span style="font-size:16px;color:#003399;">职场竞争力更高</span></strong> </p> <p> <br /> </p> <p> <img src="https://img-bss.csdnimg.cn/202012231042221925.png" alt="" /> </p> <p> <br /> </p> <p> <br /> </p> <p> <strong><span style="font-size:16px;color:#003399;">Python金融数据分析入门到实战</span></strong> </p> <p> <strong><span style="font-size:16px;color:#003399;">Get√金融行业数据分析必备技能</span></strong> </p> <p> <img src="https://img-bss.csdnimg.cn/202012231042438069.png" alt="" /> </p> <p> <br /> </p> <p> <br /> </p> <p> <strong><span style="font-size:16px;color:#003399;">以股票量化交易为应用场景</span></strong> </p> <p> <strong><span style="font-size:16px;color:#003399;">完成技术指标实现的全过程</span></strong> </p> <p> <br /> </p> <p> <span style="font-size:14px;">课程选取股票量化交易为应用场景,由股票数据的获取、技术指标的实现,逐步进阶到策略的设计</span><span style="font-size:14px;">和回测,由浅入深、由技术到思维地为同学们讲解Python金融数据分析在股票量化交易中的应用</span><span style="font-size:14px;">。</span> </p> <p> <br /> </p> <p> <span style="font-size:14px;"><br /> </span> </p> <p> <img src="https://img-bss.csdnimg.cn/202012231043183686.png" alt="" /> </p> <p> <br /> </p> <p> <br /> </p> <p> <strong><span style="font-size:16px;color:#003399;">以Python为编程语言</span></strong> </p> <p> <strong><span style="font-size:16px;color:#003399;">解锁3大主流数据分析工具</span></strong> </p> <p> <br /> </p> <p> <span style="font-size:14px;">Python做金融具有先天优势,课程提取了Python数据分析工具NumPy、Pandas及可视化工具</span><span style="font-size:14px;">Matplotlib的关键点详细讲解,帮助同学掌握数据分析的关键技能。</span> </p> <p> <img src="https://img-bss.csdnimg.cn/202012231043472858.png" alt="" /> </p> <p> <strong><span style="font-size:16px;color:#003399;"><br /> </span></strong> </p> <p> <strong><span style="font-size:16px;color:#003399;">2大购课福利</span></strong> </p> <p> <strong><span style="font-size:16px;color:#003399;"><br /> </span></strong> </p> <p> <img src="https://img-bss.csdnimg.cn/202012300628195864.png" alt="" /> </p>
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页