第1章:互联网协议运营基础

思科出版社

123.45678910 第6页
第6页,共10页

大多数Cisco路由器使用Cisco IOS软件来执行包交换功能。(IOS XR适用于CRS-1、XR 12000等高端路由平台,是针对运营商运营商级需求开发的。)在IOS刚开发的时候,只有一种切换机制。这种方法,称为过程切换,非常简单,效率不高。随着网络速度和对更高性能需求的增长,思科IOS软件得到了改进,提供了更好的交换方法。专门的硬件组件也被开发和合并到某些路由器,以提高转发性能。今天,思科路由器可以在每秒数千个包(Kpps)到每秒数亿个包(Mpps)之间进行切换。为了达到最高的转发率,需要专用的基于硬件的转发引擎,主要是作为特定应用集成电路(ASIC)实现的。其他参数,如I/O内存速度和总线性能,可能对切换性能有很大的影响。挑战是在现有ASIC、CPU、I/O总线和内存技术和成本的限制下创造最高的开关性能。思科路由器使用的交换方法来实现这些速率取决于特定的路由平台。

通常,Cisco IOS今天提供了三种交换方法:

  • 过程切换:通过路由器CPU直接处理并转发数据包。

  • 快速切换:数据包在CPU中断中转发,使用由过程切换创建的缓存条目。

  • 思科快递(CEF):信息包的转发使用预先计算和非常优化版本的路由表。

下一步详细审查这三种交换方法中的每一种。此审查的目的不是描述每个转发数据包使用的所有优化和机制。许多优秀的参考资料已经涵盖了这些方面。检查 ”进一步的阅读“本章末尾的部分进行特定建议。目的是调查这三种交换方法如何处理各种IP流量飞机中的数据包,并查看对路由器性能的影响,以及网络稳定性和安全性。

过程切换

最旧的最基本的交换模式是过程切换,也称为“慢路”切换。过程切换是指通过将它们排队到路由处理器上的CPU,然后具有CPU进行转发决策,从而切换数据包,所有这些都在进程级别。术语“路由处理器”用于描述包含CPU,系统软件和路由器用于转发数据包使用的大多数内存组件的模块。在过程切换模型中,每个数据包切换请求与所有其他应用程序一起排队,并通过路由处理器上的CPU上运行的软件进行服务。

图1 - 11说明下一个列出的步骤,涉及通过进程切换转发数据包:

  1. 当网络接口硬件接收到数据包并将其传输到I / O存储器中时,进程切换开始。这导致网络接口硬件中断CPU,警告它在需要处理的I / O存储器中等待的入口数据包。IOS更新入方向报文计数器。

  2. iOS软件检查数据包标题信息(封装类型,网络层报头等),确定它是IP数据包,并将其放置在输入队列中以获取适当的交换过程。

  3. CPU执行路由查找(第3层)。在找到匹配时,CPU从路由表(第3层)和与ARP缓存中下一跳地址相关联的媒体访问控制(MAC)地址(第2层)检索下一跳地址,并构建新的标题。CPU然后在出站网络接口上队列数据包。

  4. 出站网络接口硬件感知缓冲包,将其从I/O内存中取出,并将其传输到网络上。然后它中断主处理器以表明数据包已经传输。然后IOS更新它的出站数据包计数器,释放数据包之前占用的I/O内存空间。

您可能已经认识到,尽管简单地,过程切换在性能方面具有许多缺陷作为切换方法。首先,根据前面列表中描述的过程切换每个分组。还使用完全相同的切换过程切换属于相同流程的任何后续数据包。在该基本方案中,没有可用的机制认识到后续分组可以是已经建立的流的一部分,并且先前已经执行该二层路由查找和第2层MAC查找。其次,因为过程切换需要为每个数据包查找路由表查找,因为路由表的大小增长,所以执行任何查找所需的时间(并因此执行总切换时间)。递归路由需要在路由表中额外查找,进一步增加查找时间的长度。

图1.11.

图1 - 11

流程切换说明

从IP流量平面的角度来看,应该清楚的是,进程交换最初对任何IP流量平面中的每个包执行相同的功能,无论包类型如何,因为每个包都必须由CPU处理。然而,根据流量平面和包类型,一旦IOS检查包头,它就会决定将包交给哪个软件进程。此时,通常需要对某些数据包进行额外的处理,这可能会影响路由器的整体性能。

  • 数据平面:具有传输目的地的数据平面包是通过进程交换操作来处理的图1 - 11说明。由于CPU具有可用于切换数据包,计算路由和执行所有其他功能的有限时钟周期,因此需要转发性能受CPU利用率的限制,并且可以变化。除了接口带宽值的情况下,还存在数据包转发的上限,这是每秒的最大数据包数(PPS)。在第2章中进一步探讨了此概念。还需要额外处理来处理数据平面异常数据包。例如,必须删除TTL = 0数据包,并且必须生成ICMP错误消息并将其传输回始发者。具有IP选项的数据包还可能需要额外的处理来处理标题选项。当与正常传输数据包相比,异常数据包的比率变大时,转发性能可能会受到影响。因此,控制数据平面异常分组的影响特别是保护路由器资源是至关重要的。第4章详细探讨了这些概念。

  • 控制平面:控制平面数据包与运输目的地完全像数据平面传输数据包处理。使用接收目的地和非IP异常报文(例如,第2层Keepalives,IS-IS等)控制平面报文也遵循所示的相同初始过程切换操作图1 - 11。然而,一旦数据包识别确定了这些是接收或非IP数据包,它们被交出到CPU中的不同软件元素,并且消耗了附加资源以完全处理这些数据包。例如,频繁的路由协议更新(当界面拍打时可能发生)将导致路由广告和路径重新计算并导致暂时的CPU利用率。如果路由器无法服务转发请求,则高CPU利用率可能导致数据平面中的流量下降。适当的网络设计应最大限度地减少路由不稳定性。对于流程切换平台,防止欺骗和其他恶意数据包影响控制平面,可能消耗路由器资源并中断整体网络稳定性。第5章详细探讨了这些概念。

  • 管理飞机:管理平面数据包与运输目的地完全像数据平面传输数据包处理。具有接收目的地的管理平面数据包还遵循对控制平面描述的相同初始处理切换操作。但是,一旦数据包识别确定这些是接收数据包,它们就会在负责适当的网络管理服务的CPU中传递给软件元素。管理平面流量通常不包含IP异常数据包(使用路由器警报IP选项的MPLS OAM是一个异常),但可能包含非IP(第2层)异常数据包(通常以CDP报文的形式)。一般来说,管理平面流量应该对CPU性能没有影响。一些管理操作可能导致频繁的SNMP轮询或打开调试操作,或使用NetFlow可能导致高CPU利用率。仔细定义可接受的用途生产网络的政策应防止无意的CPU影响。但是,由于管理平面流量直接由CPU处理,因此滥用的机会使得管理平面安全性得到重要意义。第6章详细探讨了这些概念。

  • 服务飞机:服务平面数据包遵循相同的初始过程切换操作图1 - 11。但是,服务平面数据包通常需要路由器的特殊处理。示例包括执行封装函数(例如,GRE,IPSEC或MPLS VPN)或执行一些QoS或策略路由功能。这需要通过CPU中的不同软件元素来处理服务平面数据包,这是额外的,可能的沉重的CPU资源。通常,过程切换服务平面数据包对CPU利用率具有很大影响。然后,主要关注是通过防止欺骗或恶意数据包影响CPU来保护服务平面的完整性。第7章详细探讨了这些概念。

尽管进程切换包含的性能优化最少,并且可能消耗大量CPU资源,但它确实具有平台独立的优势,使其在所有基于Cisco ios的产品中都可用。但是,从性能的角度来看,流程切换仍然有很多需要改进的地方。您可能已经注意到图1 - 11需要三个关键信息来切换任何数据包:

  • 目的地网络可达性:用于目的地址的转发表中必须存在路由。

  • 出口接口:如果存在路由,则必须知道下一跳的下一跳的IP地址。

  • 下一跳二层地址:还必须知道下一跳的第2层(例如Mac)地址。

这一信息是由进程交换转发的每个包确定的,即使前一个包需要完全相同的信息。在大多数IP网络中,流通常由多个数据包组成。如果这些查找的结果之一,本质上是可达性/接口/MAC组合,临时保存在一个小表中会怎么样?是否可以大幅减少大部分传入数据包的转发时间?这就是IOS快速切换背后的理念。

快速切换

快速交换是一种软件增强,用于处理交换,通过转发路径加快包的性能。您也可以将其称为“快速缓存切换”。快速交换使用路由缓存来存储信息流。在每次转发尝试中,路由缓存首先被查询,而不是使用上一节中描述的更昂贵的进程切换查找过程。

图1 - 12说明了通过快速交换转发数据包所涉及的步骤,如下所列:

  1. 快速切换开始时与进程切换完全相同。首先,网络接口硬件接收数据包并将其传输到I/O内存中。网络接口中断CPU,警告它在I/O内存中等待处理的入口包。IOS更新入方向报文计数器。

  2. iOS中断软件检查数据包标题信息(封装类型,网络层报头等),并确定它是IP数据包。然而,在输入队列的输入队列上,不能将数据包放在CPU处理中,而是中断软件会咨询与目标地址匹配的条目的快速缓存。如果存在条目,则中断软件将第2层(MAC)和出站接口信息从快速缓存中检索,并构建新的第2层标题。最后,中断软件警告出站接口。

  3. 与进程切换再次,出站网络接口硬件传感数据包,从I / O存储器中断,并将其传输到网络。

图1.12.

图1 - 12

快速切换说明

请注意,如果在缓存中找不到目标地址,则路由器将返回以使用前一节中描述的过程转发到转发数据包。然而,一个差异是,当启用快速切换时,在进程切换完成后,在快速缓存(路由缓存)中进行新条目以供将来使用。也就是说,任何新流程的第一个数据包始终处理切换。后续数据包快速切换。

快速切换将昂贵的CPU的路由程序与相对简单,中断过程驱动的转发程序分开。这就是为什么快速切换通常被称为“路线一次,转发许多”过程。快速切换缓存条目是动态创建和删除的。当第一个数据包到给定目标是进程切换时,会创建一个新的缓存条目。ip route-cache命令已启用输出界面。可以在未使用某个时间(空闲超时)并且在某些低内存条件下删除路由缓存条目。

除了执行高速IP转发外,快速切换还实现了中断电平的许多其他功能。例如,基础架构访问控制列表(IACL),策略路由和IP多播路由都在快速切换中支持。然而,并非所有功能都支持快速切换,并且可能需要禁用。(禁用快速切换使路由器返回处理切换。)例如,当需要调试和数据包级跟踪时,您可能需要禁用快速切换。

有关的:
123.45678910 第6页
第6页,共10页
IT薪水调查:结果在