一、ospf简介:

1、ospf是开放式最短路径优先(open shortest path first)是IETF组织(互联网工程任务组)开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol,称为IGP)。

2、ospf基于SPF算法来计算链路的开销等。

3、为什么使用ospf?

在ospf出现之前,网络上最先广泛使用RIP(Routing Information Protocol,称为路由信息协议)作为内部网关协议。

然而RIP是基于距离矢量算法的路由协议,存在着收敛慢RIP收敛速度慢,在拓扑结构发生变化时,不会立即收敛,而是默认情况下等待180s之后没有收到更新报文,才会认为路由不可达,而OSPF收敛快,在网络的拓扑结构发生变化后立即发送更行报文,使这一变化在自治系统中同步。)、路由环路(在维护路由表信息的时候,如果在拓扑发生改变后,网络收敛缓慢产生了不协调或者矛盾的路由选择条目,就会发生路由环路的问题,这种条件下,路由器对无法到达的网络路由不予理睬,导致用户的数据包不停在网络上循环发送,最终造成网络资源的严重浪费。而OSPF根据收集到的链路状态用最短路径树SPF算法计算路由,从算法本身保证了不会生成自环路由。)可扩展性差(RIP只能扩展到15跳,OSPF可支持各种规模的网络,最多可支持几百台路由器)等问题,所以逐渐杯OSPF取代。

OSPF作为基于链路状态的协议,能够解决RIP所面临的这些问题。

4、OSPF的优点:

*OSPF采用组播形式收发报文(即224.0.0.5,224.0.0.6),这样可以减少对其它不运行OSPF路由器的影响。

*OSPF支持无类型域间选路(CIDR)。

*OSPF支持对等价路由进行负载分担。

*OSPF支持报文加密。

*适应范围广——支持各种规模的网络,最多可支持几百台路由器。

*快速收敛——在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。

*无自环——由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。

*区域划分——允许自治系统的网络被划分成区域来管理,路由器的链路状态数据库仅需和所在区域的其他路由器保持一致。链路状态数据库的减小大大降低了对路由器内存的占用和CPU的消耗。同时,需要在区域间传送的路由信息的减小,降低了网络带宽的占用。

*路由分级——使用4类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。

*等价路由——支持到同一目的地址的多条等价路由。

*支持验证——支持基于区域和接口的报文验证,以保证报文交互的安全性。

*组播发送——在某些类型的链路上以组播地址发送协议报文,减少对其他设备的干扰。

由于OSPF具有以上优势,使得OSPF作为优秀的内部网关协议被快速接受并广泛使用

二、OSPF基础:

1、OSPF协议的特点如下:

*OSPF把自治系统AS(Autonomous system)划分成逻辑意义上的一个或者多个区域area。

*OSPF铜鼓LSA(Link State Advertisement)的形式发布路由。

*OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一以及建立。

*OSPF报文封装在IP报文内,可以采用单播活组播的形式发送。

2、OSPF的四种网络类型:

1、点到点p2p类型(point-to-point,俗称点到点类型):

当链路层协议是ppp、HDLC时,默认情况下,OSPF认为网络类型为p2p,在该类型的网络中,以组播形式(224.0.0.5)发送协议报文,协议报文有(hello报文、dd报文、lsr报文、lsu报文、LSAck报文)。

2、点到多点p2mp类型(point-to-Multipoint,俗称点到多点类型):

没有一种链路层协议会被默认的认为时p2mp类型,点到多点必须是由其他的网络类型强制更改的,常用做法是将非全联通的NBMA改为点到多点的网络,在该类型的网路中以组播形式(224.0.0.5)发送hello报文,以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。

3、NBMA类型(Non-broadcast multiple access,俗称单播类型):当链路层协议是ATM时,默认情况下,ospf认为网络类型时NBMA。在该类型的网络中,以单播形式发送协议报文(hello报文、dd报文、lsr报文、lsu报文、lsack报文)。

4、广播类型(Broadcast,俗称广播类型):当链路层协议时ethernet、FDD时,默认情况下,ospf认为网络类型时Broadcast。在该类型的网络中,通常以组播形式发送hello报文、lsu报文和lsack报文,其中,224.0.0.5的组播地址为ospf路由器的预留ip组播地址:224.0.0.6的组播地址为ospf DR的预留ip组播地址。以单播形式发送dd报文和lLSR报文。

3、OSPF报文类型:

OSPF总共有五种报文:分别是

1、hello报文(用于建立和维护OSPF邻居状态)

2、DD报文(Database Description packet也可以称为DBD报文,描述本地LSDB摘要信息,用于OSPF邻居间LSDB的同步)

3、LSR报文(Link State Request packet可以称之为链路状态请求报文,用来请求所需的LSA信息,LSR只有在邻居间成功交换DD报文之后才会向对方发送LSR报文)

4、LSU报文(Link State Update packet可以称之为链路状态更新报文,用来向对方发送其所需要的LSA信息)

5、LSAck报文(Link State Acknowledgment packet可以称之为链路状态确认报文,用来对收到的LSA进行确认)

4、OSPF路由器类型:

1、区域内路由器(Internal Router)

这个类型的路由器所有接口都属于同一个OSPF区域。

2、区域边检路由器ABR(Area Border Router)

这个类型的路由器可以同时属于两个以上的区域,但其中一个必须时骨干区域。

3、骨干路由器BR(Backbone Router)

这个类型的路由器至少有一个接口属于骨干区域。

所有的ABR和位于area 0的内u路由器都是骨干路由器。

4、自治系统边界路由器ASBR(AS Boundary Router)

与其他AS交换路由信息的路由器称为ASBR。

ASBR并不一定位于AS的边界,它可能时区域内路由器,也可能时ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。

5、OSPF的Router ID

一台路由器如果要运行OSPF协议,必须存在Router ID。Router ID是一个32比特无符号整数,是一台路由器在自治系统中的唯一标识。

Router ID的选取有两种方式:

1、管理员通过命令行手动配置。

2、路由器自动选取:

如果没有手动配置Router ID,路由器会从当前接口的IP地址中自动选取一个作为Router ID。其选择的顺序时:

1、优先从Loopback地址中选择最大的IP地址作为Router ID。

2、如果没有配置Loopback接口,则在接口地址中选取最大IP地址作为Router ID

3、如果配置了全局的Router ID,没有手动配置Router ID,则按照全局的Router ID选取。

6、OSPF区域的概念:

区域是从逻辑上将路由器划分为不同得组,每个组用区域号(area 0)来标识。区域的边界是路由器,而不是链路。一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。

区域的类型如下:

1、普通区域:

默认情况下,OSPF区域被定义为普通区域。普通区域又包括:

标准区域:最通用的区域,它传输区域内路由,区域间路由和外部路由。

骨干区域:连接所有其他OSPF区域的中央区域,通常用Area 0表示。骨干区域 负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。

Stub区域(末梢区域):Stub区域是一些特定的区域,Stub区域的ABR(区域边界路由器)不传播它们接收到的自治系统外部路由,因此这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。一般情况下,Stub区域的ABR位于自治系统的边界,是只有一个ABR的非骨干区域,为了保证到自治系统外的路由依旧可达,Stub区域的ABR将生成一条缺省路由,并发布给Stub区域中的其他非ABR路由器。

Totally Stub区域允许ABR发布的Type 3缺省路由,不允许发布自治系统外部路由和区域间的路由 ,只允许发布区域内路由。

NSSA(Not-so-Stubby Area不完全末梢区域)区域:

NSSA是Stub区域的一个变形,它和Stub区域有许多相似的地方。NSSA区域不允许存在Type5 LSA。NSSA区域允许引入自治系统外部路由,携带这些外部路由信息的Type7 LSA转换成Type5 LSA,泛红到整个OSPF区域中。

Totally NSSA(完全末梢区域)区域不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。

7、LSA类型和作用:

1、Router-LSA(Type1):

每个路由器都会产生Type1类型LSA,描述了自身路由器的链路状态和开销,在发布路由器所属的区域内传播(按我个人理解的话,这是路由器运行ospf的链路产生的LSA)。

2、Network-LSA(Type2):

由DR产生,描述本网段的链路状态,在DR所属的区域内传播。(也就是说在DR所属的区域之中DR产生2类lsa描述了整个区域的链路状态信息。)

3、Network-summary-LSA(Type3):

由ABR(区域边界路由器)产生,描述区域内某个网段的路由,并通告给其他区域(除了 Totally Stub和Totally NSSA完全末梢区域之外)。(按我个人理解的话Type3类型的LSA描述的是区域间的路由)。

例如:ABR同时属于Area 0和Area1,Area0内存在网段10.1.1.0,Area1内存在网段11.1.1.0,ABR为area0生成到网段11.1.1.0的Type3 LSA;ABR为区域area1生成到10.1.1.0的Type3 LSA。

4、ASBR-summary-LSA(Type4):

由ABR(区域边界路由器)产生,描述本区域到其他区域中的ASBR路由,通告给除ASBR所在区域的其他区域(除了Stub区域、Totally Stub、NSSA区域和Totally NSSA区域)。

按我个人理解的话4类lsa描述的是通往ASBR的路由,也就是说4类lsa传递的是通往ASBR的路由。

5、AS-external-LSA(Type5):

由ASBR(自治系统边界路由器)产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域、Totally Stub、NSSA区域和Totally NSSA区域)。也就是说5类lsa是描述通往自治系统外的路由。

6、NSSA LSA(Type7):

由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。

7类lsa和5类lsa有一些相同,不同的是7类lsa之传播给NSSA区域,而5类lsa传播给的是除了末梢区域以外的普通区域。

7、Opaque LSA(Type9Type10/Type11)Opaque LSA提供用于OSPF的扩展的通用机制。其中:

Type9 LSA仅在接口所在网段范围内传播。用于支持GR的Grace LSA就是Type9 LSA的一种。

Type10 LSA在区域内传播。用于支持TE的LSA就是Type10 LSA的一种。

Type11 LSA在自治域内传播,目前还没有实际应用的例子。

以上1-6都是在实验过程中会经常碰到的

                                                                                                                                以上仅为个人理解

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐