《OSPF网络设计解决方案(第2版)》一2.7 案例分析:使用链路状态数据库

简介:

本节书摘来自异步社区《OSPF网络设计解决方案(第2版)》一书中的第2章,第2.7节,作者 【美】Thomas M. Thomas II, CCIE #9360,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.7 案例分析:使用链路状态数据库

OSPF网络设计解决方案(第2版)
在本章之前的内容中,我们已经学习到了如何使用LSA在OSPF路由器之间发送有关链路的信息。这些LSA被存储于路由器内部的一个数据库中,并且一条LSA将作为该数据库的一条记录。

图2-16给出了本节案例分析所使用的OSPF网络拓扑。

例2-6显示了在HAL9000路由器上使用show ip ospf database命令的输出条目。


cadd4b7ecc06bcce8c7b1352cec8e8abbf4ba32a

注意这里的输出并未包含图2-16中其他区域的信息(即只有区域0的条目),这是因为路由器HAL9000是一台骨干路由器,它的所有接口都位于区域0中。例2-7是在路由器Tokyo上使用相同命令得到的输出,你可以对比查看例2-6中路由器HAL9000的输出。


31e54aa8452c326084655c58f37d8c64433afea7

注意
在许多情况下,人们经常把链路状态数据库称为拓扑数据库。从严格意义上来说,这种命名是不正确的,因为作为描述OSPF v2的RFC 2328文档明确定义了上述数据库的名称,即链路状态数据库。
如例2-7所示,每一条LSA条目所包含的信息都拥有相应的含义,这些信息如下所示(示例中高亮显示的部分)。

标题和概述——Cisco 路由器在显示的 LSA 条目上方给出了有关这些LSA条目的简要介绍信息。首先显示了当前路由器的OSPF RID,用于告知用户正在查看的是哪一台路由器;然后显示了和数据库对应的OSPF路由进程的进程号。Cisco路由器可以运行多个相互独立的OSPF实例(进程)。
区域信息——回顾之前的内容,像ABR这样的路由器可以为OSPF的每个区域各自维护一份独立的链路状态数据库(LSDB)。示例中这一信息显示了LSA的类型和LSDB所属的OSPF区域。

Link ID——LSA的名称,不同类型LSA的Link ID的取值也不同。

ADV router——使用RID来标识产生该LSA的通告路由器。

Age——LSA的生存时间,单位为秒。
Seq#——LSA的序列号,该序列号包含在LSA中。数据库使用序列号来判断LSA是否为旧的或重复的。
Checksum——用于校验LSA的正确性。
Link count——发送该LSA的路由器运行了OSPF的接口的数量。这一字段仅在1类路由器LSA中存在。
图2-17显示了拥有8台路由器的网络。这些路由器都运行了OSPF,并且接口关联了不同的开销值(图中使用粗细线条进行区分)。


7a30dca741b7408cb6aa239be3f00338977ac2a4

在上图中,注意每条链路的接口出方向都标示了相应的开销值。例如,从RtrA直接去往网络中心RtrE的开销为4;但是如果从RtrE直接去往RtrA,其开销值为5。因此,这里的开销值是基于接口的,并且应用于出方向。

OSPF基于图2-17所给定的网络拓扑建立了一份链路状态数据库。另外,假设网络中所有的路由器都属于同一个OSPF区域,则每一台路由器所拥有的链路状态数据库是相同的。本例中的区域为区域0。

注意
为了提高可读性,下面的内容对图2-17中路由器的名称进行了缩写,如RtrA缩写为RA,RtrB缩写成RB,以此类推。
表2-4列出了图2-17所示的OSPF网络内每台路由器的链路状态数据库。该表由不同的部分组成,每一部分代表了图2-17中各台路由器的链路状态数据库的内容。Router ID一栏标明了每台路由器,并且链路状态数据库是根据OSPF以自己为树根建立数据库的顺序组织的。紧接着的Neighbor一栏包含了根路由器所直连的其他所有路由器(也就是根路由器的邻居)。最后一栏Cost,指示了从根路由器到达邻居的开销。

例如,路由器A(RA)拥有3个邻居:B、D和E,到达B的开销为2,到达E的开销为4。


ca370c205f082b4bcbc58862edb8a549155a8edc


acef3a3dcb8065df008200e2af330ab30dcc9d1e

此时,距离网络到达收敛状态还相差甚远,因此接下来需要执行完整的SPF计算过程。路由器所运行的SPF算法实际上是由Dijkstra算法演变而来的。执行该算法的前提是需要路由器已经建立了一份链路状态数据库,如表2-4所示。下面的步骤描述了SPF算法的过程。

1.首先,路由器将自己作为SPF树的根,以便开始创建对应的SPF树数据库(见图2-6)。当路由器成为根,则去往最近的邻居——自己的路径开销为0。

2.将链路状态数据库中描述去往根路由器邻居的所有条目都添加到候选数据库(candidate database)中1。

注意
候选数据库是OSPF在执行SPF运算过程中所建立的临时数据库。该数据库具备可操作性,用于加速SPF条目的计算并帮助获得最终路由。
3.在候选数据库中,从根路由器去往每一台路由器的开销都已经通过计算得出。因此,在候选数据库中去往给定目的路由器且拥有最低开销的条目将被放置到树数据库(tree database)中。如果从根到同一目的路由器拥有两条或更多相同开销的条目,那么随机选择一条2。

注意
树数据库是根路由器在候选数据库上运行SPF算法的结果。当算法运行完成后,SPF树数据库中将包含最短路径(也就是最终的路由条目)。
4.对已经被加入到树数据库中的路由器的邻居 ID 进行检查。除了那些已经存在于树数据库中的邻居 ID 条目以外,将链路状态数据库中描述剩下的路由器邻居的信息添加到候选数据库中。

5.如果候选数据库还拥有条目未被移至树数据库或丢弃,那么转至步骤3。当候选数据库为空时,SPF 算法停止。当 OSPF 区域内的每一台路由器的条目都进入了树数据库后,即表明SPF计算执行完毕并成功。

表2-5总结了为图2-17所示的网络应用Dijkstra算法,并以RA为SPF树根来建立最短路径树的过程和结果。

表2-5中,每一行代表了网络收敛所经历的各种过程。其中第一列给出了候选数据库的条目;在计算完成后,这些条目将会移至树数据库中或者被丢弃。Description一列对所每一个步骤的执行进行了解释3。

image
image

候选列表中(RF,RH,4)是拥有最低开销的链路,因此它被添加到树中。此时候选列表中已经没有条目存在,所以算法结束。当RA拥有了去往网络中所有其他路由器的最短链路时,最短路径树便建立完成

图2-17中的RtrA在表2-5中列出的链路状态数据库上运行 SPF 算法,得到最终为RtrA所创建的最短路径树,如图2-18所示。当每台路由器都通过运算得到了自己的最短路径树后,它们便可以根据最短路径树获知其他路由器的链路信息,并非常容易地为 SPF 树添加末节网络。根据这些信息,路由器便能够将条目添加进路由表。


1cc69aa4aecba7aeaab0cd1b4d98885e6519bec5

1译者注:在某些资料中候选数据库也被称为TENT列表。
2译者注:在某些资料中,树数据库也被成为PATH列表。
3译者注:表2-5中使用了(路由器1,路由器2,开销)的三元组来表示一段链路。例如,(RA,RB,2)表示从RA到RB的链路的开销为2。

相关文章
|
2天前
|
关系型数据库 分布式数据库 数据库
瑶池数据库大讲堂|PolarDB HTAP:为在线业务插上实时分析的翅膀
瑶池数据库大讲堂介绍PolarDB HTAP,为在线业务提供实时分析能力。内容涵盖MySQL在线业务的分析需求与现有解决方案、PolarDB HTAP架构优化、针对分析型负载的优化(如向量化执行、多核并行处理)及近期性能改进和用户体验提升。通过这些优化,PolarDB HTAP实现了高效的数据处理和查询加速,帮助用户更好地应对复杂业务场景。
|
8天前
|
数据库 Windows
SqlServer数据恢复—SqlServer数据库所在分区损坏的数据恢复案例
一块硬盘上存放的SqlServer数据库,windows server操作系统+NTFS文件系统。由于误操作导致分区损坏,需要恢复硬盘里的SqlServer数据库数据。
|
15天前
|
机器学习/深度学习 人工智能 运维
简化多云网络复杂度,谈谈F5多云解决方案的破局之道
简化多云网络复杂度,谈谈F5多云解决方案的破局之道
33 7
|
1月前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
1月前
|
监控 安全 网络安全
云计算与网络安全:技术挑战与解决方案
随着云计算技术的飞速发展,其在各行各业的应用越来越广泛。然而,随之而来的网络安全问题也日益凸显。本文将从云服务、网络安全和信息安全等技术领域出发,探讨云计算面临的安全挑战及相应的解决方案。通过实例分析和代码示例,旨在帮助读者更好地理解云计算与网络安全的关系,提高网络安全防护意识。
|
2月前
|
SQL 数据库
GBase8a 数据库集群v953扩容案例问题分享
GBase8a 数据库集群v953扩容案例问题分享
|
2月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
2月前
|
存储 SQL 数据库
Sybase数据恢复—Sybase数据库常见问题之数据库无法启动的恢复案例
Sybase数据库数据恢复环境: Sybase数据库版本:SQL Anywhere 8.0。 Sybase数据库故障&分析: Sybase数据库无法启动。 使用Sybase Central连接报错。 数据库数据恢复工程师经过检测,发现Sybase数据库出现故障的原因是:异常断电造成Sybase数据库无法回写正常数据,导致多个存储页数据不一致,系统表描述和存储表不一致,部分存储页底层数据完全杂乱。
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
2月前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。