概要信息:
1、ospf的LSA类型 1/2/3/4/5/7类LSA
2、ospf的特殊区域 stub、totally stub、nssa、totally nssa
3、ospf的网络类型 broadcast、NBMA、P2P、P2MP
一、背景
在ospf出现前,网络上广泛使用RIP作为IGP内部网关协议,但由于RIP是基于距离矢量算法的路由协议,存在收敛慢、路由环路、可扩展性差等问题,所以逐渐被可全面解决RIP这些问题的ospf所取代。
ospf(开放式最短路径优先)是一个基于链路状态进行路由计算的动态路由协议,主要用于大中型网络;ospfv2和ospfv3两个版本,ospfv2仅支持ipv4,而ospfv3同时支持ipv4和ipv6,这里仅介绍基于ipv4网络的ospfv2版本。
二、OSPF Open Shortest Path First 开放式最短路径优先
1、ospf的几个重要概念
要认识ospf,首先就要了解ospf的几个非常重要的基本概念:AS自治系统、Area区域、路由器类型、路由类型和Router ID。
(1)Router ID 路由器ID
一台运行ospf协议的路由器必须指定一个用于标识路由器自身的Router ID;
Router ID是一个32比特无符号整数;
在一个AS中,每台路由器的Router ID必须唯一,同一台路由器的不同进程可以使用相同的Router ID。
(2)AS 自治系统
AS自治系统就是Routing Domain路由域,由同一组织机构管理、运行同一种路由协议的一组路由器组成;
路由域中的所有路由器必须运行相同的路由协议,且必须彼此相互连接,中间不能被其他协议路由域隔开,分配相同的AS号;
不仅ospf可以配置AS,ISIS、BGP等动态路由协议也可以配置AS,都可以形成特定的路由域;
(3)Area 区域
当一个大型网络中的路由器都运行ospf协议时,LSDB链路状态数据库会占用大量的存储空间,并使得运行SPF最短路径算法的复杂度增加,导致CPU负担加重;同时,网络规模越大,拓扑结构发生变化的概率也越大,网络会经常处于振荡之中,造成网络中会有大量的ospf协议报文在传递,降低了网络带宽利用率,更为严重的是,每一次变化都会导致网络中所有的路由器重新进行路由计算。
区域是从逻辑上将网络中的不同路由器划分为不同的组,每个组用区域号来标识,需要注意的是ospf区域的边界是设备接口,isis区域的边界是链路,即ospf区域边界路由器间直接相连的链路两端接口必须属于同一个区域,isis区域边界路由器间直接相连的链路两端接口是分属于不同区域的。
一个ospf路由域可以包括多个区域,通过在区域边界路由器上进行路由聚合,不同区域之间仅向外通告其聚合路由,这样就可以大大减少通告到其他区域的LSA数量,还可以最小化由网络拓扑变化带来的影响;
每台ospf路由器只能在所属区域内部学习到完整的链路状态信息;
ospf除了可以划分多个普通区域外,还可以配置多种特殊区域类型,如固定为Area0的骨干区域、Stub末梢区域、Totally Stub完全末梢区域、NSSA非纯末梢区域和Totally NSSA完全非纯末梢区域;
(4)路由器类型
ospf把一个AS划分成了多个区域,使得ospf网络中不同路由器的角色会有所不同,根据路由器在AS中的不同位置,可以分为以下4类:
区域内路由器 Internal Routers,IR:该类设备的所有接口都在同一个ospf区域内;
区域边界路由器 Area Border Routers,ABR:该类设备的接口可以分属不同区域,但其中一个接口必须连接骨干区域;ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接(也就是虚连接)。
骨干路由器 Backbone Routers,BR:该类设备至少有一个接口属于骨干区域;所有的ABR和位于骨干区域的内部设备都是骨干路由器。
自治系统边界路由器 AS Boundary Routers,ASBR:与其他AS中的设备交换路由信息的设备称为ASBR;只要一台ospf设备引入了外部路由(包括直连路由、静态路由、RIP、ISIS路由、BGP路由或者其他ospf进程路由),它就成为ASBR,ASBR位于AS的边界,可以是区域内设备,也可以是ABR。
(5)路由类型
划分区域的目的就是想减少LSA的数量,从而减少依据LSA形成的路由数量,这就自然会想到对区域内部、区域之间以及其他AS的外部路由进行分类,ospf中,路由分成以下4类:
区域内路由 Intra Area:仅用于区域内IR路由器之间的路由,用于IR设备间的互联,不向区域外通告;
区域间路由 Inter Area:仅用于区域间ABR之间的路由,用于骨干区域与其他区域相互通告路由信息;
第一类外部路由 Type1 External:由ASBR引入的外部路由,它们的开销值计算方法与ospf的开销值计算方法具有可比性,到第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销;
第二类外部路由 Type2 External:由ASBR引入的外部路由,它们的开销值计算方法与ospf的开销值计算方法不具有可比性,ospf协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销,所以ospf计算第二类外部路由的开销只考虑ASBR到自治系统之外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销。
第一类外部路由和第二类外部路由由管理员手动设置,缺省为第二类外部路由。
2、ospf网络设计
ospf比rip复杂许多,主要表现在ospf可以支持更大规模的网络;另外,ospf还可以把网络中的路由器划分成不同的区域、不同的路由器角色,这就决定了在配置ospf路由之前必须先设计好相关的ospf网络,然后才能进行各方面的ospf路由配置工作,而不是像RIP路由那样基本上不需要设计,对于一个可适用于大型广域网络的动态路由协议,ospf网络的规划工作具体如下:
(1)确定需运行ospf协议的路由器
(2)合理地划分ospf区域
ospf区域划分可以按照地理区域、行政单位来划分;也可以按照路由器性能来划分;还可以按照IP网段来划分。
按照一般经验,当网络中的路由器数量少于20台的时候,可以只划分一个区域,即骨干区域;
在一个区域内路由器的数量最好不要超过50台;
但现在的路由器CPU处理速度、内存容量都在日益增强,有测试表明,200台路由器一个区域都可以非常快速的收敛。
由于骨干区域中的路由器要负责整个ospf网络各个区域的路由信息传递,负荷比较大,所以骨干区域应该选择性能好,处理能力强的高端路由器来承担;
(3)主要ABR和ASBR的性能要求
ospf网络中的每个ABR都要负责所连接的两个或多个区域间的路由信息传递工作,需要保存每个连接区域的LSDB,所以ABR通常也要由性能比较高的路由器来承担;
同时为了不使ABR的负担太重,通常建议一台ABR上最多连接3个区域,即一个骨干区域和两个普通区域;
而ASBR更是要负责两个或多个AS间的路由信息传递,需要保存每个AS的LSDB,负担更重,所以ASBR的性能要求更高。
3、ospf的LSA类型
因为在ospf网络中对各ospf路由器根据其用途进行了分类,所以不同类型的ospf路由器所发送的lsa的用途和可以通告的范围各不相同,ospf将lsa分为以下几类:
(1)一类LSA Router LSA 路由器LSA
每台ospf路由器都会产生路由器LSA;
描述了本设备所连接的链路;
仅在区域内泛洪;
(2)二类LSA Network LSA 网络LSA
网络LSA仅在MA网络(广播、NBMA)中存在,由DR产生;
描述了DR所在网段的链路状态;
仅在区域内传播;
(3)三类LSA Network Summary LSA 网络聚合LSA
网络汇总LSA由ABR产生;
描述了某个区域内某个网段的聚合路由;
通告给非Totally Stub或NSSA区域,到达其他区域必须经过骨干区域转发该LSA;
(4)四类LSA ASBR Summary LSA ASBR聚合LSA
ASBR聚合LSA由ABR产生;
描述了该ABR到达ASBR的路由;
仅向普通区域泛洪,不能进入stub、totally stub、nssa和totally nssa这些特殊区域;
(5)五类LSA AS External LSA 自治系统外部LSA
AS外部LSA由ASBR产生;
描述到达AS外部的路由;
仅向普通区域泛洪,不能进入stub、totally stub、nssa和totally nssa这些特殊区域;
(6)七类LSA NSSA External LSA NSSA外部LSA
NSSA外部LSA由ASBR产生;
内容几乎和5类LSA相同,但它专用于NSSA/Totally NSSA区域中的ASBR向NSSA区域泛洪外部AS的路由,然后经过NSSA/Totally NSSA区域ABR将其转换成5类LSA向其他普通区域泛洪。
(7)9/10/11类LSA Opaque LSA
在ospf中主要用到的就是1/2/3/4/5/7这六种LSA。
Opaque LSA提供用于OSPF扩展的通用机制,在MPLS TE中有涉及;
9类LSA仅在接口所在网段范围内泛洪,用于支持GR的Grace LSA就是9类LSA的一种;
10类LSA在区域内泛洪,用于支持TE的LSA就是10类LSA的一种;
11类LSA在AS内泛洪,目前还没有实际应用的例子;
4、ospf的特殊区域
在ospf网络的区域中,除了要介绍的stub区域、totally stub区域、nssa区域和totally nssa区域外,其他区域包括骨干区域都称为普通区域。
(1)骨干区域
骨干区域是普通区域中的一种特殊区域,它的区域号固定为0.0.0.0,即区域0;
骨干区域是连续的或者通过虚连接连接两个或多个分离的骨干区域,这些分离的骨干区域的区域号一样,均为0;
要求其他区域必须与骨干区域直接连接或者通过虚连接虚拟连接;
(2)Stub末梢区域
Stub区域是一种专门为那些由性能较低的路由器组成、与AS外部没有太多路由通信的AS边缘区域简化区域内部路由器上的路由表而采取的一种优化措施,可在一定程度上减小区域内部路由器上的内存资源消耗、路由表规模,提高路由效率;
只有处于AS边缘、只有一个连接其他区域的ABR、没有ASBR、没有虚连接穿越的非骨干区域才能配置为 Stub区域;
Stub区域是通过禁止与AS外部路由相关的4类LSA和5类LSA通过ABR进入区域内泛洪来实现的,仅允许同一AS中其他区域的3类LSA通过ABR进入区域泛洪;
Stub区域内的路由器仅有1类LSA、2类LSA(广播网络中才有)和3类LSA存在,没有4类和5类LSA,更没有专用于NSSA和Totally NSSA区域的7类LSA;
阻止了与AS外部相关的4类、5类LSA进入区域后,Stub区域内的路由器不能获知外部AS的路由信息,不能与AS外部进行通信,Stub区域的ABR就需要向本区域内部路由器泛洪一条指向自己的缺省路由0.0.0.0,是Stub区域ABR作为区域内的路由器与外部AS通信的唯一出口;
一个Stub区域中的所有路由器都必须知道自身属于该区域,否则Stub区域的设置不会起作用;
(3)Totally Stub完全末梢区域
Totally Stub完全末梢区域是Stub区域的升级版本,也是为那些设备性能相当低的边缘区域而设计的,可以进一步降低设备内存资源消耗,减少区域内路由器的路由表项,提高路由效率;
Totally Stub区域所需满足的条件与Stub区域一样,只有处于AS边缘、且只有一个连接其他区域的ABR、没有ASBR、没有虚连接穿越的非骨干区域才可配置为Totally Stub区域;
在LSA的限制上,Totally Stub区域比Stub区域更加严格,除了不允许与AS外部路由相关的4类LSA和5类LSA进入区域内之外,还不允许同一AS中其他区域的3类LSA经由ABR向区域内路由器泛洪;
Totally Stub区域的路由器仅有1类和2类LSA(广播网络中才有),没有3类、4类和5类LSA,更没有NSSA区域专有的7类LSA;
与Stub区域类似,为了解决Totally Stub区域内的路由器需要与其他区域、AS外部进行通信的问题,Totally Stub区域的ABR向区域内泛洪一条缺省路由,作为区域内的路由器与其他区域、AS外部通信的唯一出口;
(4)NSSA 非纯末梢区域
Stub区域虽然为合理地规划网络描绘了美好的前景,但在实际的组网中利用率并不高(没有asbr只能处于AS边缘、只有一个ABR)。为了弥补缺陷,协议设计者提出了NSSA Not-So-Stubby Area非纯末梢区域,NSSA区域是Stub区域的修订版本;
NSSA区域在必备条件方面有所放宽,NSSA区域可以有一个或多个ASBR,可以位于非边缘区域,也可以有多个ABR;
NSSA区域允许从其直接连接的ASBR上引入AS外部路由以7类 LSA进入NSSA区域内泛洪,然后在ABR上转换成5类 LSA以自己的身份发布到区域之外;
7类 NSSA LSA是专门为NSSA区域设计,非NSSA区域设备不可识别;
与Stub区域一样,NSSA区域允许区域间的3类LSA进入区域内部泛洪,不允许与其他区域中ASBR连接的AS外部路由相关的4类和5类LSA进入NSSA区域内泛洪;
NSSA区域存在1类、2类、3类和7类LSA,但没有4类和5类LSA;
NSSA区域也限制了由其他区域中的ASBR所引入的AS外部路由进入区域内,NSSA区域内的路由器无法与其他区域连接的外部AS进行通信,NSSA区域的一个ABR上向区域内的路由器泛洪一条指向自己的缺省路由,使该ABR作为区域内的路由器与其他区域所连接的外部AS进行通信的唯一出口;
(5)Totally NSSA 非完全纯末梢区域
Totally NSSA区域可以说是Totally Stub区域和NSSA区域的结合体;
与NSSA区域一样,可以有多个ASBR和ABR,可以位于非边缘区域;
与NSSA区域一样,允许区域中ASBR引入的AS外部路由以7类LSA进入区域内泛洪,然后经由该区域内的ABR将其转换成5类LSA向其他所有区域泛洪;
与Totally Stub区域一样,不允许4类、5类和3类LSA进入区域内泛洪;
Totally NSSA区域限制了由其他区域中的ASBR所引入的AS外部路由的4类、5类LSA和其他区域路由的3类LSA进入区域内,区域内的路由器无法与其他区域连接的外部AS和其他区域进行通信,Totally NSSA区域的一个ABR上向区域内的路由器泛洪一条指向自己的缺省路由,使该ABR作为区域内的路由器与其他区域和其他区域所连接的外部AS进行通信的唯一出口;
5、ospf的网络类型
ospf协议支持多种不同类型的网络,不同类型网络的报文发送方式不同,根据链路层协议类型的不同将这些可支持的网络分为下列4种类型:
(1)Broadcast 广播
当链路层协议是Ethernet时,OSPF缺省网络类型是Broadcast类型;
以组播形式(224.0.0.5)发送Hello报文;
以单播形式发送DD报文、LSR报文;
以组播形式(224.0.0.6)向DR发送LSU报文,然后DR将该LSU发送到224.0.0.5;
以组播形式(224.0.0.5)发送LSAck报文;
Hello发送时间10s,失效时间缺省是hello时间的4倍;
(2)Non-Broadcast Multi-Access 非广播多路访问NBMA
当链路层协议是帧中继时,OSPF缺省网络类型是NBMA;
以单播形式发送各种OSPF协议报文;
Hello发送时间30s,失效时间缺省是hello时间的4倍;
(3)Point-to-Point 点到点P2P
当链路层协议是PPP、HDLC时,OSPF缺省网络类型是P2P;
以组播形式224.0.0.5发送各种OSPF协议报文;
Hello发送时间10s,失效时间缺省是hello时间的4倍;
(4)Point-to-Multipoint 点到多点P2MP
链路层协议没有P2MP的概念,P2MP必须由其他的网络类型强制更改;
以组播形式(224.0.0.5)发送Hello报文,以单播形式发送DD报文、LSR报文、LSU报文、LSAck报文;
Hello发送时间30s,失效时间缺省是hello时间的4倍;
ospf的各种网络类型互连:
NBMA类型与broadcast、p2p、p2mp都无法建立邻居、邻接关系;
broadcast类型与p2p、p2mp,保持hello时间一致可以建立邻居、邻接关系,无法计算路由;
p2p类型与p2mp,保持hello时间一致可以正常工作;
网友评论