一种智能网卡系统

2022-09-11

一、引言

数据中心是企事业单位业务运营的神经中枢。当前的网络安全威胁形势变得越来越复杂, 各种网络攻击层出不穷, 数据中心安全保护越来越重要。

如图1所示传统的数据中心安全采用防火墙设备将内外网隔离, 所有外部流量经过防火墙, 保护内部网免受非法用户的侵入。随着数据中心业务越来越复杂, 数据中心内网中服务器到服务器的横向流量越来越大。内网流量不经过防火墙, 没有防护, 存在很大的安全隐患。为解决这个问题为每个服务器单独配置一个防火墙将占用非常大的机架空间, 并且价格昂贵, 实用性不高。

二、智能网卡取代传统网卡提供安全功能

服务器上所有的数据收发一般都是通过标准的PCIe网卡实现的。标准网卡 (NIC) 一般使用INTEL的ASIC芯片实现, 插在服务器的PCIe插槽中, 进行数据的收发。这种网卡价格低廉、性能高, 但功能单一, 并不具有任何的安全功能, 没办法对服务器进行安全防护。

近几年智能网卡 (Smart NIC) 逐步兴起, 使用FPGA或嵌入式CPU, 同样以网卡形式插在服务器的PCIe插槽中, 除了提供传统的数据收发功能, 还可提供网络安全、CPU负载分担等多种多样的功能。在对网络安全要求严格的场景, 使用智能网卡提供防火墙功能保证服务器安全的应用越来越多。

三、智能网卡系统硬件架构

(一) 智能网卡指标

本文基于CAVIUM公司的CN7130处理器提出了一种智能网卡系统硬件架构, 具有低成本、高性能、多功能等特点, 非常适用于替代标准网卡满足数据中心网络安全应用。智能网卡基本指标如表1所示。

(二) 智能网卡的基本硬件架构介绍

基于嵌入式处理器CN7130的智能网卡产品基本硬件架构如图2所示。

智能网卡主板按照《PCI Express®Card Electromechanical Specification Revision 2.0》标准设计, 具体方案如下:

(1) CPU用CAVIUM公司的MIPS架构CPU CN7130, 4核1.2G, 512KB的2级缓存。此CPU性能高, 在经过软件性能优化后, 可以做到4个千兆口全速转发, 满足智能网卡的性能要求。CN7130功耗比较低, 在4个GE口全速转发时功耗不超过5W。内置了8个千兆MAC, 并能支持SPI flash、EMMC存储、SATA硬盘等多种外设设备, PCIe接口既可以作为Root模式, 也可以配置为Endpoint模式。芯片面积也比较小, 仅27mm*27mm, 非常适合智能网卡应用

(2) 考虑到需要做到4个千兆口的全速转发, 并且CN7130要运行复杂的安全应用, 内存容量必须比较大, 根据软件评估至少需要2GB的大内存。硬件设计上选择4颗16bits位宽4Gbits容量DDR3颗粒, 共计2GB容量。PCB设计上正面2颗, 背面2颗, 减少PCB面积占用, 布线也更简单。品牌使用海力士或三星, 保证品质可靠, 供货稳定。

(3) SPI总线连接8MB SPI flash存储boot程序, SDIO总线连接4GB EMMC, 存储操作系统和应用程序。

(4) 以太网PHY选择marvell公司的88E1340。88E1340芯片是一颗4口千兆PHY芯片, 可以支持光口也可以支持电口, 体积小功能强大, 功耗也比较低。88E1340通过QSGMII总线和CPU连接, 出两个1000BASE-T千兆电口和两个1000BASE-X千兆光口。

(5) CPU CN7130的DLM1/2接口配置为PCIE×4Endpoint模式, 支持PCIe 2.0 5Gbps, 按照PCIe规范连接到网卡金手指, 作为主要的数据通道用于和服务器CPU通信。

(6) 板卡尺寸和信号定义需要严格按照PCIe规范执行, 以保证良好的兼容性。

(7) 考虑到CPU信号功耗最高5W, 需要为其增加散热器, 根据散热仿真确定散热器面积。需要注意PCIe卡的高度较低, 考虑到PCB 1.6mm厚度和CPU芯片2mm厚度, 再预留一定的安全间隙, 确定散热器高度不超过15mm。

(三) 智能网卡的PCB设计

由于按照标准PCIe全高半宽卡设计, 其PCB尺寸仅111.15mm×167.65mm, 在这么小的板上要摆放一整套嵌入式系统, 必须合理规划PCB布局才能保证良好的散热和较低的PCB层数以降低成本。

经过综合分析和考虑, 将CPU CN7130芯片放置PCB板中间偏上位置, 左侧为DDR芯片, 在PCB上正反贴共4片。考虑到DDR走线复杂, 并需要做等长处理, 在CPU和DDR附近预留足够的空间用于走线等长绕线。

CPU CN7130芯片下方是高速信号, 如PCIe/QSGMII引脚密集区域, 如图摆放可以减少高速信号走线长度, 提升信号质量。

CPU CN7130右侧放置存储芯片, 如SPI FLASH和EMMC。

将PHY芯片88E1340放置在CPU下方, 靠近以太网变压器和SFP光模块插座。

四、智能网卡工作流程

(一) 智能网卡的基本初始化流程

基于CN7130的智能网卡插入服务器的PCIe插槽后, 服务器给网卡供电并解除复位信号, 处理器CN7130从SPI FLASH中读取boot程序, 接着从EMMC存储器中读取操作系统并启动。启动完成后, 服务器CPU在PCIe总线上将扫描到一个PCIe设备, 通过读取PCIe的ID信息识别到是CN7130的智能网卡。接着服务器CPU将加载这张智能网卡的驱动程序并对网卡做特定的配置, 如启动或关闭某些端口, 开启或关闭某些功能。

(二) 智能网卡基本的数据收发流程

接下来我们将对智能网卡的收发报文的流程做一个简单介绍, 以便进一步理解智能网卡的工作流程。

当智能网卡从光接口或电接口收到以太网报文, 报文通过PHY芯片88E1340经QSGMII接口送至CPU CN7130。CN7130将报文暂存在内存中。

接着CN7130 CPU会根据服务器CPU对其配置对报文做安全检查, 如认为是非法报文则做丢弃处理, 如是合法报文将报文从PCIe接口送给服务器CPU。

当服务器CPU需要向外发送报文时, 服务器CPU首先通过PCIe接口将报文送给智能网卡CPU CN7130, CN7130将报文暂存在内存中。接着CN7130会根据服务器CPU对其配置对报文做安全检查, 如认为是非法报文则做丢弃处理, 并通过PCIe总线告知报文非法被丢弃;如是合法报文将报文从QSGMII接口送给PHY芯片88E1340, 最后从电接口或光接口到对端设备 (如交换机) , 最终到达目的IP的终端设备。

(三) 智能网卡的故障诊断和恢复流程

由于智能网卡上运行了一个完整的操作系统和非常复杂的网络安全服务, 极有可能在运行过程中发生软件错误导致功能异常。智能网卡是服务器对外通信的唯一通道, 若其功能异常将导致服务器所有功能不可用, 在数据中心是不可接受的事故。为此需要建立一套机制, 在智能网卡发生软件错误时能够自动恢复, 并且恢复时间尽可能快。

本设计在PCIe总线上设计一种心跳机制。在服务器CPU检测到智能网卡后, 智能网卡每秒钟通过PCIe总线向服务器CPU发送一个特定的心跳报文。服务器CPU每秒钟检查一次这种心跳报文, 如连续3次未收到心跳报文, 则判断智能网卡出现了异常。此时进入异常处理流程。简要的处理流程是首先卸载智能网卡驱动程序防止服务器程序出错, 接着对智能网卡进行复位和断电处理, 在3秒钟后重新上电并解除复位信号让智能网卡重新启动。重新启动后如心跳恢复正常则按照正常逻辑进行数据收发包, 如无法恢复则重复这个故障处理流程并通过指示灯报警。管理员通过网管系统发现服务器无法连接, 观察到报警灯亮进行下一步故障诊断。

五、结论

本文介绍了一种基于嵌入式处理器的智能网卡硬件架构, 可以大大加强服务器系统的数据安全, 并且具有低成本、高性能、多功能等特点, 非常适用于数据中心网络安全应用。

摘要:传统数据中心安全防护依赖对外的防火墙设备, 仅能防护外部网络攻击, 无法保证数据中心内部网络安全。为每台服务器单独配置防火墙以解决此问题将造成成本/空间的浪费。本文介绍了一种智能网卡的硬件架构, 可以在不增加空间占用的前提下, 低成本的解决服务器的安全防护问题。其方法要点是利用嵌入式处理器CN7130构造一张智能网卡, 在CN7130上运行完整的安全服务。本文详细介绍了基于CN7130的智能网卡硬件架构和设计要点, 并说明了基本的数据收发模型。

关键词:智能网卡,网络安全,CN7130

参考文献

[1] Peripheral Component Interconnect Special Interest Group (外围部件互连专业组) 《PCI Express®Card Electromechanical Specification Revision 2.0》.

[2] CAVIUM公司《Cavium OCTEON III CN71XX Hardware Reference Manual V1.6P》.

[3] CAVIUM公司《OCTEON PCI/PCIe Base Driver Reference Guide Released Version:3.1.2》.

[4] https://www.jianshu.com/p/1dac8f9a58b0.

上一篇:对防治炼油厂地下水污染措施的探讨下一篇:微生物细胞传感器在环境监测中的应用研究进展