OSPF协议分析

概要

OSPF是动态内部网关协议中较为复杂的协议,牵涉的知识点较多,被设计为适应各种网络拓扑环境,学习、总结、测试、验证、思考OSPF协议的相关内容,包括环境拓扑的规划、设备的配置命令、配置后的结果显示,抓包分析协议的封装、报文格式、报文交互、各类lsa等。

一、OSPF简介

1.1 OSPF定义:

开放式最短路径优先OSPF (Open Shortest Path First) 是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。

  • OSPF把自治系统AS (Autonomous System)划分成逻辑意义上的一个或多个区域;
  • OSPF通过链路状态通告LSA (Link State Advertisement)的形式发布路由;
  • OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一;
  • OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。

目前针对IPv4协议使用的是OSPF Version2 (RFC2328) ;针对IPv6协议使用OSPF Version3 (RFC2740) 。在本文中所指的OSPF均为OSPF Version 2。

1.2 OSPF原理:

在带有路由功能的网络设备运行OSPF协议之后,设备之间会开始交互hello报文,hello报文内通常包含了一些路由的基本信息,之后交互的是DBD报文,DBD报文简要描述了自身的LSA信息,通过收到的DBD报文来跟自身的LSA信息作对比如果部分LSA信息缺失,则发送LSR报文,请求发送缺失部分,这时对等体设备会发出一个LSU报文,LSU主要更新LSA信息,然后发送ack报文来确保安全,最后LSU存放进LSA数据库,形成LSDB,再运行SPF算法,计算出最优路径,形成路由表。
OSPF原理图
OSPF的运行机制包括五个步骤:

  • 交互Hello报文
  • 泛洪LSA
  • 组建LSDB:LSDB是LSA的汇总
  • SPF算法计算出自己到达其他设备的最优路径
  • 维护和更新路由表

网络中的每台路由器都通过链路状态数据库(LSDB)来掌握全网的拓扑结构,而每台路由器都会收集其他路由器发来的LSA来完善自己的LSDB

LSA是对路由器周围网络拓扑结构的描述,LSDB则是对整个自治系统(area)的网络拓扑结构的描述。

路由器将LSDB转换成一张带权的有向图,在网络拓扑稳定的情况下,各个路由器得到的有向图是完全相同的。(如图1所示)
图1
(图1)

路由器根据最短路径优先(Shortest Path First)算法计算到达目的网络的路径,而不是根据路由通告来获取路由信息。如图2所示,每台路由器根据有向图,使用SPF算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。相对于RIP, 这种机制极大地提升了路由器的自主选路能力,使得路由器不再依靠路由通告进行选路。总而言之,LSDB保证路由器能实时掌握全网的拓扑机构,SPF算法保证路由器能够迅速计算出到达目的网络的最短路径
图2
(图2)

1.3 OSPF的三张表

(1) 邻居表(Neighbor Table):保存OSPF路由器的邻居信息,为确保直接邻居之间能够双向通信;

(2) 链路状态数据库(Topology Table):为LSDB表,存放自己产生的以及邻居通告的LSA,同一区域的所有路由器LSDB相同;

(3) OSPF路由表(Routing Table):对LSDB应用SPF算法,选择到达目标地址的最佳路由放入路由表。

1.4 OSPF邻居的状态:

OSPF路由器可与它直连的邻居建立邻居关系。P2P链路上,所有邻居可以到达FULL状态,形成邻接关系。MA网络,所有路由器只和DR/BDR(Backup Designated Router)到达FULL状态,形成邻接关系。路由器只和建立了邻接关系的邻居才可以到达FULL状态。路由更新只在形成FULL状态的路由器间传递。其中OSPF路由器只会与建立了邻接关系的路由器互传LSA,同步LSDB。
在这里插入图片描述

状态详细信息
Down这是邻居状态转换的初始状态,表示最近没有从邻居收到信息。在NBMA 网络上,仍然使用较低的频率向”Down”状态的邻居发送Hello包。
Attempt该状态仅对NBMA 网络上的邻居有效,表示最近没有从邻居收到信息,但仍需作出进一步的尝试,用以与邻居联系。这时按HelloInterval的间隔向邻居发送Hello包。
Init在此状态时,表示收到了由邻居发送的Hello 包,但还没有建立与邻居的双向通讯(也就是说,路由器自身没有出现在该邻居的Hello包中)。从关联接口发出的Hello包中列出所有达到此状态(或更高状态)的邻居。
2-Way在此状态时,两台路由器的通讯达到双向,这是通过Hello 协议而实现的。并且是建立邻接前的最高状态。DR(BDR)是从达到2-Way或更高状态的邻居中选举出来的。
ExStart这是两台邻居路由器之间建立邻接的第一步。此步的目标是确定路由器的主从,并确定初始的DD 序号。达到此状态或更高状态的邻居会话被称为邻接。
Exchange在此状态的路由器通过向邻居发送DD 包,来描述其完整的连接状态数据库。每个DD 包都有一个DD 序号,并需要被明确地确认。在任何时候,一次只能发送一个DD 包。在此状态下,允许向邻居发送LSR 包来取得较新的LSA。所有达到Exchange或更高状态的邻接参与洪泛过程。事实上,这些状态的邻接完全有能力传送和接收所有类型的OSPF路由协议包。
Loading在此状态下,向邻居发送LSR 包来取得较新的LSA。就是在Exchange状态下发现(但还没有接收到)的那些LSA。
Full在此状态下,邻居路由器达到完全邻接。现在开始这些邻接将出现在Router-LSA 和Network-LSA 中。

1.5 OSPF五种报文:

OSPF报文是直接封装在IP报文中的,IP报文头部中的协议字段的值必须为89。

(1) Hello报文:周期性的发送用来建立和维护邻接关系,报文内容主要包括DR、BDR以及已知邻居。

(2) DD报文:是两台路由器在邻接关系初始化时,用DD报文来描述自己的LSDB,进行数据库的同步。报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA)。

(3) LSR报文:发送LSR报文向对方请求所需的LSA,只有在邻居双方成功交换了DD后才会发送LSR。内容包括所需要的LSA的摘要。

(4) LSU报文:发送对方所需要的LSA或者泛洪自己更新的LSA。内容是多条LSA(全部内容)的集合。

(5)LSAck报文:用来对接收到的LSU报文进行确认。一个LSAck报文可对多个LSA进行查看。

OSPF的五种报文格式:
OSPF五种报文具有相同的报文头格式,长度为24字节。
OSPF报文头格式
报文头格式

字段长度含义
Version1字节版本,OSPF的版本号。对于OSPFv2来说,其值为2。版本2支持IPV4;版本3支持IPV6,兼容IPV4。
Type1字节类型,OSPF报文的类型,有下面几种类型:Hello报文、DD报文、LSR报文、LSU报文、LSAck报文。
Packet length2字节OSPF报文的总长度,包括报文头在内,单位为字节。
Router ID4字节发送该报文的路由器标识
Area ID4字节发送该报文的所属区域
Checksum2字节校验和,包含除了认证字段的整个报文的校验和。
AuType2字节验证类型,值有如下几种表示, 0:不验证;1:简单认证;2:MD5认证。
Authentication8字节鉴定字段,其数值根据验证类型而定。> 当验证类型为0时未作定义;> 类型为1时此字段为密码信息;>类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信息。>MD5验证数据添加在OSPF报文后面,不包含在Authenticaiton字段中。

(1)OSPF Hello报文格式
Hello报文格式

字段长度含义
Network Mask32比特发送Hello报文的接口所在网络的掩码。
HelloInterval16比特发送Hello报文的时间间隔,默认为10s。
Options8比特可选项:(1) E:允许Flood AS-External-LSAs (2) MC:转发IP组播报文 (3) N/P:处理Type-7 LSAs (4) DC:处理按需链路
Rtr Pri8比特DR优先级。默认为1。如果设置为0,则路由器不能参与DR或BDR的选举。
RouterDeadInterval32比特失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。
Designated Router32比特DR的接口地址。
Backup Designated Router32比特BDR的接口地址。
Neighbor32比特邻居,以Router ID标识。

(2)OSPF DD报文格式
DD报文中的LSA Header只占一条LSA的整个数据量的一小部分,这样可以减少路由器之间的协议报文流量,对端路由器根据LSA Header就可以判断出是否已有这条LSA。在两台路由器交换DD报文的过程中,一台为Master,另一台为Slave。由Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。
DD报文格式

字段长度含义
Interface MTU16比特在不分片的情况下,此接口最大可发出的IP报文长度。
Options8比特可选项:(1) E:允许Flood AS-External-LSAs (2) MC:转发IP组播报文 (3) N/P:处理Type-7 LSAs (4) DC:处理按需链路
I1比特当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。
M (More)1比特当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。
M/S (Master/Slave)1比特当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。
DD sequence number32比特DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。
LSA Headers可变该DD报文中所包含的LSA的头部信息。

(3)OSPF LSR报文格式
两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的和哪些LSA是已经失效的,这时需要发送LSR报文(Link State Request Packet)向对方请求所需的LSA。内容包括所需要的LSA的摘要。LSR报文格式如下图所示,其中LS type、Link State ID和Advertising Router可以唯一标识出一个LSA,当两个LSA一样时,需要根据LSA中的LS sequence number、LS checksum和LS age来判断出所需要LSA的新旧。
LSR报文格式

字段长度含义
LS type32比特 LSA的类型号。
Link State ID32比特根据LSA中的LS Type和LSA description在路由域中描述一个LSA。
Advertising Router32比特产生此LSA的路由器的Router ID。

(4)OSPF LUR报文格式
用来向对端Router发送其所需要的LSA或者泛洪自己更新的LSA,内容是多条LSA(全部内容)的集合。LSU报文(Link State Update Packet)在支持组播和广播的链路上是以组播形式将LSA泛洪出去。为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认。对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。
LUR报文格式

字段长度含义
Number of LSAs32比特LSA的数量。

常用的LSA共有5种,分别为:Router-LSA、Network-LSA、Network-summary-LSA、ASBR-summary-LSA和AS-External-LSA。

1)所有的LSA都有相同的报文头:
LSA报文头

字段长度含义
LS age16比特LSA产生后所经过的时间,以秒为单位。无论LSA是在链路上传送,还是保存在LSDB中,其值都会在不停的增长。
Options8比特可选项:(1) E:允许Flood AS-External-LSAs (2) MC:转发IP组播报文 (3) N/P:处理Type-7 LSAs (4) DC:处理按需链路
LS type8比特LSA的类型:(1) Type1:Router-LSA (2) Type2:Network-LSA (3) Type3:Network-summary-LSA (4) Type4:ASBR-summary-LSA (5) Type5:AS-External-LSA (6) Type7:NSSA-LSA
Link State ID32比特与LSA中的LS Type和LSA description一起在路由域中描述一个LSA。
Advertising Router32比特产生此LSA的路由器的Router ID。
LS sequence number32比特LSA的序列号。其他路由器根据这个值可以判断哪个LSA是最新的。
LS checksum16比特除了LS age外其它各域的校验和。
length16比特LSA的总长度,包括LSA Header,以字节为单位。

2)Router-LSA
Router-LSA(Type1):每个路由器都会产生,描述了路由器的链路状态和花费,在所属的区域内传播。
Router-LSA

字段长度含义
Link State ID32比特生成LSA的Router ID。
V (Virtual Link)1比特如果产生此LSA的路由器是虚连接的端点,则置为1。
E (External)1比特如果产生此LSA的路由器是ASBR,则置为1。
B (Border)1比特如果产生此LSA的路由器是ABR,则置为1。
#links16比特LSA中所描述的链路信息的数量,包括路由器上处于某区域中的所有链路和接口。
Link ID32比特路由器所接入的目标,其值取决于连接的类型:1:Router ID; 2:DR的接口IP地址; 3:网段/子网号; 4:虚连接中对端的Router ID。
Link Data32比特连接数据,其值取决于连接的类型:(1) unnumbered P2P:接口的索引值; (2) stub网络:子网掩码; (3) 其它连接:路由器接口的IP地址。
Type8比特路由器连接的基本描述: 1:点到点连接到另一台路由器; 2:连接到传输网络; 3:连接到stub网络; 4:虚拟链路。
#TOS8比特连接不同的TOS数量。
metric16比特链路的开销值。
TOS8比特服务类型。
TOS metric16比特和指定TOS值相关联的度量。

3)Network-LSA
Network-LSA(Type2):由广播网或NBMA网络中的DR产生,Network-LSA中记录了这一网络上所有路由器的Router ID,描述本网段的链路状态,在所属的区域内传播。
Network-LSA

字段长度含义
Link State ID32比特DR的接口IP地址。
Network Mask32比特该广播网或NBMA网络地址的掩码。
Attached Router32比特连接在同一个网络上的所有路由器的Router ID,也包括DR的Router ID。

4)Summary-LSA格式
Network-summary-LSA(Type3):描述区域内所有网段的路由,并通告给其他相关区域。
ASBR-summary-LSA(Type4):描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。
Type3和Type4的LSA有相同的格式,它们都是由ABR产生。
Summary-LSA

字段长度含义
Link State ID32比特通告的网络地址。如果是ASBR Summary LSA,此字段表示ASBR的Router ID。
Network Mask32比特该广播网或NBMA网络地址的掩码。如果是ASBR Summary LSA,此字段无意义,设置为0.0.0.0。
metric24比特到目的地址的路由开销。
TOS8比特服务类型。
TOS metric24比特和指定TOS值相关联的度量。

通告缺省路由时,Link State ID和Network Mask都设置为0.0.0.0。

5)AS-External-LSA
AS-External-LSA(Type5):由ASBR产生,描述到AS外部的路由,这是五种LSA中,唯一一种通告到所有区域(除了Stub区域和NSSA区域)的LSA。
AS-External-LSA

字段长度含义
Link State ID32比特通告的网络地址。
Network Mask32比特通告的目的地址的掩码。
E1比特外部度量值类型: 0:第一类外部路由; 1:第二类外部路由。
metric24比特到目的地址的路由开销。
Forwarding Address32比特到所通告的目的地址的报文将被转发到这个地址。
External Route Tag32比特添加到外部路由上的标记。OSPF本身并不使用这个字段,它可以用来对外部路由进行管理。
TOS8比特服务类型。
TOS metric24比特TOS附加距离信息。

Type5的LSA可以用来通告缺省路由,此时Link State ID和Network Mask都设置为0.0.0.0。

(5)OSPF LSAck报文格式
用来对接收到的LSU报文进行确认。内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)。LSAck(Link State Acknowledgment Packet)报文根据不同的链路以单播或组播的形式发送。
LSAck报文格式

字段长度含义
LSAs Headers可变通过LSA的头部信息确认收到该LSA。

1.6 OSPF路由器类型

OSPF路由器类型
(1)内部路由器
路由器的所有接口都属于同一个区域,则称它为内部路由器,图中的AR3、AR5为内部路由器;
(2)骨干路由器
路由器中包含有属于Area 0(骨干区域)的接口,这样的路由成为骨干路由,图中的AR2、AR3、AR4为骨干路由器;
(3)区域边界路由器(ABR)
路由器的某些接口属于Area 0,其他接口属于别的区域,这样的路由称为ABR,图中的AR2、AR4为区域边界路由器;
(4)自治边界路由器(ASBR)
路由器是与本OSPF网络(自治系统)之外的网络相连的,并且可以将外部网络的路由信息引进本OSPF网络的路由为ASBR。

二、OSPF-P2P

测试拓扑
实验目的:

通过在R1、R2、R3、R4上配置P2P网络,在各接口上进行抓发分析,了解OSPF在P2P网络上的运行状态,以及路由器之间建立邻接关系的过程原理。(以少到多进行分析)
主要命令配置如表1所示:

表1.单区域P2P的配置命令

R1配置命令
[R1]router id 1.1.1.1
[R1-G0/0/0]ip address 192.168.1.1 24
[R1-G0/0/0]ospf network-type p2p//启动ospf
[R1-G0/0/3]ip address 192.168.3.1 24
[R1-G0/0/3]ospf network-type p2p
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255//一般宣告两个网络,即它的已知网络
R2配置命令
[R2]router id 2.2.2.2
[R2-G0/0/0]ip address 192.168.1.2 24
[R2-G0/0/0]ospf network-type p2p
[R2-G0/0/1]ip address 192.168.2.1 24
[R2-G0/0/1]ospf network-type p2p
[R2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
R3配置命令
[R3]router id 3.3.3.3
[R3-G0/0/1]ip address 192.168.2.2 24
[R3-G0/0/1]ospf network-type p2p
[R3-G0/0/2]ip address 192.168.3.1 24
[R3-G0/0/2]ospf network-type p2p
[R3-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
R4配置命令
[R4]router id 4.4.4.4
[R4-G0/0/2]ip address 192.168.3.2 24
[R4-G0/0/2]ospf network-type p2p
[R4-G0/0/3]ip address 192.168.4.1 24
[R4-G0/0/3]ospf network-type p2p
[R4-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
right-aligned [R4-ospf-1-area-0.0.0.0]network 192.168.4.0 0.0.0.255

单区域P2P的总结:

  • 使用组播224.0.0.5发送OSPF报文;
  • OSPF在形成neighbor关系后,就直接同步LSDB,不选取DR、BDR;
  • 在多路由P2P模式下,会比较明显的产生LSAck报文中回复个别LSU报文的情况,需要仔细查看其中的Sequence Number,确保哪个报文是最新的LSU报文。
  • 在P2P模式下,路由只与其相邻的且有数据线相连接的路由器建成邻居关系,而不会跨路由建成邻居。

2.1 分析R1、R2之间的ospf

交互信息
(图1-1)

如图1-1所示,在该网络模式下,所有路由器发出的交互报文均发送在组播224.0.0.5上,且其他路由检测并接收组播上的信息。

设备状态
(图1-2)

如图1-2所示,在图中标红框处可以清楚的看到p2p模式下只出现了Init,ExStart,Exchange,Loading,Full五种状态。
而在ospf中路由器只有达到two-way的状态下才能选举DR、BDR,显然P2P模式下并不能选举DR以及BDR。

设备DR/BDR状态
(图1-3)

如图1-3所示,利用display ospf peer也可以看出DR/BDR均为None,同样也可得知,P2P模式下不选举DR以及BDR。
在State字段下可知邻居状态为full且邻居的Mode为Slave。具体分析第2点第3)小点中讨论。

交互图
(图1-4)
如图1-4所示:

  • 在P2P网络中前三个hello报文为建立邻居关系,在P2P网络中只需要传递一次邻居,猜测是为防止双方变为2-way状态而选举DR、BDR;
  • 第一类DD:前两份DD报文(报文13、14)用来选举主从,控制起始序列号,并没有LSA头部信息;
  • 第二类DD:报文15、17,用来描述自身存在的LSA信息,但所携带的是LSA头部信息,作为Master的一方定义一个序列号Seq,Master每发送一个新的DD报文将Seq加1,作为Slave的一方,发送DD报文时使用接收到的上一个Master的DD中的Seq,作为隐形回答;
  • 第三类DD:报文20,用来进行隐式确定,实验中为R2完成了自身的LSDB构建,R1发一个确认表示自己知道了;
  • LSR报文:用于向对方请求LSA信息,携带的是LSA头部信息;
  • LSU报文:用于发送对方所需要的拓扑信息和网路信息;
  • LSAck报文:用于对接收的LSU报文进行确认,内容是需要确认的LSU的头部信息。

运行流程:(以R2-R1为例)

在R1、R2上配置完P2P命令后,首先发送Hello报文建立邻居关系,第二步发送DD报文确认主从以及序列号,紧接着利用DD报文发送自身的LSA头部信息,第三步R2根据R1发送过来的15号DD报文中的LSA头部信息发送LSR报文(16号)向R1请求自身没有的LSA信息,R1发送LSU报文(18号),其中携带着LSA详细报文给R2,使其更新自己的LSDB,最后再发送一个LSU报文更新报文【也叫泛洪报文,详细见(6)】,使对方接收到后返回一个LSAck确定报文,使认定对方为FULL状态。
状态分析:
其中在R1给R2发送完认定R2为邻居的Hello报文后,R2直接发送DD报文给R1的状态分析:可能是为防止R1进入2-way状态而选举DR、BDR,加快其中运行进程。甚至直接跳过该状态,在后续加入多个路由原理一致。

(1)分析Hello报文
如图(1-6)报文10为R1发送的hello组播,其邻居列表中并未有邻居,证明R1,R2未建立成邻居关系;而在图(1-5)报文12中,其hello包中存在2.2.2.2的邻居,证明R1已经将R2建为邻居,进入Init状态。
Hello报文详解1
(图1-5)报文12
Hello报文详解2
(图1-6)

关于Hello报文的总结:

  • Hello报文的功能是发现、建立、维持邻居关系,在多路访问(MA)环境下选举DR、BDR,显然在P2P环境下并不选举DR、BDR;
  • 未宣告某网段则不会向该网段的接口发送Hello报文,则无法发现并建立邻居关系;同时,该网段的路由不会下发至路由表,尽管lsdb内有相关数据。路由器会与网络中其他收到Hello报文的路由器协商报文中的指定参数,包括区域号、验证模式、发送Hello报文的时间间隔、路由器失效时间等参数,如果协商一致,则在返回的Hello报文的邻居列表中添加发送该报文设备的Router ID,双方建立双向通信,即邻居关系建立。如果在路由器失效时间内没有收到邻居的Hello报文,则会中断邻居关系。

(2)分析DD报文
如图1-7、图1-8所示,为进入ExStart状态后的第一次DD报文,其中第一次交互DD报文是认证主从,所以无LSA头部文件。在图中可以看到1.2以及1.1发出的DD包中MS都为1,即双方接收到对方发出的第一个DD报文开始比较Router id,结果显然R2为主(如图1-9),以R2发出的相同的序列号为隐式认证回复R2“R1的MS为0,R2为Master,R1为Slave”。即主从认定完成,进入Exchange。
DD报文详解1
(图1-7)
DD报文2
(图1-8)
DD报文3
(图1-9)

对DD报文的总结:

  • 对于主从DD交互的过程中,主机发送DD包的序列号与回复该报文包的从机发出的DD报文的序列号应该一致,才能确保此DD报文传输可靠。
  • First DD报文不携带LSA头部信息,主要作用只是确定主从(比较Router id,越大越优先),Master负责发送序列号递增的DBD报文,如果Master没有收到回应,则Master会间隔5秒重传该DBD,直到收到Slave为止。
  • 作为Master的一方定义一个序列号seq,每发送一个新的DD报文将seq加一。作为Slave的一方,每次发送DD报文时使用接收到的上一个Master的DD报文中的seq。LSA详细信息在LSAUpdate中。

(3)分析LSR报文
LSR报文
(图1-10)

对LSR报文的总结:

  • 向邻居发送LSR请求新的LSA。路由器发送LSR报文,请求那些在Exchange状态下通过DD报文发现的、并且在本地LSDB中没有的链路状态信息。

(4)分析LSU报文
在LSU中我们可以发现,再发送了报文18之后有发送了一次报文23,但其中内容多了一个PTP信息,即拓扑信息,而PTP与Stub是一组信息,不可拆分,为拓扑信息以及网络信息。
LSU报文1
LSU报文2
对LSU报文的总结:

  • 用于传递路由信息。路由器发送的LSU报文中包含了那些被请求的链路状态的详细信息。 路由器在完成LSU报文的接收之后,会将邻居状态从Loading变为Full。

(5)分析LSAck报文
LSAck报文

在上述的LSAck报文中,标识号为0x8000002,上面也有发现标识号为0x8000001的LSU报文,显然号数大的为最新的,最新的LSU报文(22号)覆盖了之前的LSU(21号)报文信息,所以LSAck只回复最新的LSU报文。【详细见下述(6)的讨论分析】
LSAck报文2

对LSAck报文的总结:

  • 路由器接收完LSU报文后会发送LSAck报文,作为对LSU报文的确认。邻居收到LSAck报文后,双方便建立起了完全的邻接关系。
  • 一个LSAck报文中可以回应多个LSU报文。

2.2 增加P2P网络上的路由,观察后续报文情况

在这里插入图片描述
对于新加一个P2P路由而言,较远的非邻居路由会收到上图的LSU来更新自己的LSDB,即R1会收到由R2转发的LSU更新信息,并不会直接收到R3的更新信息,之后R1在对R2进行LSAck反馈。

在这里插入图片描述

在P2P网络中加入了R3,并在R2、R3上进行P2P的配置并抓包,其中流程与上述两台的基本一致,其中关于LSAck报文的回应在该处进行详细分析。
在上述中只针对15、20、21三个报文进行分析:

在这里插入图片描述
如上图所示在LSU报文(15、20)中,2.2有03、04,而在LSAck报文(21)中只向04进行反馈,可知对于同种LSU,标识号大的会将标识号较小的覆盖,而LSAck只回应标识号大的LSU。
同时可以发现报文21对报文15和报文20进行反馈,所以LSAck可以对多个LSU进行反馈。

2.3 进行各种display查看四台路由的信息

  1. display ospf 1 brief//查看相关ospf
    在这里插入图片描述

  2. 利用display ospf interface查看//接口信息**(路由内容基本一致,暂以R3进行分析)**
    在这里插入图片描述

  3. display ospf peer//查看OSPF部分信息
    在这里插入图片描述

  4. display ospf lsdb//查看LSDB库中的信息
    在这里插入图片描述

  5. display ospf routing//查看ospf路由表信息
    在这里插入图片描述

  6. display ospf lsdb router//查看lsdb库中的详细信息
    在这里插入图片描述

三、分析LSA信息

(1)Router-LSA(Type1)//每个路由都会产生
在这里插入图片描述
总结:每种链路类型在什么情况下会出现?

  • P2P:非MA link上会有P2P link state。(OSPF网络类型:P2P P2MP)
  • Stub:仅当有stub link,如没有邻居的ethernet ,or secondary address 网络,loopback 接口网络or P2P link上的网络号都是以stub形式出现。
  • Transit:MA网络中每台路由器都会产生transit类型的LSA1。
  • Virtual Link:在建立了虚链路的情况下会产生Virtual link的LSA1。
Link TypeLink IDLink Data
P2P邻居的RID自己接口的IP
Stub网络号掩码
TransitDR的接口地址自己接口的IP
Vritual link邻居的RID自己接口的IP

(2)Network-LSA(Type2)
在这里插入图片描述
总结:

  • 该类型LSA记录了这一网络上的所有路由器的Router id,并描述本网段的链路状态,在所属的区域内传播;
  • 该类型的LSA只由DR产生,其余路由均不产生该信息。
  • 如果—台ABR在与它本身相连的区域内有多条路由可以到达目的地,那么它将只会始发单一的一条网络汇总LSA到骨干区域,而且这条网络汇总LSA是上述多条路由中代价最低的。
  • transit网络结构中描述了广播类型网络结构上的邻居信息,通过Link-ID描述了广播网络中DR路由器的接口IP地址,通过Link-Data描述了和网络相连的始发路由器接口的IP地址。注意此处没有描述transit的网段信息,因为广播型网络中网络信息是通过2类LSA,由DR进行统一描述的,这一点也同时解释了为什么在广播类型的网络类型中需要保证接口的掩码一致才能形成邻居。(需要维护邻居的链路类型)

(3)Summary-LSA(Type3)//由ABR产生
在这里插入图片描述

总结:

  • 功能:用于在区域之间传递路由信息。
  • 特点:在穿越不同区域时,是由其他的ABR重新产生。即:ADV router是变化的。同时在完全末梢区域是不存在3类LSA的,即末端路由是不会产生3类LSA。

在P2P环境下,3类LSA是对Type1的汇总,而在MA的环境下,3类LSA是对Type1和Type2的汇总。

(4)ASBR-summary-LSA(Type4)

在这里插入图片描述
类型4的LSA包是由ASBR所在区域的ABR产生的,是通告整个OSPF网络告知ASBR的位置,显然在该信息中可以看出,该包是由R2产生标明ASBR是R3,Router ID为3.3.3.3。

(5)AS-External-LSA(Type5)

在这里插入图片描述

Forwarding Address为信息到通告的1.0网络时会被转发到这个地址上,而External Route Tag是添加到外部路由上的标记。OSPF并不使用,可以用于对外部路由的管理。传输到外部网络中存在开销问题,下面对各表示类型的开销进行讨论:

OE1开销 = 外部开销+内部开销 OE2开销 = 外部开销 = 20(默认)

在这里插入图片描述

总结:

  • 当OSPF路由器获得一条LSA5,在装进路由表之前会检查“转发地址(Forwarding Address)”是否可以通过Area内或Area间路由到达,若不可达,不会装进路由表。
  • LSA5由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了STUB区域和NSSA区域)

(6)NSSA external LSA(Type7)

在这里插入图片描述

7类L SA只能在NSSA区域中泛洪,从NSSA重分布进来的外部路由,到达ABR时,ABR会将7类LSA转换成5类LSA (5类LSA不允许在NSSA中传递)传播到area0,从而传递给整个OSPF路由域

类型由什么路由产生路由中所携带的信息
Router-LSA(Type 1)所有路由路由信息
Network-LSA(Type 2)DR本网段的所有路由ID
Network-Summary-LSA(Type 3)区域边界路由(ABR)网段信息
ASBR-summary-LSA(Type4)ABRASBR的路由器ID
AS-External-LSA(Type5)ASBRAS外部路由信息
NSSA external LSA(Type7)ASBRNSSA区域的路由信息

总结:

  • 在什么情况下OSPF会在LSDB中存在大量未老化的LSA:当设备剩余内存降低时,SOCK会优先上送队列优先级较高的报文,当剩余内存很低时,除了Hello报文之外的其他协议报文均不上送,造成LSA无法得到更新,Age值达到3600s之后,OSPF无法计算出路由,并且由于ACK报文也不上送,造成LSDB无法老化。#摘自Hedex文档

四、OSPF-P2P多区域(注释:全网段抓包,为方便解释,会穿插多种路径的包)

在这里插入图片描述

实验目的:

通过在R1、R2、R3、R4上配置P2P网络,在各接口上进行抓发分析,了解OSPF在P2P网络上的运行状态,以及路由器之间建立邻接关系的过程原理。(以少到多进行分析)
主要命令配置如表2所示:

表2.OSPF-P2P多区域的配置命令

R1配置命令
[R1]router id 1.1.1.1
[R1-G0/0/0]ip address 192.168.1.1 24
[R1-G0/0/0]ospf network p2p
[R1-G0/0/1]ip address 192.168.3.2 24
[R1-G0/0/1]ospf network p2p
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
R2配置命令
[R2]router id 2.2.2.2
[R2-G0/0/0]ip address 192.168.1.2 24
[R2-G0/0/0]ospf network p2p
[R2-G0/0/1]ip address 192.168.2.1 24
[R2-G0/0/1]ospf network p2p
[R2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.1]network 192.168.2.0 0.0.0.255
R3配置命令
[R3]router id 3.3.3.3
[R3-G0/0/0]ip address 192.168.5.2 24
[R3-G0/0/0]ospf network p2p
[R3-G0/0/1]ip address 192.168.3.1 24
[R3-G0/0/1]ospf network p2p
[R3-ospf-1-area-0.0.0.2]network 192.168.5.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
R4配置命令
[R4]router id 4.4.4.4
[R4-G0/0/1]ip address 192.168.2.2 24
[R4-G0/0/1]ospf network p2p
[R4-ospf-1-area-0.0.0.1]network 192.168.2.0 0.0.0.255
R5配置命令
[R5]router id 5.5.5.5
[R5-G0/0/0]ip address 192.168.5.1 24
[R5-G0/0/0]ospf network p2p
[R5-G0/0/1]ip address 192.168.6.2 24
[R5-G0/0/1]ospf network p2p
[R5-ospf-1-area-0.0.0.2]network 192.168.5.0 0.0.0.255
[R5-ospf-1-area-0.0.0.2]network 192.168.6.0 0.0.0.255
R6配置命令
[R6]router id 6.6.6.6
[R6-G0/0/0]ip address 192.168.1.100 24
[R6-G0/0/0]ospf network p2p
[R6-G0/0/1]ip address 192.168.6.1 24
[R6-G0/0/1]ospf network p2p
[R6-ospf-1-area-0.0.0.2]network 192.168.6.0 0.0.0.255
[R6-ospf-1-area-0.0.0.2]network 192.168.1.0 0.0.0.255

在这里插入图片描述

分析在AR5-AR6之间抓的包,可以查看到之间的信息都与P2P之前的交互差不多,但在包75中可以看到其中包含有LSA-type1以及LSA-type3信息,实际上多了几份LSA-type3信息,经过分析可以知道LSA-type3是由ABR(即区域边界路由)产生的,为描述其他网络中的路由信息,而上图可知R2为Area 0和Area 1的区域边界路由,所以该包中会产生类型3的LSA包。

在多区域P2P的实验过程中,在区域中新增一个路由器时,ABR(区域边际路由)会向本区域通告他知道的所有路由信息,若通告网段在其余区域,则会使用type3进行全网通告,若通告信息为本区域内的路由信息,则会使用type1进行区域内通告。

P2P多区域总结:
在多区域P2P网络中,一旦增加了其他区域的网络只会宣告一次,即未到死亡时间之前都不会再次宣告,在新路由的端口上配置了一个网段,即利用ABR产生LSA-type3向其余区域路由进行宣告,而当其他区域的路由间构成了邻居,并不会更新链路。所以汇总的说,多区域减少了单区域状态下的链路复杂度的问题,将非骨干区域中的网段构成一个网段LSDB,大大减轻了路由器的记载量。

在这里插入图片描述

1. 各种报文分析

(1) Hello报文

Hello报文的运行与单区域的相同,不在讨论。

(2) DD报文

前两个选取主从与单区域相同,在第三个包中出现了type3的LSA,如下:
在这里插入图片描述

(3) LSR报文

LSR报文是根据DD摘要中的LSA头部信息向邻居请求对方所具有的而自己不具有的LSA,基本流程与单区域相同。图中所有LSA都是头部信息。

在这里插入图片描述

总结:

在报文中不会包括有其他区域的路由详细信息,只会存在外部区域的网段,且以LSA-type3的形式进行全网通告。

(4) LSU报文

LSU报文是反馈LSR报文的,其中包含有对方所请求的LSA的详细信息。

在这里插入图片描述

(5) LSAck报文

LSAck报文是对接收到LSU报文的反馈,其中还有LSU报文中所携带的LSA的头部信息。

在这里插入图片描述

2、进行display的分析

1)display ospf lsdb

在这里插入图片描述
(图4-1)

如图4-1所示,在内部路由器中,LSDB中的数据分为,内网以及外部区域,内网以路由地址存放在库内,而外部区域的信息以网段的形式存放在库内。

在这里插入图片描述
(图4-2)

如图4-2所示,在ABR路由器中,我们可以看出它的LSDB库中存在着两个区域的LSA信息,显然两个区域内的信息是不相同的。是根据ABR定的。

总结:

  • 在LSDB库中,其他区域以Sum-Net网络汇总的形式存放入库中,而内网中的信息则以路由信息的方式存放,其中Metric为实际路由开销;
  • LSDB库是分区域进行信息的保存的,所以在ABR(区域边界路由器)上可能会存在两个或多个LSDB库信息。

2)display ip routing-table protocol ospf

在这里插入图片描述

3)display ospf brief

在这里插入图片描述

4)display ospf peer//查看路由器基本信息

在这里插入图片描述

5)display ospf lsdb summary

在这里插入图片描述

在ABR上的dis ospf lsdb summary

在这里插入图片描述

总结:

  • 在ABR上,可能存在多个区域的汇总信息,而各区域的汇总网络信息相同但发出的路由是不同的,即在area 0的路由是从R3(3.3.3.3)上学习的5.0网络,而在area 1中的路由是从R2(2.2.2.2)中学习到的5.0网络信息,所以我们知道汇总信息的发出路由经过一个ABR路由器则改变;
  • 同一个区域的汇总信息完全相同。

五、DR\BDR的选举

5.1 选举的原因

在广播网络和NBMA网络中,任意两台路由器之间都要传递路由信息。如图5-1所示,网络中有n台路由器,则需要建立n*(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。

为解决这一问题,OSPF定义了DR。通过选举产生DR后,所有其他设备都只将信息发送给DR,由DR将网络链路状态LSA广播出去。
为了防止DR发生故障,重新选举DR时会造成业务中断,除了DR之外,还会选举一个备份指定路由器BDR。这样除DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息,这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量。

在这里插入图片描述
(图5-1)

5.2 选举规则

在DR和BDR选举过程中:自动选举、手工选举

自动选举:

  • 优先比较两台路由器之间的DR优先级
  • 优先级相同的情况下比较两台路由器的Router ID,Router ID大的路由将被选举成DR或BDR。而Router ID适用于自治系统中唯一标识一台路由

手工选举:

  • 优先级范围是0-255,数值越大,优先级越好,默认为1;
  • 优先级相同,比较Router ID;
  • 如果优先级被设为0,则不参与DR和BDR的选举。

5.3 DR、BDR的特点

  • 不抢占,DR正常工作时,即使有新的优先级比DR高的路由器也不能抢占成为DR。
  • DR正常时,BDR只接收所有信息,转发LSA和同步LSDB的任务由DR完成,当DR故障时,BDR自动成为DR,完成原DR的工作,并选举新的BDR。
  • DR是个接口概念。每个网段都会选举DR。
  • 不同网段分别选DR/BDR

检测问题:DR同时监测220.0.0.5和220.0.0.6网段,BDR、DROther从0.5网段获取信息

六、OSPF - 广播网络

在这里插入图片描述

实验目的:

分析广播类型下的OSPF协议是如何进行DR/BDR的选举的,查找并发现广播网络与P2P网络的区别,分析选举详细分析二类路由Network-LSA。

R1配置命令
R2配置命令
[R1]router id 1.1.1.1
[R1-E0/0/0]ip address 192.168.1.1
[R1-E0/0/0]ospf network-type broadcast
[R1-ospf-1-area0.0.0.0]network 192.168.1.0 0.0.0.255(0.0.0.255意味着前3个字节(192.168.1)是不变的,最后1个字节可以任意更改,也可以理解为:192.168.1.0—192.168.1.255这个范围都在。)
R2配置命令
[R2]router id 2.2.2.2
[R2-E0/0/0]ip address 192.168.1.2
[R2-E0/0/0]ospf network-type broadcast
[R2-ospf-1-area0.0.0.0]network 192.168.1.0 0.0.0.255
R3配置命令
[R3]router id 3.3.3.3
[R3-E0/0/0]ip address 192.168.1.3
[R3-E0/0/0]ospf network-type broadcast
[R3-ospf-1-area0.0.0.0]network 192.168.1.0 0.0.0.255
R4配置命令
[R4]router id 4.4.4.4
[R4-E0/0/0]ip address 192.168.1.4
[R4-E0/0/0]ospf network-type broadcast
[R4-ospf-1-area0.0.0.0]network 192.168.1.0 0.0.0.255

总结:

  • DRother发送LSA给DR、BDR用224.0.0.6;DR发送LSA给DRother用224.0.0.5。
  • 当网络中已经选举了DR、BDR后,又出现了1台新的优先级更高的路由器,若链路中的DR\BDR没有同时出错,DR、BDR是不会重新选举的。
  • 在该类型的网络中通常以主播形式发送Hello、LSU以及LSAck报文,以单播的形式发送DD、LSU报文。

6.1 分析Hello报文,查看DR/BDR选举

(1) 广播网络中,Hello报文用于建立和维护邻居关系并选举DR和BDR。

(2) 在图(4-1)中,报文19、21、22为其他路由器采用组播的方式发出的Hello报文至224.0.0.5(指所有ospf路由器的地址),用来让对方发现自己和自己的邻居,并且在Hello报文中宣称自己是DR,当R4接收报文19、21、22后,发现他们的Router-ID都小于自己的Router-ID,即向外发出25号Hello宣称自己为DR。(其他路由器接到以相同形式接收完Hello报文后,比较Router-ID,确定R4为DR)。而我们发现在报文22中,他的报文长度为82,证明他已有一个邻居位于他的邻居列表中,我们可以知道实际上在选举DR以及BDR时,一般是存在一个缓冲时间而不是一接收到一个邻居就开始选举DR/BDR。

(3) 报文26、27、28为其他路由器以相同的形式接收完Hello报文之后,在报文中首先宣告自己确定R4(192.168.1.4)为DR,从而所有的路由与R4建立邻接关系。

(4) 在之后的包中同时比较Router-ID选举真正的BDR,最后通过比较确定R3(192.168.1.3)为BDR,则R1、R2为DROther。如图(4-2)

在这里插入图片描述

(5) 在后续实验中发现,当网络中已经选举了DR、BDR后,又出现了1台新的优先级更高的路由器,DR、BDR是不会重新选举的;

(6) 在DR、BDR选举完成后,DRother只和DR、BDR形成邻接关系,所有路由器将组播Hello包到224.0.0.5,以便它们能跟踪其他邻居的信息。DRother只组播updateacket到224.0.0.6,只有DR/BDR监听这个地址。一旦出问题,反过来, DR将使用224.0.0.5泛洪更新到其他路由器。

总结:

(1) 首个Hello数据包不包含Active Neighbor(邻居)字段,且DR与BDR字段的值为空。

(2) 建立邻居的条件:

  • 路由器接口的area-id必须一致
  • 路由器接口的认证,hello时间间隔,死亡时间必须一致
  • STUB标识(末节标识)必须一致

达到上诉三种情况,路由器才会进入two-way状态,进行DR、BDR的选举。

(3)DRother发送LSA给DR、BDR用224.0.0.6;DR发送LSA给DRother用224.0.0.5。

6.2 利用两个到多个路由进行分析

(1) 初始两个

在这里插入图片描述

如图4-3所示,在该部分我们可以看到广播网络的交流从选完DR、BDR之后以单播的形式进行主从的选举以及邻居的认证。

(2) 增加一台路由查看其交互情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图4-4是选举出DRother后的交互图,我们可以发现大部分信息都在选举出DR时交互完成,在该阶段知识进行BDR信息的确认,看到DRother并不会将信息发至224.0.0.5的组播中,而是经过R2(DR)的转发,将信息告知全网。(符合第五章的讨论)

其次再增加了一个路由信息后,我们可以发现其中增加的R3的router id明显大于R1、R2但并未抢占R2的DR地位,而是将BDR的位置顶占,这里我们知道当路由器为损坏的情况下,无论加入多优先的路由都不会抢占正在运行的DR,而是会顶替备选BDR。(符合第五章的讨论)

(3) 增加第四台路由查看交互信息

在这里插入图片描述

6.3 利用各种 display 查看相关信息

(1)利用display ospf lsdb查看LSDB库

在这里插入图片描述

(2)利用display ospf peer查看邻居信息

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 在图中我们可以发现DR(R4)、BDR(R3)与所有的路由都形成了FULL状态,即邻接关系,而在DRother之间(R1-R2)并没有达到FULL状态,而只是停留在2-Way状态,所以DRother之间不建立邻接关系,而只建立邻居关系。
  • 而在Mode中可以看见,Router ID更小的都是Slave(从),而Router ID 大的都是Master(主)。
  • 同样在该信息中可以看出DR为1.4,BDR为1.3。

(3)利用display ospf brief查看该路由的详细信息

在这里插入图片描述

在该信息中可以明确到该路由为什么State类型,且所有路由的包死亡的更新,死亡等时间都是一致的。这是为了确保能选举DR、BDR。

(4)利用display ospf routing

在这里插入图片描述

(5)利用display ospf lsdb network查看链路信息

在这里插入图片描述

6.4 分析MA与P2P的区别

(1)关于接口状态的区别

P2P网络下:

在这里插入图片描述

MA网络下:

在这里插入图片描述

在MA网络下,DRother与DR、BDR之间建立FULL邻接关系,而与其他DRother只建立2-Way邻居关系,DR与BDR之间也进入FULL状态建立邻接关系;而在P2P网络下,所有相邻的两个路由都会进入FULL邻接关系。

(2)关于选举DR、BDR的区别

显然在P2P网络下不选举DR、BDR,而在MA网络下选举DR、BDR。

七、虚链路(不稳定)

(1)原理:

虚连接(VC:Virtual Connection)有两种:一种称为永久虚连接(PVC:Permanent Virtual Connection),指网络两端点间固定的连接,可以通过管理功能来修改,必须手工配置。其优点是,每次呼叫都进行虚连接配置,所以快(小于30us),仅由系统相应时间决定。缺点是,这些PVC必须手工配置,不能进行大量PVC配置。

另一种为交换虚连接(SVC:Switched Virtual Connection),又称动态虚连接;是一种动态的虚连接,由终端用户或终端应用发起连接请求,系统临时建立。连接时间由ATM网络决定,在系统拥塞是可能失败。但SVC比PVC具有更高的QoS适应性和带宽利用率。二者都能进行点对点连接和点对多点连接。

1、所谓虚连接是指两个端口节点间的逻辑连接.。每个虚连接在传输数据之前要根据设施的容量参数(QOS)与ATM网络进行协调。

2、低延时ATM是一种面向连接的服务网上任何2个站点在进行数据传输之前都必须通过“建立连接”或“设置呼叫的操作”建立起一条通贯网络的路径这一路径称为虚连接。

3、被删除的节点叫做“虚节点”,其连接称为“虚连接”,3将连接这些“虚节点”的权值修正值置为零,在训练网络时,这些权值不会改变。

(2)作用:

  • 使物理上与骨干区域不直接相连的区域在逻辑上和主干区域相连
  • 当主干区域不连续时,可通过虚连接来连接

(3)条件:

  • 它必须被建立在连接着一个共同区域的两个ABR之间
  • 这两台ABR其中一台必须连接着主干区域

(4)实验:
在这里插入图片描述

实验目的:

OSPF多层次区域使得每个区域都要与骨干区域(Area 0)相连接之后才能互相进行通信,但有时也会出现非骨干区域相邻的情况,如上图所示的情况,此时非骨干区域(Area 1和Area 2)间无法通信,骨干区域也学习不到未相邻的非骨干区域(Area 2)中的路由,而为了不改变网络拓扑,我们可以实现虚连接(virtual link)来扩大骨干区域的面积,实现区域互通。

主要命令配置://在P2P的网络环境下完成

R2配置命令R3配置命令
[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

7.1 不配置虚链路进行互ping

在这里插入图片描述
(图7-1)

同样对于骨干区域的路由来说,并不会学习到Area 2区域中的信息,也就不能互通。

在这里插入图片描述

在该信息下只有一个ABR(R2),所以该结构下area 2区域被隔离,并没有加入本自治区。

7.2 打开虚链路查看结果

在这里插入图片描述
在这里插入图片描述

同时利用display ospf abr-asbr查看Area 0的ABR路由器,发现R3也成为了区域0的ABR,所以认定区域0与区域2互通。

在这里插入图片描述
(图7-4)

总结:

可以使用虚连接的场景:

(1)解决被分割的区域0的问题:通过一个非骨干区域链接分割的骨干区域;

(2)解决非骨干区域没有骨干区域链接的问题:把没有与骨干区域直接相连的非骨干区域通过一个非骨干区域(也叫传输区域)以逻辑通道的形式链接;

(3)解决没有区域0的问题;

(4)区域0没有备份链路的问题:建立虚连接实现区域0的备份。

八、总结

OSPF区域划分的作用:

  1. 减少LSA泛红的范围,维持整个OSPF AS的稳定性,降低路由抖动的频率和范围;

  2. 节约带宽;

  3. 节约硬件损耗

    路由器只知道邻居路由器的路由信息,邻居传邻居,整个拓扑图的路由信息都知道了。
    引入外部路由的方法:

    [R3-LoopBack0]ip add 192.168.1.3
    [R3]acl 2000
    [R3-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
    [R3]route-policy loo0 permit node 10
    [R3-route-policy]if-match acl 2000
    [R3-ospf-1]import-route direct route-policy loo0

  4. Forwarding Address

(1) 关于FA,它有为0或非0两种情况

  • 当FA为非0时,OSPF区域内路由器不会再去寻找ASBR,直接根据FA地址转发。
  • 当FA为0时,OSPF区域内路由首先找到ASBR,再从ASBR到目的地址。这样你就会发现产生了次有路径,所以FA还能解决次优路径。

(2) FA何时为0何时为非0:
如果外部路由的下一跳地址满足,在asbr上。

  • 下一跳地址所对应的网络发布到ospf内;
  • 下一跳所在的link没有slient;
  • 下一跳地址所在的link的网络类型不是P2P或P2MP类型。

若满足上述条件,LSA5 Forwarding Address是非0.0.0.0,等于下一跳地址;

若不满足,则LSA5 Forwarding Address是0.0.0.0 。

(3) 在7类LSA中也存在FA,但是在7类LSA中FA始终为非0。

原因:在NSSA区域,会产生多个ABR,这样如果FA为0时,容易产生次优路径或环路。而FA能避免次优路径。

(4) FA有两大作用:

  • 避免次优路径
  • 避免环路
  1. LSA防环

Type1 LSA/Type2 LSA

区域内LSA1/LSA2,根据LSA1/LSA2而画出的区域内的graph可通过dijkstra算法构建出SPF树。SPF tree是从执行计算的当前节点,即root node到所有其他节点的最短路径成本树,建树的过程就消除了环路。

Type3 LSA

Type 3是在区域间传递网络路由信息的,特定区域结构(非0 Area围着Area 0)及区域边界处的水平分割规则限制从一个区域出来的LSA3不会流回到源区域,避免LSA3路由所致的环路。

Type4 LSA

放环的方式和LSA3一致;区别于LSA3的地方在于LSA3传达的是到目标网段的路径信息;而LSA4传达的是到目标路由器的路径cost信息

Type5 LSA

依赖于LSA3和LSA4来防止环路和选择最优路径。

LSA5在OSPF Domain内Flooding时,没有区域边界的限制,所以LSA类型3的放环规则对LSA5不适用。但LSA5能否进入路由表并导致环路,得依赖于类型3或类型4。

LSA5有Forwarding-Address字域,非0.0.0.0值参看对应的LSA3的选路信息;0.0.0.0值则根据LSA4来选路。只要LSA3和LSA4不致环路出现,LSA5就不致环路出现。

  • 10
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OSPF(Open Shortest Path First)是一种内部网关协议(IGP),用于在IP网络中进行路由选择。它基于链路状态算法,通过交换链路状态信息来计算最短路径,并使用Dijkstra算法来确定最佳路径。OSPF协议具有以下特点: 1. 分层结构:OSPF网络划分为区域(Area),每个区域内部运行独立的OSPF协议,减少了路由表的规模和计算量。 2. 链路状态数据库:每个OSPF路由器都维护一个链路状态数据库(Link State Database),其中存储了该路由器所知道的网络拓扑信息。 3. 链路状态广播:OSPF路由器通过链路状态广播(Link State Advertisement,LSA)将自己所知道的链路状态信息发送给相邻路由器,以便建立网络拓扑图。 4. 最短路径计算:OSPF使用Dijkstra算法计算最短路径树,选择最佳路径。 5. 路由器类型:OSPF定义了不同类型的路由器,包括主干路由器(Backbone Router)、区域边界路由器(Area Border Router)和内部路由器(Internal Router),不同类型的路由器在网络中扮演不同的角色。 6. 路由器优先级:OSPF允许为每个接口设置优先级,优先级高的接口将成为DR(Designated Router)或BDR(Backup Designated Router),负责转发区域内的LSA。 7. 路由汇总:OSPF支持路由汇总,可以将多个子网汇总为一个更大的网络,减少路由表的规模。 通过Cisco Packet Tracer仿真器,可以搭建一个OSPF网络环境,并进行实验配置。你可以使用Packet Tracer中的路由器设备,配置OSPF协议参数,如区域划分、接口优先级、路由汇总等,然后观察路由器之间的链路状态信息交换和最短路径计算过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值