《OSPF网络设计解决方案(第2版)》一2.2 选择路由协议

简介:

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

2.2 选择路由协议

OSPF网络设计解决方案(第2版)
网络设计者和工程师经常会提出这样的问题,“我应当选择使用哪种路由协议?”本节比较上文已经介绍过的两种链路状态协议——IS-IS和OSPF。在选择路由协议之前,你需考虑三个方面的问题。

操作事项——决定了在网络长期运行的过程中,对网络进行管理的难易程度。这些考虑事项包括:如何确定协议性能以适应网络更变、如何最小化对网络的影响以及如何对故障进行排除。
技术事项——有助于判断特定的协议是否能够满足一系列特定的网络需求。
商业事项——定义影响网络设计决策的商业优先级和策略。这类考虑事项一般来自于公司内部,并且通常对于网络实施的成败起到关键性的作用。

2.2.1 操作事项

表2-1列出了在选择路由协议时需要考虑的操作事项。


a150028c9dec3b36701a3ae3e87e2817deec0ed0

1.所支持的协议
纵观网络的发展,所有被动路由协议都拥有自己独立的路由协议:AppleTalk使用路由表维护协议(RTMP),Novell使用互联网络分组交换(IPX)RIP协议,而 IP 使用 RIP、EIGRP 或 OSPF。每一种被动路由协议使用自己的路由协议,从概念上非常容易理解,但通常却难以实施。不仅如此,这还需要网络工程师对支持多协议环境的网络进行设计和维护,从而要求网络工程师必须掌握大量的路由协议。

OSPF 仅支持 TCP/IP 协议簇。尽管 TCP/IP 是当前最为常用的协议簇,但除此以外确实还存在其他正在使用的协议簇。如果路由协议无法支持多种协议,那么这种短板对于老式遗留网络或存在多种路由需求的网络是不利的。

当开发 IS-IS时,协议设计者给出了一个非常有意义的提议:为什么一种路由协议不能处理多种被动路由协议呢?因此,为了增强集成IS-IS协议的性能,它被设计成为能够同时支持OSI CLNP和TCP/IP网络。另外,集成IS-IS还支持其他的一些网络协议;这种支持多协议的能力在多协议网络环境中将是巨大的优势。

2.路由分层
构建大型网络的关键是引入逻辑分层结构。如果合理使地用分层设计,那么网络复杂度及扩展性等相关问题都将引刃而解。使用分层网络的设计能够带来很多好处,最为显著的便是有利于路由汇总和降低SPF运算,这些优势可以极大地减少网络收敛的时间。

OSPF 是最早支持分层网络设计的协议之一,它可以在单个路由域内(AS)划分多个分层结构(区域)。OSPF支持两级分层:一个骨干区域(backbone)和连接于骨干区域的其他区域。因此,OSPF骨干路由器将携带骨干区域的完整拓扑信息和所有其他区域的连接性信息。在每个区域内,OSPF 路由器相互交换关于该区域的完整拓扑信息。由于区域边界位于路由器上,因此路由器的一个接口属于一个区域。路由器通常拥有多个接口,所以路由器也能够连接到多个区域。但是如果路由器连接了过多的区域,那么该路由器则需要为每个所连接的区域执行SPF运算;因此,在设计网络时应当注意这一点,避免造成路由器负载过重。

集成IS-IS和OSPF一样,也使用两级分层设计;但不同之处在于每个区域内路由器所携带的信息量。在集成 IS-IS 的区域内,路由器将所有需要发出区域的流量交付给最近的IS-IS L2路由器。而OSPF则是将其他区域的所有连接性信息注入到各个区域内。这种方式有利于 OSPF 区域内的路由器将需要发出区域的流量交付给最佳的区域边界路由器(ABR)。

IS-IS 的区域边界位于两台路由器之间的链路上;因此,集成 IS-IS 的一台路由器仅属于一个区域。但是由于一些原因,你很难使用IS-IS部署真正的分层网络结构。原因之一便是当 IS-IS 运行在非常大型的区域时,IS-IS路由器必须被置于同一层级内才能获得最佳的运行效果,这也是ISP在其网络核心内部署单个IS-IS区域的主要原因。当前许多ISP已经开始放弃IS-IS,并慢慢地迁移到OSPF。

3.IP地址管理
构建一个成功的分层网络结构的关键是使用正确的IP地址管理。如果地址分配十分合理,那么将有利于路由信息的汇总。对路由信息进行汇总的两个重要原因是:

汇总能够把拓扑更变的影响限制在局部,从而有利于提高网络稳定性;
汇总能够减少每台路由器所携带的路由信息的数量。
这些原因能够简化网络的管理和故障排除,另外路由汇总还能降低路由协议所消耗的资源(CPU、内存等)。

提示
应该为OSPF或集成IS-IS的每个区域分配连续的网络或子网号。这样,区域边界路由器才能使用单个地址掩码来汇总区域内的地址。实施汇总将给网络带来实质性的好处。
4.IP封装支持
OSPF 是一个基于 TCP/IP 的协议,并且完全支持 IP。而 IS-IS 却是一个原生的 OSI 协议,因此在操作实施时它依然需要使用 ISO 编址。尽管 IS-IS 支持转发IP数据包,但是这并不是它的设计初衷。

5.相关资料
在对路由协议进行选择时,还应当以务实的角度去考虑。这意味着你所选择的路由协议应当拥有丰富的可用资料,这些资料能够帮助网络工程师从各个层面去掌握需要实施的协议特性。

OSPF 是一个被广泛实施的路由协议,你可以在各类相关书籍(例如本书)中学习到它的知识。这些可用的资料通常提供了大量的实用性示例,这些示例帮助工程师加深理解OSPF的重要性和功能性。另外,应当感谢归属于Internet工程任务组(IETF)的OSPF工作小组的卓越贡献,OSPF 的相关标准都已经非常完美地被归档;但是这些规范文档对于“如何”和“为什么”的问题解释较少。

尽管IS-IS仍然被使用和部署在某些环境中,但与 OSPF 相比,它依然被视为一种“小众”的协议。虽然一些ISP正在使用IS-IS,但是几乎所有的企业网络都不会选择使用它。另外,IS-IS 的规范文档使用的是 ISO 文档的表达形式和术语,并未采用通用的IP术语。

如果你对培训课程感兴趣,那么你可以参加一些专门研究 OSPF 的课程;而IS-IS几乎没有类似的资源。

2.2.2 技术事项

表2-2列出了在选择路由协议时需要考虑的技术问题。


9ef2ed1b1f08078e2da3665b820a727c93d1dccd

1.快速收敛
所有的路由协议在处理收敛问题时都必须拥有以下三个重要特征。

1.检测网络更变的发生。

2.适应网络更变。

3.更新网络拓扑以反映网络更变。

IS-IS和OSPF能够立即检测到某些类型的网络更变。通常,所有的路由协议都能够立即检测到由物理更变(例如链接丢失)所引起的网络更变。

另外,IS-IS 和 OSPF 都使用 Hello 包保活(keepalive)并检测失效(例如邻接路由器的丢失,或者一些不可靠的接口突然发生故障)。OSPF 和 IS-IS 都需要在邻接路由器之间定期交换信息。

当路由协议检测到拓扑更变之后,它需要对路由表进行调整以适应新的拓扑。OSPF 和集成IS-IS都拥有更新路由表的能力。如果拓扑更变发生在区域内,那么受网络更变所影响的已存在路由都将被丢弃,然后路由器将新产生的路由表。通常,OSPF和集成IS-IS将在2秒内完成收敛。并且,CPU 执行重新计算的时间长短和路由条目及网络内冗余链路的数量直接相关。

2.路由更新
所有的路由协议都动态地交换路由信息。关于路由更新的操作可以表述为三个重要的问题,如下所示。

何时发送路由更新——路由协议周期性地发送Hello包,并且在路由器初次启动时交换完整的拓扑信息。根据路由协议的配置,完整拓扑信息的交换也可能发生在后续操作中。RIP每30秒泛洪一次完整的路由条目,OSPF 每 30 分钟泛洪一次完整的拓扑表,而集成 IS-IS 则是每 15分钟泛洪一次。这种定期泛洪的行为都是为了确保信息的同步。
路由更新的内容是什么——在区域内,OSPF 和集成IS-IS交换更变的链路状态信息。在区域之间,OSPF 和集成 IS-IS 交换更变的路由信息。
路由更新被发送到何处——当网络完成了拓扑的更新之后,RIP网络中的更变信息将被广播到所有的邻居路由器上。而OSPF和集成IS-IS的更变信息将被泛洪到发生更变的整个区域。如果未进行路由汇总,那么更变信息还可能会被传递到骨干及其他区域。
3.支持VLSM和CIDR
OSPF 和集成 IS-IS 都支持可变长子网掩码(VLSM)和无类域间路由(CIDR)。实施路由汇总必须支持VLSM。另外,VLSM和CIDR还能够帮助网络管理员更加有效地利用网络地址空间。

4.负载均衡
如今的网络通常都设计了冗余路径。冗余路径将在两个方面为网络带来益处:失效后的路由重选和负载均衡。Cisco 所支持的所有路由协议都拥有负载均衡的能力,并且最大可支持6条等价路径1。OSPF默认使用4条等价路径,如果想要支持更多的路径条目,那么必须对OSPF进行配置。

5.度量
路由选择结果的好坏,本质上是由赋予各条路由条目的度量所决定的。在路由协议如何使用度量这一问题上,拥有两个重要的组件:度量值所能表示的范围和如何计算度量。

OSPF 使用长度为 16 比特的扁平结构度量。也就是说,OSPF 的度量范围是0~65,535。默认情况下,OSPF 的度量和接口带宽成反比——以光纤分布式数据接口(FDDI)的度量为1作为标准。OSPF通过累加路径上每一跳的度量来计算最终的路径开销。

集成IS-IS使用扁平结构度量,其度量范围是0~1023。默认情况下,对于集成IS-IS协议而言,所有链路的度量都是10。如果想要使用非默认的值,那么网络管理员需要进行手动配置。集成 IS-IS 通过累加路径上每一跳的度量来计算最终的路径开销。

6.可扩展性
根据 ISO 10589 文档的说明,在IS-IS协议中每个区域最多容纳100台路由器,协议总共可以部署400台L2路由器。这种扩展规模是非常可观的。但是当前最大的可扩展问题已经转变成了在大型全互连网络中的大量泛洪流量。例如,在扁平结构的ATM网云中,可能拥有过多的路由器全互连连接。

对于 OSPF 而言,无论网络规模的大小,该协议都能够具有很好的扩展性。但是为了获得最优的网络运行效果,你应该按照实际需求来部署物理和逻辑区域。

7.物理介质支持
OSPF和IS-IS都支持点到点链路,同时对LAN的处理方式也类似。但是IS-IS不支持非广播多路访问(NBMA)的网络类型,因此IS-IS在路由器上总是以LAN或多条点到点链路的形式来处理NBMA网络;这种方式可能会引起一些问题。OSPF不存在这样的问题,但是在Cisco路由器上,OSPF网络类型的相关配置较为复杂。

8.协议扩展性
路由协议必须在性能和功能上拥有可增长和可扩展的能力,从而满足多变和发展的网络环境。OSPF可以通过新的Opaque LSA来提升其扩展能力,但是这要求所有的路由器都必须理解这些LSA,才能有效地适应动态的网络环境。IS-IS则不同,它可以泛洪不识别的LSA并忽略它们。

OSPF和IS-IS都支持流量工程,因此无论选择使用哪种协议,MPLS都可以运行于网络并提供流量工程的特性。

2.2.3 商业事项

表2-3列出了在选择路由协议时需要考虑的商业事项。


256a78706ad3eb87d8efb2f5529b431243e8cd4d

1.标准
许多公司在选择路由协议时,更喜欢使用那些基于标准的协议;我们推荐在所有的网络环境中都这么做。如果网络运行并未形成标准的路由协议,那么可能会造成很多问题。

OSPF是一个标准的协议,由IETF的OSPF工作组所开发,并用于替代RIP协议。OSPF被定义在RFC 2328中。

IS-IS是由ISO所开发的一个标准协议,并且由国际标准10589文档所定义。集成 IS-IS 作为IS-IS协议的标准扩展,由IETF所开发。集成IS-IS被定义在Internet草案中。

2.多厂商支持
当前的大型网络极少情况下会使用同一家厂商的设备来搭建,不同的网络部分通常会选择不同厂商的设备产品。网络工程师在构建多厂商设备的网络环境时存在很多选择,最为常见的便是在所有路由器上选择相同的路由协议。在多厂商设备环境下比较OSPF和IS-IS的可行性时,应注意:

几乎所有的设备厂商都支持OSPF协议;
大部分的设备厂商能够支持集成IS-IS协议。
3.成熟的技术
OSPF 协议在很早就已经被各大设备厂商所支持,并且当前越来越多的网络开始选择部署OSPF协议,无论是结构简单的小型网络,或是极为复杂的大型网络。

Cisco从很早以前就开始对集成 IS-IS 协议提供支持,并且当前集成 IS-IS也在一些重要的网络中被使用。在选择路由协议时,几乎所有人都能想到OSPF;如果网络需要同时支持 OSI 和 IP,那么你应该选择集成 IS-IS。集成IS-IS是DECnet Phase V网络的标准路由协议。

提示
有关IS-IS协议的更多信息,你可以参考另一本由Cisco出版的书籍,IS-IS Network Design Solutions,Abe Martey著。
1译者注:当前Cisco IOS已经将某些协议最大支持的等价路径数量增加到16条。

相关文章
|
2月前
|
运维 网络协议 网络架构
网络技术基础(6)——IP路由基础
【2月更文挑战第10天】网络基础笔记(加班了几天,中途耽搁了,预计推迟6天)
|
3天前
|
Ubuntu 网络协议 Linux
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
26 0
|
8天前
|
运维 安全 Cloud Native
安全访问服务边缘(SASE):网络新时代的安全与连接解决方案
SASE(安全访问服务边缘)是一种云基安全模型,结合了网络功能和安全策略,由Gartner在2019年提出。它强调身份驱动的私有网络、云原生架构和全面边缘支持,旨在解决传统WAN和安全方案的局限性,如高延迟和分散管理。SASE通过降低IT成本、提升安全响应和网络性能,应对数据分散、风险控制和访问速度等问题,适用于移动办公、多分支办公等场景。随着网络安全挑战的增加,SASE将在企业的数字化转型中扮演关键角色。
|
9天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
9天前
|
存储 网络协议 安全
15.网络协议-Radius协议
15.网络协议-Radius协议
|
9天前
|
存储 网络协议 网络安全
14.网络协议-邮件协议
14.网络协议-邮件协议
|
13天前
|
存储 JSON 前端开发
网络原理(4)HTTP协议(下)
网络原理(4)HTTP协议
25 0
|
17天前
|
存储 网络协议 Linux
|
17天前
|
安全 SDN 数据中心