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缺省路由

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言 main( ) 函数的指针数组形参是怎么回事?

一、问题 在使⽤⼀些开发⼯具⽣成C语⾔⽂件时&#xff0c;主函数 mian( ) 中会有参数&#xff0c;这个参数到底是怎么回事⼉呢&#xff1f; 二、解答 mian( ) 称为主函数&#xff0c;是所有程序运⾏的⼊口。 mian( ) 函数是由系统调⽤的&#xff0c;当处于操作命令状态下&…

js之遍历方法

先创建一个数组&#xff0c;然后使用for.in进行遍历&#xff0c;如下图所示sub代表下标并且遍历几次&#xff0c;arr代表数组 <script>let arr [1, 2, 3, 4, 5, 6];for (let sub in arr) {console.log(arr);}</script> 第二种方法则是for循环遍历&#xff0c;根据…

嵌入式学习——C语言基础——day15

1. 段错误调试 1.1 打印法 在可能出现错误的位置加入打印,前一句能够打印出来,后一句打印不出来,问题就可以定位到两次打印中间的代码 1.2 gbd调试法 1. 编译代码时加入-g选项 gcc filename.c -g 2. 使用gdb调试生成的代码 gdb a.out 3. gdb调试命令 l 查看…

蓝牙模块HC-08+WIFI模块ESP-01S

蓝牙模块 又叫蓝牙串口模块。 串口透传技术&#xff1a;透传即透明传送&#xff0c;是指在数据的传输过程中&#xff0c;通过无线的方式使这组数据不发生任何形式的改变&#xff0c;仿佛传输过程是透明的一样&#xff0c;同时保证传输的质量&#xff0c;原封不动地道了最终接收…

Qt下使用7Z源码进行压缩和解压缩

7Z压缩是一款常用的压缩算法和工具&#xff0c;本文主要介绍一款在qt环境下进行编译的压缩方法。 本人测试是可以正常跑通的&#xff0c;具体代码部分请下载&#xff1a;下载链接&#xff0c;提取码&#xff1a;ev9t 7z源码网址&#xff1a;7-Zip 7z简介&#xff1a; 7z 是…

.[[MyFile@waifu.club]].svh勒索病毒数据库恢复方案

.[[MyFilewaifu.club]].svh勒索病毒有什么特点&#xff1f; .[[MyFilewaifu.club]].svh是一种最近多发的勒索病毒&#xff0c;它通过加密受害者的文件并要求支付赎金来解锁&#xff0c;从而达到勒索钱财的目的。恢复重要数据请添加技术服务号(safe130)。以下是关于这种病毒的详…

【计算机科学速成课】笔记一

文章目录 写在前面1.计算机的早期历史2.电子计算机3.布尔运算和逻辑门4.二进制5.算术逻辑单元-ALU6.寄存器和内存 写在前面 所有的一切源于这样一个网站——CS自学指南。 这是新手小白入门计算机科学必要了解的知识——【计算机科学速成课】[40集全/精校] - Crash Course Comp…

Redis(Redis配置和订阅发布)

文章目录 1.Redis配置1.网络配置1.配置文件位置 /etc/redis.conf2.bind&#xff08;注销支持远程访问&#xff09;1.默认情况bind 127.0.0.1 只能接受本机的访问2.首先编辑配置文件3.进入命令模式输入/bind定位&#xff0c;输入n查找下一个&#xff0c;shift n查找上一个&…

恒创科技「5月活动」中国香港/美国服务器配置及价格汇总

值此 5 月&#xff0c;各大云服务商的促销活动也是接连不断。近日&#xff0c;恒创科技上线了 5 月出海乐购“惠”活动&#xff0c;从 4 月 28 日开始&#xff0c;持续整个 5 月份。活动分精选云产品、主流物理服务器、DDoS 防护、免费试用等四大专区&#xff0c;包含几十款企业…

一键生成AI数字人短视频工具推荐!

数字人是什么&#xff1f;是利用人工智能技术实现与真人直播形象的1:1克隆&#xff0c;即克隆出一个数字化的你自己&#xff0c;包括你的形象、表情、动作和声音都会被克隆下来&#xff0c;让你能够拥有接近真人的表现力。 怎样使用数字人一天生成上百条短视频&#xff0c;无需…

js浏览器请求,post请求中的参数形式和form-data提交数据时数据格式问题(2024-05-06)

浏览器几种常见的post请求方式 Content-Type 属性规定在发送到服务器之前应该如何对表单数据进行编码。 默认表单数据会编码为 "application/x-www-form-urlencoded" post请求的参数一般放在Body里。 Content-Type&#xff08;内容类型&#xff09;&#xff0c;一般…

Elasticsearch:理解人工智能相似性搜索

理解相似性搜索&#xff08;也称为语义搜索&#xff09;的指南&#xff0c;这是人工智能最新阶段的关键发现之一。 最新阶段人工智能的关键发现之一是根据相似性搜索和查找文档的能力。相似性搜索是一种比较信息的方法&#xff0c;其基于含义而非关键字。 相似性搜索也被称为语…

5月5日智渍洁对江苏某公司冷却塔清洗-智渍洁

简报&#xff1a;5月5日智渍洁对江苏某公司冷却塔清洗 5月5日智渍洁对江苏某公司冷却塔清洗 - 重庆智渍洁环保科技有限公司简报&#xff1a;5月5日智渍洁对江苏某公司冷却塔清洗https://www.zhizijie.com/hl/zixun/gongsi/236.html

linux - 主次设备号自动申请

alloc_chrdev_region 原型如下&#xff0c;该函数向内核申请一个空闲的主设备号。 alloc_chrdev_region(&g_aputriger_dev, 0, APUTRIGER_MAX_NUM, "aputriger0"); 第四个参数是我们使用cat /proc/devices 看到的名称 /*** alloc_chrdev_region() - register a…

JAVA面向对象高级部分

内部类 内部类的四种形式 内部类概述、成员内部类 代码示例 创建对象的格式 通过对象名访问内部类方法 若内外部类的成员变量名冲突&#xff0c;如何在内部类分别访问外部成员变量。 总结 静态内部类 代码示例 访问静态内部类的方法 不能在静态内部类中访问实例成员变量 …

PE文件(四)FileBuffer-ImageBuffer作业

C语言实现如下功能 2.编写一个函数&#xff0c;将RVA的值转换成FOA 将文件加载到内存时&#xff0c;已知一个数据在内存中的地址&#xff0c;将此地址转化成文件在硬盘上时的相对于文件起始地址的文件偏移地址。即将虚拟内存偏移地址转换成文件偏移地址。 说明&#xff1a;这里…

并发容器(Map、List、Set)实战及其原理

Java的集合容器框架中&#xff0c;主要有四大类别&#xff1a;List、Set、Queue、Map&#xff0c;大家熟知的这些集合类ArrayList、LinkedList、HashMap这些容器都是非线程安全的。所以&#xff0c;Java先提供了同步容器供用户使用。同步容器可以简单地理解为通过synchronized来…

Selenium自动化测试面试题全家桶

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

Mybatis进阶4-权限管理

权限管理 1.权限 //相当于 职责 2.用户 //相当于 职员&#xff08;职员就职于一个职位&#xff09; 3.角色 //相当于 职位&#xff08;有多个职责&#xff09; 权限管理基础表&#xff1a;权限表&#xff0c;用户表&#xff0c;角色表 问题1&#xff1a;…

Unity 合并子物体获得简化Mesh

合并子物体获得简化Mesh &#x1f959;环境&#x1f96a;Demo &#x1f959;环境 PackageManager安装Editor Coroutines 导入插件&#x1f448; &#x1f96a;Demo 生成参数微调&#xff1a;Assets/EasyColliderEditor/Scripts/VHACDSettings/VHACDSettings.asset