OSPF(Open Shortest Path First开放最短路径优先协议)

怎么理解Ospf是链路状态路由协议?

什么叫链路(link)?——路由器接口

什么叫状态(state)?——描述接口及其与邻居路由器之间的关系

    即链路状态就是运行ospf的路由器通过接口相互连接,形成一条一条的路由器链路,这些路由器之间的关系状态包括接口的IP地址和子网掩码、网络类型、链路的开销、还有链路上相邻的邻居。利用核心算法SPF是这些链路形成一棵棵无环的树

 

Ospf报文格式

ospf

 



















OSPF的头部结构:

ospf 

ospf头部各个字段的解释:

字段名

长度

含义

Version

8 bit

Ospfv2的版本号,值为2

 

Type

 

8 bit

Ospf的报文类型:

Hello(1)、DBD(2)、LSR(3)、LSU(4)、LSACK(5)

Packet length

16 bit

整个Ospf报文的总长度(即包括头部和数据部分)

Router ID

32 bit

发送该报文的路由器标识

Area ID

32 bit

发送该报文的所属区域

Checksum

16 bit

包含除了认证字段的整个报文的校验和

 

AuType

 

16 bit

验证类型:

0:不认证  1:简单认证

Ospf邻接关系要建立成功,则ospf头部中标灰色的头部字段要一致,除此之外,下面对于ospf数据部分所携带的标灰色的数据信息也要一致,ospf邻接才能建立成功。

注意对于认证类型,如果是明文认证,则配置的认证密码就写在认证字段内,而如果是MD5认证,则下面认证字段所留的空间放不下认证数据,所以MD5的认证数据将被放在ospf报文的尾部

 

Ospf的数据部分:

(即ospf的那几种报文)

ospf 

 

 

Hello:建立和维护OSPF邻居关系

ospf 

 

DBD:链路状态数据库描述


ospf

即LSA完整的头部结构如***意LSA不是ospf的数据包类型)

 ospf


LSR:链路状态请求,向OSPF邻居请求链路状态信息

 ospf

LSU:链路状态回应(包含一条或多条LSA)

 ospf

 

LSACK:对LSU中LSA进行确认

ospf 

ospf


LSA(链路状态通告):是一个OSPF数据包,它包含在OSPF中共享的链路状态和路由信息

 

OSPF的邻居和邻接:

    ospf只有邻居之间才会交换链路状态信息,但传递链路状态信息一定要建立邻接关系。

Ospf邻居是否能建立成功的条件:

ospf 

注意在ospf邻接建立过程中,如果MTU值不一致,则只能协商到Exstart阶段,因为MTU是在DBD包中被携带,而Exstart阶段会相互发DBD包,用于描述自己的LSDB,如果MTU不一致,则邻接的建立过程只能停留在Exstart状态。

 

OSPF邻接关系的建立过程:

ospf

 

注意:对于Attempt尝试状态,只有在NBMA非广播多路访问环境(特别是帧中继)的网络环境中才有这样的状态,尝试状态,即我一直在发hello包,但是没有收到对方的hello包,则我将一直停留在这样的尝试状态,直到收到对方发送的hello包为止

ospf

ospf 

注意,主从关系选举出来后,主发的第一个有内容的DBD包,它携带的摘要信息只发一半,而从路由器第一次发有内容的DBD包时,是把所有的摘要信息都发完给主路由器了,接下来主路由器把剩下的另一半摘要信息接着发完给从路由器。注意这是就算从路由器第一次已经把全有的摘要信息都发给主路由器了,但是这是对于主路由器第二次发的DBD包,从路由器就算回空的DBD包也要回一个DBD包给主,因为要同步主路由器DBD数据包的***,进行隐式确认。

ospf

1. Down state 接口没有**OSPF时是down状态

2. Inite state 初始化状态,发hello包

3. Tow-way state 在邻居发的hello包看到了自己的ID,则互相使对方进入tow-way状态,互相成为邻居关系(如果是广播多路的情况下,要选举DR和BDR,选举成功的时间是在发完两个空的DBD包之后选举出来的,DR和BDR的选举是通过hello包,而如果不是多路访问的网络环境,比如是point-to-point的网络环境,则从Tow-way状态直接进入下一个阶段)

4. Exstart state 预启动状态,开始选举主从关系,谁的Router-id大,谁就成为主路由器。交换的是空的DBD包,用来选举主从路由器,选举主从路由器,是为了更好的控制DBD包的交换过程,DBD的交换的确认是隐式确认,即主路由器发一个有***的DBD包,则从路由器也要发相同***的DBD包进行隐式确认

5. Exchance state 预交换状态,相互交换DBD报文,即相互交换数据库的摘要信息,交换完后就Loading状态。

6. Loding state 加载状态,开始发LSR,回LSU,相互交换完整信息后,就进入Full状态

7. Full state 邻接建立状态

 

OSPF的三张表:

邻居表(Neighbor Table):亦称为邻接数据库,存放的是邻居信息

拓扑表(Topology Table):即LSDB(链路状态数据库),存放网络所有链路状态信息(LSA)

路由表(Routing Table):亦称为转发数据库,存放的是经过SPF算法计算出的最优路由

 

 

SPF最短路径优先算法具体过程如下:

    在一个区域内,每台路由器的链路状态数据库是相同的,即每台路由器都知道整张网络的拓扑结构,都有其对网络的一个认知

    每台路由器都以自己为根,使用SPF算法计算出自己到区域内的其他路由器的最短路径,形成一棵无环的最短路径树。

 

当网络拓扑发生变化时ospf是怎样进行路由更新的?具体如下:

①生成一个针对该链路的链路状态通告(LSA)

②并使用组播地址将LSA传播给所有的邻接设备

③邻接设备都存储该LSA并更新其数据库

④最后每台路由器都利用SPF算法重新计算出新的路由表以反映拓扑的变化

 

遇到的问题:对什么是ospf的无环树还是有点理解不透,ospf的SPF算法形成的无环路的树,它是基于区域内的还是基于整个网络拓扑的?

 

为什么ospf能快速地对网络的变化做出响应,使网络能更快速收敛?

因为:

①触发更新:比如当网络中只将变化的路由条目触发更新出去告诉给区域内的其他邻居 ,而不是将所有的LSA传递给邻居,这样邻居对LSA数量的处理量可以少很多,也可以减少了LSA的泛洪时间,也有利于促进网络的快速收敛

②区域的划分:使网络的动荡影响只影响到该区域内的路由器,而不是整个网络拓扑环境,这样相对于对问题的处理范围就变小很多了,这也有利于促进网络的重新快速收敛

③DR、BDR:因为在广播多路环境中,由DR统一收集网络中所有的路由更新后,再将其转发给LAN中的其他邻居,这样效率会更高。

④属于链路状态路由协议:每台路由器都知道整张网络的拓扑结构,即知道若有到达其他路由器的路径(最优的和次优的都知道),这样当某条路径挂掉的时候,能马上   

 

广播多路访问环境中为什么要选举DR和BDR?

注意DR和BDR都是立足于运行了OSPF的某一接口上讨论的

①比如当网络中有新加入的路由器时,如果让LAN上的所有路由器都将相同的信息传递给新加入的路由器,则效率会非常低;而如果由DR将其LSDB传递给新加入到VLA中的路由器,这样效率机会高很多,促进网络的更快收敛

当网络中某一网段出现问题时,检测到网络挂掉的路由器只将down掉的信息告诉给DR和BDR,再由DR以组播的形式(224.0.0.5)将这个消息告诉给其他路由器,这样可以避免所有路由器都全网广播,浪费网络的资源,同时也可以促进网络快速收敛

 

OSPF的区域

要求:每个区域包含的路由器数量不应该超过50台,每台路由器所属的区域数量不要超过3个

骨干区域:主要功能是快度高效地传播IP分组,所有的普通区域都必须和骨干区域相连,否则需要建立虚链路

普通(常规)区域:主要功能是连接用户和资源。

普通区域包括:标准区域、末节区域、绝对末节区域、NSSA区域、绝对NSSA区域

 

Ospf为什么要划分区域?

优点:

① 减少数据库的同步量:ospf区域内的路由器要求链路状态数据库都是要同步的。如果所有的路由器都在同一个区域内,则每台路由器的链路状态数据库都会很大,同步时也比较困难,也比较耗费大量的网络资源

② 减少SPF计算量:划分区域后详细的路由信息将被限制在一个区域内,因此无需将所有的链路状态信息扩散到其他区域,这样当网络出现故障的时候,只有该区域内的路由器才会受到影响,才需要重新计算路由表

③使路由表更小(即为了汇总):使用多个区域时,使具体的路由条目只限定在该区域内,在去往其他区域时,可在ABR或者是ASBR上先进行汇总,并只将汇总的路由条目传到其他区域,这样区域之间的通信是通过汇总的路由,而不是具体的LSA,这样可以减少LSA在区域之间传播,从而减少网络环境中路由表的路由条目。

④降低了链路状态更新(LSU)开销:LSU可包含多种类型的LSA,其中包括链路状态信息和摘要信息。路由器在区域间通告一条汇总路由或少量路由,而不是发送针对区域内每个网络的LSU,从而降低了在区域间传输LSU的开销

缺点:

① 末梢区域路由不能在虚链路上透传

 

遇到的问题:怎么理解3类LSA和汇总的路由条目之间的不同?

 

 

如果没有骨干区域,普通区域间的路由条目是否可以互相学到?

如下实验证明:

ospf 

实验验证:

这里将如上图所示的接口通告进ospf的相应区域,分别为area 1和area 2,此时网络环境中没有骨干区域的存在。我们可以看到网络环境中的ospf路由器都能正常和邻居建立邻接关系了,如下图所示:



ospf

 

但是R2和R3之间是否学到对方的条目呢?我们可以看到它们之间并没有学到对方的条目。

ospf 

为什么邻居建立成功了也还是学不到对方的条目呢?因为我们可以看到这个网络环境中只存在两个普通区域,没有骨干区域的存在,那么普通区域之间的路由是不会被互相传递的。

 

而在R1上增加一个环回口,并且把它通告进区域0,这就使得整个网络环境有了骨干区域,这时我们接着查看路由表,发现R2和R3之间都学到了对方的路由条目

ospf 

综上我们可以发现如果没有骨干区域的存在,区域之间的路由条目是不会互相被传递的。因为默认情况下,普通区域不允许另一个区域使用其连接将数据流传到其他区域。即两个普通区域的路由信息是不能互相传递的,都必须要经过骨干区域来传递,哪怕骨干区域只是一个环回口。

 

如果普通区域之间没有直接和骨干区域直连,则需要建立虚链路,但是虚链路的设计也有可能产生环路

例如下面环路设计的分析:现在如果让R1和R4两台路由器之间建立虚链路,则会产生环路,如下分析

ospf 

对于去往环回口的路由条目,路由条目先传给R4-R2-R1-R3-R2,之后对于去往环回口5.5.5.5的条目来到R2后,根据路由表,下一跳又指向R3,那么去往环回口5.5.5.5的路由在来到R2后,又接着走R2-R3-R1-R2,来到R2后又接着同样的R2-R3-R1-R2一直做循环,这就产生了环路

 

不过理论上是这么分析,但是对于思科的设备,我们先来看一下R2的路由表

ospf

我们通过观察路由表,发现去往环回口5.5.5.5的路由条目,下一跳指向10.1.24.4,即R4,而不是我们理论上分析的下一跳指向R3,然后产生环路,对于这个实验现象也让人有点解释不通,为什么它直接下一跳指向了R4,这就不会产生环路了。这可能是思科路由器自己防环机制的问题吧,因为有人用华为做确实出现了环路26

 

对于上面由于虚链路对象设计的不同,有可能产生环路,这里上面那个实验对于虚链路的设计,刚开始发现虚链路建立不成功,检查发现R1的f0/1口和R2的f0/0口被通告进了ospf的区域0,这就使得R1只是骨干区域的路由器,而不是ABR区域间路由器,这就无法使虚链路建立成功了,所以应该将这两个口划入区域1,使的R1成为区域间路由器。即虚链路的建立需要满足以下两点:①建立虚链路的两台路由器都要求是区域间路由器;②建立虚链路邻居额两个地址分别是两台区域间路由器的router-id ,并且要求这两个地址的路由可达

 

 

为什么点对点网络环境不需要检查掩码,而广播多路的访问环境需要?

(提示:这就需要观察点对点和广播多路不同的网络环境传递的链路状态通告有什么区别,也就是LSA有什么区别?)

因为点对点的网络环境下,这个1类的LSA在发送时有携带掩码信息,主要是为了描述它连入了什么网络,并且点对点网络环境下,就只有两台路由器,基于协议的特点,点对点环境下,它对掩码没有什么特别的限制规定。

遇到的问题:怎么区分ospf在点对点的网络环境中不需要匹配掩码这个问题和我下面分析的几种掩码类比的问题有什么不一样的吗?

 

关于掩码问题的实验类比:

即在点对点环境下,没有运行任何路由协议的两台路由器之间

现象一:如果网络号相同,但是掩码不同,是否能互相ping通?

ospf

 

ospf

发现是能ping通的

查看路由表

ospf

发现,即使两边的掩码不同,在点对点的网络环境当中是可以学到对方一条32位掩码的路由条目,即点对点环境下不需要匹配掩码,所以可以互相ping通

 

其实如果是高低掩码的问题,不管是什么链路,都是可以互相ping通的,所以对于现象一,串行链路也不管是否封装PPP协议,也都是能互相ping通的,只是如果串行接口封装了PPP协议,则会学到对端32位掩码的路由协议。

 

 

现象二:如果两边的网络号和掩码都不同,又是否还能ping通?

ospf

 

ospf

实验发现,如果他们的网络号和掩码不同,它们依旧也能ping通,不过前提条件下是有封装了PPP协议才能互相ping通

查看R2的路由表

ospf

这说明对于封装PPP的链路,不管两边的接口是否是相同的网络号,是否是相同的掩码都是能互相ping通的,因为点对点的网络环境下,链路两边的路由器都可以学到一条对方32位掩码的路由条目,所以能互相ping通

 

对于现象一的这种情况下,就算接口没有封装PPP,因为他们的网络号相同,只是掩码不同,也是可以互相ping通的,这就相当于以太网线相连的路由器之间不起路由协议,而用高低掩码就也可以实现互相ping通的问题,如下实验设计:

三台路由器,如何只配置IP地址,让三台路由器之间可以直接互通;

ospf 

ospf 

解析:不需要路由,可通过配置高低掩码就能使它们能互相ping通,对于掩码

的配置,答案不唯一,例如对于R2两个接口掩码的配置,也可以一边/24 一边/23,只要它属于/16包含的网段内就行

 

 

什么是Ospf的网络类型?

OSPF默认的网络类型是基于二层的封装,这个意思也就是说如果是s口则默认情况下属于点对点的网络类型,如果是f口则默认是广播多路的网络类型,即这些都是ospf基于二层的不同封装所默认的网络类型,但是这些原来网络类型是可以手动修改的,所修改的网路类型只是ospf对网络的一个认识,和实际的网络类型没有必然的关联

如下实验分析:

ospf 

ospf 

分析:点到点它原来的链路网络类型是PPP,这里我们将ospf的网络类型改为广播多路的访问类型,可以发现它的链路的网络类型并不会因为我们手动将ospf的网络类型更改而改变

 

 

那么不同的网络类型的工作方式有哪些不同?

比如,hello时间,死亡时间,选不选DR,BDR等都会有很多的不同点,其实在广播多路和点对点的网络环境下,则hello时间都是10,死亡时间都是40s,不过在点到多点,非广播的网络环境下hello时间是30s,点对点的网络环境下不需要选举DR和BDR而广播多路的访问环境需要选举。

 

ospf又是根据什么来判断自己有哪些邻居的?

广播多路的访问环境下的hello包

ospf 

点对点环境下的hello包

ospf 

在two-way之后如果是广播多路的访问环境中就选举DR.BDR,通过hello包里面的Active neighbor字段可以收集到邻居的信息,不管是在点对点还是广播多路的访问环境,都可以通过发组播的hello来发现邻居。

 

当网络类型不一致,ospf的邻居建立会停留在哪个状态?

(提示:首先要明白什么是网络类型,ospf有几个状态,ospf在这几个状态建立过程中要传递哪些报文,还有这些报文对于每一个邻居建立的状态需要匹配哪些字段)

为什么实验里我看到的依然能进入full状态?

 

 

LSA的分析

ospf 

 

一类LSA【Router LSA,路由器LSA】

(PTP的描述邻居是谁、BMA的描述我加入哪个网络

①PTP环境

 L-S-ID:1.1.1.1

 Advicesing Routing:1.1.1.1

 L-ID:2.2.2.2  L-Data:10.10.12.1

 L-Type:PTP(1)

 L-ID:10.10.12.0  L-Data 255.255.255.0

 L-Type:Stub(3)

 Metric=64

    我的哪个接口(10.10.12.1)连了哪个邻居(2.2.2.2)

我加入的网络类型是什么(PTP)

这个网络是 (10.10.12.0)掩码是(225.225.255.0)

②BMA环境

 L-S-ID:3.3.3.3

 Advicesing Routing:3.3.3.3

 L-ID:10.10.23.2(DR)  L-Data:10.10.23.3

 L-Type:Transit(2)

 Metric=1

    我的哪个接口(10.10.23.3)连接了DR(10.10.23.2)

我加入的网络类型是什么(BMA)

但是无法知道这个网络都有谁

   描述了路由器物理接口所连接的链路或接口,指明了链路的状态,代价等.

每个OSPF区域内的路由器均产生第一类LSA.它让路由器彼此认识彼此的链路 接口等.只在产生的区域内泛洪.

 

二类LSA【Network LSA,网络LSA】

 L-S-ID:10.10.23.2(DR)  

 Advicesing Routing:2.2.2.2

 Netmask:255.255.255.0

 Attached Router:2.2.2.2

 Attached Router:2.2.2.2

是由DR始发的(这个网络有谁)

这个网络的代表是DR(10.10.23.2)

掩码是(255.255.255.0)

这个网络包括的路由器(2.2.2.2/3.3.3.3)因为有知道网络环境中的掩码,进而知道每一个广播域

它描述了一个多路访问网络所有相连的路由器,只在产生的区域内泛洪.

 

三类LSA【Network summary LSA,网络汇总LSA】

 L-S-ID:10.10.24.0(DR)  

 Advicesing Routing:2.2.2.2

 Netmask:255.255.255.0

 Metric=1

是由ABR发出的(去往一个区域间网段)

这个网络的前缀(10.10.24.0)

通告者(2.2.2.2)

掩码(255.255.255.0)

开销(1)

它将某个区域的汇总告知其他区域,也就是通知其他区域路由器要到这些网络就找我.

 

四类LSA【ASBR Summary LSA, ASBR汇总LSA】

 L-S-ID:6.6.6.6  

 Advicesing Routing:3.3.3.3

 Netmask:0.0.0.0

 Metric=1

也是由ABR发出的(怎么去往ASBR)

链路状态ID:ASBR(6.6.6.6)

通告者(3.3.3.3)【ABR】

开销(1)

它是告诉其他区域路由器到某个非OSPF AS外的网络要找通告里告诉的那个ASBR.

可以理解为汇总是由ASBR产生但由ABR代为通告出去的.它是ASBR发出的特殊置E位的一类LSA,

然后由ABR代为转成LSA4发出.

五类LSA【Autonomous system external LSA, 自治系统外部LSA】

(怎么去往AS外部路由)

 L-S-ID:6.6.6.0

 Advicesing Routing:6.6.6.6

 Netmask:255.255.255.0

 Metric=20

 Forwatding Addrass:0.0.0.0

链路状态ID:条目(6.6.6.0)

通告者(6.6.6.6)【ASBR】

掩码(255.255.255.0)

开销(20)

    用来通告自治系统外部的路由,它在整个OSPF自治系统内泛洪.

所以管理员应该尽量在ASBR上进行路由汇总(summary-address 外部汇总网络号 汇总掩码)

 

七类LSA【NSSA 外部LSA】(相当于存在于NSSA的五类)

 L-S-ID:6.6.6.0

 Advicesing Routing:6.6.6.6

 Netmask:255.255.255.0

 Metric=20

 Forwatding Addrass:10.10.36.6

 链路状态ID:条目(6.6.6.0)

 通告者(6.6.6.6)【ASBR】

 掩码(255.255.255.0)

 开销(20)

    是指在非纯末梢区域内(not-so-stubby area)由ASBR发出的通告外部AS的LSA.仅仅在这个非纯末梢区域内泛洪.不能在整个自治系统内泛洪.NSSA网络中的ABR会将这个7类LSA转换为5类LSA告诉主干区域.

 

7类转化为5类

 L-S-ID:6.6.6.0

 Advicesing Routing:3.3.3.3

 Netmask:255.255.255.0

 Metric=20

 Forwatding Addrass:10.10.36.6

 链路状态ID:条目(6.6.6.0)

 通告者(6.6.6.6)【ASBR】

 掩码(255.255.255.0)

 开销(20)

拓扑中在将7类LSA改为5类LSA时。R3就相当于成为ASBR

 

六类LSA

Group Membership LSA

组成员关系LSA,这是为MOSPF定义的,思科的IOS目前不支持组播OSPF (MOSPF协议)。

 

八类LSA

External Attributes LSA

外部属性LSA,思科路由器不能实现。

 

九 - 十一类LSA

Opaque LSA

LSA9  不透明LSA(本地链路范围)  (opaque LSA)   *目前主要用于MPLS多协议标签交换协议

LSA10 不透明LSA(本地区域范围) (opaque LSA)   *目前主要用于MPLS多协议标签交换协议

LSA11 不透明LSA(AS范围) (opaque LSA)   *目前主要用于MPLS多协议标签交换协议

 

九类LSA

Graceful Shutdown:

9类LSA用于优雅重启

高级的路由器支持引擎模块和数据转发模块分离,从引擎模块把路由下放到转发模块。

用9类LSA和邻居说我要重启引擎但转发模块仍然作用,我要重启时间长邻居关系会挂了,不要把刚才发的条目删除。

 

 

LSA报文

1类LSA(Router LSA)

点对点网络环境

ospf 

 

广播多路网络环境

ospf 

 

2类LSA(Network LSA)

ospf 

 

3类LSA(Network summary LSA)

ospf 

 

4类LSA(ASBR summary LSA)

ospf 

 

5类LSA(AS-External-LSA)

ospf 

 

7类LSA(NSSA外部LSA)


ospf 

 

 

Ospf次优路径

ospf 

ospf 

综上可以看到,由于FA字段不为0,被写成了ASBR去往外部网络的下一跳IP地址即10.1.1.3,并告诉给A,所以此时A可根据转发地址,则下一跳直接将包发给地址10.1.1.3,而不必先发给路由器B,这样可以防止产生次优路径。


 

OSPF是如何防环的?

ospf 

 

LSA1 LSA2防环:

依靠SPF算法,生成最短路径树;

LSA3 的防环:

1)OSPF要求所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转;
2) ABR只能够将其所连接的区域的区域内部路由注入到Area0,但是可以将区域内部路由及区域间的路由注入到非0常规区域。ABR从非骨干区域收到的Type-3 LSA不能用于区域间路由的计算;
3) ABR不会将描述一个Area内部的路由信息的Type-3 LSA再注入回该区域中;

LSA4 和LSA3的类似,只是传递的信息不一样;

LSA5的防环依赖于LSA3 LSA4;

 

 

区域类型:

标准区域:默认的区域类型,接收链路更新路由汇总外部路由等

骨干区域:也叫中转区域,其他区域都与之相连,0区域就是骨干区域.

 

 末梢区域:拒绝4、5类LSA,只接受3类LSA和本区域内LSA(即1、2类LSA

当需要到外部AS时用3类的默认路由表示.在末节区域里不能有ASBR(否则就会出现5类LSA了).

    不接受5类LSA意味着末梢区域路由器的路由表里不会出现E1或者E2类型路由.(即末梢区域只存在1、2类LSA和明细的3类LSA)

 

成为末梢区域的标准有哪些? 

1.末梢区域内的路由都必须配为末梢区域路由器(即特殊区域标志一致)

2.末梢区域内不能存在虚链路。(即末梢区域内的路由条目不能经过虚链路透传)

3.末梢区域不能存在ASBR。(因为不能存在5类LSA)

4.末梢区域只能存在1个区域出口或存在多个区域出口但不需要选择最佳路径

(因为默认情况下路由器对到外部AS的路由不考虑在OSPF内的开销(E2类型),所以这时会无法选择最佳路径.

 

绝对末梢区域:CISCO专有的在末梢区域基础上的加强版,它不但不接受4、5类LSA.不接受3类的汇总LSA.

因此绝对末梢区域里的路由表将不会有O IA E1 E2类型路由.绝对末稍区域同样不能有ASBR存在.

 

NSSA区域(非纯末梢区域):这类是末梢区域的一种变态扩展,它容许末梢里出现了ASBR,因而在此区域里出现了独特的7类NSSA LSA.

1.(知识扩展:这里可以稍微注意一下,特殊区域里可以允许stub(末梢)和stub no-summary(完全末梢)同时存在的,抓包的时候我们可以看到报文内容只关心这个区域是什么类型的区域,而不关心这个区域是末梢区域还是完全末梢区域,对于nssa区域也是类似分析的)

 

各种区域类存在的LSA类型比较表:

区域类型

1&2

3&4

5

7

自动下发3类默认路由

骨干区域

容许

容许

容许

不存在


标准区域

容许

容许

容许

不存在


末梢区域

容许

3容许/4不存在

不容许

不存在

绝对末梢区域

 容许

不容许

不容许

不存在

NSSA区域

容许

3容许/4不存在

不容许

容许

不会

绝对NSSA区域

容许

不容许

不容许

容许

NSSA的ABR上执行7转5(对7类的且设置了P位=1的LSA),执行7转5的ABR变成很特殊的ABR/ASBR混合体,这个路由器上存在5类,注意5类是和区域无关的.

 

Ospf是如何计算最短路径的?一台路由器收集到所有的网络信息后,它会计算出这个网络的拓扑是怎样的,那它又是怎么描绘出这个网络的拓扑呢?

1、StubNet网络类型:

ospf 

2、TransNet网络类型

ospf 

 

3、point-to-point网络类型:


ospf 

ospf 

练习题:

ospf 

 

答案:

ospf 

 

第一阶段:计算Transit节点,忽略Stub节点,生成一个最短路径树

第二阶段:只计算Stub节点,将Stub网段挂到最短路径树上去