多区域OSPF路由协议

前言

        之前也有过关于OSPF路由协议的博客,但都不是很满意,不是很完整。现在也是听老师讲解完OSPF路由协议,感触良多,所以这里重新整理一遍。这次应该是会满意的

一些相关概念

链路状态

        链路指路由器上的一个接口,链路状态用来描述路由器接口及其与邻居路由器的关系等信息,这些信息包括接口的互联网协议IP地址和子网掩码、网络类型及链路的开销等。而所有的链路状态信息则构成了LSDB

区域

        以接口为单位划分区域,同一个区域内的路由器具有相同的LSDB

AS

        采用同一种路由协议交换路由信息的路由器及其网络构成的系统

链路状态公告LSA

        用来描述路由器和链路的状态,OSPF协议中对于链路状态信息的描述都是通过LSA发布出去。AS内每台运行OSPF协议的路由器,根据路由器的类型不同,会产生一种或多种LSA,路由器本身产生和收到的LSA的集合就形成了LSDB

SPF算法

        OSPF协议的基础,SPF算法将每一台路由器作为根,独立地计算其到每一个目的网络地最佳路径

路由器ID

        运行OSPF的路由器的唯一标识,长度为32bit,格式和IP地址相同。路由器ID也可以手动设置,也可以自动生成。其中,手动配置的路由器ID优先级最高。没有手动配置路由器ID,路由器会从当前接口的IP地址中自动选择一个作为路由器ID,选择顺序是优先从LoopBack接口-->接口最大的IP地址。注意路由器ID一旦确定,为了维持LSDB的稳定,除非清除OSPF协议和重新启动路由器,否则路由器ID不会改变

泛洪

        运行OSPF协议的路由器会把自己产生或者收到的LSA向其它所有邻居或路由器通告,这个过程就是泛洪

OSPF路由协议的特点

(1)收敛速度快,适用于规模较大的网络,尤其是企业网络

(2)具有五类别特征,支持不连续子网、可变长子网掩码VLSM、无类别域间路由CIDR选择及手动路由聚合

(3)采用组播形式(224.0.0.5或224.0.0.6)或单播形式发送报文,支持等价负载均衡

(4)支持区域划分、构成结构化网络提供路由分级化管理

(5)支持接口验证方式和区域验证方式

(6)采用触发更新,可以使用路由标记(Tag)对外部路由进行跟踪

(7)默认情况下,OSPF的路由优先级为10,OSPF AS外部区域的路由优先级为150

(8)为了维持邻居表和LSDB表,会每隔30min进行一次链路状态更新

OSPF协议的报文类型

         OSPF是IP报文直接封装协议报文,协议号为89。如果OSPF协议组播地址被封装到以太网帧内,则以太网的MAC地址(01-00-5E-00-00-05或01-00-5E-00-00-06)也是组播地址。

通用头部字段(OSPF Packet Headers)

  • Version:描述OSPF协议版本,通常被设置为2(支持IPv4)或3(支持IPv6)。
  • Type:描述OSPF报文类型,值1:Hello、值2:DBD、值3:LSR、值4:LSU、值5:LSAck。
  • Packet Length:OSPF报文总长度,包括报文头部,单位是字节。
  • Router ID:生成此报文的路由器的唯一标识符。
  • Area ID:此报文需要被通告到的OSPF区域的标识符。
  • Checksum:对整个数据包(包括包头)的标准IP校验和。
  • Auth Type/Authentication Type:验证此报文所应当使用的验证方法,如空(0)、明文(1)或MD5(2)等。
  • Authentication Data:验证此报文时所需要的密码等信息。

OSPF分为5种报文Hello报文DBD报文LSR报文LSU报文LSAck报文

Hello报文:

        主要用于发现和维持OSPF邻居关系。周期性以组播的形式发送Hello报文,以维护OSPF的邻居关系。使用的组播地址为224.0.0.5(所有OSPF路由器)224.0.0.6(所有OSPF DR路由器)。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居信息。

Hello报文特有字段

  • Network Mask:发送Hello报文的接口的网络掩码
  • Hello Interval:发送Hello报文的时间间隔,单位为秒。默认情况下,对于广播和组播类型接口,该值为10秒;对于非广播、多点接入和点对点类型接口,该值为30秒
  • Options:标识发送此报文的OSPF路由器所支持的可选功能。E:是否支持外部路由;MC:是否支持转发组播数据包;N/P:是否为NSSA区域
  • Router Priority:DR的优先级,默认值为1,取值范围为0-255。若为0.则路由器不能参与DR或BDR的选举
  • Designated Router (DR):DR的IP地址。如果未选举DR,则该字段为0.0.0.0
  • Backup Designated Router (BDR):BDR的IP地址。如果未选举BDR,则该字段为0.0.0.0

DD报文:

        描述本地LSDB摘要信息,用于两台设备进行数据库同步。在邻接关系初始化时,路由器会发送DD报文来告知对方自己的LSDB摘要信息。报文内容包括LSDB中每一条LSA(链路状态通告)的头部信息,以便对方判断哪些LSA是本地所缺少的或已经失效的。

接口MTU:在报文不分段的情况下,路由器接口能发送的最大IP报文的大小
I:初始位,发送的第一一个 DD包的1位置1,后续DD包的1位置0
M:后继位,最后一个DD包的M位置0;其他DD包的M位置1,表示后面还有其他DD报文
M/S:主从位,用于协商主/从路由器,置1表示Master,置0表示Slave,路由器ID大的一方会成为Master
DD序列号:在数据库同步过程中,用来确保路由器收到完整的DD报文。由Master规定起始序列号,每发送一个 DD报文,序列号就加1, Slave使用Master的序列号进行确认。因此,主从路由器利用序列号来保证DD报文传输的可靠性和完整性

LSA头部:LSA头部包含的信息可以唯一地标识一条LSA,内容包括以下几点

  • (1)链路状态老化时间:LSA产生后所经过的时间,单位为S。LSA在本路由器的LSDB中会随时间老化(每秒加1)。LSA的最大老化时间为3600s。如果某个LsA的老化时间超过了3600,则该LSA会从LSDB中被删除。另外,如果LSA始发路由器产生MaxAge的LSA,并向区域中泛洪,那么收到该LSA的路由器会用该LSA来更新自己的LSDB中相应的LSA
  • (2)链路状态类型: LSA的类型,如该字段值为1表示路由器LSA,该字段值为2表示网络LSA
  • (3)链路状态ID:标识LSA,LSA的类型不同,该字段的含义也不同
  • (4)通告路由器:始发LSA的路由器ID
  • (5)序列号:有符号的32bit整数,可以帮助识别最新的LSA。采用线性递增的序列号,序列号范围为0x80000001~ -0x7FFFFFF,OSPF每隔30min会更新一次LSDB。每当LSA被更新或者LSDB被更新,序列号都加1。那么OSPF如何判断LSA的新旧呢?首先,比较序列号,序列号越大表示LSA越新。其次,如果序列号相同,则校验和的值越大表示LSA越新。最后,如果序列号和校验和都相同,则比较老化时间,如果老化时间为MaxAge(3600s),则该LSA被认为是最新的;若老化时间差大于15min,则老化时间小的LSA被认为是最新的;若老化时间差小于15min,则认为这些LSA一样新,此时只保留先收到的LSA
  • (6)校验和:除了老化时间之外的LSA全部信息的校验和
  • (7)长度:LSA头部和LSA数据的总长度,单位为字节

LSR报文:

        LSR报文用于向对方请求所需要的LSA完整拷贝。当路由器发现本地LSDB中缺少某些LSA时,会发送LSR报文来请求这些LSA。LSR报文中包含所需LSA的摘要信息,以便对方能够识别并返回相应的LSA。

LSU报文:

        LSU报文用于向对方发送其所需要的LSA或者泛洪自己更新的LSA。当路由器收到LSR报文或自己的LSDB发生更新时,会发送LSU报文来通知邻居路由器。LSU报文中包含多条LSA的完整内容,以便邻居路由器能够更新自己的LSDB。

LSack报文:

        LSAck报文用于对收到的LSA进行确认。当邻居路由器收到LSU报文后,会发送LSAck报文作为确认。这样,源路由器可以确认链路状态已被通知到邻居,从而实现Flooding的可靠性传输。

OSPF协议的网络类型

        为了能够适应二层网络环境,根据路由器所连接物理网络的不同,OSPF协议通常将网络划分
为4种类型:广播多路访问(BMA)、非广播多路访问(NBMA)、点到点(P2P )、点到多点(P2MP)。在每种网络类型中,OSPF协议的运行方式都不同,包括是否需要选举DR和Hello报文的发送周期为多少等

  • BMA:当二层链路是以太网时,默认情况下,OSPF协议认为网络类型是BMA。在该类型的网中,通常以单播形式发送DD报文和LSR报文,以组播形式发送Hello、LSU和LSAck报文
  • NBMA:当二层链路网络是帧中继网络时,默认情况下,OSPF协议认为网络类型是NBMA。在该类型的网络中,以单播形式发送OSPF协议的所有报文
  • P2P:当二层链路协议是点到点协议( Point- to-Point Protocol, PPP )和高级数据链路控制(HDLC)协议时,默认情况下,OSPF协议认为网络类型是P2P。在该类型的网络中,以组播形式(组播地址为224.0.0.5 )发送OSPF协议的所有报文
  • P2MP:P2MP必须由其他的网络类型强制更改得到。在该类型的网络中,以组播形式(组播地址为224.0.0.5 )发送Hello报文,以单播形式发送OSPF协议的DD报文、LSR报文、LSU报文和LSAck报文
OSPF协议的网络类型
网络类型选举DRHello报文发送周期/s失效时间/s邻居
BMA1040自动发现
NBMA30120管理员配置
P2P1040自动发现
P2MP30120自动发现

OSPF的3个步骤,生成3个表

步骤一、发现并建立邻居关系

        路由器要先发现邻接的路由器,才能建立邻居关系。通过周期性发送Hello包并接收来自其他路由器的Hello包,进行建立并维护邻居关系。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居信息。

查看邻居表信息

[huawei]display ospf peer

步骤二、描述本地LSDB信息,并形成邻接关系

        一旦建立了邻居关系,路由器会开始交换链路状态信息(LSI),将自己所知道的网络拓扑信息(如连接的网络、链路的状态、链路的成本等)发送给邻居。这个过程通过发送DBD报文、LSR报文和LSU报文来实现,最终所有路由器都会拥有一个同步的链路状态数据库LSDB

请求缺少的LSDB信息

查看链路状态数据库LSDB

[huawei]display opsf lsdb

步骤三、计算路由,并形成OSPF路由表

        每个路由器都会根据LSDB中的信息,使用Dijkstra算法计算最短路径树(SPT),以找到到达网络中每个目的地的最短路径。计算出的最短路径信息会保留到OPSF路由表上。

[huawei]display ospf routing

OSPF DR和BDR

DR

        DR是在OSPF网络中被选举出来的一个路由器,它负责收集和维护本地区域内的链路状态信息,并将这些信息传播给其他路由器。

        DR充当了整个多点链路网络中的“代表”,负责收集来自其他路由器的链路状态更新(LSU)消息,并将其汇总为一条链路状态数据库(Link State Database)。然后,DR将这个数据库发送给其他路由器,以减少链路状态更新的频率。

选举过程

在选举过程中,每个路由器都会发送Hello消息,其中包含自己的优先级值。优先级越高,被选举为DR的可能性就越大

如果没有路由器明确声明其优先级,则路由器会基于其Router ID(通常是一个IP地址)来选择DR,Router ID最小的路由器将成为DR

主要作用

减少链路状态更新的频率,帮助优化网络性能。

维护链路状态数据库并将其分发给其他路由器,确保所有路由器都拥有最新的网络拓扑信息。

根据链路状态数据库及时更新路由表,确保数据正确地转发到目标地址。

BDR

        BDR是DR的备份,当DR发生故障或失效时,BDR会立即接替DR的角色,并继续执行相同的任务,确保在DR失效时能够无缝接替其工作

不同网络类型中DR和BDR的选举操作

选DR是需要时间的,大概是40秒延迟

        还有一个要注意的就是(现实也会经常遇到):在以太网中有两台设备进行连接,他们会选举出DR和BDR,但是只有两台设备就跟PPP点对点一样,这时候我们就不需要选举出DR和BDR了(不浪费那40秒的延迟)

[Huawei-GigabitEthernet0/0/1]ospf network-type p2p

在接口上增加上面的那条命令之后,就不会选取DR和BDR了(注意:两边设备都需要配置这条命令)

OSPF区域及路由器

区域

        一个区域所设置的特性控制着其所能接收到的链路状态信息的类型。区分不同的OSPF区域类型的关键就是它们对区域外部路由的处理方式。OSPF区域包括标准区域和骨干区域

  • 标准区域:最通用的区域,传输区域内路由、区域间路由和外部路由。通常与骨干区域连接
  • 骨干区域:连接所有其它OSPF区域的中央区域,通常用Area 0表示。骨干区域负责区域之间的路由传递,非骨干区域之间的路由信息必须通过骨干区域来转发。骨干区域自身必须保持连通,所有非骨干区域必须与骨干区域保持联系

        在OSPF协议中,路由器根据其功能和在网络中的位置被划分为多种类型,如:IR、BR、ABR、ASBR。

内部路由器(Internal Router, IR)

定义:IR是仅连接到单个OSPF区域(Area)的路由器

功能:IR主要负责在同一区域内转发数据包,并通过链路状态通告(LSA)与其他内部路由器交换拓扑信息,以构建和维护整个区域的拓扑数据库。它们只处理来自本区域内的路由信息,不与其他区域的路由器直接通信

区域边界路由器(Area Border Router, ABR)

定义:ABR是连接两个或多个不同OSPF区域的路由器

功能:ABR在OSPF网络中扮演着桥梁的角色,负责将数据包从一个区域传输到另一个区域,并在区域之间传播路由信息。它们通过LSA将来自一个区域的路由信息汇总后,再传递给其他区域,确保不同区域之间的路由可达性

自治系统边界路由器(Autonomous System Boundary Router, ASBR)

定义:ASBR是连接OSPF域与其他自治系统(AS)的路由器

功能:ASBR负责将来自其他路由协议(如BGP)的路由信息导入OSPF域中,同时也将OSPF域内的路由信息导出到其他路由协议中。它在不同自治系统之间传递路由信息,实现跨自治系统的路由通信

虚拟链路路由器(Virtual Link Router)

定义:虚拟链路路由器是一种特殊的路由器类型,用于在特定情况下连接分布在不同OSPF区域中的两个OSPF区域

功能:虚拟链路路由器允许在OSPF区域之间建立逻辑连接,绕过非OSPF区域的物理连接限制,从而确保数据包能够正确路由到目的地。这在复杂的网络拓扑结构中尤为重要,特别是在物理连接不可行或成本过高时

OSPF协议的LSA类型

LSA概述

  • LSA是OSPF进行路由计算的关键依据
  • OSPF的LSU报文可以携带多种不同类型的LSA
  • 各种类型的LSA拥有相同的报文头部

 重要字段解析

  • LS Age(链路状态老化时间):表示LSA已经生存的时间,单位为秒。LSA被始发时,该字段为0,随着LSA在网络中被泛洪,该时间逐渐累加,当到达MaxAge (缺省值为3600s)时,LSA不再用于路由计算
  • Options(可选项):每一个bit都对应了OSPF所支持的某种特性
  • LS Type(链路状态类型):指示本LSA的类型
  • Link Start ID(链路状态ID):不同的LSA,该字段定义不同
  • Advertising Router(通告路由器):产生该LSA的路由器的Router ID
  • LS Sequence Number(链路状态序列号):当LSA每次有新的实例产生时,序列号就会增加
  • LS Checksum(校验和):用于保证数据的完整性和准确性
  • Length:是一个包含LSA头部在内的LSA的总长度值

注:链路状态类型、链路状态ID、通告路由器三元组唯一标识一个LSA。老化时间、序列号、校验和用于判断LSA的新旧

链路状态类型 

 其中类型2、网络LSA是由DR生成,描述网络上所有路由器的连接状态

        一台路由器中所有的LSA都被存放在其LSDB中,正确的LSA可以描述一个OSPF区域的网络拓扑结构。OSPF中常见的LSA有6种

Router LSA(类型1)

        所有OSPF路由器都会产生这种LSA,用于描述路由器上连接到某一个区域的链路或某一接口的状态信息。该LSA只会在区域内扩散,不会扩散至其他区域。链路ID为此路由器ID

  • V(Virtual Link,虚链路):如果产生此LSA的路由器是虚连接的端点,则置为1
  • E(External,外部):如果产生此LSA的路由器是ASBR,则置为1
  • B(Border,边界):如果产生此LSA的路由器是ABR,则置为1
  • 链路数量(Number of Links):LSA 中所描述的链路信息的数量,包括路由器上处于某区域中的所有链路和接口
  • 链路ID(Link ID):链路标识,具体的数值根据链路类型而定
  • 链路数据(Link Data):具体的数值根据链路类型而定
  • 链路类型(Link Type):值为1表示通过P2P链路与另一台路由器相连;值为2表示连接到传送网络,如BMA或NBMA网络;值为3表示连接到Stub网络,如Loopback接口;值为4表示虚链路
  • 度量(Metric):链路的开销
  • ToS(Type of Service):服务类型
  • ToS度量(ToS Metric):服务类型的链路的开销

网络LSA(类型2)

        由DR产生,用来描述一个多路访问网络和与之相连的所有路由器,只会在包含DR所属的多路访问 网络的区域中扩散,并不会扩散至其他的OSPF区域中。链路状态ID为DR接口的IP地址

  • 网络掩码:BMA或NBMA网络的网络掩码
  • 连接路由器:连接在同一网段上所有与DR形成完全邻接关系的路由器的ID,包括DR自身的ID

网络汇总LSA(类型3)

        由ABR产生,他将一个区域内的网络通告给OSPF AS中的其他区域【除完全末节区域】。这些条目通过骨干区域被扩散到其它的ABR中。在区域间传递路由信息时遵循水平分割原则,即从一个区域发出的类型3 LSA不会传回到本区域。链路状态ID为目的网络的地址。

ASBR汇总LSA(类型4)

        由ABR产生,描述ASBR的路由,通告给除ASBR所在区域的其他相关区域。链路状态ID为ASBR的ID

AS外部LSA(类型5)

        由ASBR产生,含有关于AS外的路由信息,通告给所有的区域【除末节区域和次末节区域】。链路状态ID为外部网络的地址

  • E:外部度量值的类型。第一类外部路由设置为0,第二类外部路由设置为1。第一类外部路由的开销等于本设备到相应的ASBR的开销加上ASBR到该路由目的地址的开销。第二类外部路由的开销等于ASBR到该路由目的地址的开销。第一类外部路由的可信度高于第二类外部路由的可信度
  • 转发地址(Forwarding Address,FA):到所通告的目的地址的报文将被转发到的地址,仅出现在类型5 LSA或类型7 LSA中。类型5 LSA的外部路由能否进入路由表,取决于类型5 LSA FA地址的可达性,如果FA地址不可达,则类型5 LSA 的外部路由不能进入路由表。FA地址可以是全0,也可以是非0。如果FA地址是全0,则数据包要经过ASBR访问外部网络;如果FA地址是非0,则数据包要转发到该FA地址的网络设备,再由该网络设备转发到外部网络
  • 外部路由标记(External Route Tag):添加到外部路由上的标记。OSPF本身并不使用该字段,其可以用来对外部路由进行管理

次末节区域外部LSA(类型7)

        由次末节区域内的ASBR产生,且只能在次末节区域内传播。ABR可以将类型7的LSA转换为类型5的LSA,当次末节区域内有多个ABR时,系统会根据规则自动选择一个ABR作为转换器。默认情况下,次末节区域选择路由器ID最大的设备作为转换器。链路状态ID为外部网络的地址,格式与类型5 LSA相同

OSPF的特殊区域

末节区域

        末节区域的ABR不发布它们接受的AS外部路由,只发布区域内路由和区域间路由。为保证到AS外的路由可达,该区域的ABR将生成一条默认路由,以类型3 LSA发布给末节区域中的其他非ABR。

        注:在OSPF视图下执行【stub】命令,就可以将当前区域配置为末节区域

配置末节区域注意的细节

  • 骨干区域不能配置为末节区域
  • 如果要将一个区域配置为末节区域,则该区域中所有的路由器都要配置末节区域属性
  • 末节区域内不能存在ASBR,即AS外部路由不能在本区域内传播
  • 虚连接不能穿过末节区域

完全末节区域

        完全末节区域的ABR不允许发布AS外部路由和区域间路由,只发布区域内路由。同样的,该区域的ABR会生成一条默认路由,以类型3 LSA发布给末节区域中的其他非ABR

        注:在OSPF区域视下,只需要在ABR上执行【stub no-summary】命令,就可以将当前区域配置成完全末节区域。在末节区域视图下执行【stub】命令,则可以将当前末节区域配置成完全末节区域。

次末节区域(NSSA)

        次末节区域允许引入AS外部路由,由ASBR发布类型7 LSA给本区域,这些类型7 LSA在ABR上转换成类型5 LSA,并且泛洪到整个OSPF区域中,NSSA保留了保留了AS内的未节区域的特征。NSSA的ABR发布类型7默认路由传播到区域内,所有区域间路由都必须通过ABR才能发布

        注:在OSPF区域视图下执行【nssa】命令,可将当前区域配置为NSSA
 

OSPF路由计算、路由类型、路由聚合

        OSPF协议采用SPF算法,计算过程如下

  1. 每台OSPF路由器根据自己周围的网络拓扑结构生成LSA,并通过更新报文将LSA发送给网络中的其它OSPF路由器
  2. 每台OSPF路由器都会收集其他路由器通告的LSA,所有的LSA房子啊一起便组成了LSDB
  3. OSPF路由器将LSDB转换成一张带权的有向图,这张图就是整个网络拓扑结构。这时候所有路由器得到的有向图都是一样的
  4. 根据有向图,每台路由器使用SPF算法计算出一颗以自己为根的最短路径树

OSPF路由计算具体方法

  • 计算区域内路由:类型1 LSA和类型2 LSA可以精确地描述整个区域内部地网络拓扑,根据SPF算法,可以计算出每台路由器的最短路径根据类型1 LSA描述地路由器地网段情况,得到各个网段地具体路径
  • 计算区域外路由:对于一个区域的内部来说,相邻区域的路由对应的网段看起来是直接连接在ABR上的,而到ABR的最短路径已经在计算区域内路由中计算完毕,所以直接检查类型3 LSA,就可以很容易地得到这些网段的最短路径。另外,ASBR也可以看作连接在ABR上,所以ASBR的最短路径也可以在该阶段计算出来
  • 计算AS外路由:由于AS外部的路由可以看作直接连接在ASBR上,而到ASBR的最短路径在计算区域外路由中已经计算完毕,因此逐条检查类型5 LSA就可以得到到达各个外部网络的最短径

        OSPF协议将路由分为4类,按照优先级从高到低的顺序为区域内路由区域间路由第一类外部路由第二类外部路由。其中,AS区域内路由和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由;第一类外部路由的可信度较高,并且和OSPF自身路由的开销具有可比性,所以到第一类外部路由的开销等于本路由器到相应的ASBR的开销与ASBR到该路由目的地址的开销之和;第二类外部路由的可信度比较低,所以OSPF协议认为从ASBR到AS之外的开销远远大于从AS之内到达ASBR的开销。

        路由聚合是指ABR或ASBR将具有相同前缀的路由信息聚合起来,只发布一条路由到其他区域。AS被划分成不同的区域后,可以通过路由聚合来减少路由信息的通告,减小路由表的规模,提高路由器的运算速度,降低系统的消耗。需要注意的是,至少存在一条明细路由,路由器才会通告聚合路由,而且聚合路由范围内的明细路由发生变化,不影响通告的聚合路由。路由聚合只能在ABR和ASBR上配置,因此OSPF路由聚合包括ABR路由聚合和ASBR路由聚合两类

  • ABR路由聚合:ABR向其他区域发送路由信息时,以网段为单位生成类型3 LSA。如果该区域中存在一些连续的网段,则可以将这些连续的网段聚合成一个网段。 这样ABR只发送一条聚合后的LSA,所有属于聚合网段范围的LSA将不再被单独发送出去,可减小其他区域中LSDB的规模。执行【abr- summary】命令即可配置ABR路由聚合,可以通过配置参数【generate-null0-route】生成黑洞路由,以防止路由环路。
  • ASBR路由聚合:配置引入路由后,如果本地路由器是ASBR,则将对引入的地址范围内的类型5 LSA进行聚合。执行【asbr- summary】命令即可配置ASBR路由聚合,可以通过配置参数【generate-null0-route】生成黑洞路由,以防止路由环路。

OSPFv2和OSPFv3的区别

比较OSPFv2OSPFv3
网络IPv4网络IPv6网络
运行基于网络基于链路
源地址接口IPv4地址接口IPv6链路本地地址
目的地址

1、邻居接口单播IPv4地址

2、组播地址224.0.0.5或224.0.0.6

1、邻居IPv6链路本地地址

2、组播地址FF02::5或FF02::6

IP单播路由IPv4单播路由,路由器默认启动IPv6单播路由,执行【ipv6】命令启用
同一链路上运行多个实例不支持支持
验证简单口令或MD5IPv6提供安全机制
LSA有选项字段无选项字段,增加LSA(类型8)和区域内前缀LSA(类型9)

OSPF的常用命令

配置OSPF的基本功能

# 启动OSPF进程,配置Router ID
[Huawei]ospf process-id router-id router-id
[Huawei]ospf 1 router-id 1.1.1.1   # 举例# 设置开销的带宽参考值
[Huawei-ospf-1]bandwidth-reference value   # value=1--214783648
[Huawei-ospf-1]bandwidth-reference 1   # 举例# 禁止接口收发OSPF报文
[Huawei-ospf-1]silent-interface  all | interface-type interface-number
[Huawei-ospf-1]silent-interface  GigabitEthernet 0/0/0   # 举例# 创建并进入OSPF视图
[Huawei-ospf-1]area area-id   # area-id=0 ~ 4294967295
[Huawei-ospf-1]area 1  # 举例# 配置使能OSPF的接口范围
[Huawei-ospf-1-area-1.1.1.1]network ip-addreaa wildcard-mask
[Huawei-ospf-1-area-1.1.1.1]network 2.2.2.2 0.0.0.255  # 举例# 在接口上使能OSPF
[Huawei-GigabitEthernet0/0/0]ospf enable [process-id] area area-id
[Huawei-GigabitEthernet0/0/0]ospf enable 1 area 1.1.1.1  # 举例# 配置接口运行OSPF的开销
[Huawei-GigabitEthernet0/0/0]ospf cost cost   # cost=1~65535
[Huawei-GigabitEthernet0/0/0]ospf cost 1  # 举例# 设置OSPF接口的网络类型
[Huawei-GigabitEthernet0/0/0]ospf network-type {broadcast | noma | p2mp | p2p}
[Huawei-GigabitEthernet0/0/0]ospf network p2p  # 举例# 设置接口在选举DR时的优先级
[Huawei-GigabitEthernet0/0/0]ospf dr-priority proiority
[Huawei-GigabitEthernet0/0/0]ospf dr-priority 10   # 举例# 设置接口发送Hello报文的时间间隔
[Huawei-GigabitEthernet0/0/0]ospf timer hello interval    # 单位为秒
[Huawei-GigabitEthernet0/0/0]ospf timer hello 60   # 举例# 设置OSPF的邻居失效时间
[Huawei-GigabitEthernet0/0/0]ospf timer dead interval   # 单位为秒
[Huawei-GigabitEthernet0/0/0]ospf timer dead 10000   # 举例

配置OSPF的安全性

# OSPF的接口验证
# 简单验证方式
[Huawei-GigabitEthernet0/0/0]ospf authentication-mode simple plain
# MD5、HMAC-MD5或HMAC-SHA256验证方式
[Huawei-GigabitEthernet0/0/0]ospf authentication-mode {md5 | hmac-md5 | hmac-sha256} [key-id [cipher] cipher-text]
[Huawei-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456    # 举例# 配置OSPF区域验证
# 与接口验证命令大致相同,一个是在接口上配置,一个是在OSPF区域视图下配置
# 所以这个就不用加上前面[ospf],其它一样的命令

 

配置OSPF默认路由注入

[Huawei-ospf-1-area-0.0.0.1]default-route-advertise

配置OSPF的路由聚合

# 配置ABR的路由聚合
[Huawei-ospf-1-area-0.0.0.1]abr-summary ip-address mask   # 还有一些参数啥的就懒得写详细了
[Huawei-ospf-1-area-0.0.0.1]abr-summary 10.1.1.1 255.255.255.0  # 举例# 配置ASBR的路由聚合
[Huawei-ospf-1]asbr-summary ip-address mask    #同上,还有参数没写全
[Huawei-ospf-1]asbr-summary 10.1.1.1 255.255.255.0   # 举例

配置OSPF的特殊区域

# 配置末节区域
# 在ABR中配置命令
[Huawei-ospf-1-area-0.0.0.1]stub# 配置完全末节区域
[Huawei-ospf-1-area-0.0.0.1]stub no-summary # 配置NSSA区域
[Huawei-ospf-1-area-0.0.0.1]nssa [default-route-advertise | no-summary | no-import-route]

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

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

相关文章

C++ | Leetcode C++题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; class Solution { public:int findMinArrowShots(vector<vector<int>>& points) {if (points.empty()) {return 0;}sort(points.begin(), points.end(), [](const vector<int>& u, const vector<int>&…

【重学 MySQL】五十一、更新和删除数据

【重学 MySQL】五十一、更新和删除数据 更新数据删除数据注意事项 在MySQL中&#xff0c;更新和删除数据是数据库管理的基本操作。 更新数据 为了更新&#xff08;修改&#xff09;表中的数据&#xff0c;可使用UPDATE语句。UPDATE语句的基本语法如下&#xff1a; UPDATE ta…

秒懂Linux之线程

目录 线程概念 线程理解 地址空间&#xff08;页表&#xff0c;内存&#xff0c;虚拟地址&#xff09; 线程的控制 铺垫 线程创建 ​编辑 线程等待 线程异常 线程终止 代码 线程优点 线程缺点 线程特点 线程概念 线程是进程内部的一个执行分支&#xff0c;线程是C…

【转载翻译】消息队列 - ActiveMQ、RabbitMQ、Kafka、ZeroMQ

转载自本人博客&#xff1a;【转载翻译】消息队列 - ActiveMQ、RabbitMQ、Kafka、ZeroMQ 转载自&#xff1a;The System Design Cheat Sheet: Message Queues - ActiveMQ, RabbitMQ, Kafka, ZeroMQ 本文由 Aleksandr Gavrilenko 发布于2023年12月21日 1. 前言 消息队列是异步服…

TypeScript 算法手册 【归并排序】

文章目录 1. 归并排序简介1.1 归并排序定义1.2 归并排序特点 2. 归并排序步骤过程拆解2.1 分割数组2.2 递归排序2.3 合并有序数组 3. 归并排序的优化3.1 原地归并排序3.2 混合插入排序案例代码和动态图 4. 归并排序的优点5. 归并排序的缺点总结 【 已更新完 TypeScript 设计模式…

Java | Leetcode Java题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; class Solution {public int findMinArrowShots(int[][] points) {if (points.length 0) {return 0;}Arrays.sort(points, new Comparator<int[]>() {public int compare(int[] point1, int[] point2) {if (point1[1] > point2[1…

STM32-MPU6050+DAM库源码(江协笔记)

目录 1、MPU6050简介 2、MPU6050参数 3、MPU6050硬件电路 4、MPU6050结构 5、MPU6000和MPU6050的区别 6、MPU6050应用场景 7、MPU6050电气参数 8、MPU6050时钟源选择 9、MPU6050中断源 10、MPU6050的I2C读写操作 11、DMP库移植 1、MPU6050简介 10轴传感器&#xff1…

AS-REP Roasting 实验

1. 实验网络拓扑 kali: 192.168.72.128win2008: 192.168.135.129 192.168.72.139win7: 192.168.72.149win2012:(DC) 192.168.72.131 2. 攻击原理 如果设置了不需要Kerberos预认证&#xff1a; 那么就可以直接发AS_REQ请求TGT票据&#xff0c;由于不要求预身份认证&#xff0…

Golang | Leetcode Golang题解之第453题最小操作次数使数组元素相等

题目&#xff1a; 题解&#xff1a; func minMoves(nums []int) (ans int) {min : nums[0]for _, num : range nums[1:] {if num < min {min num}}for _, num : range nums {ans num - min}return }

awd基础学习

一、常用防御手段 1、改ssh密码 passwd [user] 2、改数据库密码 进入数据库 mysql -uroot -proot 改密码 update mysql.user set passwordpassword(新密码) where userroot; 查看用户信息密码 select host,user,password from mysql.user; 改配置文件 &#xff08;否则会宕机…

信息安全工程师(30)认证概述

前言 认证&#xff0c;作为一种信用保证形式&#xff0c;是通过一系列的程序和标准来确认某人或某物的身份、资格、性能或质量的过程。其重要性不言而喻&#xff0c;是国家规范经济、促进发展的重要手段&#xff0c;也是政府保障产品、生态和人民生命财产安全的关键措施&#…

绑定Rust变量会踩什么坑

讲动人的故事&#xff0c;写懂人的代码 3.2 变量绑定的声明和初始化分开 在3.1.1中提到&#xff0c;变量的声明和初始化可以分开。而这也为程序员挖了一个坑&#xff0c;如代码清单3-4所示。 本书代码下载链接为github.com/wubin28/book_LRBACP。本书所有的代码清单&#xff…

【电路基础 · 2】电阻电路的等效变换(自用)

总览 1.电路的等效变换 1.1 电阻电路 1.2 等效变换是什么 1.3 线性电路和非线性电路 1.4 时变电路和非时变电路 1.5 二端网络&#xff08;一端口网络&#xff09;、四端网络&#xff08;二端口网络&#xff09;、六端网络&#xff08;三端口网络&#xff09; 1.6 两端电路的等…

51c自动驾驶~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/11466109 #HTCL 超过所有视觉方案&#xff01;HTCL&#xff1a;分层时间上下文问鼎OCC 本文是对ECCV2024接受的文章 HTCL: 的介绍&#xff0c;HTCL在SemanticKITTI基准测试中超过了所有基于相机的方法&#xff0c;甚至在和…

中安未来 OCR—— 开启文字识别新时代

在数字化的浪潮中&#xff0c;高效准确的文字识别技术正发挥着越来越重要的作用。今天&#xff0c;我要向大家介绍一款令人惊艳的 OCR 解决方案 —— 中安未来 OCR。 一、初识中安未来 OCR 中安未来 OCR 以其强大的功能和卓越的性能&#xff0c;在众多文字识别工具中脱颖而出。…

森林火灾检测数据集 7400张 森林火灾 带标注 voc yolo

森林火灾检测数据集 7400张 森林火灾 带标注 voc yolo 森林火灾检测数据集 名称 森林火灾检测数据集 (Forest Fire Detection Dataset) 规模 图像数量&#xff1a;共7780张图像。类别&#xff1a;仅包含一种类别——火源。 数据划分 训练集 (Train)&#xff1a;通常占总数据…

死锁的成因与解决方案

目录 死锁的概念与成因 栗子 死锁的情况 哲学家问题 如何避免死锁 必要条件 死锁的解决方案 总结 死锁的概念与成因 多个线程同时被阻塞,他们中的其中一个或者全部都在等待某个资源的释放,导致线程无限期被阻塞,程序无法停止 栗子 我和美女a出去吃饺子,吃饺子要醋和酱油…

VScode 自定义代码配色方案

vscode是一款高度自定义配置的编辑器, 我们来看看如何使用它自定义配色吧 首先自定义代码配色是什么呢? 看看我的代码界面 简而言之, 就是给你的代码的不同语义(类名, 函数名, 关键字, 变量)等设置不同的颜色, 使得代码的可读性变强. 其实很多主题已经给出了定制好的配色方案…

国庆刷题(day1)

C语言刷题&#xff1a; C刷题&#xff1a; 全对实在是太难了&#xff0c;我尽力了。。