快速转发引擎
FFE可以为IP单播和多播数据包制定转发决策,并进行ACL和QoS处理。它还可以为多播、SPA等进行数据包复制。FFE用外部TCAM来存储被转发的数据包的状态信息。
Supervisor III硬件中的所有IP转发工作都是利用能够以很快的速度提供高质量数据包处理服务的三重CAM(TACM)完成的。TCAM采用了0.18um的COMS技术,因而可以在一片电路上拥有超过1MB的内存,足以存储访问列表和QoS分类符。Supervisor III 的TCAM具有18MB的存储密度,硬件容量足以存储多达512K的IPv4目的地地址。
ACL、QoS或者IP转发规则都被放入"TCAM编译器"中,该编译器可以将ACL映射到TCAM位。在TCAM中,一个记录项的任何一位都可以被隐藏。TCAM可以返回第一个符合的记录项的编号。这种能够匹配任何一组数据包描述符位的能力可以有效地提供一组丰富的IP功能,例如单播路由、多播路由、访问列表或者流量管理等。Supervisor III TCAM最高速度可达200MHz,搜索速度可以超过每秒五千万次。
下图显示了具有TCAM的快速转发引擎的结构框图。
FFE在工作过程中还用到了多种外部内存,它们是:
另外,FFE还具有下列片上内存:
CPU接口
Supervisor III 配有一个300MHz的PowerPC MPC8245 CPU,该CPU可以与FFE ASIC互传信息。例外情况:在硬件中无法处理的数据包,或者由软件产生的数据包通过这个接口。该CPU还负责执行其他的控制面板功能,例如ARP、生成树协议和系统管理。
Supervisor III还可以为发送给CPU的数据包提供QoS功能。这些数据包不会直接发送给CPU,而是首先被放到一个队列中。总共有32个队列,每个用于一个特定的事件。通过对CPU编程,可以用软件控制每个外部事件所对应的队列。这些事件包括控制流量(BPDU,路由协议数据包),RPF错误,SPAN,MTU检查错误,ACL记录等等。该软件可以灵活地将这些事件分配到不同的队列中。这样,具有较高的优先级的路由数据包会被分配到优先级较高的队列中,而其他数据数据包(例如ACL记录)则被分配到优先级较低的队列中。CPU能够以一种循环的方式处理每个队列中的信息。这种功能让Supervisor III可以保护重要的流量,并更加有效地管理它们。
线路卡接口
Cisco Catalyst 4006的机箱具有六个插槽,一个用于supervisor,五个用于线路卡。每个线路卡都与背板间有一条12Gbps的全双工连接。在Supervisor Engine III上,PPE通过串行/解串多路复用 (SERDES)芯片连接到千兆以太网端口。共有四个SERDES芯片,每个支持8个GE端口。PPE上的每个千兆端口都可以单独地进行配置,通过连接一个"短线"芯片,支持多达4个或者8个物理端口(10/100或者10/100/1000)。"短线"芯片是指简单的多路复用/信号分离芯片,可以从交换架构中引出一根千兆位链路,以不同的速度将数据分散到多条物理链路中。这使得具有Supervisor Engine III的Catalyst 4006可以扩展到240个10/100/1000端口。
图:Cisco Catalyst 4006背板,Supervisor III和线路卡接口

数据包流量
Supervisor Engine III在硬件上可以提供线速的第2/3/4层交换性能,总速率可达48Mpps。数据包处理引擎(PPE)和快速引擎(FFE)互相协作,共同转发数据包。线路卡中没有本地转发逻辑;所有数据包都到Supervisor进行中央转发。从硬件的角度来说,通过Supervisor Engine III交换引擎的数据包的交换操作可以分解为三个主要的部分:接收,转发决策,传输。
接收操作的主要步骤如下图所示:
转发操作的主要步骤如下图所示:
本节将介绍Supervisor Engine III进行第2层帧交换的逻辑数据包流程。
在一个输入端口上接收到一个数据包时,将执行一次输入端口处理,以检查是否有错误,并更新统计信息。该数据包随后会被分解,并映射到一个协议存储段中。同时还会从输入数据包中搜集VLAN ID和CoS信息。第2/3/4层标签或者搜索密钥从数据包报头中产生。
所有ACL处理和QoS分类都是通过将数据包搜索密钥与规则相匹配,利用三重CAM实现。通过这种匹配,数据包可以被舍弃,复制到CPU,或者转发到相应软件进行处理(例如ACL记录),并最终以硬件方式发送。
进行第2层搜索时,首先要检查生成树内存中的生成树状态,然后搜索第2层搜索内存中的源和目的地的MAC地址。端口的VLAN生成树的状态决定了是舍弃该数据包,还是继续进行第2层搜索。所有第2层信息的获取都是通过软件完成,而第2层SA搜索则是由硬件完成。但是,当一个第2层SA搜索发生错误时,硬件将会将数据包的一个部分发送给CPU。软件将会获取相关信息,并载入必要的硬件状态,这样随后的数据包就可以通过硬件进行交换。随后将要搜索DA。如果没有发现任何匹配,该数据包将会被舍弃。否则,该帧将会被发送给输出端口。第2层转发决策是建立在目的地MAC地址,协议存储段和与该帧有关的VLAN ID的基础之上。如果DA不是该路由器的MAC地址,该帧将会在第2层转发。
搜索密钥会与输入和输出的QoS规则比较。一个QoS规则可能会根据策略,要求舍弃该数据包。否则,该端口,输入和输出的QoS规则,以及策略结构将会融合在一起,决定一个最终的内部DSCP值。这个DSCP值可以决定输出端口中四个传输队列中的一个。每个子端口(通过一个短线ASIC的阻塞10/100或者10/100/1000端口)的传输队列的深度是240个数据包。因为每个千兆位端口等于8个子端口,所以每个非阻塞千兆位端口的队列深度为8×240=1920个数据包。
第2层功能
获取信息
所有第2层信息的获取都是通过软件完成,并载入到硬件中。但是,当一个第2层资源搜索发生错误时,硬件将会将数据包的一个部分转发给CPU。软件将会处理数据包,并将一个记录项载入到硬件搜索表中。软件将会获取相关信息,载入必要的硬件状态,这样随后的数据包就可以通过硬件进行交换。预计的信息获取速度约为每秒1000台主机。
超时
第2层超时功能由软件进行。硬件会为每个源MAC地址提供一个参考位。当MAC地址被作为某个接收到的数据包的源MAC地址时,该参考位就会被设置。超时位并不再控制数据包中设置。软件可以利用参考位,判断一个主机是否处于闲置状态。
SPAN
交换机端口分析器(SPAN)可以将流量(端口或者VLAN)镜像到另外一个端口。无论是接收,传输,或者来自于两个方向的流量都可以被发送给一个SPAN目的地端口。Supervisor III支持多达6个不同的SPAN进程(2个输入,4个输出),并具有不同的或者重复的SAP源接口/VLAN组。一个双向的SPAN进程即为一个输入进程和一个输出进程。交换和路由接口都可以配置为SPAN源。
Supervisor III可以利用硬件或者软件部署SPAN。软件只需要在范围配置发生更改时,配置硬件的范围状态。SPAN的余下部分都在硬件中完成,不需要软件参与。
输入端口SPAN
支持两个输入端口SPAN进程。来自于一个输入端口的镜像数据包可以复制到一个或者全部两个SPAN进程目的地端口。在从镜像端口接收到的IP交换数据包在SPAN端口之外传输时,它们不会被改写,以便SPAN端口可以看到原始的输入数据包。
在Supervisor III输入端口SPAN中,可以在进入监控端口的输入线上捕捉数据包。因而所有进入监控端口的数据包都会被发送到SPAN目的地,这其中包括交换机中由于输入端口的生成树状态而丢弃的数据包。在一个中继端口中,支持中继VLAN过滤。来自于任意个数的VLAN的流量都可以被发送给SPAN目的地,而其他数据包被滤除。
如果可以实现上述所有方案,那么所有从监控端口接收到的数据包都会发送给SPAN目的地端口。
输出端口SPAN
Supervisor III支持最多四个输出端口SPAN进程。每个进程都可以通过配置,监控数据包是单播还是多播。来自于任意个数的VLAN的流量都可以被发送给SPAN目的地,而其他数据包被滤除。镜像数据包在SPAN目的地端口以外传输,具有与IP交换数据包的镜像端口相同的IP。
双向SPAN
Supervisor III支持两个两项SPAN进程。所有用于输入端口SPAN进程的规则都会应用于输入方向。同样,所有用于输出端口SPAN进程的规则也都会应用于输出方向。每个双向SPAN进程都使用一个输入SPAN进程和一个输出SPAN进程。
VLAN SPAN
任何数量的SPAN都可以通过Supervisor III中的任何端口制作镜像。当一个VLAN在某个指定方向(输入,输出,或者双向)进行镜像时,VLAN中的所有端口都会以相同的方向进行。根据VLAN的镜像防线,相应的端口SPAN的所有规则也将会应用。在缺省情况下,所有监控端口(SPAN目的地端口)都用于SPAN流量,这些端口上不能接收到任何其他流量。
| 共3页: 上一页 [1] 2 [3] 下一页 | ||
|