OSPF

1.0 简介

OSPF(open shortest path first)
ospf基于spf算法的链路状态协议,同时ospf也是一种内部网关协议,ospf基于ip,协议号为89,
ospf是分区域的,它将区域分成2种,一种area 0(骨干区域),一种非骨干区域,而且所有的非骨干区域都要与骨干区域相连
ospf首先会建立邻居,再进行数据库学习,再进行SPF算法

1.1 ospf网络类型

1.广播类型,数据链路层
2.点对点类型,数据链路层是PPP,HDLC
3.numa类型,数据链路层是帧中继
4.点到多点P2MP类型,需要手工配置

1.2 OSPF报文类型

hello 用于建立和维护邻居关系
DD报文:用于描述本地LSDB的摘要信息,用于2台路由器进行数据库同步
LSR报文:用于向对方请求所需要的LSA,路由器只有在ospf邻居双方成功交换DD报文后才会向对方发出LSR报文
LSU报文:用于向对方发送其所需的LSA
LSAck报文:用来对收到的LSA进行确认
在这里插入图片描述

2.0 路由器角色

在这里插入图片描述
ABR

至少连接2个区域,其中有一个区域是区域0也就是说ABR是连接再区域与区域之间的路由器,区域之间必须要有一个活跃的邻居

internal router

区域内部的路由器就是internal route

ASBR

连接OSPF和其他的路由协议的路由器

在广播类型和NBMA类型有2个角色 DR/BDR

DR

注意!

ospf的区域概念是接口的概念如果说一个路由器属于某个区域,可以说该路由器所有的接口属于次区域

3.0 OSPF邻居关系建立

首先我们区域内有2台路由器,r1和r2
在这里插入图片描述
R1的route id 为1.1.1.1,R2的route id 为2.2.2.2,r1接口ip为12.1,r2接口ip为12.2

邻居建立会经历3个关系 down->init->two way
邻接建立会经历5个关系exstant->exchange->loading->full

首先我们的端口都是down的,此时R1会发送一个hello报文给R2,其中包括R1的ip,掩码,route ID,区域ID,有没有配置认证,优先级等等信息,在广播时间内hello每隔10秒发送,dead时间为40S,P2P网络中也是10S,40S,但是在NBMA网络中是30S,120S,在P2MP网络中是30S,120S
ospf hello包格式如下
在这里插入图片描述
R2收到R1的hello包后,也会回一个hello包,R2发送hello包后会进入init状态,也可以叫他one way,
R1收到R2的hello包后进入two way状态,(只要我自己收到的helo包中包含自己的route id就进入two way状态)
R1还会回一个包给R2这个hello中neighbor有R2的route id,R2收到后就进入two way
在还没有都two way的时候会进行DR/BDR选举,首先比较优先级,谁大谁是DR,如果优先级都是默认,都一样,那么就比较route id谁大谁是DR, 优先级为0代表不参与选举

3.1 DR/BDR选举过程

在这里插入图片描述
中间的链路断掉了,此时划分出了2个网络,左边的通过选举得出最下面的为DR,左边中间的路由器为BDR,右边的下面的路由器为DR,右边中间的路由器为BDR
此时我们将中间的链路接起来,此时是这样选举的,把2个网络中的BR,BDR分别放入一个集合中,在集合中选举
DR {R5,R6} 选出DR为R6
BDR {R3,R4} 选出BDR为R4
OTHER {R1,R2},其他的都是other

此时R6down掉后R4直接变成DR,R5变成BDR,

3.2 建立邻接关系

此时2台路由器邻居建立完成,要进行建立邻接同步数据库,此时他们都是exstart状态
在这里插入图片描述
此时R1和R2会相互发送dd报文,DD报文就相当于发送给你一个目录,你需要什么就回复请求,某一项
DD报文格式如下
在这里插入图片描述
首先R1 发送给R2的dd报文没有LSA头部,R2会回一个DD报文给R1,这2个dd报文叫做first DD,其中主要用作1,协商组从,2,确定MTU,3确定序列号,此时主从已经确认,2台路由器进入ex-change状态 R1为从,R2为主
此时R1还发送DD报文此DD报文的I=0,M=1,M/S=0,SN为上一次R2发给R1的SN
R2回一个DD报文,I=0,M=1,M/S=1,SN为上一个SN+1

i为初始化0代表不需要初始化,第一个发first dd i=1,M=1代表后面有数据,M/S=0代表从1代表主

此时路由器知道对方数据库中有啥后,就开始发送LSR请求对方的LSA了
比如我们的R2向R1发送LSR请求某些数据,R1收到后就发送LSU,LSU是LSA打包后的数据,因为不可能一条一条的传送LSA,R2收到R1发送的LSU后就回复LSACK,告诉R1已经收到内容

3.3 OSPF的配置

拓扑
在这里插入图片描述
配置

[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]ip address 2.2.2.2 255.255.255.0 
[AR1-GigabitEthernet0/0/0]q
[AR1]interface LoopBack 0
[AR1-LoopBack0]ip address 1.1.1.1 255.255.255.0 
[AR2]interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0]ip address 2.2.2.1 255.255.255.0 
[AR2-GigabitEthernet0/0/0]q
[AR2]interface LoopBack 0 
[AR2-LoopBack0]ip address 3.3.3.3 255.255.255.0 
[AR2-LoopBack0] 
[AR1]ospf 1
[AR1-ospf-1]area 1
[AR1-ospf-1-area-0.0.0.1]network 2.2.2.2 0.0.0.0	//宣告本接口 
[AR1-ospf-1-area-0.0.0.1]network 1.1.1.1 0.0.0.0	//宣告环回地址到ospf 区域1中 
[AR2]ospf 1 router-id 10.10.10.10	//配置route id,我们ar1没有配置route id,注意如果有route id我们又给他配置一个route id那么必须要重启ospf进程,如果没有配置Route id我们就选择回环口的ip为route id,如果回环口没有就用物理接口ip地址,如果有多个物理接口ip地址就选择大的 
[AR2-ospf-1]area 1	//进入are 1
[AR2-ospf-1-area-0.0.0.1]network 2.2.2.1 0.0.0.0 	//宣告ip
[AR2-ospf-1-area-0.0.0.1]network 3.3.3.3 0.0.0.0	//宣告ip

3.4 抓包分析

此时我们的邻居关系建立成功了,我们开启抓包软件,并且关闭端口再重启端口可以查看到第一个hello格式在这里插入图片描述
首先此hello包ospf头部的信息包括,版本为2,包长度44,source ospf router为route id,area id表示自己所在区域,auth type表明是否有认证类型,此处没有,然后ospf hello包主题有自己的掩码,hello包间隔(10秒),优先级,死亡时间40S,DR为0(没有选出),BDR为0(没有选出)

此时AR2会回一个hello包给AR1 ,包格式如下
在这里插入图片描述
也同样什么都没有,此时AR1会再发送一个hello给AR2
在这里插入图片描述
上图中大部分都和前面的包一样但是多了一个active neighbor就是邻居的route id也就是AR2的route id
此时AR2收到后还会回一个hello包给AR1 ,一样的里面有邻居的route id也就是AR1的route id但是此时还是没有建立起DR和BDR
在这里插入图片描述
从第一个hello开始直到40S左右才开始选DR,此包是AR1向AR2发送的hello包,其中DR和BDR已经选举成功
在这里插入图片描述
DR,BDR选举完成后AR1向AR2开始发送DB Description报文,此报文格式如下 MTU为0,DB Description中I为1代表初始化,MS为1代表主说明AR1为主
在这里插入图片描述
在AR1发送hello报文的时候,AR2也会发一个DBD报文他也认为自己是主,I为1要初始化
在这里插入图片描述
AR1在发送完DBD报文后也受到了来自AR2的DBD报文进行选举发现自己的优先级高就自己是主,AR2是从,所以发送一个DBD报文给AR2 ,此时AR2早就收到上一个AR1发送的第一个DBD报文发现自己的优先级低就向AR1发送一个DBD,序列号用的是AR1发送的第一个DBD的序列号,其他的都为0,也就是不用初始化,此交换机为从
在这里插入图片描述

AR2发送的报文
在这里插入图片描述
AR1收到后再发一个DBD报文到AR2 MS为1代表主,并且将自己的序列号加一
在这里插入图片描述
而且同时AR1为主,由它发送一个LS request(LSR)报文给AR2请求数据 格式如下
在这里插入图片描述

3.5 总结

影响OSPF跟新建立邻居的因素
1,网络类型
2,R-ID (route id)
3,A-ID (区域号)
4,掩码(MA网络)
5,MTU
6,认证
7,hello/dead时间不匹配也建立不起来
8,区域类型
9,DR选举不成功,一直停留在two way
10,静默接口
在这里插入图片描述

4.0 ospf区域

在ospf区域中有3种区域,首先是骨干区域,和非骨干区域,非骨干区域种又分为NSSA(就是末梢区域也就是连接别的路由协议的区域,可以注入外部路由)和stub(也是一个末梢区域,但是他不能引入外部路由)
在这里插入图片描述
two way状态不能同步数据库

4.1 ospf区域内

在这里插入图片描述
首先我们的邻居建立完成后,开始建立邻接同步数据库在此时我们的路由器会进行LSA泛洪,也就是在端口是exchange的时候就开始lsa泛洪(1类LSA)

4.1.1 lsa泛洪

在这里插入图片描述
首先我们的A路由器的loopback接口将10.10.10.10引入到网络内,此时A会开始LSA泛洪,泛洪就是给B和给C都发一份,B接到后记录后再从自己的接口发出去(不是链接A的接口),C也一样,此时X收到2份1类LSA,此时X可以通过LSA3要素去确认他是一样的, 序列号也是一样的,此时我i们在比较LSA的新旧,LSA从开始有个计时器,如果时间达到3600S就老化,如果第一份和第二份的时间差大于15分钟就选择小的而且认为网络有故障,如果小于收取那一份都可以
当B或者C收到LSA后发现自己的数据库里面没有就先记录,再发出
当B或者C收到LSA后发现此LSA更新,则覆盖老的,再把新的泛洪出去
当B或者C收到LSA后发现此LSA和自己数据库的一模一样,AGE小于15分钟
当B或者C收到LSA后发现此LSA比自己数据库的老,则忽略他
当B或者C收到LSA后发现此LSA age时间大于3600,则清空本地的LSA再泛洪出去

LS type

LSA 三要素

LS type

LS link state id

adv

lsa报文格式
头部
在这里插入图片描述
lsa type一共有1,2,3,4,5,76种
1类LSA的link state id 就是ADV
adv是通告,就是告诉这个LSA是谁产生的一般就是link state id(仅仅在1类LSA)
LS sequence序列号都是从80000001开始到7FFFFFFF结束

4.1.2 一类LSA

拓扑
在这里插入图片描述
查看一类LSA

[Huawei]dis ospf lsdb router 

	 OSPF Process 1 with Router ID 2.2.2.2
		         Area: 0.0.0.0
		 Link State Database 


  Type      : Router
  Ls id     : 2.2.2.2
  Adv rtr   : 2.2.2.2  
  Ls age    : 215 
  Len       : 60 
  Options   :  E  
  seq#      : 80000009 
  chksum    : 0x51e1
  Link count: 3
   * Link ID: 2.2.2.2      
     Data   : 255.255.255.255 
     Link Type: StubNet      
     Metric : 0 
     Priority : Medium
   * Link ID: 2.2.1.2      
     Data   : 255.255.255.255 
     Link Type: StubNet      
     Metric : 0 
     Priority : Medium
   * Link ID: 192.168.1.2  
     Data   : 192.168.1.2  
     Link Type: TransNet     
     Metric : 1

  Type      : Router
  Ls id     : 1.1.1.1
  Adv rtr   : 1.1.1.1  
  Ls age    : 219 
  Len       : 60 
  Options   :  E  
  seq#      : 80000007 
  chksum    : 0x3113
  Link count: 3
   * Link ID: 1.1.1.1      
     Data   : 255.255.255.255 
     Link Type: StubNet      
     Metric : 0 
     Priority : Medium
   * Link ID: 1.1.2.1      
     Data   : 255.255.255.255 
     Link Type: StubNet      
     Metric : 0 
     Priority : Medium
   * Link ID: 192.168.1.2  
     Data   : 192.168.1.1  
     Link Type: TransNet     
     Metric : 1

OSPF除了定义网络类型(Network Type),还定义了链路类型(Link Type),这是两个不同的概念。链路类型主要用于描述OSPF路由器的接口或邻居。在1类LSA中,可以看到产生该LSA的路由器所连接的所有链路(Link)、链路的类型以及相关的内容。通过每个1类LSA中描述的各种链路(Link),OSPF得以描绘出网络的拓扑和子网信息。

stub network link

如果路由器的一个接口被激活OSPF,并且该接口上没有任何OSPF邻居,则该接口使用Stub Network Link来描述,loopback就是stubnetwork简称stubnet

Transit Link

拥有两台或两台以上OSPF路由器的链路,简单理解为有邻居的OSPF接口,使用Transit Link来描述。但网络类型为Point-To-Point和点到多点(Point-To-Multipoint)的接口除外,因为它们被定义为Point-To-Point Link。

Point-To-Point Link

OSPF网络类型为Point-To-Point的接口,使用“Point-To-Point Link”来描述,但Loopback接口除外;
网络类型为点到多点(Point-To-Multipoint)的接口,同样使用为Point-To-Point Link这种链路类型来描述

Virtual link

这种链路类型用于描述OSPF虚链路(Virtual Link)。
在这里插入图片描述
在上图中R1、R3建立了一条虚链路,

总结

在这里插入图片描述

4.1.3 二类LSA

在这里插入图片描述
首先我们有6个路由器串行相连 按照普通来讲他有5个DR,每一个链路选择一个DR,但是有2个闪电形状的链路,他们代表P2P链路,P2P链路不会选择DR所以只会选择3个DR
首先我们的DR是链路的概念,和区域没有关系
在这里插入图片描述
上图有4个DR
在这里插入图片描述
此处只有1个DR,因为都在一个广播里

问题一
在这里插入图片描述
如果在一个区域内route id 冲突了会怎么办
首先sw1发送1类LSA,其中LSA type为1 LSID为1.1.1.1 ADV为1.1.1.1,sw2收到后会跟新自己的lsdb,因为自己的数据库内部没有,然后发送出去给sw3,但是sw3收到这个1类LSA后对比LSID和ADV发现都是1.1.1.1发现和自己的route id一样以为是自己发送的,在然后查看序列号发现比自己的老,就忽略他,等他自己发送1类LSA出去,给sw2,此时sw1收到sw3发送的1类LSA会跟新自己的LSDB再发送出去,此时sw3手操这个1类LSA发现LSID和ADV都是自己而且序列号比自己新,就跟新自己的lsdb再发送出去。这样来回震荡sw2中关于这个lsa就不断的删除不断添加,在思科设备上会一直震荡下去,而华为设备会检测到route id冲突再更改他们的route id

在MA网络中只有掩码一致才能建立邻居,而P2P掩码可以不一致
在这里插入图片描述
建立邻居的时候发送的是一类LSA,而1类LSA描述的是链路状态信息,P2P网络中一条链路只能链接2个路由器,所以建立链接的时候一台路由器知道是对端发过来的就不用检查1类LSA中的网路信息(1类LSA中还有网络信息),而MA网络中,一条链路有可能链接多台路由器所以(用交换机相连),当有多台路由器的时候需要检查掩码,而且假设建立成邻居后,MA网络中由DR统一发送二类LSA,描述的是transit,但是有多个网段不知道该怎么描述,而P2P网络中建立了邻居,由于P2P网络中没有DR,她是由相邻的接口相互发送二类LSA,LSA类型是stub,自己描述自己的

为何需要二类LSA?
在MA中如果没有二类LSA,说明没有DR,而且在MA网络中所有的设备都会相互发送LSA,导致网络中到处充斥的LSA,使其效率低下
在这里插入图片描述

4.2 ospf区域间

4.2.1 3类LSA

3类LSA叫做network-summary LSA 由ABR产生描述区域内某个网段的路由
在这里插入图片描述
首先我们为何要分区域设计网络?
1,如果很多台路由器在一个区域那么会导致LSDB过大,SPF算法要画拓扑图,这样过大会变得非常的费劲
2,别的区域down掉一个路由器别的区域路由器不会有感知

假设我们最左上角的路由器有一个loopback端口配置的网段为10.1.1.0/24别的区域路由器向学习这个网段就由R1这个ABR通告这段路由,其LSA为3类LSA,LS ID为通告的路由,ADV为自己的route id
我们可以查看此3类LSA
在这里插入图片描述
这3类LSA的type为3,LSID为通告的网段,ADV为ABR的route id,当R2想发送3类LSA的时候也是以泛洪的方式发送,但是此时R1和R2都是ABR,所以他们都会去发送此时 aera0会收到这2个3类LSA,但是这2个LSA的ADV不一样,aera0收到这2个LSA后比较三要素,发现adv不一样,所以他认为不是同一个lsa,所以他会把lsa存入数据库,然后比较cost值,再决定有限选择哪一条,如果cost一样就,而且会把这2条LSA都发送给R3,此时R3因为是ABR,他会发一个LSA给R9但是,ADV改成自己的route id,此时R8也会收到R9的两个路由条目去访问10网段,假如R8和R7之间的拐角加上一个路由器这个路由器不能去访问10网段,因为R8不是ABR,不产生3类LSA,(ABR必须要和area 0相连)

问题1 双ABR问题
在这里插入图片描述
此时还有一个问题我们的R10发送一个1类LSA给R1,R1收到后计算链路信息最后得到路由信息记录在自己的LSDB中然后形成3类LSA发送到area0中的R路由器上,R路由器会发送3类LSA到路由器R2上,如果R2再把此3类LSA转给R12就形成了环路,所以此时R2不会将这个3类LSA发送给R12,因为R2上的区域0端口收到的3类LSA,和从区域1收到的1类LSA都是描述相同的网段的,此时1类LSA的优先级会高于3类LSA的优先级所以虽然从区域0发来的3类LSA虽然会存入LSDB中但是并不会去用,如果R10和R12的链路断了,那么他就会发送此3类LSA给R12,此时R12就可以学习到R10的网段
如果AREA1和AREA0互换位子,R10和R12中间的链路断了那么最左边的area0就被分割成为2个area0区域 如下图
在这里插入图片描述
r1如果有1类LSA发送给R3,R3计算链路后得到路由条目加入自己的LSDB,再转成3类LSA发送给R5,R5收到后再转给R4,此时R4作为ABR有一个原则,那就是收到由非骨干区域收到的3类LSA,ABR不会将其参,与路由计算,所以此时R2也不会收到R4发送的3类LSA

问题2,区域间cost值计算
在这里插入图片描述
首先AR6到AREA2区域的路由cost值为0,因为此区域的地址是自己的loopback地址,而AR4到AREA2中的cost值为AR4到AR6的1类LSA中的COST加上AR6到AREA2的cost

在我们最开始发hello包的时候有一个N/P位,当

问题3 R6如果想向R1发送包,会走那条路
在这里插入图片描述
如果我们的R6想访问100.1.1.0网段,会走那条链路了?其实他会走R6->R5->R3->R2->R1这个cost最大的一条链路,因为R6会收到二条3类LSA,都是由R5发送的,R4也是ABR他也会发送3类LSA给R5,因为R4和R5相连的线路属于Area2,R5作为ABR收到的非骨干区域3类LSA,会不参与路由计算,虽然将它发送给R6,所以他也不可能走R4这条路,尽管他的cost值低

4.2.2 v-link 虚链路

虚链路就是连接被分割的区域
在这里插入图片描述
很简单,如果ar2有一个20网段,AR5可以访问,因为他可以收到ABR AR3发送的3类lSA,但是AR6访问不了,因为没有路由器向他发送3类LSA

此时我们可以在AR5和AR3之间进行V-Link配置让AR5也成为了ABR,也能生成3类LSA
配置非常的简单,进入区域后输入 vlink-peer 10.10.10.2指向对端的Route ID,AR3同理,就完成配置

4.2.2.1 场景1

在这里插入图片描述
这个图最简单,我们只需要在R2和R3之间做vlink即可

4.2.2.2 场景2

在这里插入图片描述
我们在R2和R3之间做虚链路即可

4.2.2.3 场景3

在这里插入图片描述
在这个场景下我们可以在R2和R3上做虚链路,再在R3和R4之间做虚链路,这样才能全网互通,如果我们直接在R2和R4上面做虚链路是不行的,因为要虚链路建立成功端口状态编程full状态那就要遵守以下几点

  • 两台路由器在同一个区域
  • 必须指route id

如果我们的拓扑没有区域0那么我们可以通过建立VLINK来建立区域0

4.2.2.4 场景4

在这里插入图片描述
如果区域0的链路没有断,R2有2个网段,那么R3会收到2个关于这个网段的LSA,一个是R2->R1->R3,还有一个是R2->R4,R4产生3类LSA发给R5,R5再给R3,此时域内优于域间,所以他只会选择第一条线路去走, 如果R1和R2中间的链路断了,那么就变成了3个区域旁边2个是AREA0中间的是AREA1
我们可以在R3和R4之间建立虚链路

4.2.2.5 vlink缺点

在这里插入图片描述
上图中我们再R1和R2之间做vlink,首先我们的R1发送hello包单播,到R2,这个hello包的目标地址是R2的端口cost是最小的,如果cost都一样那么就选IP最大的

缺点1
我们配置vlink的时候以route id建立的,如果route id不影响那么就有问题

缺点2
我们不能对transit区域做汇总 ( 配置了会失效)
在这里插入图片描述
在vlink中不能做汇总,首先我们的R1上有一些网段,我们如果在R2上做了汇总汇总写的是10.0.0.0/8的三类LSA发送到R3上,因为R2和R4建立的有虚链路,而R4上汇总的是10.1.0.0/16,因为R4也是ABR所以他也会发送3类LSA给R3,此时R3关于那3个网段已经有2个汇总路由了,此时如果R4要访问10.1.1.0会进过R3但是R4有2个关于他的汇总路由,他会选择精确的那个也就是R4发送的3类LSA,所以,他会将数据包再返给R4,R4再回给R3这样不断来回导致环路

缺点3
在这里插入图片描述
此时我们的R5拥有一个网段50,他会由R4发送此类路由的3类LSA,(因为虚链路R4也是ABR),所以此3类LSA会发送到R3上,因为虚链路他会将其传递给R2(此3类LSA是区域0的LSA),还有一个LSA是由R3发送的3LSA,但是此3类LSA是区域1的LSA,R2收到后不会参加路由计算,R3也会收到2个3类LSA,一个是R4给的区域1的LSA,R3并不会用,R1给的3类LSA,属于区域0会用,如果R1发送数据包给50网段,先会把包个R2,因为R2传递给R1此路由,然后R2传递给R3,理论上他直接给R4但是虚链路还是会先给R3,然后R3会将此路由返回给R1了这样就形成了一个环。

5.0 OSPF外部路由

如果我们本来此网络种跑的是ospf,但是又有另外的一个网络跑的是rip,此时我们可以将rip的网络都改成ospf,或者用我们这次学到的方法,引入外部路由
外部路由信息是由5类LSA描述,由ASBR发布,全网泛洪
我们可以在ASBR上敲

OSPF 
import-route direct #引入外部直连路由

5.1 5类LSA

dis ospf lsdb ase link-statid	#查看5类LSA

在这里插入图片描述
TOS 0 Metric 1:
E type: 1或者2默认2 ,type2类型的路由只考虑外部cost值,不考虑内部cost值,type还要计算内部的cost值,然后内部的cost值加上外部的cost值得到最后的cost(metric)
Forwarding Address:
Tag:用来标识一条路由,用来路由控制

在这里插入图片描述
如果AR4在换回口有一个路由,我们在AR4上面引进了外部路由,此路由会全网泛洪,就连AREA3里的路由器也会接收到此路由,此时AR3和AR5没有虚链路,虽然AR6可以有此路由但是不能连通AR4的外部网段

在这里插入图片描述
此时如果AR3作为ABR会发送4类LSA给区域2所有的路由器,通告ASBR的位置

5.2 4类LSA

4类LSA由ABR发送通告ASBR的位子

dis ospf lsdb asbr  LINK-ID #查看4类LSA

在这里插入图片描述
4类LSA描述到ASBR的信息,比如cost值啊啥的为1说明type是2只计算外部路由的cost值
在这里插入图片描述 上图中AR6没有4类LSA(但是又5类LSA),所以他到达不了外部路由,因为没有4类LSA所以不知道谁是asbr,为什么没有?首先上图中由AR3产生4类LSA(由ASBR所在区域的ABR产生4类LSA),他会向AR4,向HUB1传递4类LSA,也会向AR5传递4类LSA,但是只有ABR才会传递4类LSA所以4类LSA不会AR5并不是ABR所以他不会将 其发送到AR6,
4类LSA描述ABR到ASBR的信息,5类LSA描述ASBR到目标路由的信息,

在这里插入图片描述
如果ASBR和ABR在同一区域内,
在这里插入图片描述
我们左边是OSPF右边是RIP所以中间的R1为ASBR,他会发送5类LSA给R2,R2收到后如何访问R3了,还是R2->R1->R3 ?OSPF中有FA机制就是5类LSA中有FA字段,把R1的下一跳地址填入此5类LSA,然后R2直接将数据包发送到FA字段的地址也就是说将FA当为下一跳,也就是R2->R3 ,如果5类LSA中FA被填充了,就直接计算FA地址,不会去看4类LSA

5.2.1 FA填充规则

5.3 NSSA和stub

5.3.1 stub

在这里插入图片描述
如果R1路由器新能较差,他的LSA非常的多,会导致他进行路由计算时非常慢,那么我们有啥解决办法吗?
方法1,配置AREA1为stub,过滤4类或者5类LSA,那么我们怎么访问这个外部的路由了?我们可以在R1上配置默认路由到R2,
我们也可以讲R1设置成totally stub,过滤3类LSA,4类LSA,5类LSA

5.3.2 NSSA

在这里插入图片描述
因为AREA2是stub区域,在AR5上我们的想引入外部路由,但是stub不允许5类传递,我们又想保留stub的特性,又想引入外部路由,所以我们就将其配置成NSSA区域,NSSA区域里有7类LSA,他也是来描述外部路由,只是在NSSA区域中存在

在这里插入图片描述
和5类LSA描述一样,我们上次说过7类LSA只能在NSSA区域中传播,但是我们其他非NSSA区域中能收到这个路由?因为在ABR AR3上有一个机制可以将7类LSA转成5类LSA,一下是上面7类LSA转换后的5类LSA
在这里插入图片描述
本身ADV是AR7,现在的ADV是5类LSA,7类LSA的option是NP(N是NSSA值位,P是代表此7类LSA可否7转5 0代表不能,1代表可以,0代表7类LSA由ABR产生),

NSSA和STUB的区别
在这里插入图片描述

基于STM32F407,使用DFS算法实现最短迷宫路径检索,分为三种模式:1.DEBUG模式,2. 训练模式,3. 主程序模式 ,DEBUG模式主要分析bug,测量必要数据,训练模式用于DFS算法训练最短路径,并将最短路径以链表形式存储Flash, 主程序模式从Flash中….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值