路由与OSPF学习

news2025/4/28 2:34:12

【路由是跨网段通讯的必要条件】

路由指的是在网络中,数据包从源主机传输到目的主机的路径选择过程。

路由通常涉及以下几个关键元素:


1.路由器:是一种网络设备,负责将数据包从一个网络传输到另一个网络。路由器根据路由表来决定数据包的下一跳。
2.路由表:是路由器中存储的一张表,包含了到达不同网络的目的地地址和相应的下一跳信息。
3.路由协议:分为动态路由协议静态路由协议

        (1)动态路由协议允许路由器自动地相互通信,共享路由信息,并根据网络的变化更新路由                   表。

优点:
1.自适应性与灵活性:

动态路由协议能够自动适应网络结构的变化,如链路故障、网络扩展等,自动重新计算路由,无需人工干预。这使得网络具有更高的灵活性和可扩展性。
2.复杂网络管理:

在大型网络或复杂网络环境中,动态路由协议能够有效地管理路由信息,减少管理员的工作量。
3.资源优化:

动态路由协议可以根据网络的状态和流量负载自动选择最佳路径,优化带宽利用率和网络性能。
4.故障恢复:

动态路由协议能够快速检测到网络故障,并自动寻找备用路径,实现快速故障恢复,提高网络的可靠性。
5.路由信息共享:

动态路由协议允许路由器之间共享路由信息,使得整个网络中的路由器都能够获得全局的网络视图。
6.支持多种路由算法:

动态路由协议支持多种路由算法,如距离矢量路由算法(如RIP)和链路状态路由算法(如OSPF),可以根据网络需求选择合适的算法。
7.网络冗余:

动态路由协议可以通过运行多条路径来实现网络冗余,提高网络的可用性。
8.易于网络扩展:

动态路由协议可以轻松地适应网络的增长和变化,无需重新配置静态路由。
动态路由的这些优点使其成为中大型网络和复杂网络环境中的首选路由方案。

限制:

动态路由协议也需要更多的计算资源和网络带宽,且在安全性方面可能不如静态路由。

        (2)静态路由则是网络管理员手动配置的,不会自动更新。

优点:
1.简单性与低开销

静态路由的配置相对简单,不需要复杂的协议配置,只需手动指定路径。它适用于小型网络或拓扑稳定的环境。此外,静态路由不占用带宽、CPU或内存进行路由计算或信息交换,适合资源受限的设备。
2.精确控制与确定性:

管理员可以完全决定数据流向,避免动态路由的不可预测性。这在金融、工业控制等对路径稳定性要求高的场景中尤为重要。同时,手动配置的路径不易因协议错误引发路由环路。
3.安全性更高:

静态路由不广播路由信息,减少了被攻击的风险,如路由欺骗或泛洪攻击。
4.高优先级与冗余备份:

静态路由默认优先级高于大多数动态路由,确保关键路径优先生效。通过配置浮动静态路由(设置更高管理距离),可以在主链路故障时自动切换到备份路径,提供冗余。
5.特定场景的必要性:

在末节网络(Stub Network)或网络边界等场景中,静态路由是最高效的选择。例如,分支机构通过默认路由指向总部,或企业网与ISP之间的默认路由。
6.临时故障排除:

在网络故障时,管理员可手动配置静态路由绕过问题区域,作为临时解决方案。
静态路由的这些优点使其在某些特定网络环境中成为合适的选择。

限制:

在复杂或动态变化的网络中,通常需要结合动态路由协议以实现灵活性和扩展性。


4.IP地址:是网络中设备的唯一标识,用于定位设备在网络中的位置。
5.子网掩码:用于区分一个IP地址中的网络部分和主机部分。
6.网络拓扑:是指网络中设备之间的连接方式,包括物理拓扑和逻辑拓扑。
7.路由算法:是路由器用来确定最佳路径的算法,常见的有RIP、OSPF、BGP等。
8.收敛:是指在网络中所有路由器更新其路由表,达到一致状态的过程。
9.路由环路:是一种网络故障,数据包在网络上循环传输,无法到达目的地。
10.路由器ID(Router ID):在OSPF等路由协议中,每个路由器都需要有一个唯一的ID来标识自己。

动态路由

分类:

1.基于网络范围进行网络划分

(将网络本身划分为一个个AS自治系统,方便管理和维护)

  1. 内部网关协议(IGP):用于在同一个自治系统(AS)内部传递路由信息。常见的IGP包括:

    • 距离矢量路由协议(Distance Vector Routing Protocols):如路由信息协议(RIP)增强型内部网关路由协议(EIGRP)。这些协议使用距离矢量算法,根据跳数(hop count)或成本(cost)来选择路由。

    • 链路状态路由协议(Link State Routing Protocols):如开放最短路径优先协议(OSPF)中间系统到中间系统协议(IS-IS)。这些协议使用链路状态算法,通过交换网络拓扑信息来计算最短路径。

  2. 外部网关协议(EGP):用于在不同自治系统(AS)之间传递路由信息。最常见的外部网关协议是边界网关协议(BGP)。BGP是一种路径矢量协议,它考虑了路径的多个属性,如AS路径长度、路由器ID等,来选择最佳路由。

2.基于传递数据包是否携带子网掩码:

  1. 有类别的动态路由协议(Classful Dynamic Routing Protocols):这类协议在传递路由信息时,不携带子网掩码信息。它们假设网络是按照传统的A、B、C类IP地址进行划分的。典型的有类别动态路由协议包括:

    • 路由信息协议第1版(RIP Version 1):它是最早的动态路由协议之一,基于距离矢量算法,以跳数为度量标准。
  2. 无类别的动态路由协议(Classless Dynamic Routing Protocols):这类协议在传递路由信息时,会携带子网掩码信息,因此它们能够支持 Variable Length Subnet Masks (VLSM) 和路由汇总。无类别动态路由协议更加灵活,能够更有效地利用IP地址空间。典型的无类别动态路由协议包括:

    • 路由信息协议第2版(RIP Version 2):它是RIP的改进版,支持无类别路由和VLSM。
    • 增强型内部网关路由协议(EIGRP):它是一种高级距离矢量路由协议,支持无类别路由和多种度量标准。
    • 开放最短路径优先协议(OSPF):它是一种链路状态路由协议,支持无类别路由和VLSM。
    • 边界网关协议(BGP):它是互联网的核心路由协议,支持无类别路由和复杂的路由策略。

 如何判断一款动态路由协议的好坏

  1. 选路算法:                                                                                                                             RIP使用贝尔曼-福特算法(跳数:到达目标网段经过的路由器数量)                                       【补充:RIP协议传递COST值的方法---本地路由表中COST值+1】                                         OSPF使用最短路径优先(SPF)算法(收集拓扑信息->构建有向图->转化为最短路径树->生成路由表)

  2. 收敛速度:                                                                                                                                  收敛是指网络中所有设备获取到整个网络所有需要获取的路由信息的过程。                           RIP计时器:30S周期计时器,180S失效计时器,120S垃圾回收计时器                                   OSPF计时器:hello时间10S(广播和多点接入网络)/30S(非广播多点接入网络),dead时间为4倍的hello时间

  3. 资源占用:                                                                                                                             OSPF的优化措施。

  OSPF的优化措施:

  1. 链路状态数据库(LSDB)的压缩:                                                                                        OSPF使用LSDB来存储网络中的链路状态信息。为了减少内存使用,LSDB中的信息被压缩存储。例如,每个链路状态广告(LSA)只存储一次,即使它被多个路由器所知。

  2. 部分更新:                                                                                                                               当网络拓扑发生变化时,OSPF不会发送整个LSDB的更新,而是只发送发生变化的部分。这减少了网络带宽的占用。

  3. Hello包的间隔:                                                                                                                      OSPF使用Hello包来建立和维护邻居关系。Hello包的发送间隔可以根据网络的需求进行调整,以减少CPU和带宽的占用。

  4. 多播和单播:                                                                                                                            在广播和多播网络中,OSPF使用多播地址来发送Hello包和LSU。这减少了不必要的广播风暴,节省了网络带宽。                                                                                            在非广播多点接入网络中,OSPF使用单播地址来发送这些包。

  5. 链路状态刷新:                                                                                                                       OSPF不会频繁地刷新LSA,除非网络拓扑发生变化。这减少了CPU和带宽的占用。

  6. 区域划分:                                                                                                                               OSPF支持区域划分,这允许LSA只在特定的区域内传播,而不是在整个网络中传播。这减少了LSDB的大小和网络带宽的占用。

  7. 路由归纳:                                                                                                                               OSPF支持路由归纳,这允许将多个子网汇总为一个较大的网络。这减少了路由表的大小和CPU的占用。

OSPF 

 OSPF的V1、V2版本支持IPV4,V3版本支持IPV6

OSPF协议使用组播地址来传递其控制平面数据包,以减少网络中的不必要的流量。

在OSPF中,主要有两个组播地址且被用于不同的目的:

  1. 224.0.0.5 - All OSPF Routers:这个组播地址被用于向网络中的所有OSPF路由器发送信息。当OSPF路由器发送Hello包来建立和维护邻居关系时,它们会使用这个地址。此外,当路由器发送链路状态更新(LSUs)来通告网络拓扑变化时,也会使用这个地址,除非路由器正在使用组播抑制功能。

  2. 224.0.0.6 - All DR/BDR Routers:这个组播地址被用于向网络中的所有指定路由器(DR)和备用指定路由器(BDR)发送信息。在广播和多点接入网络中,OSPF选举一个DR和一个BDR来代表网络中的所有路由器交换链路状态信息。使用这个组播地址可以确保只有DR和BDR会收到这些信息,从而减少不必要的网络流量。

 OSPF的工作包

  1. Hello包:用于发现和维持OSPF邻居关系。Hello包包含了路由器的ID、区域ID、认证信息、Hello/Dead间隔等参数。Hello包的发送周期由Hello间隔决定,如果在一个Dead间隔内没有收到邻居的Hello包,则认为邻居已经失效。

  2. Database Description(DBD)包:用于交换链路状态数据库的摘要信息。DBD包包含了链路状态摘要的序列号、链路状态类型和链路状态ID。通过DBD包,路由器可以了解邻居的LSDB数据库(本地链路状态数据库)概况,从而决定是否需要交换详细的链路状态信息。

  3. Link State Request(LSR)包:用于请求邻居发送特定的链路状态信息。当路由器发现自己的LSDB中有缺失或过期的链路状态信息时,会发送LSR包来请求这些信息。

  4. Link State UpdateLSU)包:用于回复LSR请求信息的对应详细的链路状态信息。LSU包包含了链路状态广告(LSA)的完整内容,包括链路状态类型、链路状态ID、链路状态序列号、链路状态校验和、广告路由器等信息。LSU包用于同步LSDB,确保所有路由器的LSDB保持一致。

  5. Link State Acknowledgment(LSAck)包:用于确认收到LSU包。当路由器收到LSU包时,会发送LSAck包来确认收到这些链路状态信息。LSAck包包含了收到的LSA的序列号,以确保数据的完整性和可靠性。

OSPF的区域划分

OSPF(开放式最短路径优先)协议使用区域(Area)来划分网络:

  1. 区域ID:每个OSPF区域都有一个唯一的编号,称为区域ID。区域ID是一个32位的二进制整数,通常以点分十进制格式表示(例如,区域ID 0.0.0.0通常被保留作为骨干区域的ID)。

  2. 骨干区域(Area 0):OSPF网络中必须有一个且仅有一个骨干区域,通常称为Area 0。骨干区域负责连接其他区域,并确保整个OSPF网络中的路由信息能够正确传播。骨干区域是OSPF网络的核心,所有其他区域都必须直接或通过虚链路连接到骨干区域。

  3. 非骨干区域:除了骨干区域外,OSPF网络可以包含多个非骨干区域。非骨干区域必须直接连接到骨干区域,或者通过虚链路(Virtual Link)连接到骨干区域。

  4. 虚链路:虚链路是一种逻辑链路,用于连接两个非骨干区域,或者连接一个非骨干区域和骨干区域。虚链路需要通过另一个区域进行传输,因此虚链路的两端都必须是该区域的ABR(区域边界路由器)。

  5. 区域边界路由器(ABR):连接多个OSPF区域的 routers。ABR负责在不同区域之间传递路由信息,并将一个区域的路由信息汇总到另一个区域。(同时属于两个区域的设备。)

  6. 自治系统边界路由器(ASBR):连接不同自治系统(AS)的路由器。ASBR负责在不同AS之间传递路由信息,并将外部路由信息引入到OSPF网络中。

情况一:在网络规模不大的时候,可以不进行区域划分,这样的OSPF网络称为单区域OSPF网络。

情况二:在网络规模很大的时候,一般需要进行区域划分,减少拓扑信息的传递数量,这样的OSPF网络称为多区域OSPF网络。

RID路由器ID

RID是OSPF路由器的唯一标识,用于在OSPF域中标识路由器。

以下是关于RID的一些关键点:

  1. RID的选择:每个OSPF路由器都必须有一个唯一的RID。RID通常是路由器的IP地址,但也可以是其他32位的数值。如果路由器有多个IP地址,则通常选择最大的IP地址作为RID。

  2. RID的稳定性:一旦路由器启动并选择了RID,它应该保持稳定,直到重启或重新配置。RID的更改可能会导致OSPF域中的不稳定和路由问题。

  3. RID在OSPF中的作用:RID在OSPF中有多种用途,包括:

    • 在OSPF Hello包中标识路由器。
    • 在链路状态广告(LSA)中标识路由器。
    • 在OSPF数据库中标识路由器。
    • 在OSPF路由计算中标识路由器。
  4. RID的配置:RID可以通过路由器的配置文件进行配置,也可以自动选择。如果未明确配置RID,则路由器通常会在拥有的IP地址中自动选择最大的IP地址作为RID。如果接口没有配置IP地址则协议无法工作。

  5. RID的冲突:如果两台路由器具有相同的RID,则会导致OSPF域中的问题。为了避免这种情况,应确保每个路由器都具有唯一的RID。

  6. RID的更改:如果需要更改路由器的RID,则应先关闭路由器,更改配置文件中的RID,然后重新启动路由器。这会导致OSPF邻居关系重建,并可能影响网络的稳定性。

OSPF的状态机

  1. Down状态:一旦启动OSPF进程,并发出hello报文,则进入下一个状态。————关闭

  2. Init状态:当收到的hello报文中存在本地的RID值,则进入下一个状态。————初始化状态

  3. Two-Way状态:邻居关系建立的标志。————双向通讯

  4. Exstart状态:使用未携带LSA摘要的DBD报文进行主从关系选举,其中RID大的为主设备。————预启动

  5. Exchange状态:使用携带LSA摘要信息的DBD报文进行信息共享。————准交换

  6. Loading状态:邻居间使用LSR/LSU/LSAck三种报文来获取完整的拓扑信息。————加载

  7.  Full状态:拓扑交换完成后进入该状态,标志着邻接关系的建立。————转发

OSPF工作过程总结

1. 建立邻居阶段

  • 在OSPF启动前,路由器处于Down状态

  • 在OSPF启动后,路由器向所有运行了OSPF协议的接口发送hello包(目标地址为224.0.0.5)。此时路由器为init状态

  • 路由器收到对端的hello包后,会发送包含邻居信息(RID)的Hello包;

  • 路由器在Hello包中发现自己的RID在邻居列表时,则会进入2-way状态,此刻邻居关系建立,能够双向通讯。

一些可能导致OSPF邻居建立失败的原因:

  1. 网络配置错误:确保OSPF进程ID、区域ID、网络地址和子网掩码在所有相关路由器上都是一致的。

  2. 物理连接问题:检查路由器之间的物理连接,包括电缆、端口和交换机等。

  3. 接口配置错误:检查参与OSPF的接口是否已正确配置,包括IP地址、子网掩码和OSPF进程信息。

  4. Hello协议和Dead Timer不匹配:OSPF邻居之间的Hello协议和Dead Timer必须匹配。如果它们不匹配,邻居关系将无法建立。

  5. 区域边界路由器(ABR)配置错误:如果邻居位于不同的OSPF区域,确保ABR正确配置。

  6. 路由器ID(Router ID)冲突:每个OSPF路由器必须有一个唯一的Router ID。如果两个路由器具有相同的Router ID,邻居关系将无法建立。

  7. 认证问题:如果OSPF区域启用了认证,确保所有路由器都使用正确的认证类型和密钥。

  8. 路由器性能问题:路由器性能问题或资源不足也可能导致OSPF邻居建立失败。

  9. OSPF版本不兼容:确保所有路由器都运行相同版本的OSPF协议。

  10. 防火墙或ACL限制:确保没有任何防火墙规则或访问控制列表(ACL)阻止OSPF消息。

  11. 路由器固件或软件缺陷:有时,路由器固件或软件中的缺陷可能导致OSPF邻居建立失败。确保所有路由器都运行着最新版本的固件或软件。

2. 条件匹配

  • 邻居关系建立后,进行条件匹配(路由器对收到的hello包中的参数进行匹配);
  • 如果条件匹配失败,则保持在邻居关系状态;
  • 如果条件匹配成功,则进入ExStart状态
  • 此阶段仅通过Hello包进行保活。

 为了避免在广播域中多台OSPF设备导致的重复更新,浪费资源,所以OSPF在two-way状态下使用Hello报文进行条件匹配。

3. 建立邻接关系

  • 条件匹配成功之后,开始建立邻接关系。

  • 路由器会使用不携带LSDB摘要信息的DD包进行DR和BDR的选举;

  • 选出DR和BDR后,设备进入Exchange状态;

  • 从设备优先发送DD报文摘要信息,主设备比对本地LSDB,发送LSR包请求缺失的LSA信息。

  • 从设备发送携带详细LSA信息的LSU包;

  • 主设备使用LSACK进行确认,进入loading状态;

  • 当本地LSDB(链路状态数据库)建立完成时,进入FUll邻接状态。

4. 完成收敛

  • 基于本地LSDB收集的LSA,使用SPF算法计算最短路径树。
  • 生成路由表。

5. 收敛后的维护

  • 使用Hello包每10秒发送一次,用于保活邻居关系。
  • OSPF每30分钟进行一次周期更新。

触发更新

1. 设备无法沟通

  • 当设备无法沟通时,需要等待死亡时间(Dead Time)。
  • 死亡时间过后,设备将清空所有改设备的拓扑信息并重新建立邻居关系。

2. 新增网段

  • 当网络中新增网段时,将触发OSPF更新。

3. 断开网段

  • 当网络中某个网段断开时,同样会触发OSPF更新。

角色选举

  • 选举DR和BDR,其他设备为DR-other;
  • DR 指定路由器:规定 DR 设备需要和其他所有设备建立邻接关系;
  • BDR 备份指定路由器:规定 BDR 设备需要和其他所有设备建立邻接关系;
  • 存在最大选举时间,一般等于死亡时间
  • 默认是非抢占的,以保持网络稳定性。
  • 选举基于设备优先级(范围0-255,默认为1,越大越优)和设备RID(Router ID)。
  • 可以通过配置ospf dr-priority 0来放弃选举。
  • 可以通过配置ospf dr-priority 255来锁定选举。
  • 在通过配置更改DR优先级时需要重启才会生效。

[AR1]reset ospf process                  //重启服务

DR和BDR设备之间使用组播地址224.0.0.6来同步数据库。 

 OSPF报文

报文头部

数据报文结构

HELLO报文

【子网掩码在以太网环境下会校验且必须一致,不一致会导致邻居建立失败。P2P网络不做限制】

【hello时间和死亡时间必须一致】

DD报文

[AR1-GigabitEthernet0/0/0]ospf mtu-enable                          // 协商接口最大传输数据量,默                                                                                                   认关闭协商功能,必须都开启                                                                                                   才会协商。
I-- 选举,标志该 DBD 包是进行主从关系选举的 DBD 包。
M-- 更多,主要保证对端设备能够收到所有的DBD摘要信息。
MS-- 只有主设备发送的 DBD 报文置为 1。
LSR--链路状态请求报文 

利用LSA三元组,才能为一的标识一条LSA

LSU--链路状态更新报文
LSACK报文

 OSPF接口类型与网络类型

运行了OSPF协议的设备,接口工作在不同的网络环境下会有不同的工作方式。所以协议在不同的网络环境下对工作方式进行了分类。

1. 广播多点访问网络(BMA - 以太网)

  • 类型:广播(Broadcast)
  • 特点:需要进行DR和BDR选举。
  • MTU:接口允许发出的OSPF报文最大携带的数据量默认为1500字节。
  • Hello时间:10秒
  • 死亡时间(Dead时间):40秒
  • 邻居关系:允许建立多个邻居关系。

2. 点到点网络(P2P)

  • 类型:点到点(P2P)
  • 特点:只能建立一个邻接关系,不需要进行DR和BDR选举。
  • Timers:Hello 10秒,Dead 40秒
  • MTU:接口允许发出的OSPF报文最大携带的数据量默认为1500字节。
  • COST:48(国内串口的传输速率为E1标准2.o48Mbps——参考带宽/真实标准带宽)

3. 非广播多点访问网络(NBMA)

  • 类型:非广播多点访问(NBMA)
  • 特点:需要进行DR和BDR选举。
  • MTU:接口允许发出的OSPF报文最大携带的数据量默认为1500字节。
  • Hello时间:30秒
  • 死亡时间(Dead时间):120秒
  • 邻居关系:允许建立多个邻居关系。

4. 点到多点网络(P2MP)

  • 类型:点到多点(P2MP)
  • 特点:人工设计出来的接口网络类型,没有实际网络类型对应。允许建立多个邻居,不需要选举DR和BDR。
  • Hello时间:30秒
  • 死亡时间(Dead时间):120秒。
  • 邻居关系:允许建立多个邻居关系。

环回的cost为0是定义值,为了区别该网段为环回网段。

 COST

OSPF的开销值附加在每一个运行了OSPF的接口上,OSPF衡量去往同一网段有多条路径时的选路标准。计算方法:设备到达目标网段沿途的接口开销值累加和。

OSPF接口开销计算公式=参考带宽/真实带宽

计算结果小于1按1计算

计算结果大于1按整数部分计算

NBMA网络的特殊情况

Attempt状态机存在于NBMA网络环境,当一端设备指定对端设备作为邻居,但是对端设备没用指定(因为不支持组播,所以不能发送数据包),所以无法收到对端设备发送的Hello报文,只能等待。

POLL轮询计时器:当对端长时间未指定时,那么根据死亡时间对端设备判断故障,回答down,但是由于可能对端设备只是没有及时配置,所以为了后续能够建立邻居关系,NBMA做的特殊处理,当判断对端设备故障仅降低hello报文的发送频率为POLL轮询时间。

接口网络类型

[AR1]display ospf interfince serial 4/0/0              //查看接口网络类型

情况一:在一些网络环境下需要修改接口网络类型,才能正常工作。
情况二:可以通过修改接口网络类型,优化网络使更符合实际情况。
常见优化:可以将两点之间的MA 网络类型,改为P2P网络类型加快协议收敛。

[AR1-GigabitEthernet0/0/0]ospf network-type p2p          //修改接口网络类型为P2P

OSPF的不规则区域

情况一:原理骨干的非骨干区域;

情况二:不连续骨干区域;(骨干区域不能被分割)

OSPF协议星型拓扑结构的规划本身就是一种防环机制,且为了防环OSPF还规定非法的ABR设备不能传递区域之间的路由信息。

 解决不规则区域的方法

1.隧道(VPN)

让非法设备ABR设备和区域0中的设备通过VPN技术逻辑上连接一根线缆,从而将不规则区域连接到骨干区域,以达到解决问题的结果。(被淘汰)

2虚链路

(OSPF协议专门研发出来解决不规则区域问题的方法)(一般作为临时的解决方案)(半淘汰)

V-LINK实质上相当于非法的ABR设备存在属于区域0的接口,所有V-LINK属于区域0.

做法:

让非法的ABR设备和合法的ABR设备之间建立虚链路,从而让非法的ABR合法化,从而传递路由信息。【注意:V-LINK建立的对象是对端设备的RID】

[AR1-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2    

 V-LINK的局限性

1.V-LINK只能跨越一个区域;

2.V-LINK会造成一些资源浪费。

 3.多进程双向重发布

(最终解决方案)

ASBR---自治系统边界路由器---同时运行多种协议的设备。

【注意配置位置:ASBR设备的对应协议中进行配置:如果想要在A协议中重发布B协议的路由信息(引入B协议的路由信息),需要进入A协议中进行配置。】

[AR1-ospf-1]import-route ospf 2

 LSA链路状态通告(拓扑信息)

1.手机LSA信息;

2.利用收集到的LSA信息生成有向图;

3.利用SPF算法计算最短生成树;

4.利用SPF算法计算路由信息。

LSA的类型

IPV4-OSPFv2环境下只使用6种LSA传递路由信息【1,2,3,4,5,7】

LSA头部报文

  1. Type(类型):
    描述LSA的类型。类型为“Router”,这意味着这是一个路由器LSA。
  2. Ls id(链路状态ID):
    标识该LSA的唯一性。
  3. Adv rtr(广告路由器):
    生成此LSA的路由器的Router ID。
  4. Ls age(链路状态老化时间):
    表示LSA存在的秒数。这个值从0开始,默认是1800s,随着时间增加,直到达到最大年龄(3600秒),此时LSA会被从数据库中删除。
  5. Len(长度):
    表示LSA的总长度(包括头部),以字节为单位。(用来区分那些是头部内容,那些是LSA本身的参数)
  6. Options(选项):
    描述LSA的选项。选项为“E”,表示该LSA支持外部路由能力。(包含特殊区域标记)
  7. Seq#(序列号):
    用于检测旧的和新的LSA版本。序列号每次LSA更新时都会增加。范围是0X80000001-0X7FFFFFFE。
  8. chksum(校验和):
    用于检测LSA在传输过程中是否损坏。

序列号刷新机制

LSA 的序号来到最后一个序列, OSPF 会将该 LSA 老化时间设置为3600S ,用来刷新所有设备存储的该 LSA ,之后会自动生成一条内容完全一致,但是序列号从新开始计算, 回到 0X80000001,老化时间更新为 0s。

类型1 LSA(Router LSA)

由每个OSPF路由器生成,描述路由器的链路状态和接口参数。

作用:在区域内部传递拓扑信息,每一台运行了OSPF协议的设备均会生成。

TypeLink IDData
Point-to-point邻居的Router ID该网段上本地接口的IP地址
TransNetDR的接口IP地址该网段上本地接口的IP地址
StubNet该Stub网段的IP网络地址该Stub网段的网络掩码
Virtual虚连接邻居的Router ID去往该虚连接邻居的本地接口的IP地址
网络地址(网络前缀网络号): 单指网段本身,不携带掩码。
例如: 192.168.1.0

类型2 LSA(Network LSA)

由DR(Designated Router)生成,描述广播或NBMA(Non-Broadcast Multi-Access)网络中的链路状态。

作用:在区域内部作为1类LSA的补充信息,主要补充设备链路工作在MA网络(以太网络)中,该以太网的网段掩码信息和该以太网中存在多少运行OSPF的设备。

通过 1 类和 2 LSA 就可以描述出整个区域内部的拓扑信息

类型3 LSA(Network Summary LSA)

用于在不同区域之间传递路由信息,通常由ABR(Area Border Router)生成。

类型4 LSA(ASBR Summary LSA)

描述到ASBR(Autonomous System Boundary Router)的路由,由ABR生成并传递。

类型5 LSA(External LSA)

用于传递外部路由信息,由ASBR生成。

类型7 LSA(NSSA External LSA)

在NSSA(Not-So-Stubby Area)区域中使用,用于传递外部路由信息,由NSSA区域的ASBR生成。

一段链路有可能需要多条link同时描述

LSA类型LS IDADV - router作用范围传递信息
Type-1 LSA router发出该LSA设备的RID发出该LSA设备的RID区域内部发出该LSA的设备的拓扑信息
Type-2 LSA network该以太网DR设备的接口IP地址DR所在设备的RID区域内部1类LSA的补充信息
Type-3 LSA summary区域之间路由由网段本身区域之间的ABR设备单区域域间路由信息
Type-4 LSAASBR设备的RID区域之间的ABR设备单区域ASBR设备的位置信息
Type-5 LSA域外网段本身ASBR设备整个OSPF网络域外网段路由信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2343578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CUDA编程之Grid、Block、Thread线程模型

一、线程模型:Grid、Block、Thread概念 ‌1. 层级定义‌ ‌Thread(线程)‌ CUDA中最基本的执行单元,对应GPU的单个CUDA核心(SP)。每个线程独立执行核函数指令,拥有独立的寄存器和局部内存空间‌。 ‌Block(线程块)‌ 由多个线程组成(通常为32的倍数),是逻辑上的并…

小学数学出题器:自动化作业生成

小学数学出题器是专为教师、家长设计的自动化作业生成工具,通过预设参数快速生成符合教学要求的练习题,大幅降低备课与辅导压力。‌跨平台兼容‌:支持 Windows 系统免安装运行(解压即用)。‌免费无广告‌:永…

卷积神经网络迁移学习:原理与实践指南

引言 在深度学习领域,卷积神经网络(CNN)已经在计算机视觉任务中取得了巨大成功。然而,从头开始训练一个高性能的CNN模型需要大量标注数据和计算资源。迁移学习(Transfer Learning)技术为我们提供了一种高效解决方案,它能够将预训练模型的知识…

Spark与Hadoop之间的联系和对比

(一)Spark概述 Apache Spark 是一个快速、通用、可扩展的大数据处理分析引擎。它最初由加州大学伯克利分校 AMPLab 开发,后成为 Apache 软件基金会的顶级项目。Spark 以其内存计算的特性而闻名,能够在内存中对数据进行快速处理&am…

基于线性LDA算法对鸢尾花数据集进行分类

基于线性LDA算法对鸢尾花数据集进行分类 1、效果 2、流程 1、加载数据集 2、划分训练集、测试集 3、创建模型 4、训练模型 5、使用LDA算法 6、画图3、示例代码 # 基于线性LDA算法对鸢尾花数据集进行分类# 基于线性LDA算法对鸢尾花数据集进行分类 import numpy as np import …

【Deepseek基础篇】--v3基本架构

目录 MOE参数 1.基本架构 1.1. Multi-Head Latent Attention多头潜在注意力 1.2.无辅助损失负载均衡的 DeepSeekMoE 2.多标记预测 2.1. MTP 模块 论文地址:https://arxiv.org/pdf/2412.19437 DeepSeek-V3 是一款采用 Mixture-of-Experts(MoE&…

centos7使用yum快速安装最新版本Jenkins-2.462.3

Jenkins支持多种安装方式:yum安装、war包安装、Docker安装等。 官方下载地址:https://www.jenkins.io/zh/download 本次实验使用yum方式安装Jenkins LTS长期支持版,版本为 2.462.3。 一、Jenkins基础环境的安装与配置 1.1:基本…

【vue】【element-plus】 el-date-picker使用cell-class-name进行标记,type=year不生效解决方法

typedete&#xff0c;自定义cell-class-name打标记效果如下&#xff1a; 相关代码&#xff1a; <el-date-pickerv-model"date":clearable"false":editable"false":cell-class-name"cellClassName"type"date"format&quo…

c++11新特性随笔

1.统一初始化特性 c98中不支持花括号进行初始化&#xff0c;编译时会报错&#xff0c;在11当中初始化可以通过{}括号进行统一初始化。 c98编译报错 c11: #include <iostream> #include <set> #include <string> #include <vector>int main() {std:…

C++23 中 constexpr 的重要改动

文章目录 1. constexpr 函数中使用非字面量变量、标号和 goto (P2242R3)示例代码 2. 允许 constexpr 函数中的常量表达式中使用 static 和 thread_local 变量 (P2647R1)示例代码 3. constexpr 函数的返回类型和形参类型不必为字面类型 (P2448R2)示例代码 4. 不存在满足核心常量…

全面解析React内存泄漏:原因、解决方案与最佳实践

在开发React应用时&#xff0c;内存泄漏是一个常见但容易被忽视的问题。如果处理不当&#xff0c;它会导致应用性能下降、卡顿甚至崩溃。由于React的组件化特性&#xff0c;许多开发者可能没有意识到某些操作&#xff08;如事件监听、异步请求、定时器等&#xff09;在组件卸载…

【FreeRTOS】事件标志组

文章目录 1 简介1.1事件标志1.2事件组 2事件标志组API2.1创建动态创建静态创建 2.2 删除事件标志组2.3 等待事件标志位2.4 设置事件标志位在任务中在中断中 2.5 清除事件标志位在任务中在中断中 2.6 获取事件组中的事件标志位在任务中在中断中 2.7 函数xEventGroupSync 3 事件标…

超级扩音器手机版:随时随地,大声说话

在日常生活中&#xff0c;我们常常会遇到手机音量太小的问题&#xff0c;尤其是在嘈杂的环境中&#xff0c;如KTV、派对或户外活动时&#xff0c;手机自带的音量往往难以满足需求。今天&#xff0c;我们要介绍的 超级扩音器手机版&#xff0c;就是这样一款由上海聚告德业文化发…

【数据可视化-27】全球网络安全威胁数据可视化分析(2015-2024)

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

【6G 开发】NV NGC

配置 生成密钥 API Keys 生成您自己的 API 密钥&#xff0c;以便通过 Docker 客户端或通过 NGC CLI 使用 Secrets Manager、NGC Catalog 和 Private Registry 的 NGC 服务 以下个人 API 密钥已成功生成&#xff0c;可供此组织使用。这是唯一一次显示您的密钥。 请妥善保管您的…

SIEMENS PLC程序解读 -Serialize(序列化)SCATTER_BLK(数据分散)

1、程序数据 第12个字节 PI 2、程序数据 第16个字节 PI 3、程序数据 第76个字节 PO 4、程序代码 2、程序解读 图中代码为 PLC 梯形图&#xff0c;主要包含以下指令及功能&#xff1a; Serialize&#xff08;序列化&#xff09;&#xff1a; 将 SRC_VARIABLE&#xff…

宁德时代25年时代长安动力电池社招入职测评SHL题库Verify测评语言理解数字推理真题

测试分为语言和数字两部分&#xff0c;测试时间各为17分钟&#xff0c;测试正式开始后不能中断或暂停

【硬核解析:基于Python与SAE J1939-71协议的重型汽车CAN报文解析工具开发实战】

引言&#xff1a;重型汽车CAN总线的数据价值与挑战 随着汽车电子化程度的提升&#xff0c;控制器局域网&#xff08;CAN总线&#xff09;已成为重型汽车的核心通信网络。不同控制单元&#xff08;ECU&#xff09;通过CAN总线实时交互海量报文数据&#xff0c;这些数据隐藏着车…

Uniapp 自定义 Tabbar 实现教程

Uniapp 自定义 Tabbar 实现教程 1. 简介2. 实现步骤2.1 创建自定义 Tabbar 组件2.2 配置 pages.json2.3 在 App.vue 中引入组件 3. 实现过程中的关键点3.1 路由映射3.2 样式设计3.3 图标处理 4. 常见问题及解决方案4.1 页面跳转问题4.2 样式适配问题4.3 性能优化 5. 扩展功能5.…

记录一次使用面向对象的C语言封装步进电机驱动

简介 (2025/4/21) 本库对目前仅针对TB6600驱动下的42步进电机的基础功能进行了一定的封装, 也是我初次尝试以面向对象的思想去编写嵌入式代码, 和直流电机的驱动步骤相似在调用stepmotor_attach()函数和stepmotor_init()函数之后仅通过结构体数组stepm然后指定枚举变量中的id即…