像过程切换一样,快速切换是平台无关的,并在所有本机Cisco路由器上使用。在Cisco IOS中,默认情况下启用快速切换。您可以验证快速切换是否已启用并查看当前在快速交换缓存中的路由。正如您可以在示例1-1中看到的,接口Serial4 / 1已启用快速切换。示例1-2显示了快速切换缓存的内容。正如您所看到的,每个条目都包含目的地前缀,前缀已在缓存中处于缓存中,出口接口和下一跳层IP地址。
例1-1验证快速切换已启用
R1#SHOW IP接口SERIAL4 / 1 SERIAL4 / 1已启动,线路协议是互联网地址为10.0.0.1/30广播地址是255.255.255.255由非易失性存储器MTU确定的地址为4470字节辅助地址未设置指示广播转发是禁用的输出访问列表未设置入站访问列表未设置代理ARP已启用安全级别是默认拆分位置启用ICMP重定向始终发送ICMP Untrable始终发送ICMP蒙版回复永远不会发送ICMP屏蔽答案永远不会发送IP快速切换的ICMP屏幕求助启用IP流切换的IP CEF切换启用IP CEF切换启用IP CEF切换矢量IP普通CEF切换涡轮增压器矢量IP多播快速切换启用IP多播分布式快速切换是否禁用IP禁用IP路由缓存标记禁用IP路由缓存标记禁用IP路由缓存标记禁用IP路由缓存标记禁用IP路由缓存标记快速,CEF禁用路由器发现IP输出数据包计费已禁用IP访问冲突计费已禁用TCP / IP标头压缩已禁用RTP / IP标头压缩分裂国家是禁用的探头代理名称的答复是禁用策略路由是禁用网络地址转换是禁用WCCP重定向出站时禁用WCCP重定向入站被禁用WCCP重定向排除被禁止BGP策略映射被禁用
例1-2查看快速交换缓存的当前内容
R1#Show IP Cache IP路由缓存3条目,480字节4088添加,4085无效,0 Refcounts最小无效间隔2秒,最大间隔5秒,安静间隔3秒,阈值0请求无效率为0 in最后秒钟,03秒最后全缓存失效8W0D前前缀/长度界面下一跳10.1.1.10/32 8W0D Serial0 / 0 10.1.1.10 10.1.1.128/30 00:00:10 Serial0 / 2 172.17.2.2 10.1.1.1.1132 / 30 00:10:04 Serial0 / 1 172.17.1.2 R1#
从IP流量平面的角度来看,应该清楚的是,快速切换主要是为了加速数据平面流量的转发。当数据包简单,数据平面数据包时,这在更高速网络中运行良好。但是,并非所有功能或数据包都可以快速切换。如果是这种情况,转发恢复为进程切换,这会对路由器性能产生不利影响。这使得分类交通飞机和保护路由器资源的速度越重要,因为网络速度增加和路由器看到更高的数据包速率(PPS)。当流量适合正常,快速的切换配置文件时,路由器应执行良好。但是,如果流量更改(例如,在恶意条件下)和过程切换下,则路由器可能会遇到资源耗尽并影响整体网络条件。让我们从快速切换的角度看一下每个交通飞机:
数据平面:开发了快速切换操作以加快数据平面流量的交付,如图1-12说明。当目标是运输时,数据包将快速切换,并且已存在缓存条目。例如,当不存在缓存条目时,对于每个新流程的第一个数据包,必须使用进程切换来确定下一跳和第2层报头详细信息。防止欺骗或恶意数据包滥用数据平面将保持路由器CPU和快速缓存存储器被滥用。与过程切换一样,还需要额外的处理来处理数据平面IP异常数据包。例如,必须删除TTL = 0数据包,并且必须生成ICMP错误消息并将其传输回始发者。具有IP选项的数据包还可能需要额外的处理来满足调用的选项。当与正常的传输数据包相比,异常数据包的比率变大时,路由器资源可以耗尽,可能影响网络稳定性。这些和其他概念在第2章中进一步探讨了第4章详细探讨了保护数据平面的概念。
控制平面:控制平面数据包具有运输目的地的快速切换完全像数据平面传输数据包。使用接收目的地和非IP异常报文(例如,第2层Keepalives,IS-IS等)控制平面数据包遵循所示的相同初始快速切换操作图1-12。但是,一旦数据包识别确定为接收或非IP数据包,就会被移交给CPU以便通过相应的软件元素进行处理,并且消耗其他资源以完全处理这些数据包。因此,不管调用的切换方法,CPU必须处理接收和非IP控制平面分组,可能导致高CPU利用率。如果路由器无法服务转发请求,则高CPU利用率可能会导致流量丢失。防止欺骗和其他恶意数据包影响控制平面,可能消耗路由器资源并中断整体网络稳定性是至关重要的。第5章详细探讨了这些概念。
管理飞机:具有Transit Destinations的管理平面数据包快速切换完全像数据平面传输数据包。具有接收目的地的管理平面数据包遵循对控制平面描述的相同初始快速切换操作。一旦识别出这些数据包,它们就会在负责的CPU中交出到适当的网络管理服务的软件元素。管理平面流量不应包含IP异常数据包(再次,MPLS OAM是一个异常),但可能包含非IP(第2层)异常报文(通常以CDP报文的形式)。在正常情况下,管理平面流量应对CPU性能影响不大。一些管理操作可能导致频繁的SNMP轮询或打开调试操作,或使用NetFlow可能导致高CPU利用率。由于管理平面流量直接由CPU处理,因此滥用的机会使得实现管理平面安全性是至关重要的。第6章详细探讨了这些概念。
服务飞机:服务平面数据包遵循相同的初始快速切换操作图1-12。但是,服务平面数据包通常需要路由器的特殊处理。示例包括执行封装函数(例如,GRE,IPSEC或MPLS VPN),或执行一些QoS或策略路由功能。这些操作中的一些可以通过快速切换来处理,有些则不能处理。例如,策略路由通过快速切换处理,而GRE封装则不是。当通过快速切换不能处理数据包时,转发恢复以处理切换,因为这些数据包必须由CPU中的软件元素处理。发生这种情况时,服务平面数据包可能对CPU利用率产生很大影响。然后,主要关注是通过防止欺骗或恶意数据包影响CPU来保护服务平面的完整性。第7章详细探讨了这些概念。
互联网的增长导致互联网核心路由器来支持大型路由表并提供高分组切换速度。尽管快速切换是对过程切换的重大改进,但它仍然存在缺陷:
快速切换缓存条目是根据需求创建的。新流程的第一个数据包需要切换以构建缓存条目。当网络必须处理开关时,这是不可扩展的,其数量没有缓存条目。对于BGP学习的路线尤其如此,因为它们仅指定下一跳地址,而不是接口,需要递归路由查找。
快速切换缓存条目是基于目标的,这也不可扩展,因为核心路由器包含大量的目标地址。用于保持路由缓存的内存大小是有限的,因此随着表大小的增长,高速缓冲存储器溢出的可能性增加。另外,随着高速缓存的深度增加,查找时间也会因此,导致性能下降。
快速切换不支持并行路由之间的每包负载共享。如果需要每个数据包负载共享,则必须禁用快速切换,必须使用流程切换,从而导致性能下降。
此外,还发现“一个CPU确实一切”的方法,不再适用于高速转发。开发了新的高端Cisco路由器以支持大量高速网络接口,并将转发过程直接分发到线卡。作为这些和其他问题的解决方案,思科开发了一种新的交换方法-Cisco Express转发(CEF)。CEF不仅满足了与快速交换相关的性能问题,而且还通过这一新一代的“分布式”转发平台开发了。
思科快递转发
CEF,如快速切换,使用缓存条目完全在路由处理器中断间隔期间执行其交换操作(用于基于CPU的平台)。当您调试时,快速切换取决于将第一个数据包切换到任何给定目的地的过程,以便构建其缓存表。CEF删除了基于需求的机制和依赖于进程切换以构建其缓存。相反,CEF表直接从路由表预构建,邻接表直接从ARP缓存预构建。在切换任何数据包之前,预先构建了这些CEF结构。处理任何数据包都没有必要的是建立缓存条目。构建CEF表后,路由处理器上的CPU是决不再次直接涉及转发数据包(虽然可能需要执行内存管理和其他内政函数)。此外,预先建立CEF结构大大提高了带有大型路由表的路由器上的转发性能。请注意,CEF切换通常被称为“快路径”切换。
CEF有两种主要结构:
转发信息库(FIB)
邻接表
转发信息基础
FIB是一个专门构造的路由表版本,该路由表存储在多道树数据结构(256路MTRIE)中,该结构被优化为一致,高速查找(具有一些路由器和IOS依赖)。目的地查找是以全面的基础完成的;因此,它只需要四个查找(8-8-8-8)来查找任何特定目的地的路由。
FIB完全解决,并包含主路由表中存在的所有路由。它始终保持同步。当网络中发生路由或拓扑更改时,更新IP路由表,并且这些更改反映在FIB中。由于FIB条目和路由表条目之间存在一对一的协议,因此FIB包含所有已知路由,并消除了与快速切换相关联的路由缓存维护的需求。
仅安装特殊的“接收”FIB条目,用于路由器本身拥有的目标地址。这些包括分配给物理接口,环回接口,隧道接口的地址,来自224.0.0.0/8地址范围和某些广播地址的保留组播地址。具有“接收”条目的目标地址的数据包由CEF相同地处理,并简单地排队才能进行本地交付。
每个FIB条目还包含一个或多个链接到邻接表中的条目,使得可以支持等价或多路径负载平衡。
邻接表
邻接表包含封装必须发送给给定的下一跳网络设备的数据包所需的信息。CEF如果通过共享IP子网直接连接,CEF将成为邻居的邻居。
每个邻接条目存储在使用引用相应的邻接条目的FIB条目转发数据包时使用的预计算机报头。将邻接表填充为发现邻接。每次创建邻接条目,例如通过ARP协议,将预先计算该相邻节点的链路层报头并将其存储在邻接表中。
路由可能每个条目可能有多个路径,使得可以使用CEF来切换数据包,而在多条路径上负载平衡。
除了下一跳界面邻接(换句话说宿主路线邻接)之外,还存在某些异常条件邻接,以加快切换以进行非标准条件。其中包括:Punt addaceies用于处理CEF(如IP选项)中不支持的功能,以及用于引用NULL0接口的前缀的“删除”邻接。(丢弃转发到NULL0的报文,进行有效,有效的接入过滤形式。NULL0将在第II节中进一步讨论)。
示例1-3显示了输出的显示邻接命令,显示邻接表信息。示例1-4显示了输出的显示IP CEF命令,显示作为CEF切换的前缀列表。