HCIP的学习(OSPF总篇)

HCIA的复习

这边可以与我之前写的HCIA博客结合起来一起看,效果更好
HCIA的学习(6)

OSPF状态机

  • down—关闭-----一旦启动OSPF进程,并发出hello报文,则进入下一个状态
  • init----初始化状态------当收到的hello报文中存在本地的RID值,则进入下一个状态
  • 2-way----双向通讯----邻居关系建立的标志

条件匹配:匹配成功则进入下一个状态,匹配失败则停留在邻居关系。(发送的是Hello包进行选举)

  • exstart—预启动----使用未携带LSA摘要的DBD报文进行主从关系选举,其中RID大的为主设备
  • exchange—准交换—使用携带LSA摘要信息的DBD报文进行信息共享
  • loading----加载----邻居间使用LSR/LSU/LSAck三种报文来获取完整的拓扑信息
  • full----转发----拓扑交换完成后进入该状态,标志着邻接关系的建立
Attempt状态---尝试状态。
	仅在NBMA网络中会出现,当设备启动后,从down切换到该状态,尝试向外发送hello报文,当成功发送后,
	进入到init状态。(因为NBMA网络中不允许发送组播报文,所以只能进入Attempt状态等待网络管理员告知
	我邻居的IP地址,然后发送单播报文)

条件匹配:

目的:是为了减少网络中LSA信息的重复更新及资源消耗

(假如没有条件匹配,如果A,B,C,D依靠一个交换机使其出于同一个广播域,假设A先给B,C,D发送自己的拓扑信息了,B接收到后又将自己的拓扑信息和获取到的A拓扑信息一起发送给C(因为如果不将A的拓扑信息一起发送,如果网络是A-B-C三台路由器直连,那么C就永远无法接受到A的拓扑信息),那么C就收到两份A的信息造成LSA信息的重复更新及资源消耗)

设备接口名称:

  • 指定路由器—DR(负责收取其他所有人的拓扑信息)
  • 备份指定路由器—BDR(当DR出现故障时,负责收取其他所有人的拓扑信息)
  • 其他路由器—DRother(自身的拓扑信息只发给DR或BDR,不再发给其他DRother)

注意:DR选举是一个广播域选举一个,只有一种情况只有DR,没有BDR,就是广播域中只有一个设备参加选举,其他设备皆接口优先级为0,放弃选举。

选举规则:

  1. 对比接口优先级----越大越优先,默认值为1,范围为0-255;当优先级为0时代表放弃选举。(先比较)
  2. 对比设备RID----越大越优先

组播地址:(为什么有两个组播地址的原因)

  1. DRother发送时使用224.0.0.6
  2. DR/BDR接收224.0.0.6,发送224.0.0.5

角色关系:

  • DRother之间属于邻居关系,其他设备之间属于邻接关系。

条件匹配属于非抢占模式,即一旦选举成功,不会因为新加入的设备而重新选举。如果需要重新选举,则重启OSPF进程。

OSPF工作过程

在这里插入图片描述

1、设备在启动配置完成后,OSPF将向本地所有运行了OSPF协议的接口以组播224.0.0.5的方式发送出hello报文。
hello报文中携带有本地的RID值以及自己已经知晓的邻居的RID(通过接收其他邻居的hello包来获取邻居的RID)。
2、当收到的hello报文中存在本地RID数值,则进入2-way状态,且将与邻居的关系加入到邻居表中。
3、进行条件匹配,匹配成功开始建立邻接关系。匹配失败则停留在邻居关系,仅使用hello报文保活。
(注:如果是点到点网络就不需要条件匹配,因为不会重复更新)
4、开始建立邻接关系,首先使用未携带数据的DBD报文进行主从关系选举,主设备先进入下一个状态,从设备先
发送下一个报文。之后使用DBD报文来共享LSA摘要信息。之后双方通过LSR/LSU/LSAck报文完成未知LSA的获取
过程,完成本地数据库的搭建----LSDB
5、基于本地数据库中的LSA信息,通过SPF算法,计算出有向图和最短路径树,并计算所有到达所有节点的路由
信息,将计算出的路由信息加载到OSPF路由表中。
6、基于OSPF路由表以及其他协议路由表,共同选择出最优路由,并将最优路由加载到全局路由表中,以供后续
指导数据包的转发过程。
7、设备之间使用hello报文保活,每30min进行一次周期链路刷新。

下边可以与我之前写的实验报告结合起来一起看,那里有完整配置
OSPF实验

OSPF基本配置

在这里插入图片描述

IP划分:192.168.1.0/24
IP划分的原则:
1.每一台设备的环回看做一个网段(不管这台设备有多少个环回)
2. 所有的物理链路看做一个网段
所以上图需要4个网段,借两位
192.168.1.0/26 —链路
-------192.168.1.0/29 —R1、R2、R3
-------192.168.1.8/29
-------------192.168.1.8/30 —R3-R4
-------------192.168.1.8/30 —R4-R5
-------192.168.1.16/29
-------192.168.1.24/29
-------192.168.1.32/29
-------192.168.1.40/29
-------192.168.1.48/29
-------192.168.1.56/29
-------192.168.1.64/29 ----保留地址
192.168.1.64/26 —R1环回
192.168.1.128/26 —R2环回
192.168.1.192/26 —R3环回
(因为需要3个网段,最好掩码为30,因为掩码30只有两个可用IP地址,不会造成IP地址的浪费,但有一个网段需要3个IP地址,所以那个网段我们至少掩码为29)

[r1]ospf 1 router-id 1.1.1.1  ---启动OSPF并手工配置RID,RID满足要求即可(即全网唯一)
[r1-ospf-1]area 0  ---划分区域
[r1-ospf-1-area-0.0.0.0]network 192.168.1.1 0.0.0.0  ---精准宣告,宣告使用的IP属于本地的IP
[r1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255  ---范围宣告

两种宣告方式任选其一即可,一般推荐使用精准宣告

[r1]display ospf peer   ---查看邻居表
[r1]display ospf peer brief  ---查看邻居简表
[r1]display ospf lsdb   --查看LSDB
[r1]display ospf routing  ---OSPF路由表
[r1-GigabitEthernet0/0/0]ospf dr-priority 2  ----修改OSPF接口优先级

缺省路由下放
[r5-ospf-1]default-route-advertise   ----非强制性下放,要求本地必须存在一条缺省路由
[r5-ospf-1]default-route-advertise always  ---强制性下放

[r1-ospf-1]silent-interface LoopBack 0  ----静默接口,配置为静默接口的接口,不会发送和接收OSPF报文


区域认证:
[r4-ospf-1-area-0.0.0.1]authentication-mode md5 1 cipher 123456
接口认证:
[r3-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456

一条OSPF路径的COST值等于从目的地到本地路由器沿途所有设备的入接口cost之和

OSPF数据报文

OSPF头部信息(公共固定)

在这里插入图片描述

  • 版本:OSPF版本,在IPv4网络中版本字段恒定为数值2(v1属于实验室版本,v3属于IPv6)
  • 类型:代表具体是哪一种报文,按照1~5排序(Hello报文或其他四种之一)
  • 报文长度:OSPF数据报文的完整长度(OSPF头部信息(24字节)+数据部分大小(可变))
  • 路由器ID:就是发送方的router id
  • 区域 ID:发送的接口属于的区域(例如属于区域0,就是0.0.0.0)(与接收方入接口区域ID如果不相同,两者不会建立邻居关系)
  • 校验和:用来验证数据的完整性,有无被串改
  • 验证类型:(3种)
    • 不认证
    • 明文认证
    • 密文认证

如果验证类型字段为0–不认证。则认证数据部分使用全0填充,保证首部大小为24字节

区域ID用于路由器双方进行验证,如果双方所属区域不同,则无法建立邻居关系

Hello包

​ 功能:发现、建立以及周期性保活邻居关系。进行DR和BDR的选举

在这里插入图片描述

  • 蓝色字体表示会影响到OSPF邻居关系的建立
  • 首部中:区域ID、认证类型、路由器ID(router id 相同会影响)
  • 网络掩码
    • 该报文被路由器的那一个接口发送,该字段填充该接口的掩码信息。
    • 两台OSPF路由器会检查该字段内容,如果该字段与收到该报文的接口的掩码信息不符,则会丢弃该hello报文。----网络掩码字段的检查仅在MA网络进行
    • 注意:OSPF建立邻居关系需要对比网络掩码字段是华为厂商独有的手段。
  • Hello时间间隔
    • 两台直连路由器如果要建立邻居关系,则需要保证该参数取值一致,否则无法正常建立邻居。
  • 路由器失效时间(即死亡时间)
    • 两台直连路由器如果要建立邻居关系,则需要保证该参数取值一致,否则无法正常建立邻居。
    • 默认情况下,路由器失效时间是Hello时间的四倍,会随着Hello时间变化而变化(但不绝对,可以单独更改死亡时间)
  • 可选项
    • 8个标记位,每个标记位置为1,则代表该设备开启了某一种OSPF特性。
    • 可选项中有部分标记位被称为特殊区域标记,该标记在邻居关系建立时会被检查,如果不同则会影响到邻居关系建立。
  • 路由器优先级
    • 就是接口优先级,默认为1
  • 指定路由器/备份指定路由器(DR/BDR)
    • 填充的是网络中DR/BDR所在接口的IP地址。
    • 如果没有选举出,则填充0.0.0.0
  • 邻居
    • 填的是邻居的router id,每有一个,都用一行来填充(32bit),没有可以为空

扩展

	所有224.0.0.X格式的组播IP地址被称为本地链路组播;
	目标IP地址是本地链路组播的数据包中的TTL值被设定为1;所有的本地链路组播都存在与之对应的组播MAC地址。
	01-00-5e-0+IP地址的后23位。
[r1-GigabitEthernet0/0/0]ospf timer hello 100  --修改hello时间
[r1-GigabitEthernet0/0/0]ospf timer dead 20  ---修改死亡时间

DBD包

功能

  • 使用未携带数据的DBD报文进行主从关系选举

  • 使用携带数据的DBD报文进行LSA摘要信息共享

  • 使用携带数据的DBD报文进行确认
    在这里插入图片描述

  • 接口最大传输单元(MTU)

    • OSPF在exstart状态需要进行MTU数值协商,如果双方数值不同,则会影响后续OSPF工作。
    • 该参数会影响OSPF邻接关系的建立,如果参数不同,则双方停留在exstart状态。
    • 华为默认情况不开启MTU检测机制。
      • 在华为体系下,无论接口的实际MTU数值为多少,该字段数值均为0。
      • [r1-GigabitEthernet0/0/0]ospf mtu-enable —开启OSPF对MTU的检测机制,双方均需要开启。
  • 标记位

    • I位
      • 代表此时时候在进行主从关系选举。
      • 当该标记位置为1时,则代表此时在进行主从关系选举,且该报文不会携带LSA头部信息。
    • M位
      • 代表后续是否还存在别的DBD报文。
      • 该标记位置为1,则代表此时后续还有其他DBD报文。
    • MS位
      • 当该标记位置为1,则代表此时发送该报文的接口为主设备。
      • 在主从关系选举完成之前,所有DBD报文的MS位均为1
  • DD序列号

    • 用于确保DD报文在传输过程中的有序性和可靠性。DD报文的序列号在DD报文交互过程中逐次加一。
    • 只有主设备才可以规定DD序列号内容。
      • 如果从设备发送完数据,而主设备没有发送完毕。从设备也需要回复一个空的DD报文进行确认。
      • 如果主设备发送完毕,从设备没有发送完毕。主设备需要发送空的DD报文,目的是给从设备提供DD序列号使用。
    • 隐性确认—从设备必须根据主设备发送报文中的序列号来发送自己的DD报文
  • LSA的头部

    • 本地所有LSDB中的LSA的摘要信息

LSR包

在这里插入图片描述

链路状态类型、链路状态ID、通告路由器表示一组,后面每多一条LSA信息,就多一组

LSA三元组,可以通过这三个参数唯一的标识一条LSA信息

LSU包

在这里插入图片描述

LSA个数:告知对方,我发送的LSA个数,让对方对比是否发全

LSAck包

在这里插入图片描述

LSAck报文的目的—显性确认机制。(告知对方消息以收到)
LSAck报文大小计算:24 + 20*n (24:报文头部的大小 20:一个LSA头部的大小 n:LSA头部的数量)

OSPF的接口网络类型

OSPF的接口在某种网络类型下的工作方式

网络类型OSPF接口的工作方式
BMABroadcast;可以建立多个邻居关系。需要进行DR选举。hello 10S;dead 40S。
P2PP2P;只能建立一个邻居关系,不需要进行DR选举。Hello 10S;dead 40S。(串线cost:48)
环回接口(虚拟接口)P2P,华为设备定义为P2P类型,而思科定义为loopback类型。环回接口默认学习32位主机路由。
P2MP;可以建立多个邻居关系,不需要进行DR选举;hello 30S,dead 120S。
NBMA(帧中继)NBMA,可以建立多个邻居关系,需要DR选举;hello 30S,dead 120S。无法自动建立邻居关系。
Vlink;hello 10S,dead 40S。不需要DR选举。以单播形式发送hello报文。

Vlink单播形式,主要是因为组播224.0.0.5的TTL为1,只能直连发送,而Vlink中间可能有多个设备。

在这里插入图片描述

在这里插入图片描述

Broadcast:OSPF的接口网络类型(区分网络类型BMA是在所有网络类型中的定义,Broadcast是在OSPF环境下的定义)

Poll--->轮询时间间隔
	在NBMA网络上,当邻居失效后,路由器将按照设定好的轮询时间间隔定期发送hello报文。以检测邻居是否上线。
	该时间在修改时最少为hello时间的四倍(在NBMA网络中,hello时间30s,死亡时间120s)。
	
Retransmit--->邻居路由器重传LSA的间隔时间(可以理解为RTO:超时重传时间)
              一般为5s,因为有可能是串线和网络问题,使其未接收到LSAck报文

在LSDB中看LSA,有一个属性是Age:LSA的老化时间,一般为3600s,两倍周期链路刷新时间,以防第一次刷新丢了
                           (OSPF中有触发更新和周期链路刷新30min = 1800s)
Transmit Delay--->LSA延迟时间
	该字段是针对LSA设置的,因为OSPF网络需要保证全网的LSDB数据库相同,而LSDB数据库中的每一个LSA是
	具备一个老化时间参数的,该参数也需要统一。
	而LSA在链路中传递时,老化时间不会改变,导致最终数据不统一。

BMA类型中,Hello、LSU、LSAck三种报文以组播形式通告,而其他报文以单播形式通告

在这里插入图片描述

P2P类型中,所有报文使用组播形式发送

在这里插入图片描述

所有通过OSPF学习到的环回接口的路由,掩码信息均为32位主机路由。—>因为环回接口是一个模拟的接口,实际上并没有连接用户,所以没有其余的IP地址存在于环回接口之下,只有一个可用IP地址,故而使用32位掩码来直接标识。----->避免了环路或者路由黑洞的产生

在OSPF中,环回接口的开销值恒定为0。

在条件匹配中,会存在一个waiting计时器,该计时器等于该接口的死亡时间,当该时间超时,则代表DR选举失败,此时接口认为自己为DR设备,并且进入exstart状态

[r3-LoopBack0]ospf network-type broadcast ----修改OSPF接口的网络类型参数为BMA

在这里插入图片描述

中心:
[r7]interface Tunnel0/0/0
[r7-Tunnel0/0/0]ip address 192.168.4.7 24
[r7-Tunnel0/0/0]tunnel-protocol gre p2mp
[r7-Tunnel0/0/0]source 107.0.0.7
 
分支:
[r8]interface Tunnel0/0/0
[r8-Tunnel0/0/0]ip address 192.168.4.8 255.255.255.0 
[r8-Tunnel0/0/0]tunnel-protocol gre p2mp
[r8-Tunnel0/0/0]source GigabitEthernet0/0/0
[r8-Tunnel0/0/0]nhrp entry 192.168.4.7 107.0.0.7 register
 
[r7-Tunnel0/0/0]nhrp entry multicast dynamic   开启伪广播

华为将tunnel接口的传输速率定义为64Kbps。这是因为华为想人为的将tunnel接口的开销值改大,从而让OSPF的选路尽量避开tunnel接口,而走其他接口。因为隧道接口会进行封装和解封装操作,导致资源消耗增加,数据转发效率降低。

​ hub节点无法和spoke节点建立邻居关系,因为hub节点无法发送OSPF报文,原因在于在MGRE环境下,不允许组播行为出现,且hub节点发送的是单播报文,而hub节点的nhrp映射表中存在多个映射关系,无法选择,故数据报文无法发送----->在hub节点开启伪广播功能,用单播实现组播行为

​ hub节点的tunnel接口此时在OSPF的工作模式为P2P,故只能存在一个邻居,而导致其他spoke节点无法与hub节点建立邻居关系。---->将hub节点的接口网络类型进行修改

DR选举失败指的是Waiting计时器超时。而条件匹配失败,指的是建立邻居的双方没有任何一方是DR或BDR的身份

​ hub节点此时只能与一个spoke节点建立邻接关系,其他节点处于邻居关系,原因在于此时的所有spoke节点都不需要进行DR选举,而hub节点需要进行选举,最终导致选举失败。---->所有节点的接口网络类型均进行修改

​ 在Hub-Spoke架构中,只有中心节点可以连接每一个分支,而如果DR角色选举在spoke节点,就会导致LSA信息学习和分发不完整,导致全网路由学习缺失。---->干涉DR选举,将DR的位置固定在hub节点让spoke节点放弃选举。(不要将hub节点router id改大,因为如果hub故障重启,spoke节点间会重新选举出DR,hub重启后因为不抢占模式,会出现问题)

扩展

hub and spoke 架构 延伸 -->层次架构

full-mesh架构 —> 全连接网络(两两之间都存在连接,也是常说的网状拓扑,每一个站点都是中心)

但是拓扑指的是物理环境 架构指的是广域网虚拟架构

还有部分全连接网络,有些走的是中心节点

在这里插入图片描述

P2MP不需要进行条件匹配(DR和BDR的选举)

P2MP环境下,OSPF会主动学习邻居设备接口的IP地址,且自动生成该IP地址所对应的主机路由信息

OSPF接口的网络类型修改,是全局操作,所有设备均需要修改为相同类型

​ 在P2MP环境中,hello报文组播发送,其他报文单播发送。

在这里插入图片描述

帧中继:进行的是标签交换(交换机是包交换)

在NBMA环境中,所有的OSPF数据报文均以单播形式发送。该环境中不允许组播或广播行为,故需要给每一台运行OSPF协议的设备手工指定其邻居IP地址,在OSPF进程中通过Peer IP命令,双方均需要配置。

OSPF不规则区域划分

区域划分

  • 非骨干与骨干区域直接相连
  • 骨干区域唯一

限制规则:

  • 非骨干区域之间不允许直接相互发布区域间路由信息
  • OSPF区域水平分割:从非骨干区域收到的路由信息,ABR设备能接收到不能使用(从某区域传出的路由,不能回归到某区域)

不规则区域:

  • 远离骨干区域的非骨干
  • 不连续的骨干区域

由于网络升级、合并、割接等操作;或者因为网络单点故障原因,导致网络出现不规则区域划分,从而导致网络出现数据通讯障碍问题

最根本的解决方案:修改OSPF规划和配置,使得整个OSPF域满足区域划分要求

解决方案

在这里插入图片描述

第一种解决方式,使用tunnel隧道

​ 在R2和R3之间构建一个GRE隧道,将该隧道宣告进骨干区域,实现将R3设备变为ABR设备。

​ 使用该方式的问题:

  • 可以产生选路不佳。
  • 会造成重复更新
  • 因为虚拟链路的存在,R2和R3之间需要建立邻居。导致在维护邻居时使用的hello报文消耗中间区域资源。

第二种解决方案,虚链路—Vlink

​ 思路:使用一个合法的ABR设备为伪ABR设备进行授权,授予其可以执行ABR功能的权限。

[r2-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3

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

注意:需要在穿越的区域中进行配置,并且配置的是RID值,而非邻居IP地址

虚链路的配置条件:只能穿越一个区域。原因在于配置时使用的时RID,而RID值只能通过TOPO信息寻找,而跨区域时无法找到相应RID值,故数据无法传输

在这里插入图片描述

Vlink被视作为骨干区域的一段延伸(Vlink永远属于Area 0)

​ 使用该种方式的问题:

  • 虚链路只能穿越一个区域。
  • 虚链路的两端节点需要通过hello报文进行维护,导致需要周期性发送数据,从而消耗被穿越区域的资源。

Vlink不能在骨干区域进行配置

Vlink不仅仅应用在解决不规则区域,还可以修复一些次优路径或者骨干区域不健壮问题Vlink还可以解决没有骨干区域的场景(例:四台路由,之间分别是区域1、2、3,可以在区域2内两台路由加一个Vlink)。

当Vlink两端节点选择不当时,可能会引发环路问题

骨干链路单点故障(如果R1与R2之间的物理链路断开,会变成两个骨干区域)

可以在R3与R4之间建立Vlink,就会变成一个骨干区域

在这里插入图片描述

有影响的是:

如果不在R3与R4之间建立Vlink,R4向13.0.0.3发送信息会走R2-R1-R3,但建立了Vlink,会走34.0.0.3

可以用[r4]tracert 13.0,0,3 —路径跟踪 来查看

Vlink环路问题

在这里插入图片描述

如果ping 5.5.5.5 会失败,因为,R1-R2-R3之间会形成环路,例:从R1去Ping5.5.5.5,R1的下一跳为R2,R2的下一跳为R3,R3的下一跳为R1,原因是,建立Vlink时,R4将R5的路由信息依据Vlink走R3发送给R2,其中经过R3时,R3是ABR设备,看不是骨干区域发来的信息就丢弃,不学习,R2因为建立了Vlink,所以学习后将路由信息发送给R1和R3,R3再次检查发现不是骨干区域的信息,再次丢弃,最后R1接收后转发给R3,R3检查后发现是骨干区域的信息,学习下来。

解决方法:

不在R4与R2之间配置Vlink,在R4与R3之间配置Vlink,路径就是R5-R4-R1-R2。

OSPF是一个无环的路由协议,指的是通过SPF算法计算出来的路由无环,即在区域内部无环,区域间可能会有环路

在这里插入图片描述

​ 环路:如果R2做了汇总(只有ABR设备才可以汇总拓扑明细),且汇总结果为10.0.0.0/8。将该汇总路由发送给Area 1,而R4设备从Area 1接收该汇总路由时,仅接收不使用(OSPF区域水平分割原理)。但是R4会接收通过Vlink链路传递来的Area 0区域的所有拓扑信息,从而生成路由信息。为了减少Area 2区域的路由信息,故R4也需要进行汇总操作,汇总结果为10.1.0.0/16。----->R2和R4汇总的路由均传递给R3,而因为最大掩码匹配规则,R3选择R4传递的路由,而R4真实数据传递的吓一跳为R3,导致R4<–>R3环路产生。

解决方案:OSPF规定,vlink所在的非骨干区域,不能传递聚合路由。也就是说,ABR设备不能向配置了Vlink链路的区域传递聚合路由信息

第三种解决方式,多进程双向重发布----->网络中最常用的方式。

在这里插入图片描述

​ 将R3设备运行在不同的路由区域,这种设备会被称为是ASBR设备。

重发布是在运行了不同协议或不同进程的边界设备(ASBR)上,将一种协议按照另一种协议的规则发布出去。

[r3-ospf-1-area-0.0.0.2]undo network 34.0.0.3 0.0.0.0

[r3-ospf-1]undo area 2

[r3]ospf 100 router-id 3.3.3.3

[r3-ospf-100]area 2 //也可以区域0,任意都可以
[r3-ospf-100-area-0.0.0.2]network 34.0.0.3 0.0.0.0

[r3-ospf-1]import-route ospf 100 ----将通过OSPF 100学习到的路由以及本地发布到OSPF 100的路由信息重新引入到OSPF 1当中

[r3-ospf-100]import-route ospf 1

display ip routing-table protocol ospf 查看

Proto协议字段: 0_ASE:表示域外路由信息 Pre:150(华为设定的)

协议标志为O_ASE代表该条路由信息时OSPF的域外路由信息,其优先级被设定为150

​ 该解决方式,会使全网设备正常学习所有路由信息,并且不存在选路不佳以及资源消耗问题。

多进程一般用于网络隔离使用

在这里插入图片描述

OSPF的LSA详解

LSA头部信息

[r2]display ospf lsdb router 1.1.1.1----查看OSPF某一条LSA的详细信息,类型以及LS ID参数。

在这里插入图片描述

  • 链路状态老化时间
    • 指一条LSA的老化时间,即存在了多长时间。
    • 当一条LSA被始发路由器产生时,该参数值被设定为0之后,随着该LSA在网络中被洪泛,老化时间逐渐累加
    • 当一条LSA的老化时间为3600S时,则判断该条LSA失效,将被删除。(不是始发路由器的唯一删除方法)
    • LSA的老化时间一般应该小于1800S,因为OSPF存在周期链路刷新机制。周期链路刷新机制是只有始发路由器可以执行的,而沿途其余设备执行的是触发更新机制。
    • 在OSPF网络中,只有始发路由器可以修改或删除LSA信息
    • OSPF存在周期链路刷新机制(某一个信息到时间只刷新一个,并且只有始发路由器可以通告),rip是周期更新机制(到时间全部一起更新,包括本地和收到的)
    • 组步调计时器(思科启用):有LSA到1800s,等待240s,到时间后,老化时间在1800s-2040s的统一发送
  • 可选项:与之前Hello包内相同
  • 链路状态类型
    • 指的是本条LSA的类型属性。
  • 链路状态ID
    • 根据链路状态类型的不同,该参数的含义不同。
  • 通告路由器
    • 产生该条LSA的路由器的Router-ID。
  • 校验和
    • 除了验证LSA的完整性,还会参与到LSA的新旧关系对比。
  • 链路状态序列号
    • 代表有序性,每发送一条LSA,则序号加1。也是用于判断LSA新旧关系的一种。
    • 初始序列号:0x80000001 (数字8代表负数,7代表正数)
    • 截止序列号:0x7FFFFFFF (负 -->0x00000000 -->正)
    • 序列号由负数开始增长,其中数值越大越优。
    • OSPF序列号刷新方式
      • 当一条LSA序列号为0x7FFFFFFF时,始发路由器会将其老化时间设定为3600S,其他设备收到该LSA后,因为序列号最大,会无条件接受,此时又因为老化时间参数,会删除该条LSA。
      • 而此时始发路由器会重新发送序列号为0x80000001的全新LSA信息,实现序列号的刷新机制。

判断LSA的新旧关系

  • 拥有更高序列号的LSA被认为更新。
  • 如果序列号相同,则拥有较大校验和的LSA被认为更新。
  • 如果序列号与校验和均相同,则对比老化时间。
    • 如果某条LSA的老化时间为3600S,则无条件选择该条LSA。
    • 如果没有LSA老化时间为3600S,则对比两条LSA的老化时间差值,如果差值大于15min,则认为老化时间较小的为更新。如果差值小于15min,则两条LSA被认为相同。
链路类型LS ID通告者传播范围携带信息
Type-1(Router)通告者的RID区域内所有运行OSPF协议的路由器的RID设备所在的单区域本地接口直连拓扑信息
Type-2(Network)DR接口的IP地址每一个MA网络中DR所在的路由器的RID单区域对单个MA网络拓扑的补充信息
Type-3(summary)域间路由信息的网络地址ABR设备,在通过下一个ABR设备时会被修改为新的ABR设备的RIDABR设备相邻的单区域域间路由信息
Type-5(ase)域外路由信息的网络地址ASBR整个OSPF网络域外路由信息
Type-4(asbr)ASBR的RID与ASBR同区域的ABR设备,在通过下一个ABR设备时会被修改为新的ABR设备的RID除去ASBR所在区域的所有单区域ASBR的位置信息
Type-7(nssa)域外路由信息的网络地址ASBR,离开NSSA区域后会被转换为5类LSANSSA区域域外路由信息

Type-1(Router)

在这里插入图片描述

​ Tpye名称为Router即为一类LSA信息。一类LSA信息是所有设备都会发送的LSA,且每一个设备单区域只会发送一条LSA

路由器会为每个区域单独产生一条一类LSA,用以描述连接在该区域的接口参数信息

在这里插入图片描述

第一行是总数结构,之后是一组一组的

  • 标记位
    • V----代表发送该LSA的路由器是Vlink的一段端点。
    • E----代表发送该LSA的路由器是ASBR
    • B----代表发送该LSA的路由器是边界路由器。(不是特指ABR,ABR是必须连接骨干,边界路由器是连接多个区域即可)
  • 链路数量
    • 特指该LSA中Link的数量。
    • 每一个link均包含链路ID、链路数据、链路类型、度量值。路由器使用一条Link或者多条link来共同描述一个接口信息。
  • 链路类型---->链路ID与链路数据随着链路类型的改变而改变。(表单须背
    • 在这里插入图片描述

用于根据LSA信息画出具体拓扑图,然后根据拓扑图计算具体路由

Type-2(Network)

在这里插入图片描述

对于接入MA网络的OSPF设备而言,仅依靠一类LSA是无法正常补全网络拓扑结构,其中缺少两个信息,分别是该MA网络的掩码信息以及有多少个节点连接在这个MA网络。---->使用二类LSA进行补充。

二类LSA必须由DR设备产生

OSPF中,拓扑信息全部由一类以及二类LSA进行完善,且每个LSA仅在各自产生区域传递

Type-3(summary)

在这里插入图片描述

三类LSA的通告者都是该区域的ABR设备,且每一条路由信息使用一条独立的LSA进行描述

三类LSA中携带“网络地址”“网络掩码”“开销值”三个参数

三类LSA中的开销值等于该LSA通告者到达目的地的开销值。本地路由表中的路由项开销值等于三类LSA中的开销值加上通过一二类LSA计算出到达ABR设备的开销值之和。

当接收者收到一条三类LSA后,首先会根据本地的一二类LSA进行验算,验算是否可以到达这条三类LSA的通告者,如果可以正常到达,则接收该LSA并生成相应路由信息;否则丢弃该LSA信息

三类LSA在跨区域传递时,需要进行通告者的转换,实际上是重新编写了一条全新的LSA内容

Type-5(ase)

在这里插入图片描述

五类LSA主要传递域外路由信息,该LSA被ASBR产生,并且传播到整个OSPF网络(除了一些特殊区域)

在这里插入图片描述

  • 开销值

    • 五类LSA中的开销值并不等于ASBR到达目标网段的开销。原因在于外部路由的开销值算法与OSPF内部的开销值算法不同,该数值对于OSPF而言,没有意义。---->故,五类LSA在引入到OSPF网络时,会使用一个常数来标识LSA中的开销,该常数值一般称为种子度量值

    • 种子度量值默认为1,该参数可以在重发布过程中进行修改。(只能在始发路由器改)

    • [r4-ospf-1]import-route rip 1 cost 10 ----将种子度量值修改为10

  • E位---->度量值类型

    • Type-1

      • 如果E标记位为0。
      • 所有设备到达域外目标网段的开销值====本地到达发出这条LSA的ASBR的开销+种子度量值
    • Type-2

      • E标记位为1。默认值
      • 域内所有到达目标网段的开销值====种子度量值
    • 在重发布时可以进行修改

    • [r4-ospf-1]import-route rip 1 type 1 ----修改开销值类型

  • FA—转发地址

    • 可以把转发地址就理解为重定向信息

    • 当FA==0.0.0.0时,则到达该外部网段的流量会被发往引入该外部路由的ASBR。

    • 当FA不等于0.0.0.0时,则到达该外部网段的流量会被发往FA字段。

    • 在这里插入图片描述

    • 当同时满足如下四个条件时,FA字段可以被ASBR设置为其他参数数值。

      • 引入外部路由的ASBR在其连接外部网络的接口上激活了OSPF协议。
      • 该接口没有被配置为静默接口(ospf不接不发,RIP只接不发)。
      • 该接口的网络类型为Broadcast或NBMA
      • 该接口的IP地址属于OSPF协议配置的network命令范围内。
    • 外部路由标记(Tag,应用在路由策略技术上)

      • 该参数用于给OSPF域外路由信息打上标签,从而对路由信息进行分组。根据组别使用路由策略对不同组播进行不同操作。

      • 在华为路由器上,缺省时,所有路由信息标记为1

      • 在重发布时可以进行修改

        • [r4-ospf-1]import-route rip 1 tag 84512313

Type-4(asbr)

所有传递路由信息的LSA都需要进行验算过程,寻找该LSA的通告者。而5类LSA是全区域传递,对于不与ASBR处于相同区域的设备而言,无法通过1类和2类LSA完成验算过程,需要引入额外的LSA信息----Type-4 LSA

四类LSA仅在描述如何到达ASBR。---->实际上是一条到达ASBR的路由信息

四类LSA与三类LSA较为相似,但是不同,因为四类LSA通告的不是目标网段,而是ASBR的RID

在这里插入图片描述

Tos 0 metric(度量值):1 代表4类LSA的通告者到达ASBR的开销值(R3到R4)

路由撤销

  • 1类LSA撤销
    • 通过更新的方式进行撤销,即发送一条全新LSA,序列号+1,校验和不变,老化时间=0(新的LSA里面就不包含不需要的Link)
  • 2类LSA撤销
    • MA网络中还存在两个以上节点,此时DR发送序列号+1,老化时间=0的LSA进行更新。
    • MA网络中没有任何节点存活,此时DR发送序列号不变,老化时间=3600S的LSA清除全网信息。(发送给整个区域中没断的其他路由器)
  • 3类LSA撤销
    • 序列号不变,校验和不变,老化时间=3600S进行路由撤销(要比3次,下面原因)。
    • 因为三类LSA的数量在网络中占据大量信息,而如果采用序列号增加,则代表始发路由器重新构造了一条LSA信息,该方式会极大的消耗设备资源。而对原本LSA信息进行修改的方式,可以减少始发路由器的资源消耗。
  • 5/7类LSA撤销
    • 序列号不变,校验和不变,老化时间=3600S进行路由撤销。
  • 1、2类LSA撤销是更新,因为一个LSA包含很多信息,3/5/7类LSA撤销是老化时间为3600s,因为一个LSA只有一条路由信息

OSPF优化

OSPF的优化主要目的是为了减少LSA的更新量

  • 路由汇总-----可以减少骨干区域的LSA数量
  • 特殊区域-----可以减少非骨干区域的LSA数量

OSPF路由汇总

域间路由汇总-----在ABR设备上进行操作

在这里插入图片描述

[GS-R2-ospf-1-area-0.0.0.1]abr-summary 192.168.0.0 255.255.224.0
[GS-R3-ospf-1-area-0.0.0.2]abr-summary 192.168.32.0 255.255.224.0

域间路由汇总实质上是通过ABR设备上对区域之间传递的三类LSA进行汇总,并且其影响的是除了明细路由所在区域的其他区域的路由表信息

注意:域间路由汇总只能汇总ABR设备自身通过1类、2类LSA信息学习到的路由信息

当执行了路由汇总操作后,站点内这条汇总路由所涵盖的所有明细路由当中,只要有一条明细路由有效,则该汇总路由有效。当所有明细路由均失效后,这条汇总路由才会失效

域外路由汇总

域外路由汇总实质上是在ASBR上,通过重发布时,将导入进来的五类/七类LSA进行修改

在这里插入图片描述

[r1-ospf-1]asbr-summary 10.1.0.0 255.255.0.0

​ 五类LSA汇总后的开销值计算方法:

  • Type-1
    • 汇总后的五类LSA中的开销值等于所有明细路由开销值中最大值
  • Type-2
    • 汇总后的五类LSA中的开销值等于所有明细路由开销值最大值+1

OSPF特殊区域

  • 成为第一类特殊区域的条件------末梢区域
    1. 不能是骨干区域
    2. 不能存在Vlink
    3. 不能存在ASBR
  • 成为第二类特殊区域的条件
    1. 不能是骨干区域
    2. 不能存在Vlink
    3. 必须存在ASBR

第一类特殊区域

在这里插入图片描述

末梢区域----Stub Area

当一个区域称为末梢区域后,则该区域不能再学习4类和5类LSA----->ABR设备不会在给该区域转发四类和五类LSA。该区域将会拒绝学习域外路由信息,但是其依旧具有访问域外路由的需求,所以,当称为stub区域后,该区域会自动产生一条指向骨干区域的3类缺省路由。---->由ABR设备进行下发路由信息。

[r5-ospf-1-area-0.0.0.2]stub    
[r1-ospf-1-area-0.0.0.2]stub 

特殊区域的配置,是该区域中所有设备都需要做的。—不然会影响邻居关系的建立

完全末梢区域----Totally Stub Area

​ 在Stub区域的基础上,进一步拒绝三类LSA传播。

[r1-ospf-1-area-0.0.0.2]stub no-summary   ---仅在ABR设备上配置,是末梢区域配置完再加的配置

第二类特殊区域

在这里插入图片描述

非完全末梢区域----NSSA

该区域拒绝学习四类和五类LSA信息。但是,该区域还需要将后面的域外路由信息导入,因此,使用七类LSA的形式将域外路由信息传入OSPF网络7类LSA在离开NSSA区域后,需要转换为5类LSA在OSPF网络中传播

该区域也会自主产生一条指向骨干区域的缺省LSA信息,该LSA信息为7类

[r5-ospf-1-area-0.0.0.2]nssa 
[r1-ospf-1-area-0.0.0.2]nssa 

​ NSSA该类型即为七类LSA类型,七类LSA的报文格式与五类LSA一致。

路由表中七类缺省Proto为O_NSSA(表示域外七类产生),Pre为150.

在这里插入图片描述

​ Options字段在五类LSA中,显示的是E位,代表允许该五类LSA在网络中传播。

在七类LSA中,N位代表允许处理七类LSA。P代表支持7转5操作(P不属于Options字段的8个标记位,是N位附带出来的)。

​ FA地址是用来应对选路不佳的情况,如果存在选路不佳的情况,则通告者会将最佳下一跳放入FA字段,接收者看到转发地址中存在数据,则将不按照算法来计算下一跳,而直接使用FA作为下一跳。

  • 在五类LSA中,FA字段一般为0.0.0.0。
  • 而在七类LSA中,在不存在选路不佳的情况下,一般使用通告者ASBR设备的环回地址作为转发地址
    • 如果存在多个环回地址,则使用最先宣告的地址作为FA地址(华为最先,思科最后)。
    • 如果没有环回地址,则使用物理接口地址作为FA地址。
完全的非完全末梢区域—Totally NSSA

​ 该区域在NSSA区域的基础上,进一步拒绝了3类LSA的产生,并且自动产生一条3类缺省LSA

[r1-ospf-1-area-0.0.0.2]nssa no-summary   ---仅在ABR上配置

域内>域间>域外

在Totally NSSA区域中,会看到两条描述缺省路由的LSA,一条七类,一条三类。这两条LSA共存

NSSA环路

在这里插入图片描述

在华三中,RTC作为ASBR有一条缺省路由指向外部ISP,所以会给内部大的网络下发一条缺省(OSPF缺省路由的下发就类似于重发布逻辑),又因为RTB处于完全的NSSA区域,所以RTC向RTB传输一条七类LSA的缺省路由信息,RTB又要传给RTA,因为处于完全的NSSA区域,所以RTA作为ABR就还有一条三类缺省LSA指向区域0,然后将3类缺省往右下发,RTB就有两条缺省,一条是三类缺省指向RTA,一条是七类缺省指向RTC,他会使用三类缺省,所以他会认为去往ISP是去RTA,而RTA身上也有两条缺省,一条七类一条三类,因为三类缺省是由RTA本身明细产生的,所以RTA本身不会使用缺省,使用明细(在ABR视角里就没有三类缺省),所以RTA会使用七类缺省,所以会缺省指向RTB,环路出现。

在华为中,在NSSA区域中,对于第一台发布七类缺省路由的设备(RTC)而言,会认为自己身上已经存在一条去往外部区域的路由信息,并且本地作为通告者,那么当它收到其他设备发送来的七类缺省LSA时,对该LSA仅接收不使用。-----华为通告该逻辑,实现防环机制。---->保留了NSSA区域由ABR产生的七类LSA缺省路由

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

临时邮箱API发送邮件的安全性?如何保障?

临时邮箱API发送邮件的步骤有哪些&#xff1f;设置邮箱API方法&#xff1f; 电子邮件作为一种重要的通信方式&#xff0c;而临时邮箱API作为一种新兴的邮件发送技术&#xff0c;其安全性更是成为大家关注的焦点。那么&#xff0c;临时邮箱API发送邮件的安全性究竟如何呢&#…

leetcode-括号生成-101

题目要求 思路 1.左括号的数量等于右括号的数量等于n作为判出条件&#xff0c;将结果存到res中 2.递归有两种&#xff0c;一种是增加左括号&#xff0c;一种是增加右括号&#xff0c;只要左括号的数量不超过n&#xff0c;就走增加左括号的递归&#xff0c;右括号的数量只要小于…

Qt :信号与槽

信号与槽 信号介绍connect 函数使用connect 函数传参问题 定义槽&#xff08;solt&#xff09;函数方法一方法二 定义信号关键字 signals、emit 定义带参数的信号和槽参数个数不一致问题断开信号和槽的连接 disconnect lambda 表达式 信号介绍 Qt 中&#xff0c;信号会涉及三个…

装饰器模式-原理分析以及动手练习

目录 应用场景涉及的角色和类&#xff08;个人理解&#xff09;涉及的角色组件&#xff08;标准&#xff09;基本实现 Demo&#xff08;可以直接 copy 跑一下看效果&#xff09;自己动手实战需求参考答案 相关话题参考文章 应用场景 需要给一个现有类添加附加功能&#xff0c;…

北京车展现场体验商汤DriveAGI自动驾驶大模型展现认知驱动新境界

在2024年北京国际汽车展的舞台上&#xff0c;众多国产车型纷纷亮相&#xff0c;各自展示着独特的魅力。其中&#xff0c;小米SUV7以其精美的外观设计和宽敞的车内空间&#xff0c;吸引了无数目光&#xff0c;成为本届车展上当之无愧的明星。然而&#xff0c;车辆的魅力并不仅限…

数据库系统理论——绪论

文章目录 前言一、数据库四个基本概念1、数据2、数据库3、数据库管理系统&#xff08;DBMS&#xff09;4、数据库系统&#xff08;DBS&#xff09; 二、数据模型1、概念数据模型2、逻辑数据模型3、物理数据模型 三、三级模式1、图片解析2、二级映像 前言 最近很长时间没更新学…

皮秒激光切割机可以切割材料及主要应用行业

皮秒激光切割机可以切割多种材料&#xff0c;主要应用行业包括但不限于&#xff1a; 1. PCB板行业&#xff1a;主要用于PCB激光分板&#xff0c;如FR4、补强钢片、FPC、软硬结合板、玻纤板等材料的紫外激光切割。 2. 薄膜材料切割&#xff1a;皮秒紫外激光切割机可以直接切割薄…

无法添加以供审核,提交以供审核时遇到意外错误。如果问题仍然存在,请联系我们

遇到问题&#xff1a; 无法添加以供审核 要开始审核流程&#xff0c;必须提供以下项目&#xff1a; 提交以供审核时遇到意外错误。如果问题仍然存在&#xff0c;请联系我们。 解决办法&#xff1a; 修改备案号为小写&#xff0c; 例如&#xff1a;京ICP备2023013223号-2A 改…

选择了软件测试,你后悔吗?

记得在求职的时候&#xff0c;面试官经常问我&#xff1a;“为什么要选择软件测试工作?”而我也会经常说一堆自己有的没的优势去应付。 工作这么久了&#xff0c;也不再浮躁&#xff0c;静下心来回忆当初选择软件测试工作的历程&#xff0c;也是对自己职业生涯的一次回顾。 下…

初始Linux(基础命令)

前言&#xff1a; 我们不能总沉浸在编程语言中&#xff0c;虽然代码能力提升了&#xff0c;但是也只是开胃小菜。我们要朝着更高的方向发展。 最近小编一直在刷力扣&#xff0c;以至于博客更新的比较少。今天就带各位开始学习全新的知识——Linux.至于为啥要学&#xff1f; Lin…

[正则表达式]正则表达式语法与运用(Regular Expression, Regex)

0. 在线工具 RegExr: Learn, Build, & Test RegEx 1. 场景列举 vim Linux命令行 sublime 编辑器 java、python等语言中 ... ... 不同场景、不同版本语法可能不一样 2. 以下示例数据与基本语法 &2024 &As20242024# 2024sA#abdcefgha_bdcefghABASDSADAASDASD…

MySQL之聚合函数与应用

1. 前言 上文我们讲到了单行函数.实际上SQL还有一类叫做聚合函数, 它是对一组数组进行汇总的函数, 输入的是一组数据的集合, 输出的是单个值. 2. 聚合函数 用于处理一组数据, 并对一组数据返回一个值. 有如下几种聚合函数 : AVG(), SUM(), MAX(), MIN(), COUNT(). 3. AVG(…

[蓝桥杯]真题讲解:班级活动(贪心)

[蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 一、视频讲解二、正解代码1、C2、python33、Java 一、视频讲解 [蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 二、正解代码 1、C #include<bits/stdc.h> using namespace st…

28.leetcode---前K个高频单词(Java版)

题目链接: https://leetcode.cn/problems/top-k-frequent-words/description/ 题解: 代码: 测试:

Offline:IQL

ICLR 2022 Poster Intro 部分离线强化学习的对价值函数采用的是最小化均方bellman误差。而其中误差源自单步的TD误差。TD误差中对target Q的计算需要选取一个max的动作&#xff0c;这就容易导致采取了OOD的数据。因此&#xff0c;IQL取消max,&#xff0c;通过一个期望回归算子…

QT creator qt6.0 使用msvc2019 64bit编译报错

qt creator qt6.0报错&#xff1a; D:\Qt6\6.3.0\msvc2019_64\include\QtCore\qglobal.h:123: error: C1189: #error: "Qt requires a C17 compiler, and a suitable value for __cplusplus. On MSVC, you must pass the /Zc:__cplusplus option to the compiler."…

PXE批量网络装机和Kickstart无人值守安装

一、PXE定义 PXE&#xff08;preboot execute environment&#xff09;:用于通过网络来引导系统的标准&#xff0c;工作在Client/Server模式&#xff08;也称为CS模式&#xff09;&#xff0c;允许客户机通过网络从远程服务器上下载引导镜像&#xff0c;并加载安装文件或整个操…

劝退计算机?CS再过几年会没落!?

事实上&#xff0c;未来计算机不仅不会没落&#xff0c;国家还会大力发展 只不过大家认为的计算机就是什么Java web&#xff0c;真正的计算机行业是老美那样的&#xff0c;涉及到方方面面&#xff0c;比如&#xff1a; web&#xff0c;图形学&#xff0c;Linux系统开发&#…

酷得智能电子方案 早教学习机

早教学习机是用户友好的&#xff0c;易于操作&#xff0c;同时要确保内容的科学性和适宜性&#xff0c;以促进儿童的健康成长和智力发展。 通常包括以下几个方面&#xff1a; 1.年龄分级内容&#xff1a;软件会根据儿童的不同年龄段提供相应的教育内容&#xff0c;从新生儿到…

renren-fast开源快速开发代码生成器

简介 renrenfast框架介绍 renren-fast是一个轻量级的Spring Boot快速开发平台&#xff0c;能快速开发项目并交付.完善的XSS防范及脚本过滤&#xff0c;彻底杜绝XSS攻击实现前后端分离&#xff0c;通过token进行数据交互 使用流程 项目地址 https://gitee.com/renrenio/ren…