首页 > 其他分享 >OSPF协议详解

OSPF协议详解

时间:2024-11-24 20:57:57浏览次数:7  
标签:协议 区域 LSA 报文 详解 OSPF 路由 路由器

目录

 

一、基本知识

1、简介

2、特征

3、路由器类型

4、Router-ID的指定方式

5、DR和BDR(实际上是一个接口,而不是路由器)

6、OSPF的计时器

7、OSPF为什么要划分区域?

8、最短路径优先(Shortest Path First, SPF)

9、虚链路

10、路由汇总

区域间路由汇总

外部路由汇总

11、注入默认路由

二. 邻居状态机

Down(失效):

Attempt(尝试):

Init(初始):

Two-way(邻居关系、双向通讯):

Exstart(交换初始):

Exchange(交换):

Loading(加载):

Full(邻接关系) :

三.网络类型

广播(Broadcast):

点到点(Point-to-Point,P2P):

点到多点(Point-to-Multipoint,P2MP):

非广播型多路访问(Non-Broadcast Multi-Access,NBMA):

四. 报文类型

1. Hello

2. DBD(DD)

3. LSR(Link State Request Packet)

4.LSU(Link State Update Packet)

5.LSAck

五. 邻接关系的建立

六. 邻接建立的条件(参数同步)

七.邻居(Neighbor)和邻接(Adjacency)有哪些区别?

八. 常见的LSA类型(总共11种LSA)

1. Router-LSA(1类:拓扑+路由)

2. Network-LSA(2类:拓扑+路由)

3. Network Summary LSA(3类:路由)

4. ASBR summary LSA(4类:拓扑)

5. AS External LSA(5类:路由)

6. NSSA External LSA(7类:路由)

九. LSA的新旧判断

十. 特殊区域类型

Stub(末梢区域)

Totally Stub(完全末梢区域)

NSSA(Not-So-Stubby Area,非纯末梢区域)

Totally NSSA(完全非纯末梢区域)

十一. LSA的防环机制

十二. 为什么需要Type LSA 12345?

十三. 最优路径选择

十四. 故障排查

OSPF的邻居和邻接的区别

OSPF和BGP邻居的区别

OSPF故障排查思路

OSPF邻居关系无法建立

 


 

一、基本知识

1、简介

        开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个内部网关协议(IGP),是基于链路状态(区域内)+距离矢量(区域间)的路由协议 (链路状态=拓扑+路由)

5c3a807edf844fa187947d2c0e7b3ead.png

        链路状态路由协议距离矢量路由协议的本质区别:链路状态路由协议利用SPF算法来防止环路,距离矢量路由协议是利用人为规定的规则来防止环路

  1. 2、特征

    1. OSPF是基于IP层的协议(协议号:89)

          a) 隐式确认机制:Hello(Neighbor字段)、DBD(DBD Sequence字段)

          b) 显式确认机制:LSAck

      1. 由于OSPF是IP层协议,不是基于TCP的,可靠性的保证通过确认机制和重传机制

    2. 特点

      1. OSPF把自治系统AS(Autonomous System)划分成逻辑意义上的一个或多个区域;

      2. OSPF通过LSA(Link State Advertisement)的形式发布路由;

      3. OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一;

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

    1. 支持无类域间路由(CIDR)

    2. OSPF采用组播形式收发报文,这样可以减少对其它不运行OSPF路由器的影响

      1. 224.0.0.5:在广播型网络中,所有路由器都以224.0.0.5的地址发送Hello包,用来维持邻居关系

      2. 224.0.0.6:非DR/BDR路由都以224.0.0.6的地址发送LSA更新,而只有DR/BDR路由监听这个地址

    3. 支持认证(NULL、明文、MD5)

          链路认证,区域认证,虚链路认证

      1. 明文认证

        • 接口下配置:
          ac4e50e134634ff7abc1c17dac7826a5.png

        • 区域中配置:
          10e62c7952d8444a99fb510262483ebf.png

      2. MD5认证

        • 接口下配置:
          1d8c5a4a356e412dafe8229987900f95.png

        • 区域中配置:
          67fc913af9824cb89ddd2202fada22d4.png

    • 区域认证和接口下认证冲突时,以接口为准

    • 区域0启用认证后,虚链路也要认证

      • area x virtual-link A.B.C.D authentication****

  1. 3、路由器类型

    • BR(骨干路由器):至少有一个接口属于骨干区域的路由器

    • IR(内部路由器):所有的接口都属于同一个区域

    • ABR(区域边界路由器):连接一个或者多个区域到骨干区域的路由器,必须有一端要连接骨干区域。

    • ASBR(自治系统边界路由器):OSPF域外的通信量进入OSPF域的路由器

  1. 4、Router-ID的指定方式

    • 手动指定(优选)

    • 自动指定:Loopback中IP地址最大的 > 物理接口IP地址最大的

  1. 5、DR和BDR(实际上是一个接口,而不是路由器)

(1) 选举过程:

  • 比较优先级(接口优先级为0表示放弃选举,默认为1,范围(0-255),优先级越大越优先

  • 优先级相同,比较RID,越大越优先

  • OSPF为非抢占性,所以修改优先级后必须重启OSPF进程(clear ip ospf process)

(2) 作用:

  • 描述这个多路访问和OSPF区域内其余与其相连的路由器

  • 控制多路访问网络的泛洪扩散

  • 负责在MA网络建立和维护邻接关系并负责LSA的同步

  • DR与其他所有路由器形成邻接关系并交换链路状态信息,其他路由器之间不直接交换链路状态信息,这样就大大减少了MA网络中的邻接关系数量及交换链路状态信息消耗的资源

DR选举与主从选举

1、阶段不同:DR/BDR选举在2-way状态;主从选举在exstart状态。

2、功能不同:DR在拓扑变更时通过组播来维护LSDB;主从用来初始化路由器链路状态数据库。

3、选举方法不同:DR/BDR看接口优先级和RID;主从看MS位,1为主,0为从,如果都为1,比RID。

        DRother需要和DR、BDR建立邻接关系,同时DR和BDR之间也需要建立邻接关系,而DRother之间只能建立邻居关系。DRother只会发送LSA通告给DR和BDR,后续由DR和BDR通告给其他的DRothter。

  1. 6、OSPF的计时器

    • Hello Timer:路由器在计时器超时后会从接口发出一个Hello包(默认10s)

    • Wait Timer:路由器等待邻居路由器的Hello数据包通过DR和BDR的时长

    • RouterDeadInterval:在宣告邻居路由器无效时之前,本地路由器从与一个接口相连的网络上侦听到来自于邻居路由器的Hello数据包所经历的时间(Hello Timer的4倍)

    • RxmtInterval:在没有得到确认的情况下,路由器重传OSPF数据包将要等待的时间长度

  1. 7、OSPF为什么要划分区域?

    • 一个区域内,路由器仅仅需要和它所在的区域的路由器具有相同的LSDB,而没必要和整个OSPF域内的所有的路由器共享相同的数据库,LSDB大小的缩减降低了对路由器内存的消耗

    • LSDB的减小从而减少了处理的LSA数量,降低了路由器的CPU的消耗

    • LSDB只需要一个区域内维护,大量的LSA的泛洪扩散将被限制在一个区域内

    • 加快路由收敛

  1. 8、最短路径优先(Shortest Path First, SPF)

    • OSPF使用Dijkstra算法计算到达每个目的地的最短路径。这个路径是通过连接成本(Cost)的总和来计算的,每条链路都有一个与之相关的成本。

    • OSPF路由器维护一个最短路径树(Shortest Path Tree),它描述了到达网络中每个路由器的最佳路径。

  1. 9、虚链路

虚链路的特点:

  • 虚链路永远属于区域0

  • 虚链路通过单播的方式发送报文,TTL为255

  • 虚链路只能配置在普通区域中,不能配置在特殊区域中,同时也不能配置在骨干区域中

  • 虚链路只能在同一个区域建立,不能跨区域建立

  • 虚链路属于按需电路,需要将option字段中的DC位置置位(华为除外,华为的虚链路是通过点到点的方式来维护的,而不是按需电路)

  • 虚链路配置是需要指定邻居的Router-id,通过两次SPF算法确定目标地址和源地址,建立单播连接

  • 虚链路的网络类型是p2p

  • 虚连接是作为主干区域的一部分,因此如果在area 0上配置了认证,那么virtual-link也要做。

虚链路有哪些问题?

  • 虚链路中不能针对来自区域0的路由条目做汇总。

  • 虚链路会引发环路问题。

  • RID冲突或者修改RID会造成虚链路不稳定。

虚链路的好处:

  • 可以解决网络设计问题。

  • 可以当做后门链路使用,避免次优路径。

配置:

Area 过渡区域的ID virtual-link 虚链路对端router的RouterId

102bdc8cf7fe4d22ab165fda3cc8e67d.png

 

  1. 10、路由汇总

区域间路由汇总

range命令用于指定一个范围的IP地址,以便在该范围内自动分配OSPF路由器ID。只能汇总本区域内的路由(1、2类lsa)在ABR上配置,O IA。

47bb6fa08e6e43c08ccf183390e2a7dd.png

外部路由汇总

summary命令用于汇总路由信息以优化路由表大小和性能。在ASBR上配置,对5、7类lsa路由进行汇总,OE。

757ef8465c1d40ab8dd6b09afe66d5c2.png

 

  1. 11、注入默认路由

ac17a7c8e68c4ac18700d536ad4a9511.png

fab16ee8879646ac9909dc4fa51caaf7.png

 

二. 邻居状态机

  • 邻居关系:OSPF设备启动后,会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF设备会检查报文中所定义的参数,如果双方一致就会形成邻居关系,两端设备互为邻居。

  • 邻接关系:形成邻居关系后,如果两端设备成功交换DD报文和LSA,才建立邻接关系。

  1. Down(失效):

接口尚未接收到邻居发送的Hello报文。

  1. Attempt(尝试):

帧中继环境中才存在,在NBMA网络中,OSPF邻居通常是采用手工的方式指定的,此时OSPF路由器往往通过单播的Hello报文与直连设备建立邻居关系。当路由器的NBMA接口激活后,邻居的状态将从 Down过渡到Attempt,在该状态下,路由器周期性地向邻居发送Hello报文,但是当前并未从邻居收到有效的Hello报文。当路由器收到邻居发送的Hello报文后(但是没有在该报文的“邻居”字段中看到自己的Router-ID),则将邻居的状态切换到Init.

  1. Init(初始):

当在收到邻居发送过来的Hello报文中未看到自己的 Router-ID时,会将该邻居置为Init 状态。表明在该直连链路上有一个活跃的OSPF路由器,但两者尚未确认双向通讯。接下来,收到Hello报文的路由器会将对方的 Router-ID添加到自己发送的Hello报文中,以便告知对方:“我已经发现你了”。

  1. Two-way(邻居关系、双向通讯):

当在收到邻居发来的Hello报文中看到自己的RID时,会将该邻居置为2-way状态,表明它与邻居确认了双向通信。

  1. Exstart(交换初始):

在该状态下,路由器发送空的DD报文以便协商Master/Slave,Router-ID最大的路由器会成为Master路由器,DD序列号就是由 Master路由器决定的。用于Master/Slave协商的报文是空的、不携带任何LSA头部的DD报文,在这些报文中,Ⅰ比特位被设置为1。

429ff40b37844d828cd2c35750135e76.png

  1. Exchange(交换):

路由器向邻居发送描述自己LSDB的DD报文,DD报文中包含LSA的头部(而不是完整的LSA数据)。DD报文逐个发送,每个报文中包含着DD序列号,DD序列号是由Master路由器决定的,这个序列号在DD报文的交互过程中被递增(形成隐式确认机制),以确保DD报文交互过程的有序性和可靠性。

  1. Loading(加载):

路由器向邻居发送LSR以便请求LSA的完整数据。对方使用LSU报文进行回应,因此只有LSU报文里才有LSA的完整信息。在收到LSU报文后,路由器需要发送LSAck对其中的LSA进行确认。

  1. Full(邻接关系) :

LSR重传列表为空,此时邻居的状态被置为Full,运行SPF算法。

 

三.网络类型

OSPF 的许多功能或特性都是基于接口实现的,当一个接口激活OSPF后,该接口会维护许多OSPF变量,例如其所接入的区域ID、接口Cost值、DR优先级、邻居列表、认证类型等。接口的网络类型(Network-Type)是一个非常重要的变量,与该接口采用的数据链路层封装有关。

  1. 广播(Broadcast):

        常见接口有Ethernet口(E:10M, F:100M, G:1000M, T:10000M),以组播形式发送Hello报文、LSU报文和LSAck报文,以单播形式发送DD报文和LSR报文,Hello Time:10s,选举DR、BDR

为什么选举DR/BDR?

在一个广播网络类型下减少了OSPF邻接关系,减少了泛洪流量和重复接受的数据库;这样就节省了设备资源和带宽资源

  1. 点到点(Point-to-Point,P2P)

        只支持一个邻居关系,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文),常见接口有Serial口(HDLC、PPP),Hello Time:10s,不选举DR和BDR

比如T1/DS3/SONET链路,所有点到点链路上的有效邻居,最终都能形成有效的邻接关系,无需DR和BDR。因为整个链路上就自己2个,谁发OSPF信息都一样。

串口有两个标准:T1:1.544M,E1:2.048M。

  1. 点到多点(Point-to-Multipoint,P2MP)

        支持多个邻居关系,以组播方式发送hello报文,以单播方式发送其他报文,Hello Time:30s,不选举DR和BDR

类似于多个点到点网络的一个集合,逻辑上可以看成一种hub-spoke或者full-mesh的状态,互联的路由器都是点对点链路,所有单个点对点连续上都能直接形成邻接关系,无需DR和BDR

  1. 非广播型多路访问(Non-Broadcast Multi-Access,NBMA)

        常见接口有Frame relay(帧中继)、ATM,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文),Hello Time:30s

在没有广播的能力下,一个路由发送的OSPF报文,这个网络中的其他相连路由器无法收到。这个时候需要在路由器上增加额外配置,比如用指定的atm链路来建立邻居,当atm存在多个router时。这时也需要指定DR和BDR(通过配置指定)

  1. Loopback:只会进行路由通告,并且以32位掩码的形式进行通告

1、两个路由器的直连接口即使网络类型不匹配,也能够建立起OSPF邻居关系,但是OSPF路由的计算却是极有可能出现问题的,这是因为接口的网络类型会影响到路由器产生的LSA中对该接口的描述,从而关系到路由器对网络拓扑的理解以及路由的计算。因此,OSPF 邻居的互联接口网络类型必须一致。

2、点对点和广播网络类型下hello time为10秒,dead time为40秒,在帧中继网络(基本已淘汰)环境中hello time为30秒,dead time为120秒

 

四. 报文类型

OSPF报头

324fb113d502452dbaf16f238b2a0c66.png

1. Hello

113e3b0374094d3abca6589919ad7e42.png

  1. 作用

    1. 维持邻居关系(保活)

    2. 保证邻居能够双向通信(参数同步)

    3. 选举DR/BDR

    4. 发现邻居

  2. 字段含义

cb7c99fa491a44d48bc19718210f1b47.png

8635821fc0b84d0f839907c62bb2dba1.png

2. DBD(DD)

c6f65b9f006c4294925d942f1e23770c.png

 

  1. 作用:

    1. 选举主从路由器

    2. 交互数据库的摘要信息

  2. 字段含义

    为什么DBD中需要携带MTU字段?

           为了协商MTU参数,便于DBD包分片,帮助路由器了解到相邻链路的最大传输单元,以优化数据传输并避免因数据包过大而引起的问题。

    DBD包携带LSA头部信息的作用:

           用于比较数据库中是否存在双方携带的LSA,从而通过确认LSA的新旧来保证两者数据库的一致性

    1. MTU:携带报文发送端口的MTU值(MTU是根据数据库的大小来确定包的大小)

    2. I(Init)位与M(More)位(OSPF在IP层之上,不基于TCP,通过该字段辅助确认发包的顺序):

      • I位置0,M位置0,表示发送的包为DBD的最后一个包

      • I位置0,M位置1,表示发送的包为DBD的中间的包

      • I位置1,M位置0,表示发送的包为DBD的第一个包,后面没有DBD的包

      • I位置1,M位置1,表示发送的包为DBD的第一个包,后面还有DBD的包

    3. M/S位:置为1表示主路由器,置为0表示从路由器

    4. DD Sequence:序列号,通过DBD发送的序列号来回一致保证了协议的可靠性

    5. OSPF不是基于TCP的协议,序列号、I位和M位保证了该协议的可靠性

3. LSR(Link State Request Packet)

2bcf4b27bef2453a8260f252048fbb93.png

  1. 作用:向邻居请求对方有而本地没有的LSA信息(通过三元组进行索引来表示属于哪种类型的LSA)

  2. LSR中为什么不携带头部,只携带三元组的原因:已经通过DBD包确认出双方所需的LSA,此时不需要携带头部信息,节约资源

  3. 只有LSR字段没有options字段

在OSPF中,LSR报文三元组是指LSR报文中的三个字段:链路状态类型、链路状态ID和通告路由器。这三个字段一起标识了路由器请求的LSA。

  • 链路状态类型(LS Type):指示LSA的类型,例如,路由器LSA、网络LSA、ASBR LSA等。

  • 链路状态ID(Link State ID):标识LSA的唯一标识符。

  • 通告路由器(Advertising Router):标识LSA的通告路由器。

4.LSU(Link State Update Packet)

1493a97554dd4892b7990bdad5b7fa42.png

  1. 作用:用来向对端Router发送其所需要的LSA或者泛洪自己更新的LSA,内容是多条LSA(全部内容)的集合

5.LSAck

258ccff2bdd84228aaa7bbc19d8f9b26.png

  1. 作用:用于确认对LSU中的LSA的信息(OSPF不是使用TCP承载的,通过LSAck保证协议的可靠性)

 

五. 邻接关系的建立

119d760d9aed4a6fa06abfc1cf27bed9.png

  1. Down:这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PollInterval ,通常和RouterDeadInterval间隔相同

  2. Init:本地在最近的RouterDeadInterval内从邻居那收到了邻居发来的Hello报文,但邻居Hello报文中的邻居列表不包含自己的RID,此时双向通信还未建立。在此状态下邻居的RID要被包含在自己所发的Hello报文的邻居列表中

  3. Two-way:本地路由器已经在来自邻居路由器的Hello报文中的邻居字段中看到了自身的RID,此时意味着一个双向通信已经建立。在广播网络中,邻居路由器必须在这个状态或者更高的状态下选举DR和BDR,邻居关系建立完成

  4. Exstart:在两个路由器要通过DBD报文交换数据库的摘要信息时,首先需要形成主/从关系,双方都会发送First 空的(不包含LSA的头部信息)DBD报文,RID高的邻居路由器将成为主路由器,并且确定DBD的序列号

➢ 主从关系的选举(使用3个DBD报文)

f219040ef58948c4ad7587bdfc8381b4.png

  • 双方都发送一个First (I:1、M:1、MS:1)空的DBD报文来宣称自己是主路由器,并且两个DBD报文的序列号为自身随机产生的序列号

  • 双方通过比较RID,RID大的一方成为主路由器。RID较小的一方将成为从路由器,并且回复一个(I:0,M:1,MS:0)的DBD报文,该报文的序列号为主路由器DBD随机生成的序列号,用于做隐式确认

  1. Exchange:主路由器带动从路由器开始交互数据库的摘要信息(包含了LSA的头部信息 ),当主路由器已经发送过可以描述自身的数据库摘要信息的DBD报文,并且从从路由器收到M位置为0的DBD报文,此时主路由器会认为数据库同步完毕;当从路由器接收到一个M位置为0的DBD报文,并且向主路由器发送一个M位置为0的DBD报文,此时从路由器已经描述完自己的数据库的摘要信息

  2. Loading:当收到M位为0的DBD报文,则会进入Loading状态,进入Loading之后,A开始向B发送LSR报文,请求那些在Exchange状态下通过DBD报文发现的,而且在本地LSDB中没有的链路状态信息。B收到LSR报文之后,向A发送LSU报文,在LSU报文中,包含了那些被请求的LSA的详细信息。A收到LSU报文之后,A向B发送LSAck报文,确保信息传输的可靠性

  3. Full:链路状态请求列表为空,LSDB同步完成,邻接建立完成

 

六. 邻接建立的条件(参数同步)

  1. 报文头部中匹配的字段

    1. 版本号:V2(IPV4)、V3(IPV6)

    2. RID不能冲突,OSPF会因为无法选举出主从而停留在在Exstart/Exchange状态

    3. 一条链路的两端必须在同一个区域

    4. 认证类型和区域类型要一致

  2. Hello包中要匹配的字段

    1. 掩码

    2. hello时间和dead时间需要匹配

    3. Option中的E位和N位必须要一致的

    4. NBMA中要对邻居指neighbor,双方要互指

    5. 建立邻居的接口不能是静默接口(silent-interface)

  3. DBD报文中要匹配的字段

    1. MTU:如果MTU不匹配,路由器就会卡在Exstart状态,因为在这个状态中双方会交互first DBD选择主从,如果开启MTU一致性检测,只有MTU一致才可以选出主从

    2. MTU是根据数据库的大小来确定包的大小

    3. 两端都为Exstart:从的MTU值小于主的,从不能接收到主的DBD报文,主可以接收从的

    4. 一端是Exstart,另一端是Exchange状态:从的MTU大于主的,从可以接收主的DBD报文,状态从Exstart过渡到Exchange,但是主不能接受

 

七.邻居(Neighbor)和邻接(Adjacency)有哪些区别?

  1. 邻居关系:

    1. 邻居关系是指在两台路由器之间进行完两次Hello报文交互之后,建立起来的关系。

    2. 在OSPF状态机中,邻居关系显示为2-way状态。

    3. 邻居关系的建立是通过Hello报文来发现对方的存在。

    4. 当两台路由器的Hello报文中定义的参数一致时,它们就形成了邻居关系。

  2. 邻接关系:

    1. 邻接关系是指在两台路由器之间进行完链路状态数据库(LSDB)同步之后,建立起来的关系。

    2. 在OSPF状态机中,邻接关系显示为Full状态。

    3. 形成邻居关系的双方不一定都能形成邻接关系,这取决于网络类型。

  3. 不同网络类型下的情况:

    1. 点到点网络(P2P)和点到多点网络(P2MP)上,具有邻居关系的路由器之间会进一步建立邻接关系。

    2. 在广播型网络和非广播型多点网络(NBMA)上,非DR/BDR路由器之间只能建立邻居关系,不能建立邻接关系,非DR/BDR路由器与DR/BDR路由器之间会建立邻接关系,DR与BDR之间也会建立邻接关系。

        总之,邻居关系是邻接关系的前提,而邻接关系的建立完成意味着链路状态数据库已经同步,接下来OSPF路由器将基于LSDB使用SPF算法计算路由。

 

八. 常见的LSA类型(总共11种LSA)

LSA(Link State Advertisement)——链路状态通告

  1. Type-1 LSA(Router LSA,路由器LSA):

  2. Type-2 LSA(Network LSA,网络LSA):

  3. Type-3 LSA(Network Summary LSA,网络汇总LSA):

  4. Type-4 LSA(ASBR Summary LSA,ASBR汇总LSA):

  5. Type-5 LSA(AS External LSA,AS外部LSA):

LSA类型LSA作用
Router-LSA(Type1)每个设备都会产生,描述了设备的链路状态和开销,在所属的区域内传播。
Network-LSA(Type2)由DR产生,描述本网段的链路状态,在所属的区域内传播。
Network-summary-LSA(Type3)由ABR产生,描述区域内某个网段的路由,并通告给发布或接收此LSA的非Totally STUB或NSSA区域。
ASBR-summary-LSA(Type4)由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。
AS-external-LSA(Type5)由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了STUB区域和NSSA区域)。
NSSA LSA(Type7)由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。
Opaque LSA(Type9/Type10/Type11)Opaque LSA提供用于OSPF的扩展的通用机制。其中:Type9 LSA仅在接口所在网段范围内传播。用于支持GR的Grace LSA就是Type9 LSA的一种。Type10 LSA在区域内传播。用于支持TE的LSA就是Type10 LSA的一种。Type11 LSA在自治域内传播,目前还没有实际应用的例子。

1. Router-LSA(1类:拓扑+路由)

e3321ceb8b29463b84105a0d8182105c.png

  • LS Age:LSA的老化时间

  • LS Type:LSA的类型(Router-LSA)

  • Link State ID:路由器自身的RID

  • Advertising Router:通告自身的RID

  • Sequence Number:序列号

  • Checksum:校验和

  • Flags(用于指明自己的身份):

    • V:虚链路端点

    • E:ASBR

    • B:ABR

  • Links(表示有多少种类型):用于描述自身的拓扑

  • Point-to-Point(用于描述邻居的拓扑):常用的有Serial接口

    • Link ID:邻居路由器的RID

    • Link Data:始发路由器的接口IP

    • Link Type:1(Point-to-Point)

    • Metric:链路的开销值

  • Transit Network(描述DR接口&DR和自己相连的接口)

    • Link ID:DR接口的IP地址

    • Link Data:始发路由器的接口IP

    • Link Type:2(Transit Network)

    • Metric:链路的开销值

  • Stub(表示自身的路由)

    • Link ID:路由的前缀

    • Link Data:子网掩码

    • Link Type:3(Stub Network)

    • Metric:链路的开销值

  • Virtual-Link(虚链路端点)

    29e588520c0c417eb759610c99ae1205.png
    • Link ID:虚连接对端邻居的RID

    • Link Data:路由器的接口IP地址

    • Link Type:4(Virtual-Link)

    • Metric:链路的开销值

        作用:描述区域内部与路由器直连的链路的信息,并且指明它们的状态和沿着每一条链路出方向的代价,以及该链路上所有已知的邻居,这些LSA的通告只会在始发的区域内部泛洪扩散

2. Network-LSA(2类:拓扑+路由)

ec3ca26cf4504a099fd133789bbff66f.png

  • LS Age:LSA的老化时间(0-3600),OSPF数据库1800s泛洪一次,到达3600s未收到任何更新,LSA将会被清除

  • LS Type:LSA的类型(Network-LSA)

  • Link State ID:DR路由器的接口IP

  • Advertising Router:DR的RID

  • Sequence Number:序列号

  • Checksum:校验和

  • Netmask:掩码

  • Attached Router:邻居的RID+自身的RID

作用:用于描述广播型的网络信息,由DR产生,通告所有与DR有邻接关系的路由器,在本区域内泛洪。Network LSA 列出了所有与之相连的路由器,包括DR本身。

在MA网络中,会选举DR、BDR,而所有的Drother都只能和DR及BDR建立邻接关系。

3. Network Summary LSA(3类:路由)

01589de17b4a459eac2a4ddb2fd079bc.png

  • LS Age:LSA的老化时间

  • LS Type:LSA的类型(Network Summary-LSA)

  • Link State ID:所通告网络的IP网段地址(收到来自另一个区域的IP网段地址)

  • Advertising Router:最近ABR的RID,Ad Router逐跳变,每经过一个ABR都会进行变化

  • Sequence Number:序列号

  • Checksum:校验和

  • Netmask:掩码

  • Metric:链路开销值

作用:

  1. ABR路由器将发送Network Summary LSA到一个区域,用来通告该区域间通信的目的地址,该Network Summary LSA为ABR路由器告诉与之相连的区域内的内部路由器所能到达目的地址的一种方法,一台ABR路由器也可以向骨干区域通告与它相连的区域内部的目的地址

  2. ABR路由器始发Network Summary LSA时,将包括正在通告的这条LSA到目的地所耗费的Cost

    1. 若一台ABR路由器在与它本身相连的区域内有多条路由可以到达目的地,只会将路由中Cost最低的Network Summary LSA通告进骨干区域

    2. 若一台ABR路由器经过骨干区域从其他的ABR路由器收到了多条Network Summary LSA,那么该始发的ABR路由器只会选择这些LSA中Cost最低的,通告给与他相连的非骨干区域

    3. 其他路由器从ABR路由器收到一条Network LSA通告时,并不会去运行SPF算法,只是简单加上从该路由器到那台ABR的Cost,并将Cost包含在该LSA中

LSA Type 3通常在非backbone区域中产生,然后在Area 0中进行汇总,并通过Area 0传播到其他区域。在OSPF的设计中,Area 0扮演着连接各个区域的桥梁的角色,因此LSA Type 3在OSPF中的传播通常涉及到Area 0。

4. ASBR summary LSA(4类:拓扑)

5e5bd326503d418896b67bfb755b0ff4.png

  • LS Age:LSA的老化时间

  • LS Type:LSA的类型(ASBR-Summary-LSA)

  • Link State ID:ASBR的RID

  • Advertising Router:最近ABR的RID,Ad Router逐跳变,每经过一个ABR都会进行变化

  • Sequence Number:序列号

  • Checksum:校验和

  • Netmask:掩码 Metric:链路开销值

  • 作用:4类LSA是由 ABR在骨干区域中生成的,用来通告到达ASBR路由器路由

5. AS External LSA(5类:路由)

3489c49f0394407d8325b35739dcdf84.png

  • LS Age:LSA的老化时间

  • LS Type:LSA的类型(AS External LSA)

  • Link State ID:AS外部的网段

  • Advertising Router:ASBR的RID

  • Sequence Number:序列号

  • Checksum:校验和

  • Netmask:掩码

  • External Type:外部度量值类型:

    • 0:第一类外部路由;

    • 1:第二类外部路由

  • Metric:链路开销值

  • Forwarding Address:转发地址

  • External Route Tag:添加到外部路由上的标记

作用:描述引入的外部路由,将其它AS中的路由信息封装,并传递,在整个OSPF的AS中泛洪,始发于ASBR路由器,用于通告到达OSPF的AS外部的目的地或者是AS外部的缺省路由的LSA

6. NSSA External LSA(7类:路由)

796a4b45ac75427eb72e5d44a85300b7.png

  • LS Age:LSA的老化时间

  • LS Type:LSA的类型(NSSA External LSA)

  • Link State ID:AS外部的网段

  • Advertising Router:ASBR的RID

  • Sequence Number:序列号

  • Checksum:校验和

  • Netmask:掩码

  • External Type:外部度量值类型:

    • 0:第一类外部路由;

    • 1:第二类外部路由

  • Metric:链路开销值

  • Forwarding Address:转发地址

  • External Route Tag:添加到外部路由上的标记

作用:NSSA区域的ASBR引入的外部路由,该外部路由将以NSSA External LSA的形式在NSSA区域泛洪,通过区域内的ABR会将7类LSA转化为5类LSA并传到其它OSPF区域若存在多个ABR设备,则会优选RID最小的ABR进行7类LSA到5类LSA的转换

 

九. LSA的新旧判断

  1. LSA头部

    1. 由LS Type(链路状态类型)、Link State ID(链路状态ID)、Advertising Router(通告路由器)组成的三元组(索引):用于比较LSA数目的多少。

  2. 判断新旧(通过序列号,校验和,老化时间来确定判断新旧)

    1. 序列号越大越新

    2. 序列号确定比较校验和,越大越新

    3. 校验和确定比较老化时间age,age越小越新

 

通过发送age

标签:协议,区域,LSA,报文,详解,OSPF,路由,路由器
From: https://blog.csdn.net/qq_62189139/article/details/143866974

相关文章

  • DoH(DNS on HTTPS)和DoT(DNS on TLS)协议详解
    目录目录简介详情请求DoHDoT返回DoHDoTc-ares的使用打包解析简介DNSoverHTTPS利用HTTP协议的GET命令发出经由JSON等编码的DNS解析请求。较于传统的DNS协议,此处的HTTP协议通信处于具有加密作用的SSL/TLS协议(两者统称作HTTPS)的保护之下。但是,由于HTTP......
  • JDBC 详解:从基础到高级完全指南
    在Java开发中,与数据库的交互是一项核心任务。JDBC(JavaDatabaseConnectivity)为Java提供了访问和操作数据库的标准接口。本篇文章将带您从基础到高级,全面解析JDBC的原理、使用方法及优化技巧。目录什么是JDBC?JDBC的主要功能JDBC的架构JDBC的核心组件JDBC的......
  • ETAS工具导入DBC生成Com协议栈
    文章目录前言DBC配置关键属性Cobra参数配置Cobra使用isolar工程配置总结前言ETAS工具导入DBC主要也是生成arxml用的,ETAS推荐使用Cobra导入,本文介绍导入过程及注意事项DBC配置关键属性对于普通Com报文,配置为周期发送,及其周期,NmMessage配置为No,示例如下:......
  • TCP/IP 协议:网络世界的基石(2/10)
    一、引言在当今数字化时代,互联网已经成为人们生活中不可或缺的一部分。而在互联网的背后,TCP/IP协议扮演着至关重要的角色,堪称互联网的基石。TCP/IP协议是一组用于数据通信的协议集合,它的名字来源于其中最重要的两个协议:传输控制协议(TCP)和网际协议(IP)。自20世纪70年代末......
  • AI嵌入式系统卷积算法优化——分段线性卷积核近似详解
    AI嵌入式系统卷积算法优化——分段线性卷积核近似详解目录引言卷积算法概述2.1卷积运算的基本原理2.2二维卷积的数学表达式嵌入式系统中的卷积计算挑战3.1计算资源限制3.2存储资源限制3.3能耗管理3.4实时性要求分段线性卷积核近似4.1基本概念4.2数学模型4.3......
  • TCP可靠机制详解
    重传机制针对数据包丢失的情况,会用重传机制解决。超时重传在发送数据时,设定一个定时器,当超过指定的时间后,没有收到对方的ACK确认应答报文,就会重发该数据,也就是我们常说的超时重传。TCP会在以下两种情况发生超时重传:数据包丢失,确认应答丢失缺点:当超时时间RTO较大时,重发......
  • SpringBoot不用三方框架,怎么动态调度定时任务,ScheduledExecutorService 详解
    文章目录基础版:控制任务启动与停止1.创建定时任务2.配置SpringBoot以启用定时任务支持3.创建控制器来管理定时任务4.处理动态调整任务间隔的问题5.测试你的API进阶版:动态调整任务执行频率1.添加依赖2.创建定时任务服务3.创建控制器来管理定时任务4.配置Spring......
  • Suricata 技术详解
    Suricata并非是黑客工具,而是一款开源的高效网络威胁检测与防御工具,以下为你展开介绍: 功能特性入侵检测与防御:Suricata能够作为网络入侵检测系统(IDS),实时监控网络流量,对可疑活动和入侵行为发出警报。同时,它也可以充当入侵防御系统(IPS),检测到恶意活动和流量后直接进行阻断,有效......
  • 经典战法【均线老鸭头】战法的机构构成,集中模型以及买卖操盘技术,技术要点图文详解
    直接上干货,首先【均线老鸭头】战法的均线构成我们选择5-10-60均线三条。老鸭头名称的由来,这是一个形象的说法,如上图,图中均线系统排列的形态,是不是像一个鸭脑袋?第一段上涨是鸭脖子,股价开始回落处画上一个圆圈,是鸭子的眼睛,第三段启动上涨的位置就是鸭子的嘴巴。整个图形合在一......
  • 使用 JavaScript 的 XMLHttpRequest 或 Fetch API 发送 HTTP 请求时,GET 请求和 POST
    使用JavaScript的XMLHttpRequest或FetchAPI发送HTTP请求时,GET请求和POST请求处理参数的方式不同,这与HTTP协议的设计有关GET请求的参数特点:GET请求的参数通过URL传递。原因:URL表现方式:GET请求的主要目的是从服务器获取资源。URL是资源的唯一标识,因此GET......