无类别链路状态路由协议;
组播更新:224.0.0.5、224.0.0.6(DR/BDR专用)
跨层封装到3层,协议号89;
触发更新、周期更新(30min),存在ACK和hello机制,但依然每30min周期一次,作用在于核查;
仅支持等开销负载均衡;需要结构化的部署----区域划分、地址规划。
LSA:链路状态通告---在不同条件下产生不同类别的拓扑或路由信息,被LSU携带传输;
LSDB:链路状态数据库---网络中所有LSA的集合;
OSPF收敛:LSA洪泛 LSDB同步
Hello 用于邻居的发现、建立、保活
DBD 数据库描述表 主要用于携带数据库目录
LSR 链路状态请求 获取未知LSA
LSU 链路状态更新 携带各种LSA,用于应答LSR
LSack 链路状态确认 可靠性使用
启动协议后,本地向所有邻居使用224.0.0.5组播发出hello包,在收集到其他邻居的hello包后,若邻居的包中存在本地RID,那么邻居关系建立,生成邻居表;
条件匹配:匹配失败将停留于邻居关系,仅hello包周期保活即可;
匹配成功可以建立邻接关系;
邻接关系间先使用DBD来共享拓扑目录,之后使用LSR/LSU/LSack来获取未知的LSA信息,生成LSDB—数据表中;
数据库建立完成后,本地基于SPF最短路径选路规则,计算本地到达所有未知网段的最短路径,然后将其加载到路由表中;
收敛完成后,hello包周期保活;每30min周期使用DBD进行比对;若比对结果一致,继续保活即可;若不一致将使用LSR/LSU/LSack来获取未知的信息;
Down: 一旦本地发出hello包进行下一状态
Init 初始化:接收到的hello包中若存在本地的RID,那么进入下一状态
2way双向通信:邻居关系建立的标志
条件匹配:1、点到点网络直接进入下一状态
2、MA网络将进行DR/BR选举(40S),非DR/BDR间不能进入下一状态;
Exstart 预启动:使用类似hello 的DBD包来进行主从关系选举,RID数值大为主; 主优先进入下一状态
Exchange 准交换:使用真实的DBD来共享数据库目录,需要ACK确认;
Loading加载: 使用LSR/LSU/LAack来获取未知的LSA信息;
Full转发:邻接关系建立的标志;
点到点网络:因为一个网段只能存在两个节点,故邻居关系必然建立为邻接关系
MA网络:由于距离矢量协议存在水平分割机制,故在MA网络不会出现重复更新;
但OSPF协议不适用于水平分割,就只能进行DR/BDR选举,所有的非DR/BDR间建立邻居关系,来避免大量的重复更新;
网络类型(接口) OSPF工作方式(OSPF接口网络类型)
1.Loopback LOOPBACK 没有hello发出;无论接口掩码多少,32位主机路由发出;
2.point-to-point(串行HDLC/PPP) POINT_TO_POINT hello time 10s,支持组播,不选DR/BDR;
3.Broadcast Ethernet 支持组播,有DR
4.NBMA(MGRE) FR主接口/FR多点子接口 hello time 10s,不选DR/BDR;
5.point-to-multipoint(p2mp) 支持组播,无DR,自动生成关于直连邻居接口的/32主机路由
6.point-to-point Non-broadcast 不支持组播,无DR,自动生成/32路由
注:point-to-point和p2mp可以建邻 不选DR,要修改hellotime
1、远离骨干的非骨干–该非骨干区域无法和星型拓扑交互路由
若一台ABR未连接到骨干区域,不得进行区域间路由共享
2、不连续骨干 ----ABR只能将本地基于拓扑计算所得路由进行共享,不能将学习的路由共
享到其他骨干区域;
解决方法
1)Tunnel—将非法ABR通过tunnel连接到骨干区域;
需要将tunnel接口宣告到OSPF协议内
缺点:
【1】周期和触发信息均对中间区域造成影响,导致网络拥塞
【2】选路不佳----若同一目标路由,从骨干与非骨干同时学习到,优选骨干路由;
2)OSPF虚链路—类似OSPF协议关闭了不规则区域限制
非法ABR与合法ABR间建立虚链路来获取授权,打破限制;
优点:
【1】选路佳
【2】为避免周期和触发信息对中间区域的影响,虚链路不进行周期更新和保活;减少对中间区域的影响
缺点:
没有周期信息,导致不可靠
3)多进程双向重发布(推荐)
当多个进程运行于同一设备上时,不同进程具有不同的RID,和各种的数据库,数据库不共享;仅将各自数据库计算所得路由加载到同一路由表中;若一个接口工作启动两个进程,仅最先启动的进程工作;
在非法的ABR处,将不同区域放置于不同的进程中;最终使用双向重发布来实现路由共享
类别 传播范围 携带信息
LSA1 Router 本区域 本地直连拓扑
LSA2 network 本区域 MA网段部分的拓扑
LSA3 Summary 除所在源区域外的整个OSPF域 域间路由(IA)
LSA4 asbr-summary 除ASBR所在区域外的其他OSPF域 ASBR位置
LSA5 External 整个OSPF域 域外路由(E)
LSA7 nssa-external 本NSSA区域内 域外路由(N)
注:关于4类的LSA,与ASBR处于同一区域的设备通过1来获取ASBR的位置;
类别 link–ID ADV(通告者)
LSA1 Router 通告者的RID 本区域内所有设备
LSA2 network DR接口的ip地址 DR
LSA3 Summary IA路由的目标网络号 ABR,经过下一台ABR时修改为本地
LSA4 asbr-summary ASBR的RID ABR,经过下一台ABR时修改为本地
LSA5 External E路由的目标网络号 ASBR
LSA7 nssa-external N路由的目标网络号 ASBR
【1】手工汇总—主要优化骨干区域
1)区域路由汇总 —汇总的是3类LSA
只能在ABR上操作;1/2类LSA不可以直接汇总
2)域外路由汇总 —汇总的是5/7类的LSA
在ASBR上操作;将本地源头发出的5/7类LSA进行汇总
【2】特殊区域—主要优化非骨干区域
要求:不能为骨干区域 不能存在虚链路
1)不存在ASBR–完全独立的非骨干区域
{1}末梢—拒绝4/5的LSA;自动产生3类的缺省指向骨干区域
{2}完全末梢–在末梢区域的基础上,进一步拒绝3类LSA;仅保留一条3类缺省即可;
先将整个区域配置为末梢区域,然后再在ABR上定义完全即可;
2)存在ASBR的非骨干区域
{1}NSSA–非完全末梢区域 ---- 拒绝4/5LSA;本地应该发向骨干区域的5类使用7类转发;
在进入骨干的时候还原为5类;不自动产生缺省路由;
作用在于拒绝其他区域产生的4/5LSA,本区域产生的5类使用7类代替来进入骨干;为避免环路的出现,不自动产生缺省路由;将导致无法访问ASBR所连域外路由;需要管理员在判断网络无环的情况下,手工添加缺省路由;
{2}完全NSSA–在NSSA的基础上进一步拒绝3类LSA,自动产生3类缺省指向骨干;
先将整个区域配置为NSSA区域,然后再在ABR上配置完全即可
总结:末梢条件下建议直接配为完全末梢;使用NSSA或完全NSSA时,必须先考虑环路问题,尤其完全NSSA自动产生的缺省,更容易出环;ISP所在位置非常重要,若连接到骨干区域,那么设置特殊区域是没有环路的;若ISP处于某个非骨干,该区域不要做特殊区域设备;若连接到其他的路由协议中,那么与该协议相连的非骨干也不要进行特殊区域的设定;
3类、5类、7类缺省;
3类缺省:由配置特殊区域自动产生 末梢、完全末梢、完全NSSA会产生;
普通的NSSA区域不自动产生缺省;
5类缺省: 将本地路由表中其他协议或进程产生的缺省,通过重发布手段导入本OSPF域;
7类缺省:
本地通过其他协议产生缺省路由,同时本地处于NSSA或完全NSSA,可以将该缺省导入OSPF
切记:7类缺省若与完全NSSA相遇,必然出环;与普通的NSSA相遇,也将可能导致无法访问其他的协议路由;
当一台路由器,同时接收到多种缺省信息:
内部优于外部 3类优于5/7类
若5类与7类比较—先比管理距离,再比度量;若完全一致,5类优于7类;