APP下载

一种可编程Slice的FC路由访问控制设计与实现*

2022-08-26王兆辉沈剑良

电讯技术 2022年8期
关键词:指令集字段访问控制

王兆辉,邓 豹,沈剑良,陈 艇

(1.国家数字交换系统工程技术研究中心,郑州 450003;2.航空工业西安航空计算技术研究所,西安 710068)

0 引 言

在航空航天环境中,设备以及数据传输的安全性指标尤其重要,航空电子环境下的光纤通道(Fibre Channel-Avionics Environment,FC-AE)协议[1]由于其高可靠性和高稳定性而广泛应用在航天航空等领域中,而基于FC协议的交换芯片路由访问控制策略一般是通过设置ZONE(物理端口分区)端口区域隔离[2]或者配置虚拟端口分区(Virtual SAN,VSAN)虚拟端口号的形式去提升数据安全性。

访问控制策略的有效性是决定一个FC交换芯片功能性是否完整和整体设计灵活性的核心模块[3],同时也是保证数据安全传输的关键技术[4]。而传统的路由访问控制包括报文的单播、多播和广播,以及出入端口检查、端口镜像设置、ZONE配置和VSAN配置等功能。在传输的过程中使用ZONE配置和VSAN配置来对端口进行区域隔离是出入端口检查的通常做法。但是这种传统做法存在配置更改不灵活、功能扩展性较差等缺点。随着网络技术的迭代更新,为了应对不断出现的新型网络协议需求,灵活可编程的路由访问控制策略不但能够提高FC产品的适应性,同时可根据用户需求实现灵活的网络访问控制,提高网络的安全性。

可编程协议处理在以太网网络中广泛使用,软件定义网络(Software Defined Network,SDN)[5]所提出的一种数据平面和控制平面相互分离的架构模式,其设计架构的高灵活性正符合路由访问控制的设计需求。

可编程协议解析已经大量应用在以太网的数据包解析和包处理过程中,但尚未有针对FC协议报文格式特点设计专用的可编程解析器的研究。本文结合FC协议中所规定的的拓展包头的格式特点[6],以及王孝龙等[7]提出的slice多级处理结构,设计PDR(Programmable Dynamic Routing)可编程解析器,采用可编程的方式,终端用户可以通过完全自定义的方式动态配置和调整数据包的路由检查配置策略。相较于传统的VSAN配置,使用PDR可编程配置的路由策略可以使用多种域段作为访问控制的匹配域,使攻击者的配置模式预测和攻击更加困难,同时可以根据流量的实际状况动态调整端口监测的配置模式使整体系统的灵活性和适用性更高、安全性更强。

1 可编程协议处理

1.1 PDR硬件结构

整体硬件结构如图1所示,在数据包接收模块接收到到数据包之后首先将数据包的包头字段和负载字段进行分割,然后根据包头的字段信息生成一个MF控制符,该控制符内容包括slice查表地址、报文长度和报文信息等,而负载内容则存入数据存储模块中。生成的MF控制符在传输到可编程slice模块后,由可编程模块对MF控制符信息进行编辑更新处理,将字段信息修改并生成一个新的MF控制符。新的MF控制符中送入数据包发送模块中,发送模块读取新MF控制符中的信息后提取自定义数据字段组成新的包头并将新包头与负载组合为新的数据包后传输到下一级处理模块。

图1 PDR整体模块结构框图

1.2 解析器核心实现模块

该解析器的核心设计模块为slice可编程解析模块。在对数据包进行初步处理后,包头中的控制信息被以MF控制符的形式送入该模块后,其中的多级slice分别对应每段包头的字段信息。经过图2所示的处理流程,可以将对应的字段信息根据软件配置进行修改,以实现对数据包的包头内容可编程修改。

图2 slice可编程模块处理流程

MF控制符中,P_key_ram模块会提取MF中的p_key_ram指针,获取存储在P_key_ram中的216 b的p_key值,p_key值用于对MF中的用户自定义数据位进行提取和比较操作。根据P_key值的指示信息在P_key_assemble模块中对自定义数据位进行比较和提取并生成一组40 b的比较提取值p_key_compare,在三态内容寻址存储器(Temary Content Addressable Memory,TCAM)模块中所存储条目会和这组值进行匹配,根据匹配结果的不同生成一组p_action指针进入p_action模块提取不同的p_action键值对MF执行不同的操作。

2 可编程路由访问策略实现

2.1 扩展包头字段提取流程

FC-FS-4协议中规定的FC协议报文的数据包格式,本设计中选取拓展包头作为路由配置策略的功能字段,FC协议包头格式如图3所示,其中ENC_Header、IFR_Header、VFT_Header是拓展包头字段,VFT_Header可以作为数据包划分VF_ID的字段携带位,通过配置逻辑端口的出端口和入端口规则可以对路由配置策略进行有效控制,对匹配路由表但是不匹配VF_ID的数据包进行其他操作处理。本设计则是对这种划分方案的一种拓展改进,不再选取固定VFT_Header字段作为出入端口规格判断位,而是由用户自身选取扩展包头中的任意一种字段做为有效出入端口的判断位域,其中对每种拓展包头的字段选择位如表1所示,通过控制R_CTL域段值可以选择数据包的扩展包头。

图3 FC-2包头字段格式

表1 拓展包头的字段选择位

2.2 slice可编程配置

当数据包进入路由模块后,处理流程如图4所示。首先将包头以及扩展包头信息提取至MF控制符中的自定义数据位,然后进入第一级slice中,将R_CTL域段放在数据位首段;对R_CTL值进行提取和比较操作后,进行第二级slice,将包头中的D_ID域段数值进行提取,进入TCAM模块并与TCAM中的条目进行对比,匹配后进入P_action模块,对应R_CTL的8 b位段在命中后将执行置位操作,将设定好的拓展包头位进行替换。P_action结构如表2所示,其中模块实现主要包含P_instr指令集和Skey_instr指令集两个指令集。

图4 路由访问控制配置流程

表2 P_action模块指令集

Skey_instr指令集主要负责执行提取MF值输出给外部模块使用,而P_instr指令集主要是在TCAM条目匹配后对MF中的自定义数据位执行操作处理的指令集,其中主要分为四种有效操作。

(1)SET置位操作:可以置位MF自定义数据位内32 b连续data的任意4 b。

(2)MOVE搬移操作:可以将任意32 b以内的数据进行连续搬移。

(3)GET获取操作:将[2 047∶1 024]分为128份8 b基地址,支持提取连续的8 b数据搬移到MF[1 023∶0]内,8 B对齐。

(4)ALU运算操作:对MF自定义数据位中的data进行加、减、异或、同或、与、或、非逻辑运算。

跟据TCAM对应匹配条目的P_action映射行为执行完毕后,新的数据包头信息将更新MF控制符,并将新的MF控制符传送给数据发送模块,完成对数据包字段信息的可编程配置解析。

根据软件对端口检查的定义配置以及扩展包头字段内容提取,对查表后进行路由的端口进行访问控制检查,只有符合路由出端口规则的数据包判定通过,其他数据包则进行丢弃。而提取的数据包D_ID字段则作为目地端口号的镜像端口,通过配置monitor_id值,将选择镜像端口号并把通过该端口的数据包进行多播发送给镜像端口,该镜像口将包上传给CPU,以实现对端口流量的实时监控。

3 实验验证

3.1 仿真验证

采用QuestaSim对整体逻辑进行仿真,对配置的9个逻辑出端口通过可编程配置选择的自定义拓展包头字段作为路由出端口检查访问,仿真结果如图5所示,显示符合配置要求,可以对所选域段和监测端口号的配置策略进行动态的数据包流量管控。

本文提出的PDR解析器设计,其数据总线位宽为256 b,时钟频率为312.5 MHz,通过在Xilinx UltraScal VU440开发板上进行功能实现,并通过Vivado仿真平台进行仿真,结果表明可以达到80 Gb/s的解析速率。

图5 采用自定义拓展包头作为出端口检查策略判定域段

3.2 性能评估

如图6所示,对三种方案的性能对比进行分析,可以看出PDR方案在配置时间基本一致的情况下,其最大可配置位宽相比较于其余两种方案扩大了10倍,最小可配置位宽仅为1/6和1/3。而PDR重配置的时间与传统ZONE和VSAN配置的时间相比基本不变,能够在较短的时间内对路由访问控制策略进行有效的重配置并生效,而可配置域段位宽的可选范围则有大幅度提升,从而让用户可以有更加广泛的访问控制策略选择;同时由于所选域段范围更大,在攻击者进行流的预测性攻击难度更大,可以有效提升整体系统的灵活性和安全性。

图6 各方案性能对比

图7给出了三种配置方案的硬件开销资源对比,其中主要对比了片LUT 的数量、片寄存器的数量和块RAM的数量,可以看出整体开销仅增加了约50%,而PDR可编程访问控制策略可以同时达到ZONE和VSAN的功能效果,并且除了应用于路由访问控制模块,该可编程解析器还可以通过增加slice串行块的串联级数来进行数据包协议解析以及哈希查表等多种功能实现,具有更高的可扩展性。

图7 硬件资源开销对比

为了进行更加全面的功能性评估,分别对VSAN、ZONE和PDR三种路由访问控制策略进行了多样化功能测试并从安全性和灵活性两个方面对测试结果进行整理,三种访问控制策略方案的性能表现评估结果如表3所示。

表3 ZONE、VSAN、PDR出端口检查策略性能表现评估

在安全性上,可以看出PDR可编程策略配置模式除了实现传统隔离策略防御的功能外,对于可能发生的预测性流量攻击和攻击后的快速恢复机制具有良好的表现,尤其在航空设备中这种完全封闭的环境下,对于预测攻击的防御以及系统功能的快速恢复机制表现尤其重要。在灵活性上,相比较于ZONE、VSAN在设计中字段选择必须遵从FC协议规定,PDR可编程解析器则可以使用在协议中未定义的字段以及保留位字段进行操作处理,这给整体设计和配置的灵活性上带来了提升。

4 结束语

本文提出的PDR路由配置策略可以实现由用户自定义的路由出端口访问机制,通过自定义提取、更改数据包的拓展包头字段来作为路由出端口的访问控制策略。相比较于传统ZONE区域划分隔离和VSAN配置隔离的方式,本设计中采用的PDR可编程解析器对划分规则高度自定义的特性可以有效提高数据路由传输的安全性和灵活性。本文中仅使用了两极的slice处理结构,通过增加更多级的slice块(最多支持13级),除了在路由访问控制上使用可编程的处理方式,未来可以在更多的应用方面如路由查表、核心交换等模块采用可编程配置的控制方式进一步扩展功能处理范围并增加整体设计的灵活性。

猜你喜欢

指令集字段访问控制
基于Kubernetes的RISC-V异构集群云任务调度系统①
一种跨策略域的林业资源访问控制模型设计
3DNow指令集被Linux淘汰
浅谈台湾原版中文图书的编目经验
内外网隔离中ACL技术的运用
Can we treat neurodegenerative diseases by preventing an age-related decline in microRNA expression?
基于Dais—CMX模型机的斐波那契数列指令集设计
云计算访问控制技术研究综述
无正题名文献著录方法评述
无正题名文献著录方法评述