基于BCM5645芯片的IP QoS设计分析

2010-09-26 01:59康京山
无线电工程 2010年10期
关键词:掩码数据流过滤器

孟 霞,康京山,路 敏

(1.中国电子科技集团公司第五十四研究所,河北石家庄050081;2.河北电力建设第二工程公司,河北石家庄050081)

0 引言

随着Internet的飞速发展,IP网络迅速增长,已从原来的单一的数据网络发展为一个名符其实的综合业务网,而不同的业务对服务质量(QoS)提出了不同的要求。由于三层以太网交换机集二层交换技术和三层路由(或称三层转发)技术于一体,不但实现了路由器的第三层路由功能,而且具有线速转发报文能力,实现了灵活的VLAN划分、高效的组播控制、流策略的管理及访问控制等功能,因此受到青睐。

基于BROADCOM公司的BCM5645控制交换芯片,探索了在三层以太网交换机中解决IP QoS问题的方法。

1 三层交换机QoS实现技术

1.1 三层控制交换芯片BCM5645

BCM5645是一款具有二、三层交换能力的芯片,其交换引擎与外部CPU模块通过33 MHz PCI总线连接,通过控制直接存储器存取实现二者之间的高速数据包交换。交换引擎在片内高速数据缓冲池中为包缓存提供了内部存储器。BCM5645支持24个全双工10/100 Mbps以太网接口,分成3组接口模块。同时还支持2个全双工千兆以太网接口。支持分类服务和流量控制,支持快速过滤机制(Fast Filter Processor,FFP),支持 IEEE 802.1d协议、IEEE 802.1s协议(生成树协议)、IEEE 802.1p协议和IEEE 802.1q(VLAN)协议。

1.2 BCM5645芯片数据处理流程

所有数据流通过BCM5645芯片都按照如下流程进行处理:

入口逻辑→内存管理单元→出口逻辑。

其中入口逻辑内的处理最关键,它决定了数据流将得到怎样的处理:转发、丢弃或者复制等等。内存管理单元提供数据包的缓存和调度。出口逻辑将数据包从内存管理单元中取出并发送到相应接口上。

数据包在经过入口逻辑时的处理顺序是:以太网帧到达后,根据目的MAC地址进行2层选路,如果找不到出口则根据三层目的IP地址进行三层选路,然后进入FFP处理,对数据流实施QoS参数控制,即MAC→L2→L3→FFP→MIRROR→内存管理单元。

1.3 FFP的实现机理

FFP能够提供强大的包过滤和分类功能。它由掩码器和规则表2个部分组成。掩码器用于提取包的某一个域或多个域的组合(如:源/目的MAC地址、源/目的 IP地址、源/目的端口号、协议类型和TOS等字段)。FFP支持16个掩码器,即可定义16个过滤掩码,每个掩码实际上确定了要提取包的某一个域的窗口的位置和窗口的大小。规则表主要用于判断进入的IP包经掩码器提取后的某一个域(或几个域)值(Filter Value)是否与规则表匹配以及要进行的处理。规则表包含过滤规则、入口出口的端口号、掩码器号(即FSEL)、动作和输出端口等。

BCM5645可检测数据包头的前80个字节的信息,针对一个域值或多个域值的组合,实现了对IP包从2~7层的分类,具体包括:

①根据源MAC、目的MAC地址进行分类;

②根据入口port进行分类;

③根据5元组进行分类:包括源IP地址、目的IP地址、协议号、源TCP/UDP端口号和目的TCP/UDP端口号;

④根据DSCP(区分服务编码点)进行分类等。

对于匹配的数据流可以执行以下动作:

①插入一个802.1p标记;

②镜像到任意一个4级服务队列;

③修改IP服务类型字段;

④发送一个数据包的副本给CPU;

⑤丢弃数据包;

⑥转发数据包到任意一个出口;

⑦发送一个数据包副本到与之镜像的端口等。

FFP还可以提供计量功能,能够计量数据流的速率是否符合要求,经计量器测试的业务流可分为符合包和不符合包。对符合包所采取的动作包括:标记(重标记)DSCP(区分服务编码点)值、标记TOS(服务类别)优先级域值、改变802.1p域值、将包发送到镜像端口、将包重定向到指定端口、包丢弃、整形和转发等;对不符合包所采取的动作有:发到CPU、包丢弃、改变DSCP值和包转发等。

具体来说,当某个包到达交换机入口时,所有16个过滤掩码器同时被应用,掩码器号及过滤值作为寻找128个条目深度的规则表的关键字,如图1所示。即只有当FSEL值和Filter Values值都匹配的包才是符合过滤规则的包。16个掩码器的选择由FSEL决定,FSEL值越大,其所对应的规则表的过滤规则的优先级越高。当包经某个掩码器提取后,再根据此掩码器所对应的检索号FSEL值,查找与此FSEL值相等的过滤规则,并判断所提取的包的域值是否与此过滤规则匹配,一个掩码器可能对应多个过滤规则。另外,数据包被掩码器的处理是有顺序的,即进入的数据包首先被FSEL值小的掩码器处理,最后是被FSEL值最大的过滤器处理,这样可能产生与多个过滤规则相匹配,即对分组进行分类时发生了冲突。当发生冲突时,执行优先级较高的过滤规则所对应的动作。

图1 FFP处理流程

2 开发实践

在工程实践中基于BCM5645芯片研发了三层以太网交换机,并实现了与 IP QoS相关的多种功能,包括:业务流分类、流量测量及监管、基于优先级的排队机制、多种队列调度方式、防火墙过滤功能、灵活可变的QoS映射策略以及隧道功能等。在这些功能的实现过程中,都借助了FFP,通过定制各种Filter(过滤器),保证IP QoS。

2.1 FILTER创建的步骤及使用的函数

创建的基本步骤在实际中应用时可以根据需要自行裁剪,更详细的内容可以参考本芯片的手册。

第1步:指定要过滤的数据包的特征值和掩码。用到的函数是:

特征值的选取根据实际需要,例如:源地址、目的地址、目的端口号和协议类型等等。

第2步:指定匹配过滤规则的数据包将采用的转发行为。用到的函数是:

第3步:创建计量器,用于统计某个数据流的流量。这个步骤是根据实际需要可以进行取舍的。使用的函数是:

第4步:指定计量器的流量门限。如果不使用计量器则可以省略该步骤。使用的函数是:

第6步:将filter加载到硬件处理表中,表示该filter将开始发挥作用。使用的函数是:

第5步:指定对于超出计量器流量门限的数据流要采用哪些转发行为。如果不使用计量器则可以省略该步骤。使用的函数是:

2.2 实验验证

2.2.1 验证环境

使用AX4000测试仪以及PC机作为数据源。三层以太网交换机设置3个接口,其中2个作为入口,1个作为出口。AX4000测试仪发送100 Mbps数据流,PC机上使用发包工具发送80 Mbps数据流,分别从三层以太网交换机2个接口进入,然后从 1个接口流出.测试连线图如图2所示。

2.2.2 验证实验1

该实验用于比较优先级调度对数据流的影响。

①测试内容:同等优先级调度对数据流的影响。需要创建的过滤器描述如下:过滤器1:将“源地址192.168.1.1、目的地址192.168.3.1和协议类型为1的数据流”放入优先级为1的调度队列;过滤器2:将“源地址192.168.2.1、目的地址192.168.3.1和协议类型为172的数据流”放入优先级为1的调度队列。在该环境下测试得到如下结果:当数据流1和数据流2为同等优先级时,队列调度是轮流处理2种流,对数据流2进行监测,流量变化如图3(a)所示(按时间顺序从右向左观察,以下图同此)。

图2 测试连线图

②测试内容:不同优先级调度对数据流的影响。需要创建的过滤器描述如下:过滤器1:将“源地址192.168.1.1、目的地址192.168.3.1和协议类型为1的数据流”放入优先级为2的调度队列;过滤器2:将“源地址192.168.2.1、目的地址192.168.3.1和协议类型为172的数据流”放入优先级为1的调度队列。在该环境下测试得到如下结果:当设置数据流1为高优先级时,队列调度优先处理该流,数据流2的丢包率急剧增大,流量变化如图3(b)所示。

图3 数据流2的流量变化

2.2.3 验证实验2

测试内容:数据流流量的测量与监管。需要创建的过滤器描述如下:过滤器1:限制“源地址192.168.2.1、目的地址192.168.3.1和协议类型为172的数据流”的流量为100 Mbps,对于超过流量的数据包实施丢弃;过滤器2:限制“源地址192.168.2.1、目的地址192.168.3.1和协议类型为172的数据流”的流量为50 Mbps,对于超过流量的数据包实施丢弃;(按照如下顺序分别限制数据流2的流量:100Mbps→50 Mbps→30 Mbps→20Mbps→10 Mbps→20Mbps→30Mbps→50Mbps→100 Mbps。)

在该环境下测试得到如下结果:数据流2的流量变化如图4所示。从图4可以明显地看到数据流量得到了有效监管。

图4 数据流2的流量计量

3 结束语

IP QoS是当前IP网络的热点问题,以bcm5645芯片为例,给出了在三层以太网交换机中IP QoS的设计和实现方案,实现了对2~7层业务流的分类和多种调度处理,实验表明,根据所制定的不同策略,可以确保不同服务等级的业务得到应有的服务质量保证。

[1]肖昌吉.基于END模型的三层交换机驱动的设计与实现[D].成都:电子科技大学,2005:14-31.

[2]孙纪敏.ATM交换系统软件开发与实现-软件工程化实践[J].无线电通信技术,2001,27(1):1-2.

猜你喜欢
掩码数据流过滤器
基于RISC-V的防御侧信道攻击AES软件实现方案
汽车维修数据流基础(上)
汽车维修数据流基础(下)
低面积复杂度AES低熵掩码方案的研究
更 正
声音过滤器
基于布尔异或掩码转算术加法掩码的安全设计*
基于数据流聚类的多目标跟踪算法
基于掩码的区域增长相位解缠方法
北医三院 数据流疏通就诊量