OSPF篇

2023-11-21 13:06:30 浏览数 (2)

实验过了,备考期间都没看理论,导致基本忘光了,开始嘎嘎补,有错误喊我。

OSPF是啥?

OSPF(开放最短路径优先),是一种动态路由协议。属于内部网关协议-IGP的一种,用于AS(自治系统)内的互联互通。

动态路由协议的分类

从路由协议的工作范围可分为:

IGP(内部网关协议):用于AS(自治系统)内的互联互通 EGP(外部网关协议):用于AS(自治系统)间的互联互通

从协议算法可分为:

1、距离矢量路由协议:RIP,IGRP 2、链路状态路由协议:OSPF,ISIS 3、混合型路由协议:EIGRP 4、路径矢量路由协议:BGP

链路状态路由协议:能够把网络的拓扑结构完整的绘制出来

距离矢量路由协议:仅知道目的网络的存在,开销和下一跳信息,其他的都无法感知到。

什么是AS?

由一个组织/机构统一进行管理,并运行相同的IGP协议的一组设备的集合。

内部网关协议(IGP):OSPFv2、OSPFv3(IPV6)、ISIS、RIPv1、RIPv2、EIGRP等

外部网关协议(EGP):BGP

概述

OSPFv2仅支持(IPV4)、OSPFv3仅支持(IPV6),不会向下兼容。

运行OSPF路由器之间交互的是LSA(链路状态)信息,而不是直接交互路由。LSA信息是OSPF正常进行拓扑及路由计算的关键信息。

OSPF是典型的链路状态路由协议,是目前广泛使用的IGP协议之一。

通过SPF(最短路径优先)形成无环且最短路径的拓扑。通过开销计算最短的路。逻辑上阻塞端口。

优点:

1.基于SPF算法,以“累计链路开销”作为选路参考值 2.采用组播形式收发部分协议报文 3.支持区域划分 4.支持对等价路由进行负载分担 5.支持报文认证,用于认证安全邻居关系

网络的组成

1、路由器 2、路由器之间的链路 3、路由器所连接的网段

链路属性/链路状态信息LSA

运行链路状态路由协议的路由器之间会先建立一个邻居关系,然后彼此之间开始交互LSA(链路状态通告)

1、直连的接口上的邻居 2、直连的接口的开销 3、直连的接口的地址/掩码(网段) 4、链路的类型 (描述路由器自身)

代码语言:javascript复制
* Link ID: 2.2.2.2            邻居的router id  
     Data   : 12.1.1.1        与邻居相连的接口地址
     Link Type: P-2-P         链路类型
     Metric : 1               到达该邻居的开销值
   * Link ID: 12.1.1.0        直连网络地址
     Data   : 255.255.255.0   掩码
     Link Type: StubNet       描述自身直连的链路类型
     Metric : 1               自身到达该直连网络的开销
     Priority : Low

LSA:一段状态链路信息,不是报文。

链路状态数据库LSDB

每台路由器都会产生LSAs,路由器将接收的LSAs放入到自己的LSDB(链路状态数据库),路由器通告LSDB(链路状态数据库),掌握了全网的拓扑。

路由器将LSA存放在LSDB(链路状态数据库)中 LSDB(链路状态数据库)汇总了网络中 路由器对于自己接口 的描述 LSDB(链路状态数据库)包含全网拓扑的描述

最短路径优先SPF 算法

每台路由器基于LSDB(链路状态数据库),使用SPF(最短路径优先)算法进行路径计算。每台路由器都计算出一个以自己为根,无环的,拥有最短路径的树。即路由器知道了到达网络各个地方的优选路径。

路由表生成

然后,路由器将计算出来的优选路径,加载进自己的路由器

链路状态路由协议总结

1、路由器之间建立邻居关系 2、路由器之间交互LSA(链路状态信息)并加入到自身的LSDB(链路状态数据库)中 3、进行路径计算 4、生成路由表项

OSPF 区域

大型网络单区的弊端

1、设备数量多,产生的LSA(链路状态信息)多,导致LSDB过大,消耗更多设备资源 2、SPF算法,导致树的规模大,计算路由消耗资源,网络收敛慢。 3、如果网络不稳定,导致全网路由器的LSDB都会不稳定,故障域大,故障排除难度高 4、单区域OSPF协议无法执行路由的汇总,导致路由表过大。

OSPF协议通过区域将网络换分成2层的结构,区域号通常用点分十进制表示。

1、骨干区域area 0 有且只有一个 必须连续 2、非骨干区域 area n 可以有多个 3、非骨干区域必须和骨干区域直接相连

不同区域的LSA是不相同的,区分区域的目的是为了减少1,2类lsa的交互,减小设备压力。跨区域传播lsa必须要3类LSA。

OSPF router id

作用:唯一的标识一台OSPF的路由器

router id 格式:点分十进制的格式,一般由项目管理员规划并手动配置 建议 使用路由器上的loopback接口的ip地址 充当router id loopback接口:由管理员手动配置的测试接口,只要路由器开机他就永远存在,不会存在物理故障,通常用于OSPF的router id ,如果没有loopback接口 管理员可以自行规划 保证全网唯一即可。

系统自动生成router id方式: 默认情况华为路由器启动后,会自动生成一个全局的router id 全局router id 默认使用设备上第一个配置的IP地址 作为全局的router id 如果配置ospf协议没有手动配置router id 则默认使用全局router id 作为ospf的 router id  ospf router id 更改后要生效 需要重新启动OSPF进程 导致网络震荡 甚至是中断 谨慎变更router id  (reset ospf process

OSPF度量值metric (开销值Cost)

越小越优先  相同负载均衡

COST(开销)分为两种: 1、OSPF的链路开销 2、OSPF的路径开销,即路由器自身到目的网络沿途路径出接口链路开销之和

链路开销默认计算方式:100M/接口带宽 =COST

通过接口命令 ospf cost人工设置链路开销  优先于自动计算的开销值 链路两端开销值建议配置一致,防止来回路径不一致。

OSPF三大表项

OSPF三大表项-邻居表

display ospf perr brief 查看邻居表简略信息

display ospf peer 查看邻居表详细信息

OSPF三大表项-LSDB表

所有收集到的的链路状态信息(LSA)放到链路状态数据库(LSDB)中

display ospf lsdb 查看LSDB表 链路状态数据库

区域内唯一识别一条LSA的三要素 由产生该LSA的设备决定,用于描述链路状态信息。 LSA TYPE LSA的类型 LS id LSA的名称 Advrouter 哪台设备产生的

OSPF三大表项-OSPF路由表

display ospf routing  查看OSPF路由表

OSPF协议报文格式和网络类型 OSPF报文发送形式

广播型(Broadcast):当链路层协议是Ethernet(以太网)、FDDI(光纤分布式数据接口)时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中,通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF路由器的预留IP组播地址;224.0.0.6的组播地址为OSPF DR的预留IP组播地址。以单播形式发送DD报文和LSR报文。

点到点(P2P)型:当链路层协议是PPP、HDLC时,缺省情况下,OSPF认为网络类型是P2P。在该类型网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。

点到多点型(P2MP):没有一种链路层协议会被缺省认为是point-to-multipoint型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。在该类型网络中以组播形式(224.0.0.5)发送Hello报文,以单薄形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。

非广播多路访问网络型(NBMA ):当链路层协议是ATM(异步传输模式)、FR(帧中继网络)、X.25(分组交换数据网)时,缺省情况下,OSPF认为网路类型是non-broadcast multiple access network 。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文),单播需要明确目的IP,即需要手动配置邻居。

OSPF报文

OSPF一共定义了5种类型的报文,不同类型的OSPF报文有相同的头部格式。 OSPF报文直接采用IP封装,在报文的IP头部中,协议号为89。

Type

报文名称

报文功能

1

Hello报文(Hello)

用于建立和维护邻居关系建立:在使能OSPF后,会发送Hello报文,两端设备进行协商。维护:Hello报文会周期性发送维护邻居关系

2

DD报文(Database Description)

用于邻居之间交互链路状态信息的摘要三个bit 一个序列号i bit:表示是不是第一个DD报文,置0不是,置1是m bit:表示后续是否还有携带内容的DD报文,置0否,置1是ms bit:表示是否为主设备,置0否,置1是序列号:随机产生的值

3

LSR报文(Link State Request)

用于向对端请求,本端缺少的链路状态信息

4

LSU报文(Link State Update)

回应对端请求,发送完整的链路状态信息给对端。

5

LSAck报文(Link State Ack)

收到完整的链路状态信息后,向对端回复确认

OSPF头部报文 只要是ospf报文该头部固定存在

代码语言:javascript复制
OSPF Header   ospf头部,只要是ospf报文该头部固定存在
    Version: 2                                   版本号 2 ipv4   3 ipv6             
    Message Type: Hello Packet (1)               代表ospf协议报文类型 1 hello 2 DBD 3 LSR 4 LSU 5 LSACK
    Packet Length: 44                            ospf报文整体头部长度 ospf头部 ospf报文载荷
    Source OSPF Router: 1.1.1.1                  发送该报文的路由器的router id
    Area ID: 0.0.0.0 (Backbone)                  发送该报文的接口所属区域
    Checksum: 0xfa9c [correct]                   校验和
    Auth Type: Null (0)                          认证方式     0代表空认证 1代表明文认证 2代表MD5认证 
    Auth Data (none): 0000000000000000           携带的认证信息  没做认证0填充

Hello报文

Hello报文作用:

用于建立和维护邻居关系 建立:在使能OSPF后,会发送Hello报文,两端设备进行协商。 维护:Hello报文会周期性发送维护邻居关系

在以太网链路上,缺省是,OSPF采用组播发送Hello报文(目的地址为224.0.0.5)

hello报文中进行DR BDR选举  先比优先级  相同比Router id  大的为DR

Hello报文在P2P(点到点型),Broadcast(广播型)链路上每隔10s周期性发送,目的地址是224.0.0.5,邻居失效时间为40s,默认为Hello发送周期的4倍。

Hello报文在P2MP(点到多点型),NBMA(非广播多路访问网络型)链路上每隔30s周期性发送,其中P2MP的目的地址是224.0.0.5 ,NBMA(非广播多路访问网络型)的目的地址是手动指定(单播地址),邻居失效时间为120s,默认为Hello周期的4倍。

hello报文头部

代码语言:javascript复制
OSPF Hello Packet                                hello报文头部
    Network Mask: 255.255.255.0                  发送该报文接口的子网掩码
    Hello Interval [sec]: 10                     hello报文发送间隔
    Options: 0x02, (E) External Routing    可选项   Ebit:描述对5类LSA是否需要同步  Nbit:描述对7类LSA是否需要同步
    Router Priority: 1                           发送该hello报文接口的优先级,用于选举DR/BDR
    Router Dead Interval [sec]: 40               邻居失效时间 一般为发送时间的4倍
    Designated Router: 0.0.0.0                   本链路上DR路由器接口的地址       P2P/P2MP值为0.0.0.0
    Backup Designated Router: 0.0.0.0            本链路上BDR路由器接口的地址      P2P/P2MP值为0.0.0.0

hello报文影响邻居关系建立的因素

卡在2-Way 

1、Route ID冲突 2、区域ID不一致 3、认证有问题 方式或密码错误 4、Hello报文间隔不一致,死亡时间不一致   (发送时间在点到点和广播中每隔10秒,死亡时间为4倍40秒 目的地址224.0.0.5) 5、Options 字段要一致 Ebit位=1 Nbit=0时 普通区域   Ebit位=0 Nbit=0时 末节区域/完全末节区域 Ebit位=0 Nbit=1时 NSSA区域/完全NSSA区域 6、广播型链路中接口优先级全为0  都为DRother 不选举DR BDR 7、报文的源地址是否处在一个网段 8、子网掩码是否一致

Options

卡在ExStart/Exchange

1、MTU不匹配 2、链路类型不一样

静默端口Silent-interface

启用后接口将被禁止收发Hello报文

LSA同步

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

LS Age(链路状态老化时间):此字段表示LSA已经生存的时间,单位为秒。 Options(可选项):每一个Bit都对应了OSPF所支持的某种特性。 LS Type(链路状态类型):表示本LSA的类型。 Link State ID(链路状态ID):不通的LSA,对该字段的定义不同。 Advertising Router(通告路由器):产生该LSA的路由器的Router ID。 LS Sequence Number(链路状态序列号):当LSA每次有新的实例产生时,序列号就会增加。 LS Checksum(校验和):用于保证数据完整性和准确性。 Length(字长):包含LSA头部在内的LSA总长度值。

LS Type(链路状态类型)、LS ID(链路状态ID)、Adv Router(通告路由器)三个参数唯一的标识了一个LSA

LS Age(链路状态老化时间)、LS Seq(链路状态序列号)、LS Checksum(校验和)用于判断LSA的新旧。

LSA同步用于交换缺少的LSA实现LSDB全同步,并且让相同的LSA实现新旧程度一致。

LSA摘要/LSA头部的作用:

1、唯一的识别一条LSA,解决LSA有没有的问题 2、解决LSA的新旧程度的问题

LSDB的同步:

1、交换彼此缺少的LSA 2、新的同步掉旧的

为什么要实现可靠的LSDB同步:

因为DD报文中携带的本LSDB中所有LSA摘要信息,根据摘要信息的可靠性,才能决定后续LSDB是否完全同步一致。而OSPF封装在IP报文中没有可靠的回馈机制,所以通过主从以及序列号的变化来确保交互的可靠性。

LSA新旧判断机制

1、比较seq,seq越大代表LSA越新; 2、seq相同,则比较校验和,校验和越大越优; 3、校验和相同,则比较ls age 如果ls age 等于 3600s,则认为是最新的LSA,此时收到该LSA的设备会删除该LSA   ls age=3600s的作用,用于删除一条LSA; 4、如果LS age不等于3600s,则比较两个LS age 的差值,相差大于900s,则ls age小的是最新的LSA; 5、如果相差小于900s,则认为新旧程度一致; 6、如果LSA3600s没有得到更新,则从LSDB数据库中删除。

LSA更新机制

1、周期性更新:OSPF路由器对自身产生的LSA有周期性更新的责任,每隔30分钟更新一次自己产生的LSA,seq 1,校验和重新计算  ls age 置为0,并且泛洪给其他邻居。 2、触发更新:当LSA的链路状态取值发生变更时,立刻产生新的LSA,seq 1,开销值重新计算,ls age 置为0,并且泛洪给其他邻居。

评价LSA新旧程度

先比seq,再比校验和,最后比LS AGE DD报文,携带LSA头部信息,LSU携带LSA头部以及具体的链路状态信息,完整版的LSA LSR只携带三要素,LSACK,通过携带LSA头部,通告对方收到了你的LSA

代码语言:javascript复制
Type      : Router          描述LSA的类型
  Ls id     : 2.2.2.2      LSA的名称,取值和LS Type相关,1类LSA由路由器自身的router id充当
  Adv rtr   : 2.2.2.2         描述产生该LSA路由器的router id

以上3个参数用于在同一个区域中唯一标识出一条LSA
--------------------------------------------------------------
  Ls age    : 59  表示这条LSA的存货时间,产生LSA的路由器每隔30分钟周期性更新一次自身的LSA并泛洪,如果某条LSA存活时间超过3600s,则从LSDB中删除。
如果LSA的状态发生变化,需要立即更新该LSA,并泛洪。
  Len       : 60 
  Options   :  E  
  seq#      : 80000003  表示这条LSA更新次数,初始序列号为0X80000001,最大的序列号为0X7FFFFFFF
  chksum    : 0xb8d 校验和

OSPF的邻居邻接之间的关系

OSPF工作过程

OSPF完成邻接关系有四个步骤,建立邻居关系,协商主从、交互LSDB信息,同步LSDB。

邻居关系

邻居:互相发现 two-way

如果广播型网络中,路由器接口优先级全为0,此时会卡在two-way状态。

two-way状态仅仅是双向发现,邻居建立,不会同步LSDB数据库 如果邻居都不是DRother,才会进行LSDB同步,建立邻接关系 如果邻居都是DRother,则全部维持two-way状态。

双方发送Hello报文的过程,此过程中,会涉及到init状态和2-way状态以及双向2-way状态。

每10S发送一次HELLO报文,用于维护邻居关系,如果4倍HELLO时间没有收到邻居的HELLO报文,则认为邻居失效。

同时在发送Hello报文的程中会选举DR和BDR以及Drother

两台路由器 当一台路由器开启OSPF 并把接口加入到OSPF中,此时开始发送Hello报文,发送的报文是:SIP AR5 DIP 224.0.0.5 HELLO ROUTE ID 5.5.5.5(224.0.0.5是因为无法确认对方是否开启OSPF,所以发送特定组播) 此时AR6(接口被加入到OSPF)从down状态进入init状态(down状态:没有接收到hello报文,inti状态:接收到对方hello报文,但是没从对方的报文中看到自己的router id) 此时AR6开始发送报文:SIP AR6 DIP 225.0.0.5 hello router ID 5.5.5.5 nei 5.5.5.5(因为ar5和ar6之间还没建立联系,所以目标IP还是组播地址,因为ar5给ar6发送过自己的route id 所以ar6回报文的时候会携带ar5的router id) Ar5收到AR6的报文,进入2-WAY双向发现状态,发送报文SIP AR5 DIP 224.0.0.5 router ID 5.5.5.5 nei 6.6.6.6 (双向确认,给ar6发送 意味着ar5知道AR6的router ID) Ar6收到AR5的报文,ar6进入2-way 双向发现状态,邻居关系建立

邻接关系

此过程是互相交互LSA的过程,会接触exstart状态、exchange状态loading状态最后会到达full状态。

首个进入two-way状态的路由器会主动发送DD报文进行主从选举,实现可靠的LSDB同步

协商过程:

Exstart主从选举 master/slave

Exstart状态下,AR5会发送dd报文,但是此时不携带任何摘要信息,只携带随机序列号,以及自己的router ID。AR6也会发送同样的报文(谁先到2-WAY状态谁先发dd报文

两个报文相比较routerID 大小(因为routerID 全网唯一),谁大谁成为主路由器。进入下一个状态

Exchange状态,交互摘要信息(若后期链路状态发生改变,直接发DD报文)

从路由器AR5先发送DD报文 携带主路由器的随机序列号信息 以及自己的LSA1摘要信息:DD Seq=y lsa1

AR6收到AR5的DD报文,回复DD报文:DD Seq=y 1 LSA2(序列号要采用 1确认。保证LSDB不会有任何丢失和缺少 )

以此类推(从路由器不会 1确认,只会确认主路由器发送过来的序列号)

当主路由器LSDB信息全部同步完毕后:回复:DD seq=y 1 1 null(空数据告知对方已经传输完毕)

从路由器传输完毕也会回复一个想同类型的DD报文 (从总是做最后的确认)

双方进行比对LSDB。进入下一个状态

Loading状态:开始双方请求和更改摘要信息的完整版(后期摘要发生变更,直接发送lsr和lsu)

一方根据LSDB缺少的信息,发送lsr信息

另一方收到LSR信息,发送LSU信息给对方补充。

当都发送完毕后,双方发送LSACK确认LSDB信息传输完毕。

保证LSA新旧程度一致,为的是能够让LSDB保持一个最新的讯息。

Full状态:建立邻接关系 LSDB数据库完成同步。

DD报文的MTU取值会影响邻接关系的建立

默认情况下,华为设备DD报文携带的MTU值=0,默认情况下,华为对接口的MTU不做要求。不比较MTU大小但是思科设备DD报文中携带的MTU为1500,要求邻居之间MTU值保持一致。

实现LSDB同步的意义

因为DD报文中携带的本LSDB中所有的LSA摘要信息,根据摘要信息的可靠性,才能决定后续LSDB是否完全同步一致。 而OSPF封装在IP报文中没有可靠的回馈机制,所以通过主从以及序列号的变化来确保交互的可靠性。 OSPF可靠性的表现: 通过三次握手建立邻居关系,避免单项邻居。 LSDB主从选举,通过序列号进行LSDB的同步采用隐式确认机制。

DR BDR 

在broadcast和nbma的链路上需要进行DR/BDR的选举,其他链路类型无需做DR/BDR的选举。

ospf默认网络类型如何确定

1、如果接口是PPP /HDLC,则默认为p2p链路 2、如果接口是以太网接口,则默认是广播型线路 3、如果接口是FR、ATM,则认为是NBMA(非广播多路访问) 4、没有任何一种链路类型被认为是P2MP点到多点,需要由管理员手动配置

DR BDR  基于接口划分

DR/BDR  某某接口属于DR/BDR  基于接口 DR和BDR选举  通过hello报文完成  在two-way之前 主从选举 通过DD报文完成

广播型链路/非广播多路访问 DR和链路上所有路由器建立full邻居 BDR和链路上所有路由器进阿里full邻居 drother之间仅建立two-way邻居

P2P/P2MP 无需DR/BDR选举,直接建立FULL邻居

DR:指定路由器

DR路由器会监听两个地址,224.0.0.5 224.0.0.6

DRother,只会从224.0.0.5 收到LSA,从224.0.0.6发新学习到的LSA

DRother之间只建立邻居关系2-way 所有的DRother只和DR建立邻接关系full

如何选举DR:

通过接口的优先级选举DR,取值范围0-255 优先级越大,优先成为DR  如果优先级相同,则比较router id大的成为DR 如果修改优先级为0,则该设备直接成为DRother (如果两个接口都为0 会卡在2-way)

为了避免单点故障,所以会选举BDR作为备份,次优的优先级,成为BDR 如果BDR失效,则由其他DRother之间选举产生

DR/BDR默认不具备抢占性

DR/BDR的选举特点

1、每条广播链路/NBMA链路都会进行独立的选举 2、每条广播链路/NBMA链路DR有且只有一个,必须选举出DR 3、每条广播链路/NBMA链路BDR有且只有一个,不必须选举出BDR(默认会进行BDR的选举) 4、BDR是DR的备份路由器,DR失效,BDR成为DR,重新选举BDR 5、BDR失效,重新选BDR 6、DR和BDR没有抢占性 7、优先级等于0的路由器(为DRother),不参与DR和BDR选举

DR/BDR监听 组播地址

Drother产生的LSU通过224.0.0.6发送给DR,BDR,DR通过224.0.0.5发送给其他的DRother和BDR,DROTHER通过224.0.0.6发送ACK确认,BDR通过组播224.0.0.5向DR确认。

BDR产生的LSU通过224.0.0.5发送给drother和DR,DR通过224.0.0.5发送ack,drother通过224.0.0.6发送ack。

DR产生的LSU通过224.0.0.5 发送drother和BDR,BDR通过224.0.0.5发生ack , drother通过224.0.0.6发送ack。

DR和BDR同时监听224.0.0.5和224.0.0.6 2个组播地址,drother只监听在224.0.0.5。|

Broadcast广播型链路:每有一条广播型链路,就有一条二类LSA     可改成链路类型P2P就只有一类LSA

OSPF路由器类型

1、区域内路由器IR 2、区域边界路由器ABR 3、骨干路由器BR 4、自治系统边界路由器ASBR

LSA网络类型

1类LSA 路由器LSA(Router LSA):每个设备都会产生,描述区域内的拓扑和路由信息,描述了设备的链路状态和开销,该LSA只能在接口所属的区域内泛洪

2类LSA 网络LSA(Network LSA):由DR产生,用于描述广播型链路。在一个区域内,描述广播型链路中路由器的邻接关系的路由器。该LSA只能在接口所属区域内泛洪

3类LSA 网络汇总LSA(Network Summary LsA):由ABR(区域边界路由器)产生,描述区域内某个网段的路由,该类LSA主要用于区域间路由的传递。

4类LSA ASBR汇总LSA(ASBR Summary LSA):由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。

5类LSA AS外部LSA(AS External LSA):由ASBR产生,用于描述到达OSPF域外的路由

7类LSA 非完全末悄区域LSA(NSSA LSA):由ASBR产生,用于描述到达OSPF域外的路由。NSSA LSA与AS外部LSA功能类似,但是泛洪范围不同。NSSA LSA只能在始发的NSSA内泛洪,并且不能直接进入Area0。NSSA的ABR会将7类LSA转换成5类LSA注入到Area0

1类LSA Router LSA

Router LSA(1类LSA):每台OSPF路由器都会产生。用于描述自身设备的链路状态和开销值,只会在该接口所在区域泛洪,不会跨区域传播。描述了所有加入了OSPF进程的直连路由信息。

V(Virtual Link 虚链路):如果产生此LSA的路由器是虚链路的端点,则置为1。 E(External):如果产生此LSA的路由器是ASBR,则置为1。 B(Border):如果产生此LSA的路由器是ABR,则置为1。 links:LSA中的Link(链路)数量。Router LSA使用Link来承载路由器直连接口信息。

概念:

  1. 只能在本区域内泛洪,加入在什么区域中,只在本区域中泛洪。
  2. 只会产生1条1类LSA,来描述你加入接口的信息。
  3. 区域内所有的路由器加入邻居,都会产生一条1类LSA。所以当区域内所有路由器同步完成后,都会产生1条1类LSA,就不止1条了。但是同一个设备只会自己产生一条自己的1类LSA。其他的都是别人产生的LSA同步过来的。
  4. 不同进程,不同区域,都会产生一条1类LSA。非区域0中的LSDB也会产生一条1类LSA,但不会通告给区域0。

一类LSA router LSA:

每台运行了OSPF的路由器都会产生一条一类LSA,用于描述加入OSPF进程中的直连链路状态,仅在链路所在的区域内泛洪。每台路由器在同一个区域下只产生一条一类LSA。

查看简要信息 display ospf lsdb  查看详细信息 display ospf lsdb router

查同区域下的其他路由器产生的一类LSA display ospf lsbd router 2.2.2.2

loopback接口在本路由器的开销是0

一类LSA数据结构:每条链路状态信息由4个参数负责描述 Link id、Data、Link Type、Metric

一类LSA一共有4种链路类型(link type)来描述直连链路状态。

1、Stubnet 用于描述路由器自身直连的网络信息       (路由信息) 2、P-2-P 用于描述p2p链路和p2mp链路上的邻居       (拓扑信息) 3、transnet 用于描述广播型、NBMA型链路上的邻居 (拓扑信息) 4、Vlink 用于描述虚链路上的邻居,类似P2P             (拓扑信息) 每种链路类型,分别由link id、data、 metric 来具体描述

代码语言:javascript复制
Type      : Router          描述LSA的类型
  Ls id     : 2.2.2.2         LSA的名称,由路由器自身的router id充当
  Adv rtr   : 2.2.2.2         描述产生该LSA路由器的router id
  Ls age    : 59               存活多少秒      
  Len       : 60              LSA的长度
  Options   :  E              
  seq#      : 80000003        序列号
  chksum    : 0xb8d            校验和
  Link count: 4
   * Link ID: 14.1.1.1             伪节点router id由DR的接口地址充当
     Data   : 14.1.1.1             与伪节点相连的接口地址
     Link Type: TransNet           描述链路上广播型链路和NBMA链路的邻居
     Metric : 1                    到达该伪节点的开销值

    由于link type为TransNet,所以描述的是广播型链路,且这条信息应该是描述对方邻居的信息,但是由于link ID和对方接口IP都是本设备上的。我们因此判断,此时在这条广播型链路中,有一台伪节点充当互联设备,到达该伪节点开销为1。而又因为linkID是自身设备,根据原理判断,此时本设备为这条广播型链路的DR。我们想要查询这条广播型链路的其他设备。需要查询二类LSA。


   * Link ID: 2.2.2.2              邻居的router id
     Data   : 12.1.1.1             和邻居相连的接口的地址
     Link Type: P-2-P              描述p2p链路上的邻居
     Metric : 48                   自身到该邻居的开销值

   * Link ID: 12.1.1.0             直连的网络号
     Data   : 255.255.255.0        子网掩码
     Link Type: StubNet            路由器直连链路的链路状态信息
     Metric : 48                   自身到达该直连链路的开销值
     Priority : Low

Link ID:可以是邻居routerID或是网段,取决于link type Data:可以是接口IP地址或者子网掩码,取决于link type Link Type:直连链路的类型 Metric:自身到达该直连链路的开销 Priority:本地优先级(仅本地有效,跟收敛相关)

Vlink  虚链路(在ABR上建立)

VLINK虚链路的作用

1、修复不连续的区域0 2、让非骨干区域与骨干区域逻辑上直连 3、路径优化       4、虚链路永远属于区域0 5、作为区域0的备用链路

虚链路物理接口经过的区域叫中转区域

经过的开销为虚链路物理路径的真实开销  虚链路无法直接修改开销值 要想修改必须修改物理经过区域的开销值

VLINK配置限制

1、区域0不能配置虚链路   (在非骨干区域配置虚链路 配置命令见IP命令  hello报文为单播) 2、Vlink只能经过一个区域 3、特殊区域不能创建虚链路(STUB,NSSA)

ABR

1.连接2个区域以上的路由器,并且至少有一个活动的接口属于区域0。 2.存在vlink的路由器也是ABR。路由器类型通过TYPE-1的FLAGS字段进行描述 3.ABR通过TYPE-1的LSA,告知直连区域自身是该区域的ABR 4.ABR同区域的所有路由器根据区域内的SPF树计算自身到ABR的开销 5.ABR产生3类LSA,描述区域间的路由6.路由器根据3类LSA结合自身到ABR的路由,计算区域间路由 7.ABR将直连区域的区域内路由(TYPE-1,TYPE-2计算出的路由)转换成其他区域的3类LSA 8.ABR将区域0中3类转换成非骨干区域的3类,ADV ROUTER会改变,COST重新计算 9.非骨干区域的3类不会传回到骨干区域,区域间的水平分割 10.ABR在区域0存在活动的FULL邻居时,不会用非骨干区域的3类进行路由计算

虚链路存在环路风险

1、通过虚链路学习到的1类2类3类4类LSA所计算出的路由 不会转换成虚链路所在区域的3类和4类LSA,目的是防环 2、无法在虚链路所在的区域对区域0的路由进行路由汇总  (当中转区域的ABR汇总了区域0的路由    ABR虚链路所在区域不执行汇总 ) 3、存在虚链路的ABR,得到一条非自身产生的3类LSA,那么该LSA在自身区域0中存在,此时要求3类LSA,也必须在虚链路所经过的区域内他的LSDB数据库中存在。如果不存在,则不使用该3类LSA计算路由。(虚链路物理上是经过中转区域的,如果中转区域没有去区域0的路由,那么在数据传输时到达不了目的地)如果虚链路通过1类2类LSA计算路由,在Vlink所在区域没有对应的3类LSA,也不会计算经过虚链路泛洪来的1类和2类LSA。 4、存在虚链路的ABR,通过虚链路传来的1类和3类LSA和虚链路所经过的其他区域传来的3类LSA,在满足条件3的情况下,优选开销小的计算区域间路由

2类LSA Network LSA (即是路由信息,也是拓扑信息

Network LSA(2类LSA):由DR产生,描述本网段的链路状态,在所属的区域内传播。记录了该网段所有与DR建立了邻居关系的OSPF路由器,同时携带了该网段的网络掩码。

  1. 由DR产生的LSA
  2. 每有一条广播型链路就会有一条2类LSA
  3. 2类LSA即是路由信息,也是拓扑信息
  4. 2类LSA规定建立邻居必须要求宣告接口IP掩码一致
  5. 在本区域内泛洪
代码语言:javascript复制
Type      : Network      二类LSA,由DR产生
  Ls id     : 100.1.1.4    DR接口的IP地址充当/伪节点的router id
  Adv rtr   : 4.4.4.4      DR的router id
  Ls age    : 1454 
  Len       : 36 
  Options   :  E  
  seq#      : 80000008 
  chksum    : 0x5e52
  Net mask  : 255.255.255.0 DR接口的子网掩码    
  Priority  : Low
     Attached Router    4.4.4.4   拓扑信息 伪节点链接的实节点的router id  
     Attached Router    2.2.2.2   拓扑信息
     Attached Router    3.3.3.3   拓扑信息

只要有一个一类LSA transnet就对应一个二类LSA 只要有一条二类LSA就有一条路由信息  通过Ls id和Net mask计算出

到伪接口的开销为1 从伪节点出去开销为0,LOOPBACK接口出方向开销值为0

3类LSA  Sum-Net   (路由信息)

由ABR产生,用于向一个区域通告到达另一个区域的路由。

问题展现

1.当网络规模变大后,lsdb会变得非常臃肿,也会增加设备cpu损耗。当网络拓扑发生变动时,会引发网络震荡,所有的路由都会重新计算。收敛过慢。

2.无法进行路由汇总

解决方式:

划分多区域进行网络优化  减小LSDB数据库 降低网络设备性能消耗 但是1、2类LSA无法跨区域传播,所以,此时ABR成为生成3类LSA的重要角色。 3类LSA负责跨区域传播lsa

3类SLA是路由信息

代码语言:javascript复制
Type      : Sum-Net            三类LSA,由ABR产生,只在区域内泛洪
  Ls id     : 14.1.1.0           区域间路由的网络号
  Adv rtr   : 1.1.1.1            ABR的router id
  Ls age    : 289 
  Len       : 28 
  Options   :  E  
  seq#      : 80000002 
  chksum    : 0x87bf
  Net mask  : 255.255.255.0     区域间路由的子网掩码
  Tos 0  metric: 1              ABR到达该路由的开销值
  Priority  : Low

ABR特点:

1、将直连区域内的路由转化为3类LSA在其他直连直连区域泛洪 2、骨干区域的3类LSA可以转化成非骨干区域的三类LSA(其他区域传递给骨干区域的3类LSA被传递到ABR,再由ABR解析计算,传递给本非骨干区域中。实现多区域路由互通。此时Adv router 会由之前的其他区域的ABR变成本区域ABR的路由器。) 3、非骨干区域的3类LSA不能再次传回骨干区域 4、ABR只有在区域0没有full邻居时才使用非骨干区域的3类LSA计算区域间路由 5、ABR如果连接多个其他区域,也是直接把三类传递过去,并不是3类只进入区域0,再由区域0传递给其他区域。

ABR接收的3类LSA不会再次传出去

ABR产生3类LSA的条件

1、1类或者3类LSA在ABR上计算出来的路由。并且在全局路由表中不存在,不管是active,inactive,都会转换成3类LSA 2、OSPF协议认为自己对该路由不可达,则不产生3类LSA

华为设备机制 一个路由器有一个区域0有一个其他区域 就会显示一个假ABR  真ABR有一个接口在区域0

区域间路由计算的规则

cost=ABR到该路由的开销值 自身到达该ABR的开销值 下一跳=自身到产生该三类LSA的ABR的下一跳。 R2,如何知道R1是ABR,ABR通过一类LSA的flag位B bit置位为1表明自己是ABR

Vbit代表是否存在虚链路,V=1时存在 0不存在 Ebit代表是否为ASBR 1 是,0不是 Bbit代表是否为ABR 1 是,0不是

区域间路由防环

OSPF要求所有的非骨干区域必须与Areao直接相连,区域间路由需经由Area0中转。 区域间的路由传递不能发生在两个非骨干区域之间,这使得OSPF的区域架构在逻辑上形成了一个类似星型的拓扑。

OSPF如何避免区域间路由环路

OSPF划分了骨干区域和非骨干区域,所有非骨干区城域均直接和骨干区域相连,且骨干区域只有一个;非骨干区城之间的通信都要通过骨干区域中转;并规定从骨干区城传来的三类LSA不再传回骨干区域。

一类LSA 二类LSA 优先与区域0  3类LSA

骨干区域3类LSA优先非骨干区域3类LSA

ABR不会将描述到达某个区域内网段路由的3类LSA再注入回该区域

ABR只在区域0没有full邻居才用非骨干区域的3类LSA计算路由

四类五类LSA Sum-Asbr、External (路由信息)

1.外部路由引入路由后以5类LSA在区域内泛洪。 2.不在单独区域内泛洪,在所有网络中泛洪。

5类LSA External

查看命令 dis ospf lsdb ase 6.6.6.0

代码语言:javascript复制
Type      : External                     5类LSA,由ASBR产生
  Ls id     : 6.6.6.0                      外部路由的网络号
  Adv rtr   : 5.5.5.5                      ASBR的router id  我相去外部 需要先到达该ASBR
  Ls age    : 168 
  Len       : 36 
  Options   :  E                           是否允许外部路由
  seq#      : 80000001 
  chksum    : 0x8f1b
  Net mask  : 255.255.255.0                外部路由的掩码
  TOS 0  Metric: 1                         外部路由引入时默认开销值
  E type    : 2                            外部路由开销类型,默认类型2   在1类LSA flag中
  Forwarding Address : 0.0.0.0             转发地址,外部路由路径优化
  Tag       : 1                            外部路由标记,默认为1,方便对外部路由做标识
  Priority  : Low

type-cos 2 :路由表中不显示路由在AS内部路径的开销值 (只会显示默认开销 不显示实际开销) type-cos  1 :路由表中显示引入时的开销和AS内部路径开销之和

外部路由计算

1、与ASBR同区域的路由器如何进行路由计算 外部路由开销=自身到达该ASBR的开销 外部路由引入时的开销

外部路由下一跳=自身到达ASBR的下一跳

2、与ASBR不同区域的路由器如何进行路由计算 自身到达该ABR的开销(SPF) (ABR到ASBR的开销,4类LSA) 引入时的开销值

4类LSA Sum-Asbr

ASBR同区域的ABR产生,负责生成4类LSA,用于通告给其他区域如何到达ASBR。

本质与3类差不多,但仅仅负责通告其他区域,ASBR在哪里,标记ASBR。

在路由表中会出现两个具备ASBR信息的路由信息。

但是一个是通过3类宣告的,只告诉你如何去ASBR,另一个是通过4类宣告的,你的路由信息不是仅仅要去asbr,而是通过asbr要转发出去。

有外部路由引入,自动生成4类LSA。

四类LSA就是为了描述一台ASBR路由器的。

区域内有多个ABR则都产生4类

代码语言:javascript复制
Type      : Sum-Asbr   4类LSA,和ASBR所在区域的ABR产生,在产生的区域内泛洪
  Ls id     : 5.5.5.5    ASBR的router id
  Adv rtr   : 3.3.3.3    ASBR所在区域ABR的router id
  Ls age    : 165  
  Len       : 28 
  Options   :  E  
  seq#      : 80000003 
  chksum    : 0x2c0c
  Tos 0  metric: 2      ABR到ASBR的开销值

5类LSA的选路机制

cost type2 选路

1、引入时开销小的路径优先使用,不关心AS内部路径好坏。

2、引入时开销一样,则比较到达ASBR的开销值,越小越优

3、引入时开销一样,到达ASBR的开销值也一样,则负载分担。

cost type1选路

1、引入开销 AS内部开销最小的优先 2、引入开销 AS内部开销相同,则负载分担

类型1的开销计算方式优先于类型2的开销计算方式 cost type1的选路体现路由意义上的最佳路径 cost type2的选路体现了管理员的选路意志

1类2类LSA优于区域0的3类LSA–优先于非区域0的3类LSA–优先于外部路由–外部路由类型1的开销计算优于类型2的开销计算

4类LSA防环以及选路机制

1、如果通过非骨干的1类LSA能计算到ASBR的开销值,也能通过骨干区域的1类LSA计算去往该ASBR的开销,并且开销相同,则优先使用非骨干区域的1类LSA;如果开销值不同,则使用开销值小的。

2、如果通过不同的非骨干区域都能计算出到达该ASBR的开销,并且开销相同时,则优选非骨干区域号大的1类LSA进行传递。如果开销不同,则选开销小的。 所以通过多个区域的1类LSA能够访问ASBR则优先选择区域号大的1类LSA。如果开销不同,则选择开销小的

3、如果区域0中引入外部路由,ABR优先使用区域0中的1类LSA计算外部路由,优于4类LSA。当ABR,区域0有活动邻居时,不会使用非骨干区域的4类LSA计算外部路由。

4、如果非骨干区域引入外部路由时,ABR通过1 类LAS和4类LSA都能计算到去往该ASBR的路由时,选择到ASBR开销小的路径。 如果1类和4类到达该ASBR开销相同,则优先选择1类。不会负载分担。

5、ABR通过优先使用区域0的4类LSA计算外部路由,区域0的4类LSA优于非骨干的4类LSA。

4类LSA和5类LSA都可以单独出现,例如在一个只有一个骨干区域的ospf网络中引入外部路由,就不会产生4类LSA。 空引入外部路由时,可以产生4类LSA但不会产生5类LSA ABR产生4类泛洪五类 ASBR泛洪5类

特殊区域

传输区域和末端区域

OSPF的区域可分为两种类型:

传输区域(Transit Area)︰除了承载本区域发起的流量和访问本区域的流量外,还承载了源lP和目的IP都不属于本区域的流量,即“穿越型流量”,如本例中的Area 0。

末端区域(Stub Area):只承载本区域发起的流量和访问本区域的流量,如本例中的Area i和Area 2。

Stub区域

为了减少在此区域过量的LSDB泛洪,照顾老旧且性能较差的设备。在不需要进行中转服务的区域设置。 在不影响IP可达的情况下,尽量减少LSA泛洪。

当末端区域设备性能不够,通过特殊区域可以精简LSA

hello报文中 ,option字段Ebit字段和Nbit都是用于描述区域类型的 Ebit代表是否进行5类LSA的同步,1代表需要同步,0代表不同步 Nbit代表是否进行7类LSA同步,1代表需要同步,0代表不同步

当hello报文中 option E=1,N=0   普通区域                       option E=0,N=0   末节区域/完全末节                       option E=0,N=1   NSSA/完全NSSA

非完全末节区域

设置末节区域的区域内,ABR不会向自己区域内泛洪自己收到的的外部路由(4,5类路由)。ABR会向本末节区域内泛洪一条“3类默认LSA”,全部指向ABR,用于区域内设备访问外部路由。

当末节区域通过这条“3类默认LSA”访问到末节区域的ABR时,ABR自身拥有外部路由的LSA。再进行转发。

stub区域特点

1、stub区域的ABR不在stub区域泛洪5类LSA(不泛洪=无法学到5类LSA不会产生路由) 2、stub区域的ABR不在stub区域产生4类LSA 3、stub区域的ABR,在stub区域产生区域间的3类LSA,用于访问区域间的路由 4、stub区域的ABR,在stub区域产生缺省的3类LSA用于访问外部路由 5、default- cost 10    修改3类LSA默认路由 去往外部路由的开销值 (需要进入到stub区域ospf区域内修改) 6、外部路由存在次优路径

(当stub区域内到ABR的开销都一样 那么负载分担 但是外部存在次优路径)

7、stub区域存在多个abr时,在区域0存在邻居,则不会计算彼此缺省的LSA,区域0所有邻居失效,才会计算其他ABR产生的缺省LSA

非完全末节区域建立邻居的过程

属于末节区域的ABR在建立邻居过程中,DD报文向区域内其他设备交互lsdb摘要信息时就不通告5类LSA。 所以其他设备在后期进行LSA和LSU时就不会交互5类LSA。

末节区域的注意事项

1.骨干区域不能配置stub区域(传输区域本身就不能配置) 2.stub区域必须所有设备都要配置stub 3.stub区域不可以引入也不能接受外部路由(stbu区域本身无法产生外部路由) 4.stub区域无法作为Vlink的穿越区域。(5类LSA无法穿越stub区域)

totally stub区域 完全末节

在末节区域的基础上,再解决掉3类LSA泛洪,完全由1,2类LSA在本区域泛洪,超过本区域的LSA都通过默认3类LSA交给ABR传递。

totally stub 特点

1、完全stub区域的ABR不在stub区域泛洪5类LSA(不泛洪=无法学到5类LSA不会产生路由) 2、完全stub区域的ABR不在stub区域产生4类LSA 3、完全stub区域的ABR,在stub区域不产生区域间的3类LSA 4、完全stub区域的ABR,在stub区域只产生缺省的3类LSA用于访问外部路由 5、default- cost 10     修改3类LSA默认路由开销值 6、区域间路由和外部路由都存在次优路径 7、stub区域存在多个abr时,在区域0存在邻居,则不会计算彼此缺省的LSA,区域0所有邻居失效,才会计算其他ABR产生的缺省LSA

完全末节区域和末节区域的区别

完全末节区域是区域间路由和外部路由存在次优路径的区别 末节区域只会在外部路由存在次优路径

NSSA区域与Totally NSSA区域 (7类LSA)

由于stub区域无法引入外部路由,而现实中可能会出现stub区域又得引入外部路由的需求,此时NSSA区域应运而生。

NSSA区域

末梢区域,既可以引入外部路由,又可以防止其他区域的4,5类lsa泛洪的外部路由进入。

1.由于NSSA区域是在stub区域的基础上可以引入外部路由到区域内,但此区域无法泛洪5类LSA。所以5类LSA被套壳为7类LSA。仅可以在末梢区域内泛洪。 2.7类LSA就是5类LSA,只不过为了能在NSSA区域泛洪而认为定义的。(7类LSA只在NASS区域内泛洪) 3.ABR收到7类LSA,将7类LSA转化为5类LSA在其他区域传播。 4.7类LSA由末梢区域中的ASBR产生 5.NSSA区域的ABR会把7类LSA转化成5类LSA,所以NSSA区域的ABR也是ASBR. 6.当NSSA区域存在多个ABR设备时,默认情况下由RouterID大的设备执行7类转5类LSA。(可以指定某一台设备执行7转5的操作)

代码语言:javascript复制
Type      : NSSA              NSSA 七类LSA,由NSSA区域的ASBR产生,只能在NSSA区域内泛洪
  Ls id     : 192.168.1.0       外部路由的网络号
  Adv rtr   : 7.7.7.7           ASBR的router id
  Ls age    : 39 
  Len       : 36 
  Options   :  NP               可以执行7类转5类的操作  heelo报文N LSA报文P
  seq#      : 80000001 
  chksum    : 0x58cd
  Net mask  : 255.255.255.0      外部路由子网掩码
  TOS 0  Metric: 1               引入时的开销
  E type    : 2                  开销类型
  Forwarding Address : 7.7.7.7   转发地址
  Tag       : 1                  路由标记

7类LSA数据传递的过程

如图所示:

  1. R5所在的AREA 2区域属于末梢区域,R5引入了一个外部路由。
  2. R5产生一个7类LSA再末梢区域内泛洪。
  3. AREA 2的R3接收到这个7类LSA后,转化成5类LSA传递到骨干区域中进行泛洪。
  4. 其他区域,例如AREA 1区域的R2收到这个5类LSA后生成4类LSA给自己的非骨干区域泛洪。
  5. AREA 1区域的R4收到这个4类LSA后,既可以和末梢区域的引入外部路由进行通信。

NSSA区域特点

1、NSSA区域的ABR不在NSSA区域泛洪5类LSA(不泛洪=无法学到5类LSA不会产生路由) 2、NSSA区域的ABR不在NSSA区域产生4类LSA 3、NSSA区域的ABR,在NSSA区域产生区域间的3类LSA,用于访问区域间的路由 4、NSSA区域的ABR,在NSSA区域产生缺省的7类LSA用于访问外部路由 5、default- cost 10    修改7类LSA默认路由 去往外部路由的开销值 (需要进入到NSSA区域ospf区域内修改) 6、外部路由存在次优路径 7、NSSA区域存在多个abr时,在区域0存在邻居,则不会计算彼此缺省的LSA,区域0所有邻居失效,才会计算其他ABR产生的缺省LSA 8、当一个NSSA区域中 存在多个ABR  默认情况下使用router id 大的ABR执行7转5的操作  也可手动指定设置 进入区域 nssa translator-akways 9、NSSA区域的即是ABR又是ASBR路由器 引入外部路由成为7类LSA时,NP=0不执行7转5

Totally NSSA区域

精简掉OSPF全区域的3,4,5类路由。只有本区域的1类2类和nssa区域的默认3类LSA

完全nssa区域的特点与完全stub区域类似。

Totally NSSA区域特点

1、完全NSSA区域的ABR不在NSSA区域泛洪5类LSA(不泛洪=无法学到5类LSA不会产生路由) 2、完全NSSA区域的ABR不在NSSA区域产生4类LSA 3、完全NSSA区域的ABR,在NSSA区域产生区域间的3类LSA,用于访问区域间的路由 4、完全NSSA区域的ABR,在NSSA区域产生缺省的7类LSA用于访问外部路由 5、default- cost 10    修改7类LSA默认路由 去往外部路由的开销值 (需要进入到NSSA区域ospf区域内修改) 6、外部路由存在次优路径 7、完全NSSA区域存在多个abr时,在区域0存在邻居,则不会计算彼此缺省的LSA,区域0所有邻居失效,才会计算其他ABR产生的缺省LSA 8、当一个完全NSSA区域中 存在多个ABR  默认情况下使用router id 大的ABR执行7转5的操作  也可手动指定设置 进入区域 nssa translator-akways 9、完全NSSA区域的即是ABR又是ASBR路由器 引入外部路由成为7类LSA时,NP=0不执行7转5

NSSA区域的特殊情况 NSSA区域主要的作用是为了引入外部路由再由NSSA区域中的ABR执行7类LSA转5类LSA,那么是否存在无法执行7转5的LSA呢?

  1. 执行查询 dis OSPF lsdb nssa X.X.X.X(代表查询某条7类LSA) 当展示出的信息中Option字段显示None时,此条7类LSA无法转化成5类。

OSPF路由汇总

路由汇总又被称为路由聚合,即是将一组前缀相同的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的,我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由。

OSPF区域间路由汇总

1、区域间路由汇总 ABR上执行对直连区域的路由进行汇总 2、汇总后的路由默认继承明细路由中开销大的。 汇总时可以配置开销 3、不要在所有的ABR上执行相同的路由汇总,会导致被汇总起来的明细路由之间无法互相访问 4、同一个区域存在多个ABR时,都要执行汇总的配置,汇总后,网络号和掩码必须保持一致 5、所有明细路由失效后,汇总路由才会失效

OSPF外部路由汇总

1、在ASBR上执行汇总 2、在执行7转5的ABR进行汇总 ,非7转5的ABR也可以汇总,但不生效,作为汇总备份使用

OSPF报文认证

在OSPF头部报文中

OSPF支持报文认证功能,只有通过认证的OSPF报文才能被接收。 路由器支持两种OSPF报文认证方式,当两种认证方式都存在时,优先使用接口认证方式:。

区域认证方式:一个OSPF区域中所有的路由器在该区域下的认证模式和口令必须一致。 接口认证方式:相邻路由器直连接口下的认证模式和口令必须一致。

路由协议的报文认证作用:

防止协议报文被伪造或者篡改。但是不对报文做加密

OSPF认证机制

1、明文认证 2、MD5认证 3、null认证

OSPF接口认证:仅对该接口所在链路上的OSPF报文进行认证 OSPF区域认证:对路由器属于某个区域的所有接口启用接口认证

接口和区域可以混合使用 但是认证模式和口令必须一致 接口认证优先于区域认证

如果做了area0的认证,并存在vlink,要注意vlink上也做区域0的认证

如果骨干区域配置了认证  那么配置vlink的区域也需要配置认证  vlink-peer 1.1.1.1 md5

OSPF的路由计算

OSPF的SPF计算

SPF算法:第一步计算SPF树,第二部将直连网络挂载SPF树上

SPF(最短路径优先)自动计算出无环且最段路径的拓扑       逻辑上阻塞一条链路

SPF算法只算自身区域的路由

OSPF邻居建立条件补充 广播型链路和 NBMA链路要求子网掩码必须一致,接口地址在同一个网段才能建立邻居关系

路由器将自己作为最短路径树的树根,根据Router-LSA(一类)和Network-LSA(二类)中的拓扑信息,依次将Cost值最小的路由器添加到SPF树中。

路由器以RouterID或者DR标识

广播网络中DR和其所连接路由器的cost值为0.

SPF树中只有单向的最短路径,保证了OSPF区域内路由计算不会出现环路

注意,spf计算是计算最优路径,次优路径不会丢弃,只会隐藏。

首要原则:

  1. 计算spf,首先登录设备查询一类,二类LSA。
  2. 先构建拓扑信息,再构建路由信息(先画树干,再画树叶)
查询一类LSA信息中的拓扑信息

登录某一台设备,通过dis ospf lsdb router 查询lsa信息

观察 Link Type 字段信息,筛选 P-2-P,TransNet的一类LSA信息。

  1. P-2-P类型的LSA会标记出邻居的router ID,也会标记出自身与该邻居相连的接口IP,又因为P-2-P类型和开销值告知我们点到点链路中邻居的位置,从而我们可以通过此条LSA构建出拓扑信息。
  2. TransNet类型的LSA代表的是广播型链路,此链路中一定会存在一个伪节点,而此条LSA中的Router ID恰好代表了伪节点的routerID,也是此广播型链路中DR的存在。又根据data字段我们可以得知这段互联链路中本设备的接口IP地址。从而方便我们构建拓扑。

※ 查询本设备内所有的P-2-P,TransNet的信息,且以本设备为根构建出了拓扑信息,此时,本设备的拓扑信息已经查询完毕。按照OSPF lsdb的工作原理我们得知,已经完成邻接建立的、同区域的lsdb是全同步的状态。所以当我们查询到其他设备的routerID时,肯定是对方同步过自身的LSA信息。想要构建spf,我们就需要到下一个节点去查询他设备下的产生的lsa信息。

查询已构建出的设备lsa信息,通过dis OSPF lsdb router X.X.X.X查询

(因为lsdb全同步,可以在一台设备中通过命令 routerID直接查询其他设备的LSA信息)

  1. 继续观察观察 Link Type 字段信息,筛选 P-2-P,TransNet的一类LSA信息。
  2. 构建拓扑的方式与上述方法一致。
查询二类LSA信息中的拓扑信息

※ 我们在构建spf树的过程中,link type 的TransNet信息其实代表了广播型链路的伪节点信息。真正的拓扑环境可能会被伪节点阻止。所以我们要通过2类LSA来和伪节点来解决伪节点后的设备拓扑信息。

可以通过dis OSPF lsdb network 查询2类LSA

继续通过2类LSA可以查询到伪节点后面是否还连接着其他的设备。

因为lsdb全同步的关系我们可以利用1类和2类lsa查验拓扑。

当拓扑闭环后,我们可以得到一个带有接口IP,开销值,routerID的拓扑图。

构建拓扑中的路由信息

通过挨个查询设备中一类LSA中link type 为StubNet的lsa信息,为拓扑增加路由信息。

伪节点查询的2类LSA信息,即是拓扑信息,也是路由信息。所以关注2类LSA中的Ls id和Net mask信息来确定伪节点中的路由信息。

OSPF跨区域路由计算

1.      3类LSA通过ABR在所有区域内泛洪,同步LSDB表。

2.      若某一个区域内的某设备想要跨区域访问路由,首先需要先查询自身LSDB表中的三类LSA,此条3类LSA由这台设备所在区域的ABR发出,且标记有开销值,所以,跨区域访问路由首先要经过本区域的ABR(骨干区域直接访问目标区域的ABR)。

  1. ABR接收到跨区域访问请求,通过查询自身从骨干区域接收到的3类LSA,得知目标网段所在区域的ABR,经由骨干区域转发到目标ABR。再由ABR进行转发。

总结:A区域a设备-A区域ABR-骨干区域-B区域ABR-B区域b设备

跨区域开销值计算:cost=ABR到该路由的开销值 自身到达该ABR的开销值下一跳

未经允许禁止转载!

0 人点赞