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

思科出版社

123.45678910 第7页
第7页,共10页

与进程交换一样,快速交换是独立于平台的,并在所有本机Cisco路由器上使用。在Cisco IOS中,默认情况下启用快速切换。您可以验证是否启用了快速切换,并查看当前在快速切换缓存中的路由。如示例1-1所示,Serial4/1接口启用了快速切换。示例1-2显示了快速切换缓存的内容。如您所见,每个条目都包括目标前缀、前缀在缓存中的时间、出口接口和下一跳层IP地址。

例1 - 1验证快速切换是否启用

R1# show ip interface Serial4/1线协议是网络地址是10.0.0.1/30广播地址是255.255.255.255地址由非易失性内存MTU 4470字节辅助地址没有设置定向广播转发是禁用的即将离任的访问列表中没有设置入站访问列表中没有设置安全级别是默认启用代理ARP分裂地平线启用ICMP重定向总是发送ICMP的面具总是发送ICMP回复从未发送IP启用快速交换IP快速交换在同一界面启用IP流交换禁用启用IP CEF切换IP快速交换涡轮矢量IP正常CEF涡轮切换IP多播启用快速交换IP multicast distributed fast switching is disabled IP route-cache flags are Fast, CEF Router Discovery is disabled IP output packet accounting is disabled IP access violation accounting is disabled TCP/IP header compression is disabled RTP/IP header compression is disabled Probe proxy name replies are disabled Policy routing is disabled Network address translation is disabled WCCP Redirect outbound is disabled WCCP Redirect inbound is disabled WCCP Redirect exclude is disabled BGP Policy Mapping is disabled

示例1 - 2查看快速切换缓存的当前内容

R1# show ip cache ip routing cache 3 entries, 480 bytes 4088 adding, 4085 invalidates, 0 refcounts最小失效间隔2秒,最大间隔5秒,安静间隔3秒,阈值0 requests最后一秒失效速率0,0 in last 3 seconds last full cache invalidation occurred 8w0d ago前缀/长度Age Interface下一跳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.132/30 00:10:04 Serial0/1 172.17.1.2 R1#

从IP流量平面的角度来看,快速交换主要是为了加速数据平面流量的转发。当包是简单的数据平面包时,这在高速网络中工作得很好。然而,并不是所有的特性或包都可以快速交换。在这种情况下,转发会恢复为进程交换,影响路由器性能。这使得在网络速度增加和路由器看到更高的包速率(pps)时,对流量平面进行分类和保护路由器资源变得更加关键。当流量符合正常的、快速的交换配置文件时,路由器应该表现良好。但是,如果流量发生变化(例如在恶意情况下),需要进行进程交换,则路由器可能会耗尽资源,影响整个网络的状况。让我们再从快速切换的角度来看看每一架交通飞机:

  • 数据平面:快速交换操作的发展,以加快数据传输的平面交通,如图1 - 12说明了。当目的地正在传输且缓存条目已经存在时,包将被快速交换。当缓存条目不存在时,例如,对于每个新流的第一个包,必须使用进程交换来确定下一跳和第二层报头的细节。防止欺骗或恶意数据包滥用数据平面将防止路由器CPU和快速缓存内存被滥用。与进程交换一样,处理数据平面IP异常包也需要额外的处理。例如,TTL = 0的数据包必须被丢弃,并且必须生成一个ICMP错误消息并传回给发送者。带有IP选项的数据包也可能需要额外的处理来实现所调用的选项。当异常报文与正常传输报文的比值较大时,会导致路由器资源耗尽,影响网络的稳定性。这些和其他概念将在第二章中进一步探讨。第四章详细探讨了数据平面保护的概念。

  • 控制平面:具有传输目的地的控制平面数据包与数据平面传输数据包完全一样是快速交换的。具有接收目的地和非IP异常数据包(例如,第2层keepalives、IS-IS等)的控制平面数据包遵循中所示的相同初始快速交换操作图1 - 12.但是,一旦包标识确定这些包是接收包或非ip包,它们就会交给CPU,由适当的软件元素进行处理,并消耗额外的资源来完全处理这些包。因此,无论调用哪种交换方法,接收包和非ip控制平面包都必须由CPU处理,这可能会导致CPU利用率很高。如果路由器无法为转发请求提供服务,那么高CPU利用率会导致流量下降。这对于防止欺骗和其他恶意数据包影响控制面、潜在地消耗路由器资源和破坏整体网络稳定性至关重要。第五章详细探讨了这些概念。

  • 管理飞机:具有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章详细探讨了这些概念。

Internet的发展已经导致Internet核心路由器支持大型路由表并提供高分组交换速度。尽管快速切换是对过程切换的主要改进,但它仍然有不足之处:

  • 快速切换缓存项是按需创建的。新流的第一个数据包需要进行进程交换以构建缓存条目。当网络必须处理大量没有缓存项的流量时,这是不可扩展的。这对于BGP学习路由尤其如此,因为它们只指定下一跳地址,而不指定接口,需要递归路由查找。

  • 快速交换缓存项基于目的地,这也是不可伸缩的,因为核心路由器包含大量目的地地址。用于保存路由缓存的内存大小是有限的,因此随着表大小的增加,缓存内存溢出的可能性增加。此外,随着缓存深度的增加,查找时间也会增加,从而导致性能下降。

  • 快速交换不支持并行路由之间的每包负载共享。如果需要每个数据包负载共享,则必须禁用快速交换,并且必须使用进程交换,从而导致性能下降。

此外,“一个CPU做所有事情”的方法也不再适合高速转发。新开发的高端Cisco路由器支持大量高速网络接口,并将转发过程直接分发到线路卡。为了解决这些问题和其他问题,思科开发了一种新的交换方法——Cisco Express Forwarding (CEF)。CEF不仅解决了与快速交换相关的性能问题,而且还考虑到了新一代的“分布式”转发平台。

思科表达转发

与快速切换一样,CEF在路由处理器中断间隔期间(对于基于cpu的平台)使用缓存条目来执行完全的切换操作。正如您所记得的,快速切换依赖于第一个包到任何给定目的地的进程切换,以构建其缓存表。CEF消除了这种基于需求的机制和对进程切换的依赖来构建缓存。相反,CEF表是直接从路由表预构建的,而邻接表是直接从ARP缓存预构建的。在交换任何数据包之前,这些CEF结构是预先构建的。没有必要通过交换任何数据包来构建缓存条目。一旦构建了CEF表,路由处理器上的CPU就会从未直接参与再次转发数据包(尽管可能需要执行内存管理和其他内务管理功能)。此外,预先构建CEF结构大大提高了具有大型路由表的路由器的转发性能。注意,CEF切换通常被称为“快速路径”切换。

基金主要维持两种结构:

  • 转发信息库(FIB)

  • 邻接表

转发信息库

FIB是一个专门构造的路由表版本,该路由表存储在多道树数据结构(256路MTRIE)中,该结构被优化为一致,高速查找(具有一些路由器和IOS依赖)。目的地查找是以全面的基础完成的;因此,它只需要四个查找(8-8-8-8)来查找任何特定目的地的路由。

FIB已完全解析,并包含主路由表中存在的所有路由。它始终保持同步。当网络中发生路由或拓扑更改时,IP路由表将更新,这些更改将反映在FIB中。由于FIB条目和路由表条目之间存在一对一的协议,因此FIB包含所有已知路由,无需维护与快速交换相关的路由缓存。

为路由器自身拥有的目标地址安装特殊的“接收”FIB条目。这些包括分配给物理接口、环回接口、隧道接口、224.0.0.0/8地址范围内的保留多播地址以及某些广播地址的地址。目的地址与“接收”条目匹配的数据包由CEF以相同的方式处理,并简单地排队等待本地传递。

每个FIB表项还包含一条或多条与邻接表项相连的链路,支持等价负载分担或多路径负载分担。

邻接表

邻接表包含了必须发送到指定的下一跳网络设备的包的封装所必需的信息。如果下一跳设备通过共享IP子网直接连接,CEF将其视为邻居。

每个邻接条目存储在使用引用相应邻接条目的FIB条目转发数据包时使用的预先计算的帧头。发现邻接时,将填充邻接表。每次创建邻接条目时(例如通过ARP协议),都会预先计算该相邻节点的链路层报头并将其存储在邻接表中。

每个路由项可能有多条路径,这使得在跨多条路径进行负载平衡时,可以使用CEF交换包。

除了下一跳接口邻接(换句话说,主机路由邻接)之外,还存在某些异常条件邻接,以加快非标准条件下的切换。其中包括:用于处理CEF不支持的功能(如IP选项)的punt邻接,以及用于引用Null0接口的前缀的“drop”邻接(转发到Null0的数据包被丢弃,这是一种有效的访问过滤形式。Null0将在第二节中进一步讨论)。

命令的输出示例1-3邻接命令,显示邻接表信息。示例1-4显示了Show IP cef命令,显示CEF交换的前缀列表。

示例1 - 3显示CEF邻接表信息

相关:
123.45678910 第7页
第7页,共10页
工资调查:结果在