OSPF协议

一、OSPF协议概念

OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯彻(Dijkstra)算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。

二、OSPF协议特点(协议号89)

1、OSPF是无类别链路类型IGP协议,作为一种链路状态的路由协议,OSPF将链路状态组播数据LSA(Link State Advertisement)传送给在某一区域内的所有路由器,OSPF通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。OSPF是大中型网络上使用最为广泛的IGP协议。OSPF通过LSA的形式发布路由。

2、OSPF对网络没有跳数限制

3、OSPF并不会周期性更新路由表,而采用增量更新,即只在路由有变化时,才会发送更新,并且只发送有变化的路由信息;事实上,OSPF是间接设置了周期性更新路由的规则,因为所有路由都是有刷新时间的,当达到刷新时间阀值时,该路由就会产生一次更新,默认时间为1800秒,即30分钟,所以OSPF路由的定期更新周期默认为30分钟。OSPF收敛较快。

4、区域内的路由器都具有相同的全局拓扑图

5、使用组播进行互相通信。OSPF使用组播地址(224.0.0.5和224.0.0.6)作为目的地址。

6、每个区域里的路由器都有一个区域的ID

7、每个OSPF路由只维护自己所在区域的完整链路状态信息

8、以开销(cost)作为度量值

9、采用SPF算法可以有效的避免环路

10、不支持自动汇总,支持手动汇总

三、OSPF的拓扑结构

四、OSPF的路由类型

1、Internal route区域路由器(IR):该设备所有接口都属于同一个区域

2、Area-Border-Router(ABR)区域边界路由器:该设备同时属于两个以上的区域,必须有一个接口连接区域0

3、Backbone Route(BR)骨干路由器:该设备至少有一个接口属于骨干区域。所有ABR和区域0内的路由器都是骨干路由器

4、ASBR(AS Boundary Route)自治系统边界路由器:只要一台OSPF路由器引入了外部路由,它就是ASBR

PS:一台路由器可以有多种路由类型。

五、OSPF区域概述

术语 备注
区域(Area)

为了适应大型的网络,OSPF在AS内划分多个区域

区域是以接口为单位来划分的

每个OSPF路由器只维护所在区域的完整链路状态信息

区域ID(Area ID)

可以表示成一个十进制的数字,如:1

也可以表示成一个IP,如:0.0.0.1

区域优点

尽量减少路由表条目

使拓扑变化仅影响本区域内部

六、OSPF区域类型划分

1、骨干区域area 0 :

骨干区域负责区域间路由信息传播。作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。

2、非骨干区域:

传播信息要经过骨干区域转发;

3、标准区域 :

除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。

4、末梢区域 :

即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的 AS 外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。

5、完全末梢区域:

该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包换有自治系统边界路由器 ASBR。

 

为什么非骨干区域必须和骨干区域相连接?

由于区域间OSPF是距离矢量的,是容易产生路由回环的。为了避免回环,所以区域间的流量必须经由骨干区域来传递。 

划分区域的好处在于减少LSA的泛洪,减少路由表的大小

七、Route ID

运行OSPF协议前,必须选取一个RID(非0.0.0.0),用来唯一标识一台OSPF路由器

运行OSPF路由器的标识,一般用Loopback接口地址,建议手动绑定。(一般使用LoopBack口的环回地址)。

每一台OSPF路由器只有一个Router-ID,Router-ID使用IP地址的形式来表示,确定Router-ID的顺序选择方法:

1 .手工指定Router-ID。

2 .路由器上活动Loopback接口中IP地址最大的,也就是数字最大的,如C类地址优先于B类地址,一个非活动的接口的IP地址是不能被选为Router-ID的。

3 .如果没有活动的Loopback接口,则选择活动物理接口IP地址最大的。

PS:RID选举具有非抢占性,除非重启OSPF进程,reset ospf process

八、OSPF工作过程及原理

1、路由器上启动OSPF协议后,直连的邻居间,开始组播收发hello包,Hello包中将存储本地已知邻居的RID,在双方RID均已知的情况下,建立邻居关系,生成邻居表;每台路由器向邻居发送Hello包形成邻居关系,邻居之间还会定时发送Hello数据包来维护邻居关系,当没有再收到邻居的响应包,就认为关系破裂。

2.邻居关系建立后,邻居间将进行条件匹配,匹配失败将停留为邻居关系**(2Way),仅hello周期保活即可;匹配成功者间将进行邻接关系的建立;

3.邻接关系间的路由器,将使用DBD/LSR/LSU/LSACK来获取本地未知的所有LSA信息;使得同一区域内所有路由器的数据库完全一致;---- 数据库表;

4.当本地数据库完成同步后,将数据库-->有向图-->树型结构图-->将本地到达所有未知网段的最短路径加载于本地路由表中;

5.收敛完成,仅hello包周期保活即可;正常每30min,邻接关系间再进行一次DBD的对比,若一致及正常;若不一致将马上进行同步;

6.结构突变:触发更新

断开网段 直连断开网段的设备,直接使用LSU告知邻接,需确认

新增网段 直连新增网段的设备,直接使用LSU告知邻接,需确认

无法沟通 hello time 对应的 dead time ;dead time 到时后,断开邻居关系,去除基于该邻接共享的LSA计算所得路由;

在所有路由器都在初始阶段(down)时,AR1会发送一个HELLO包给AR2,因不知道其他的路由器,发送的信息中只包含自己的地址192.168.0.1,这是AR2会接收到了的hello包,进入init状态,并知道了AR1的地址,也会发送一个hello包,其中包含自己的IP地址192.168.2.0和AR1的地址192.168.1.0发送回去,并双向建立通话(2-way)状态。两个路由器会互相发送消息,AR1给AR2发送的是自己的IP地址192.168.0.1,假定自己是主路由器,AR2也会给AR1发送自己的IP地址192.168.0.2,进行假定自己是主路由器,并进行IP地址比较,建立主从关系(Exstart)。建立主从关系后,进入交换摘要信息(Exchange),AR2给AR1发送DBD报文,里面包含自己的链路状态数据库的描述。AR1也会给AR2发送DBD报文,里面包含自己的链路状态数据库的描述。

进入loading状态,获取对方的链路状态详细信息,AR1给AR2发送LSR报文,说明自己需要192.168.2.0/24的完整目录。AR2收到后,会通过LSU报文,发送关于网络192.168.2.0/24的目录给AR1.并双方分别进行LSAck确认。结束后,所有路由器进入收敛状态(full)。

九、OSPF三张表

邻居表 主要记录形成邻居关系路由器
链路状态数据库 记录链路状态信息
OSPF路由表 通过链路状态数据库得出

OSPF邻居表

 OSPF链路状态数据库

OSPF路由表

十、OSPF 5种数据报文

OSPF报文头

通用OSPF包头部分字段解释:

  • Version:OSPF协议号,应当被设置成2

  • Type:OSPF报文类型,OSPF共有5种报文

  • Packet length:OSPF报文总长度,包括报文头部。单位是字节

  • Router ID:生成此报文的路由器的Router ID。

  • Area ID:此报文需要通告到的区域

  • Checksum:是指一个对整个数据包(包括包头)的标准IP校验和。

  • AuType:验证此报文所应当使用的验证方法。

  • Authentication:验证此报文时所需要的密码等信息。

1、Hello报文------组播收发,用于邻居、邻接关系的发现、建立、周期保活、发布RouterID、Router Priority等参数信息

hello报文组播发送,hello time为10s或者30s,dead time是hello time 的4倍

 

  • Network Mask:发送Hello报文的接口的网络掩码

  • HelloInterval:发送Hello报文的时间间隔。单位为秒

  • Options:标识发送此报文的OSPF路由器所支持的可选功能。

  • Router Priority:发送Hello报文的接口的 Router Priority,用于选举DR和BDR。越大越优先。

  • RouterDeadInterval:宣告邻居路由器不继续在该网段上运行OSPF的时间间隔,单位为秒,通常为4倍的HelloInterval,如果4倍的HelloInterval没收到Hello报文,则会断开邻居,所有邻居相关信息全部删除。

  • Designated Router:发送Hello报文的路由器所选举出的DR的IP地址。如果设置为0.0.0.0,表示未选举DR路由器。

  • Backup Designated Router:发送Hello报文的路由器所选举出的BDR的IP地址。如果设置为0.0.0.0,表示未选举BDR路由器。

  • Active Neighbor:邻居路由器的Router ID列表。表示本路由器已经从该邻居收到合法的Hello报文。

2、DBD包----- 数据库描述包-- 本地LSDB(链路状态数据库)目录 确立主从关系,同步路由器的LSDB

  • 接口MTU:是指在数据包不分段的情况下,始发路由器接口可以发送的最大IP数据包大小。当在虚连接时,该在段为0x0000。 

  • Option:标识发送此报文的OSPF路由器所支持的可选功能。 

  • I位:当发送的是一系列DD报文中的第一个数据包时,该为置位为1。后续的DD报文将该位置位0。 

  • M位:当发送的数据包还不是一个系列DD报文中的最后一个数据包时,该值置为1。如果是最后一个DD报文,则将该为置为0。 

  • MS位:在数据库同步中,主要用来确认协商过程中的序列号。

  • DD Sequence Number:DD的序列号报文,4byte 

  • LSA头部信息。 DBD的包在初始的两个报文中不携带LSA的报文,因为OSPF处于Exstart状态,进行路由主从关系选择。

 3、LSR包----- 链路状态请求 -- 用于询问对端本地未知的LSA信息

  • Link State Type:用来指明LSA标识是一个路由器LSA、一个网络LSA还是其他类型的LSA。 

  • Link State ID:不同类型LSA该字段意义不同。

  • Advertising Router:始发LSA通告的路由器的路由器ID。

4、LSU包----- 链路状态更新 -- 用于共享具体的每一条LSA信息

  • Number of LSA:指出这个数据包中包含的LSA的数量。 
  • LSA:明细LSA信息 

触发更新的时候,报文中包含路况信息

5、LSACK包-----链路状态确认 -- 确认包

  • Header of LSA:LSA头部信息。 

LSA--链路状态通告--具体的一条一条 路由或者拓扑信息,不是一种数据包,所有的LSA是使用LSU这种包来转发的;

  • LS age:此字段表示LSA已经生存的时间,单位是秒。 
  • Option:该字段指出了部分OSPF域中LSA能够支持的可选性能
  • LS type:此字段标识了LSA的格式和功能。常用的LSA类型有五种。
  • Link State ID:根据LSA的不用而不同。
  • Advertising Router:始发LSA的路由器的ID。 
  • Sequence Number:当LSA每次新的实例产生时,这个序列号就会增加。这个更新可以帮助其他路由器识别最新的LSA实例。 
  • Checksum:关于LSA的全部信息的校验和。因为Age字段,所以校验和会随着老化时间的增大而每次都需要重新进行计算。
  • Length:是一个包含LSA头部在内的LSA的长度。

十一、OSPF报文格式

OSPF的数据包是跨层封装于3层报头后方 ,协议号89

 

十二、OSPF邻居建立条件:必须三层直连

Hello报文用来发现和维持OSPF邻居关系.

OSPF建立邻居条件:

  • RID唯一,如果RID相同,无法建立邻居

  • Hello/Dead时间间隔一致

设置OSPF时间间隔的命令行ospf timer hello [时间间隔]

OSPF默认时间间隔为10S,当一端改为20S时,无法建立邻居。OSPF的死亡时间间隔默认是Hello时间间隔的4倍

  • 区域ID一致

  • 认证(如果启用了认证)一致,使用ospf authentication-mode 进行配置认证。如果两端都配置了加密认证但是密码不相同,同样无法建立邻居。

 

 如果OSPF一端配置认证,一端未配置认证,则两端OSPF邻居无法建立

  • 链路MTU大小一致(默认不开启检查,思科默认开启)
  • 子网掩码一致(以太网环境)
  • 网络地址一致
  • 末梢区域设置一致(Option) 即末梢区域stub、stub no-summary、nssa、nssa no-summery

十三、OSPF网络类型

OSPF网络类型:基于接口的二层封装报文的方式

 缺省情况下,OSPF认为以太网的网络类型是广播类型,PPP、HDLC的网络类型是点到点类型。广播类型的接口是以太网类型接口(就是我们常常看到的网口),而点到点类型的接口是串口;

R1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#
ospf 1 router-id 1.1.1.1
 area 0.0.0.1
  network 192.168.1.0 0.0.0.255
  network 12.0.0.0 0.0.0.255
#
interface GigabitEthernet0/0/1
 ip address 192.168.1.1 255.255.255.0
 ospf enable 1 area 0.0.0.1
#
interface Serial0/0/1
 link-protocol ppp
 ip address 12.0.0.1 255.255.255.0
 ospf enable 1 area 0.0.0.1
#

 R2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#
ospf 1 router-id 2.2.2.2
 area 0.0.0.1
  network 192.168.1.0 0.0.0.255
  network 12.0.0.0 0.0.0.255
#
interface GigabitEthernet0/0/1
 ip address 192.168.1.2 255.255.255.0
 ospf enable 1 area 0.0.0.1
#
interface Serial0/0/1
 link-protocol ppp
 ip address 12.0.0.2 255.255.255.0
 ospf enable 1 area 0.0.0.1
# 

 广播类型需要选举BR、DBR两种路由器

在点对点类型的网络中,基于接口封装的不同又可以分非广播多路访问和点到多点,如下图

 非广播多路访问(NBMA)

默认情况下,OSPF认为帧中继(FR)、异步传输(ATM)的网络类型为NBMA;在帧中继网络里非广播多路访问和以太网中的广播类型,两者有一个相同的特点,就是都可以接多个设备;不同点是以太网二层封装需要封装mac地址,支持广播发送,而帧中继网络二层不需要封装mac地址,其原因是它不支持广播;不支持广播就意味着在ospf里不支持组播;不支持组播也就是说帧中继网络里,ospf只能通过单播的方式建立邻居;

PPP点到点类型的OSPF报文

广播类型的OSPF报文

DR和DBR

在上述的网络类型中,在多路访问网络类型中跑OSPF,每个路由器都会和其他路由器建立邻居,一个路由器发送一条链路更新,其他路由器都会跟着确认,这样一来,每个路由器都要经过两两的交互和确认,在一定程度上会带来路由器的性能的开销(hello包,DD,LSR,LSU,LSACK这些包过多,增加路由器的处理压力,从而导致路由器的性能降低);为了降低数据包的交换,在OSPF中会选举DR和BDR;如下图

广播型网络BMA和NBMA网络中,为了减少邻接关系的数量,从而减少数据包交换,次数,最终节省带宽,降低对路由器处理能力的压力,选举DR和BDR。

DR一个广播性多接入网络中的指定路由器(DR),类似班长、总经理;

BDR 为了减少多路访问网络中的OSPF流量,OSPF会选择一个指定路由器(DR)和一个备份指定路由器(BDR)。当多路访问网络发生变化时,DR负责更新其他所有OSPF路由器。BDR会监控DR的状态,并在当前DR发生故障时接替其角色,类似副班长、副总经理;

DRouthers:类似普通学生、普通员工;

三者的关系:DR、BDR、DRothers之间都保持邻接关系(Full),DRothers之间保持邻居关系(Two-Way);

通信地址:224.0.0.6向DR和BDR发送链路状态更新,224.0.0.5向所有OSPF路由器发送;

DR选举规则

1、首先比较Hello报文中携带的优先级,优先级范围是0-255,默认情况下都是1;优先级最高的被选举为DR,优先级次高的被选举为BDR;优先级为0的不参与选举

2、如果优先级相同的情况下,比较router id大小,router id越大越优先

3、选举不具有抢占性,除非当DR和BDR都失效或重启OSPF进程;

 提示:DRothers的LSU向DR或BDR通过224.0.0.6发送,然后DR收到DRothers发送到LSU以后,会将对应的LSU通过224.0.0.5向其他路由器发送,其他路由器收到DR发送LSU以后,BDR向224.0.0.5直接确认,而DBothers则通过224.0.0.6向DR确认;总结一句话就是从DR或BDR发出的数据包都是发往224.0.0.5,DR和BDR都会监听224.0.0.6这个地址;DRothers发出的数据会通过224.0.0.6向DR或BDR发送;

https://www.cnblogs.com/qiuhom-1874/p/15054938.html

十四、OSPF的状态机 ---8种

状态机----两台OSPF路由器间不同关系的阶段

Down: 路由器刚刚启动OSPF进程,还没有从任何路由器收到任何数据包,Hello包也没有收到,在此进程,可以向外发送Hello包,以试图发现邻居。一旦接收到对端的hello包进入下一个状态。

邻居发现

 

Attempt:在NBMA网络中组播不能够传递,在这种情况下,就需要指定OSPF使用单播向邻居发送Hello包,以此试图和指定的邻居建立OSPF邻居关系,在此状态下,OSPF称为Attempt状态。该状态仅对NBMA网络上的邻居有效,表示最近没有从邻居收到信息,但仍需作出进一步的尝试,用以与邻居联系。这时按HelloInterval的间隔向邻居发送Hello包

Init:初始化 只是OSPF路由器一方收到了另一方的Hello,但并没有双方都交换Hello,也就是对方的Hello中还没有将自己列为邻居,若接收到的hello包中存在本地的RID,那么进入下一个状态机

2Way:双向通讯 邻居关系建立的标志

双方都已经交换了Hello信息,并且从Hello中看到对方已经将自己列为邻居,此状态,就表示OSPF邻居关系已经建立,并且如果是需要选举DR和BDR的话,也已经选举出来,但OSPF邻居之间并不一定就会交换LSA,如果不需要交换LSA,则永远停留在此状态,如果需要形成邻接并互相交换LSA,则状态继续往下进行。

条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举,非DR/BDR之间不能进入下一个状态机;

Exstart:预启动 因为在OSPF邻居之间交换完整的LSA之前,会先发送Database Description Packets (DBD),Link-state Request (LSR)等数据包,邻居之间是谁先发,谁后发,需要确定顺序,在Exstart状态,就是确定邻居之间的主从关系(Master—Slave关系),Router-ID数字大的为主路由器,另一端为从路由器,由主路由器先向从路由器发送信息。在选举DR与BDR的网络环境中,并不一定DR就是主路由器,BDR就是从路由器,因为DR和BDR可以通过调整接口优先级来控制,所以DR也许是因为优先级比BDR高,而Router-ID并不比BDR高。

使用不携带数据库目录信息的DBD包,进行主从关系的选举,RID数值大为主,优先进入下一个状态机

Exchange:准交换 就是交换Database Description Packets (DBD)的过程,DBD只是LSA的简单描述,只包含LSA的一些头部信息,收到DBD的路由器会和自己的链路状态数据库作对比,确定需要哪些LSA的完整信息,就会发送LSR请求给邻居。使用携带数据库目录信息的DBD包,进行目录共享,需要ACK确认

数据库同步

 

Loading:加载 邻居根据收到的LSR(Link-State Request),向对方回复Link-state update(LSU)。接收到其他邻接的目录信息后,和本地进行比对,若本地存在未知的LSA信息,将使用LSR询问对端,对端使用LSU来更新这些LSA信息,直至双方数据库一致;LSU需要ACK确认;

Full:转发 标志着邻接关系已经建立;

等到OSPF都收到了邻居回复的所有Link-state update(LSU),那么此时的数据库状态就变成了收敛状态,此状态就是Full状态,但此时只是数据库已经同步,但路由表却还在计算当中。

建立完全邻接关系

 

其中只有Two-way和Full的状态是稳定状态。

十四、OSPF五种常见的LSA

1、Router-LSA(路由器链路状态通告)---1类LSA

1)作用:描述每台路由器自身的网络状态

2)内容:IP地址、掩码、cost、邻居信息

3)通告者:每台路由器

4)传播范围:区域内

5)特点:

(1)每台路由器都会产生

(2)本区域类传递,在ABR终止

(3)用来形成同一区域内的网络TOP结构,是真正的链路状态信息

2、Network-LSA(网络链路状态通告)---2类LSA

1) 作用:用来描述MA网络的掩码信息

2) 内容:

(1)MA网络中的掩码

(2)MA网络所有路由器的一个列表信息

3) 通告者:DR

4) 传播范围:区域内

5) 特点:

(1)由MA网络中的DR产生

(2)本区域传递,在ABR终止

(3)用来形成同一区域内的网络TOP结构,是真正的链路状态信息

3、Network-summary-LSA (网络汇总链路状态通告)---3类LSA

1)作用:描述区域间的路由信息

2)内容:网络号、掩码、cost值 (不包含邻居信息)

3)特点:

(1)由ABR产生,相当于把1、2类转成3类LSA路由信息,通告给其他区域

(2)在整个ospf路由域内都会传递,在到抵下一个ABR时,ADV(通告路由器)会发生变化

4、AS-external-LSA(自治系统外部链路状态通告)----5类LSA 先于4类LSA产生

1)作用:描述外部引用路由的信息

2)内容:网络号、掩码、cost值

3)通告者:ASBR

4)通告区域:整个OSPF路由域

5)特点:由ASBR产生,在整个路由域中都会传递,在到抵下一个ABR时,ADV(通告路由器)不会发生变化(精确选路)

5、ASBR-summary-LSA(ASBR链路状态通告)--- 4类LSA 后于5类LSA产生

1)作用:描述ASBR的位置,帮助其他路由器寻找ASBR的位置

2)内容:ASBR的RID

3)通告者:ABR

4)通告区域:OSPF整个路由域

5)特点:在整个ospf路由域内都会传递,在倒抵下一个ABR时,ADV(通告路由器)会发生变化
和3类LSA相似

1类LSA案例

AR1配置

1
2
3
4
5
6
7
8
9
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]net 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]net 12.1.1.1 0.0.0.0
  
[R1]dis ospf lsdb #查看链路状态数据库摘要
[R1]dis ospf lsdb router #查看一类LSDB明细
[R1]dis ospf lsdb router originate-router #查看自身的一类LSDB明细
[R1]dis ospf lsdb router 2.2.2.2 #查看R2的一类LSDB明细

AR2配置 

1
2
3
4
5
6
7
8
9
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]net 12.1.1.2 0.0.0.0
  
[R2]dis ospf lsdb #查看链路状态数据库摘要
[R2]dis ospf lsdb router #查看一类LSA明细
[R2]dis ospf lsdb router originate-router #查看自身的一类LSA明
[R2]dis ospf lsdb router 1.1.1.1 #查看R1的一类LSDB明细

2类LSA案例

 AR3配置

1
2
3
4
5
6
7
8
9
10
11
12
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]net 34.1.1.3 0.0.0.0
  
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ospf cost 10   #修改ospf接口cost值
  
[R3]dis ospf lsdb #查看链路状态数据库摘要
[R3]dis ospf lsdb router originate-router #查看自身的一类LSA明细
[R3]dis ospf lsdb network  #查看二类LSA 明细
[R3]dis ospf lsdb network 4.4.4.4  #查看R4的二类LSA 明细 

 AR4配置

1
2
3
4
5
6
7
8
9
10
11
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]net 34.1.1.4 0.0.0.0
  
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ospf cost 10  #修改ospf接口cost值
  
[R4]dis ospf lsdb #查看链路状态数据库摘要
[R4]dis ospf lsdb router originate-router #查看自身的一类LSA明细
[R4]dis ospf lsdb network 3.3.3.3 #查看R3的二类LSA 明细

3类LSA案例 

R2 、R3 为ABR 。一个ABR 最好连接不超过三个区域,否则负担太重 

具体配置及查看LSA

R1配置

1
2
3
4
[R1]ospf 1 router-id  1.1.1.1
[R1-ospf-1]area 1
[R1-ospf-1-area-0.0.0.1]net 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.1]net 12.1.1.1 0.0.0.0

 R2配置

1
2
3
4
5
6
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]net 23.1.1.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]area 1
[R2-ospf-1-area-0.0.0.1]net 12.1.1.2 0.0.0.0

R3 配置

1
2
3
4
5
6
7
8
9
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[R2-ospf-1-area-0.0.0.0]net 23.1.1.2 0.0.0.0
[R3-ospf-1-area-0.0.0.0]area 2
[R3-ospf-1-area-0.0.0.2]net 34.1.1.3 0.0.0.0
[R3]dis ospf lsdb summary           #查看三类LSA明细
[R3]dis ospf lsdb summary 1.1.1.1   #查看RID 1.1.1.1 三类LSA明细
[R3]dis ospf abr-asbr  #查看本区域内有哪些边界路由器以及整个路由域内有哪些自治系统边境路由器

 R4配置

1
2
3
4
5
6
7
8
9
10
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 2
[R4-ospf-1-area-0.0.0.2]net 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.2]net 34.1.1.4 0.0.0.0
[R4]dis ospf lsdb
  
[R4]dis ospf lsdb summary           #查看三类LSA明细
[R4]dis ospf lsdb summary 1.1.1.1   #查看RID 1.1.1.1 三类LSA明细
  
[R4]dis ospf abr-asbr  #查看ABR 和ASBR

4类、5类LSA案例 

具体配置及查看LSA

R1配置

1
2
3
4
5
6
7
8
9
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 1
[R1-ospf-1-area-0.0.0.1]net 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.1]net 12.1.1.1 0.0.0.0
  
[R1]dis ospf lsdb asbr 
#R1上查看LSA ASBR 5类LSA通告路由器无变化。4类LSA的通告路由器变成了ABR R2
  
<R1>dis ospf abr-asbr #查看ABR ASBR

R2配置  

1
2
3
4
5
6
7
8
9
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 1
[R2-ospf-1-area-0.0.0.1]net 12.1.1.2 0.0.0.0
[R2-ospf-1-area-0.0.0.1]area 0
[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]net 23.1.1.2 0.0.0.0
  
[R2]dis ospf lsdb
#R2上查看LSA 发现ASBR 5类LSA通告路由器无变化。4类LSA的通告路由器变成了ABR R3

R3配置

1
2
3
4
5
6
7
8
9
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]net 23.1.1.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]area 2
[R3-ospf-1-area-0.0.0.2]net 34.1.1.3  0.0.0.0
  
[R3]dis ospf lsdb
#R3上查看LSA  发现ASBR 5类LSA通告路由器无变化,但是4类LSA的通告路由器变成了自身ABR R3

R4配置  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 2
[R4-ospf-1-area-0.0.0.2]net 34.1.1.4 0.0.0.0
  
[R4]ospf 1
[R4-ospf-1]import-route direct  #R4引用一条直连路由,让R4成为ASBR 产生5类LSA
  
[R4]dis ospf lsdb
[R4]dis ospf lsdb asbr 4.4.4.4 #查看ASBR lsa摘要
[R4]dis ospf lsdb ase #查看五类lsa明细
  
[R4]ospf 1
[R4-ospf-1]import-route direct type 1 #修改外部路由表项为E1
  
#E1:外部路由类型1,累加内部接口的cost值
#E2:外部路由类型2,不累加内部接口的cost值 (默认) 

7类LSA : NSSA LSA

功能: 在NSSA区域中,传递外部路由。
Link id :传递路由网络号
ADV router:产生该LSA的 router-id
特性:默认为类型2 ,度量值为1 。 携带了FA地址(转发地址)

FA: 转发地址,当5类或7类LSA中携带了FA地址,则计算路径开销值时计算的是当前路由器到达FA地址的开销值之和+种子度量值。(若FA地址不可达,则路由不能加表)

FA 地址:
1.默认7类LSA 产生FA地址,5类LSA不产生的(7转5 的5类LSA 携带FA地址 )
2.7类LSA 产生规则:默认产生的FA地址为产生7类LSA 的ASBR 最大的环回接口地址 ;若连接其他协议的接口也运行了OSPF协议,网络类型为BMA,则产生的7类LSA中FA地址为连接其他接口对应的下一跳地址;若网络类型为P2P,则 FA地址依然为环回接口中IP地址最大的
3.5类LSA FA地址规则: 默认不产生,若连接其他协议的接口运行了OSPF 协议并且网络类型为BMA,则FA地址为重发布之前路由的下一跳地址,若网络类型为P2P,则不会产生FA地址。

OSPF度量值:Cost,开销

在每一个运行OSPF的接口上,都维护着一个接口Cost
Cost计算公式:开销=参考带宽/接口带宽
参考带宽默认值为100Mbit/s。
1、开销值越低路径则越优。
2、度量只与出方向的路径有关,路由器不会对入向流量执行路由决策。
3、在每次带宽出现变化时,OSPF开销就会重新计算,Dijkstra算法会将路径上的所有链路开销累加起来,以此来判断最优路径。
到一个目标网络的度量值
1、从源到目标所有出站接口的Cost值累加
2、从源到本路由器沿途所有入站接口的Cost值累加(路由方向)

 在R1上查路由

去往3.3.3.3的存在两条路由

当更改2.2.2.2上的OSPF路由的开销值时

 可以发现R1前往3.3.3.3的开销值较大的一侧路由消失了,而优选了开销值较小一侧的路由

参考官方文档https://support.huawei.com/enterprise/zh/knowledge/EKB1001651886

默认OSPF开销

链路类型

默认开销

T1(1.544Mbit/s串行链路)

64

Ethernet

10

FastEthernet

1

GigabitEthernet

1

10GigabitEthernet

1

OSPF无法FULL排错思路

控制平面

  • 如果邻居关系处于 Down状态

    • 检查物理接口是否正常
    • 检查掩码、认证、区域ID等是否匹配
    • 对应的接口是否在OSPF中宣告
  • 如果邻居状态处于Init状态

    • 检查本端接口和对端设备是否发生故障
  • 如果邻居状态处于2-Way状态

    • 查看接口优先级是否为0
  • 如果邻居关系处于Exstart状态

    • 接口下配置OSPF mtu-enable的情况下,MTU是否匹配
  • 如果邻居关系处于Exchange/Loading状态

    • 查看本端、对端的设备,接口是否发生故障。
  • 如果邻居关系处于Full状态

    • 查看接口网络类型是否一致

    • 目的网段是否正确network通告

    • 是否配置了匹配router-policy的外部路由导入过滤

    • 是否配置了匹配filter-policy export的5、7型LSA通告过滤;

    • 是否配置了匹配filter

参考链接:

https://blog.csdn.net/qq_48345422/article/details/123051175

https://blog.csdn.net/qq_47855463/article/details/115122239

https://blog.csdn.net/weixin_46959185/article/details/111475031

https://blog.csdn.net/weixin_55609813/article/details/115121677

posted @   leagueandlegends  阅读(1763)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示