一、背景
虽然出现了静态路由可以解决ip报文转发的问题,但是随着网络拓扑越来越大越来越复杂,静态路由不能适应动态网络拓扑的变化,每条路由都需要人工操作,故而出现了动态路由,而ospf则是动态路由中最为常见的一种。
二、什么是ospf
ospf全称open shortest path first,开放式最短路径优先协议,是一种基于链路状态算法的路由协议,IS-IS也是此类协议。扩展:rip为距离矢量,bgp为路径矢量路由协议,其中bgp为最常用的外部网关EGP协议的一种,rip、ospf、is-is则为内部网关igp协议。
三、ospf基础
1、进程:ospf进程是本地标识符,不同路由器可以配置不同的进程号,不影响不同设备之间的ospf邻居建立,单个路由器也可以设置多进程,常用于vpn,每个进程各自独立,同一接口只能属于一个进程。
2、区域:
1)、ospf的区域是从逻辑上把不同的路由器接口分成不同的组,每个接口必须明确所属的区域,单个网段只能属于一个区域。
2)、其中area 0是核心区域,负责非骨干区域间路由转发,非骨干区域必须物理连接到骨干区域,否则需配置虚连接。大型企业中,一般在核心层和汇聚层部署骨干区域0(配置area 0=area 0.0.0.0,area 256=area 0.0.1.0),接入层和汇聚层则部署非骨干区域。
3)、特殊区域:
末梢区域stub:stub区域的abr不向stub区域内传播它接收的as外部路由,abr生成一条缺省3类lsa
totally stub:域间域外路由都不允许在stub区域内传播,abr生成一条缺省3类lsa通向域间域外
nssa区域:为了解决ospf规定stub区域不能引入外部路由而成,引入后在nssa区域以7类lsa通告,其他区域则由abr通过7转5向其他区域通告。
totally nssa:与上类似
4):区域间防环:1、所有非骨干区域均直接与骨干区域直连,且骨干区域只有一个(不建议虚链接,容易出现环路问题);2、非骨干区域之间通信通过骨干区域中转;3、从骨干区域传来的三类lsa不再传回骨干区域
3、router-id
1)、在ospf 中唯一标识一台路由器(全网唯一性),32位标识符,类似而非IPv4地址,如1.1.1.1
2)、优先级顺序:手动配置(推荐)>环回口中最大ip地址>物理接口中最大的活动ip地址(如果先开启ospf后则会默认使用第一个配置的ip地址作为初始的id),如需修改id则需重启ospf进程。
4、ospf度量值cost
1)、主要用于计算最优路径,数值越小越优,其中计算默认参考带宽为100Mbps,当接口带宽大于100M时则为1(现网中普遍存在千兆万兆网络故需要调整参考带宽,但实际上配置则是直接根据接口带宽大小手动进行配置cost)
2)、ospf路由开销值计算:从目的网段到达本路由器沿途所有入接口的cost值相加(即本路由器到目的网络沿途路径中所有出接口cost值相加)
5、ospf报文(5种)
1)、hello邻居建立,dd数据库摘要交换,lsr请求缺失lsa,lsu发送完整lsa,lsack确认接收
6、ospf 三张表(邻居表,lsdb表,ospf路由表)
1)通过hello报文建立邻居表,通过其余报文同步lsdb实现拓扑信息一致,基于lsdb表计算ospf路由表,优选路由表注入全局路由表指导转发
四、ospf工作原理(邻居-邻接)
1、通过hello报文建立邻居关系,通过dd报文确认master/slave,再通过dd报文描述自己的lsdb摘要信息,通过lsr,lsu,lsack同步lsdb,确认邻接。
2、一般的ospf通过双方共三个hello报文确认邻居(2-way),然后再发送hello报文确认dr/bdr,确认邻居后发送dd报文通过三个dd报文协商主从关系,再通过2个dd报文发送lsdb报文摘要。之后再发送其余报文建立邻接关系。
五、ospf网络类型(4种)
1、ospf有4种网络类型:broadcast(bma),p2p,p2mp(需手动配置),nbma(帧中继网络,过时)
2、为优化ma网络(包括bma,nbma)的邻接关系,所以指定了dr和bdr路由器,只允许dr和bdr和其他路由器建立邻接关系。
3、dr/bdr的选举:dr的选择首比优先级(0-255),其中为0时放弃选举(所以网段中所有路由器优先级全被设置为0时,网络就不能正常工作),越大越优先,当优先级一样时则比较router id,也是越大越优先。在2-way完成后进行选举,选举完后再通过hello报文同步全网段。且dr为非抢占性,但bdr会实时监控dr,实现br故障快速切换。(需要按需设置网络类型,简单互联的点对点网络就可以直接设置为p2p类型,加快网络收敛)
六、ospf路由器类型(4种)
1、区域内路由IR,区域边界路由器ABR,骨干路由BR,自治系统边界路由器ASBR
七、LSA
1、lsa:link-state advertisement链路状态通告,是链路状态协议中用于交换网络拓扑信息的数据包。
2、标识一个lsa:lsa type,link state id,advertising router
判断lsa新旧:lsa age(初始为0,0-3600s),ls sequence numbe(0x80000001-0x7fffffff,初始01每次加1)r,ls checksum
3、常见lsa(6种1-5,7):1类router lsa 、2类network lsa、3类network summary lsa、4类asbr summary lsa、5类as external lsa、7类nssa lsa,9类lsa(用于GR,暂时不管它)
1)、router lsa:每台ospf路由器都会产生,它描述了该路由器直连接口的信息
type:router,ls id为router id,advrtr也为router id
p2p:
第一个link:link type为p2p(从一个本地路由器到邻居路由器点到点链路),link id为邻居路由器的router id,link data为宣告该router lsa的路由器接口ip地址(属于拓扑信息)
第二个link:link type为subnet(本路由器到一个stub网段的连接),link id为宣告该router lsa所在路由器的网络ip地址,data为该网络掩码
ma:
link type为transnet(从一个本路由器到一个transit网段),link id为DR接口ip ,link data为宣告该router lsa的路由器接口ip
2)、network lsa:由DR产生,描述本网段的链路状态,记录网段与dr建立邻接关系的ospf路由器
link state id:dr的接口ip地址,network mask,ma网络的子网掩码,attached router:邻接路由器
3)、network summary lsa:由abr产生,用于向一个区域通告到另外一个区域的路由
4)、as external lsa:由asbr产生,用于描述到达as外部的路由。引入外部路由由type1,type1表示与外部路由与ospf路由相当,type2表示外部路由远大于ospf,只算外部路由(设备缺省)。
5)、asbr summary lsa:由abr产生,描述前往asbr的路由
7)、nssa lsa:7类lsa由nssa区域内的asbr产生,在nssa区域通告;由abr向区域外进行通告(7转5)
八、路由聚合(又称路由汇总,2种,域间汇总,域外汇总)
1、含义:路由聚合即是将一组前缀相同的路由汇聚成一条路由,汇聚之前的叫明细路由或者精细路由,聚合后的则叫聚合路由,一般由ABR或ASBR执行。
九、ospf特性
1、silent interface:不会接收和发送ospf报文,不能建立邻居关系。
2、路由宣告:network:区域级宣告路由,ospf enable area area-id接口级宣告(常用边缘端口)
十、ospf报文认证(2种)
1、区域认证:区域内所有路由器认证模式口令一致
2、接口认证(优先级高):直连接口认证模式口令一致
十一、ospf快速收敛(2种,PRC和智能定时器)
1、prc:prc只对网络上发生的路由进行重新计算,不计节点路径,而是根据spf算法算出来的最短路径树来更新路由。在路由计算中,节点代表路由器,叶子代表路由,prc只处理叶子信息。
2、智能定时器:在相对稳定的网络中,可以通过智能定时器指定lsa的更新时间为0来实现网络拓扑变化后快速收敛。
3、ospf ip frr快速重路由:利用lfa算法预先算出备份路由保存在转发表中,以备故障时将流量切换到备份链路上,保证流量不中断,该功能可以将故障恢复降低在50ms内。
4、bfd与ospf ip frr联动,可以快速感应故障
问题:ensp实验中,R1到R3的双路径转发,期间把最优路径R1到R3这一条down掉(无论配置还是不配置ospf ip frr和bfd,设备都能正常转发,不丢包时延一样)(与常理不合,个人觉得一个可能是转发表的问题,一个可能是新的路由控制平面更新路由特别快,无需等待dead时间,或者ensp本身存在的问题)
十二、ospf路由控制
1、ospf负载分担,一般可以设置1-8条链路进行分担,链路的开销值一样,也称为等价路由。
2、缺省路由,由ospf中的abr和asbr产生,命令为default-route-advertise always (如本路由原无缺省路由则需要配置always参数)
3、ospf路由过滤
接口配置:ospf filter-lsa-out
区域配置(常与acl结合):filter acl number import/export
4、ospf database overflow:设置路由器上非缺省外部路由数量的上限。
5、应用ospf内部开销确定ospf次优路金,常用引入外部路由的type 2类型开销可以控制外部路由次优路径。
十三、ospf与bgp的联动
1、由于ospf的收敛速度比bgp的收敛速度快,那么就可能导致故障恢复或者重启时,ospf已经收敛完成而bgp还未收敛成功的情况,即可能走新收敛成功的ospf路由,但由于bgp未收敛,路由器没有去到bgp路由的路径导致数据缺失,因此可以配置路由器为stub-router on-starup 时间,使得路由器短时间内不被优选为最佳路径。
十四、ospf的FA
1、含义:ospf的转发地址,在5类7类lsa中,到达目的地址的数据包应该被转发的地址,如全0,则把数据往始发的asbr转发,目的避免次优路径产生。
2、FA非0条件:
1)、asbr其连接外部网络的接口激活了ospf;
2)、该接口没有被配置为静默接口;
3)、该接口类型为MA或NBMA网络;
4)、该接口的ip地址在ospf配置的network命令指定的网段内
十六、ospf中的GR与NSR
1、含义:GR(graceful restart,平滑重启)是一种高可靠性计算,用于协议重启或主备切换时保持数据转发不中断,避免路由震荡。restarter:执行重启的设备,helper:协助邻居设备
NSR:(non-stopping-routing,不间断路由),通过协议备份机制,实现主备倒换时控制平面和转发平面都不中断。
2、实现原理:GR通过grace-lsa(type 9 lsa)通告重启状态和参数,控制平面重启期间,转发平面继续使用原有路由表
NSR:单独即可,无需邻居,先批量备份(不可主备倒换),再实时备份,主备倒换。
3、NSR对比GR来说,就跟堆叠对vrrp+mstp,除了贵点,协议私有化之外没啥坏处。