1 Tbps! 使用英特尔第三代Xeon® Scalable Processor 加速VPP IPsec

news/2024/11/24 10:25:47/

点击蓝字

关注我们

5G的快速普及使得网络吞吐量快速增长,电脑技术的不断更新迭代也让网络攻击变得越来越频繁。为了应对业界对网络带宽和网络安全越来越高的要求,英特尔®在最新的第三代Xeon® Scalable 处理器中加入Intel® Advanced Vector Extensions 512 (Intel® AVX-512) 指令集,以此来获得单系统1Tbps的IPsec加密处理能力。

本文将逐步展示如何使用第三代Xeon® Scalable 处理器和Fd.io VPP开源网络协议栈软件来达到1Tbps的IPsec加解密吞吐量,希望对用户改进其IPsec应用吞吐能力有所帮助。

总览

本文有意作为用户复现1 Terabit/sec IPsec AES-GCM-128隧道加解密的零丢包(丢包率<0.0001%)吞吐量测试的参照文档,将逐步介绍各软件和硬件配置步骤。

在测试中我们使用2台DUT,每台上装有Supermicro的X12DPG-QT双Numa node主板,每Numa node上载有

  • 第三代Intel® Xeon® Scalable 处理器一枚,并将其频率恒定在2.5GHz;

  • 8条16GB的DDR4内存,频率为2933MHz。

  • 3块Intel® E810-2CQDA2 以太网卡,每个网卡载有2个100Gbps 网口。

软件上我们均采用开源Ubuntu Linux 20.04LTS 和Fd.io VPP 21.01。Fd.io VPP具有完整且高性能的IPsec数据面功能,并能自动使能AVX512指令集来加速AES对称密码运算。

具体系统配置如下

系统配置[1]

技术背景

第三代Intel® Xeon® Scalable 处理器

最新的第三代Intel® Xeon® Scalable 处理器集成了多项技术来增强网络流加密的性能:

  • VPMADD2 – 向量乘法和加法指令

  • vAES – 向量Intel® AES-NI 指令

  • vCLMULQDQ – 向量 carry-less 乘法指令

  • SHA-NI – 新SHA指令

更详细的关于第三代Generation Intel® Xeon® Scalable 处理器的介绍请移步:

  • New Intel® AVX-512 instruction set support for accelerated processing of vectorized instructions

    https://www.intel.com/content/www/us/en/architecture-and-technology/avx-512-overview.html

  • New Intel® Speed Select Technology (SST) power management technologies for increased power-aware performance

    https://www.intel.com/content/www/us/en/architecture-and-technology/speed-select-technology-article.html

  • Intel® AVX-512 – Packet Processing with Intel® AVX-512 Instruction Set Solution Brief

    https://networkbuilders.intel.com/solutionslibrary/intel-avx-512-packet-processing-with-intel-avx-512-instruction-setsolution-brief

  • Intel® AVX-512 – Instruction Set for Packet Processing Technology Guide

    https://networkbuilders.intel.com/solutionslibrary/intel-avx-512-instruction-set-for-packet-processing-technology-guide

  • Intel® AVX-512 – Writing Packet Processing Software with Intel® AVX-512 Instruction Set Technology Guide

    https://networkbuilders.intel.com/solutionslibrary/intel-avx-512-writing-packet-processing-software-with-intel-avx-512-instruction-set-technology-guide

Intel® Ethernet 810 系列网卡

Intel® Ethernet E810-2CQDA2 PCIe 4.0  网卡是转为优化网络工作流处理而生的双口100Gbps网卡。Intel® Ethernet 810 系列网卡的功能如下

  • 智能Flow Direction: Receiver Side Scaling (RSS)

  • 支持详尽的网络虚拟化协议

  • 支持vSwitch

  • QoS: (802.1Qbb)

  • 增强传输选择(802.1Qaz)

  • Differentiated Services Code Point (DSCP)

  • Dynamic Device Personalization (DDP)

关于更详细的Intel® Ethernet 810 系列网卡请移步

  • Ethernet Products:

    https://ark.intel.com/content/www/us/en/ark/products/series/184846/intel-ethernet-networkadapter-e810-series.html

  • Intel® Ethernet Controller 800 Series – Dynamic Device Personalization (DDP) for Telecommunications Workloads Technology Guide:

    https://networkbuilders.intel.com/solutionslibrary/intel-ethernet-controller-800-series-devicepersonalization-ddp-for-telecommunications-workloads-technology-guide

  • Intel® Ethernet Controller 700/800 Series – Dynamic Device Personalization Support for CNF with Kubernetes Technology Guide:

    https://networkbuilders.intel.com/solutionslibrary/intel-ethernet-controller-700-series-dynamic-devicepersonalization-support-for-cnf-with-kubernetes-technology-guide

Intel® Multi-Buffer Crypto for IPsec Library

Intel® Multi-Buffer Crypto for IPsec Library是针对英特尔平台特殊优化的堆成加密算法库。通过一系列易用且详尽的API,用户的加密应用可自动根据系统平台获得最高的性能。同时,通过第三代Intel® Xeon® Scalable 处理器所提供的AVX512指令集优化,可获得最大4倍于上代CPU的加解密吞吐量。

更多关于Intel® Multi-Buffer Crypto for IPsec Library的介绍请移步

  • https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-multi-buffer-ipsecimplementations-ia-processors-paper.pdf

  • https://newsroom.intel.com/articles/crypto-acceleration-enabling-path-future-computing/#gs.n6t02b

  • https://github.com/intel/intel-ipsec-mb

测试系统部署

我们使用了12个100Gbps的IXIA® Packet Generator网口和两台DUT相连。每3个IXIA® 网口连接一个DUT的Numa Node上的3个网口。每个Numa Node上的剩余3个网口则和另一个DUT上的同Numa Node上的3个网口相连。每个网口配有5个RX Queue,由5个CPU Core来进行收包操作。因此,每Numa Node上我们总共使用了30个CPU核心。具体配置如下图

IXIA® 流配置

12个IXIA®口均向外发送明文IPv4包。每个IXIA®口均会发送与其他口独立的256条流。每条流长度1420字节,占宽等量,并具备独立的目的MAC及IP地址。通过Intel® E810的RSS功能,每个CPU核心将被分配到51.2条流。流配置范例如下图

VPP 配置

我们在每一个DUT上运行两个VPP进程,并在其上执行包接收,IPSEC加密或解密,及包发送指令。VPP上的startup.conf配置如下

cpu {

       main-core   0

       corelist-workers   1-30

}

dpdk {

       socket-mem   2048 

       no-tx-checksum-offload

       dev   default{

              num-tx-desc   512

              num-rx-desc   512

       }

       # Intel® E810 端口配置,应配置6个端口,此处仅显示 DUT0 socket   0的一个端口,其他省略   dev 0000:17:00.0

       {

              workers   0,1,2,3,4

       }

       no-multi-seg

}

memory { main-heap-size 2G }

statseg { size 1G }

VPP上的CLI命令如下

# 配置网卡端口,应配置6个,此处省略5个

set interface state HundredGigabitEthernet17/0/0   up

set interface mtu 2024   HundredGigabitEthernet17/0/0

set interface mac address   HundredGigabitEthernet17/0/0 00:22:33:44:55:0

set interface ip address   HundredGigabitEthernet17/0/0 255.0.0.128/8

set int promiscuous on   HundredGigabitEthernet17/0/0

 

# 创建一个软件隧道接口,以及2个IPSEC   SA,此处应配置 6 * 256 = 1536个,省略1535个。

create ipsec tunnel local-ip 255.0.0.128   remote-ip 255.0.0.129 local-spi 255128 remote-spi 255129 local-crypto-key   2b7e151628aed2a6abf7158809cf4f3d remote-crypto-key   2b7e151628aed2a6abf7158809cf4f3d crypto-alg aes-gcm-128  integ-alg none salt 0x12345678

# 创建路由规则,将拥有   “104.0.0.0”目的IP地址的包路由到港创建的软件接口。

ip route add 104.0.0.0/32 via ipip0

set int state ipip0 up

# 让软件接口共享硬件接口的IP地址

set int unnum ipip0 use   HundredGigabitEthernet17/0/0

# 为加密的包创建一个新的ARP表项

set ip neighbor HundredGigabitEthernet17/0/0   255.0.0.129 3d:3f:12:11:00:11

# 配置解密后明文包的路由规则,目的地址“204.0.0.0”的包均路由去网卡端口

ip route add 204.0.0.0/32 via   HundredGigabitEthernet18/0/0 255.0.1.129 3d:3f:12:11:00:aa

测试结果

在测试环境配置完成并运行后,我们确认所有接收到的网络包都被两个DUT分别进行过IPSEC协议加密及解密,然后开始使用RFC 2544 零丢包测试方案对其进行速率测试。下图是IXIA® Networks应用测试结果的截图。

如图可见,系统总速率达到244.252Mpps或2.040Tbps。每个DUT分别达到了1.020Tbps的加密和解密速率。其中每个CPU核心完成2.544Mpps或21.081Gbps的加解密工作。

[1]: 设备和工作流配置请参看

 www.Intel.com/PerformanceIndex. 测试结果因测试环境变化可能有所差异

[2]: 本文翻译自

https://networkbuilders.intel.com/solutionslibrary/3rd-generation-intel-xeon-scalable-processor-achieving-1-tbps-ipsec-with-intel-advanced-vector-extensions-512-technology-guide

原文作者:

Fan Zhang 

Georgii Tkachuk 

Aibhne Breathnach 

Declan Doherty 

Tomasz Kanteck

video分享

转载须知

DPDK与SPDK开源社区公众号文章转载声明

推荐阅读

同步异步你说了算:VPP 的异步Crypto框架

点击“阅读原文”试试吧


http://www.ppmy.cn/news/466430.html

相关文章

至强服务器系列,英特尔发布至强 Xeon W-3300 系列服务器处理器:最高 38 核

原标题&#xff1a;英特尔发布至强 Xeon W-3300 系列服务器处理器&#xff1a;最高 38 核 IT之家 7 月 30 日消息 英特尔今日正式发布了全新的志强 Xeon W-3300 系列服务器处理器。该系列产品专为高性能 1U 工作站打造&#xff0c;采用了全新的架构&#xff0c;适用于密集工作负…

intel无盘服务器,英特尔网吧服务器

现如今的IT市场&#xff0c;双核、多核就成了高效、性能、时尚的代名词。而普通大众最方便、最容易感受多核的地方就是网吧。多核服务器在网吧中的应用主要有&#xff1a;电影服务器、游戏更新服务器、无盘网络服务器等几种。 网吧要想长盛不衰&#xff0c;必须具备高的上机率、…

听说,英特尔要对外开放 x86 授权?

同为主流芯片架构&#xff0c;相较于可申请授权的 ARM 和开源的 RISC-V&#xff0c;x86 一直以来都保持着“高高在上”的立场——唯有英特尔和 AMD 拥有 x86 授权。 但目前看来&#xff0c;x86 的“高冷人设”可能要有所变化了&#xff1a;据外媒 The Register 报道&#xff0…

intel xeon(skylake) platinum 8163 性能评测 阿里云第四代ECS服务器

intel xeon(skylake) platinum 8163 性能评测阿里云第四代ECS服务器http://www.bieryun.com/4560.html 阿里云ECS服务器是一种弹性可伸缩的云服务器,通过虚拟化平台将服务器集群虚拟为多个性能可配的虚拟机(KVM),对整个集群系统中所有KVM进行监控和管理,并根据实际资源使用情…

英特尔应用服务器,英特尔(Intel)服务器CPU全解析(图)

、Pentium III Xeon CPU 1999年&#xff0c;英特尔发布了Pentium III Xeon处理器。在Pentium III发布后不久&#xff0c;Intel也推出了面向服务器和工作站----Pentium III Xeon处理器&#xff0c;除早期的几款型号采用0.25微米技术外&#xff0c;Pentium III Xeon均采用0.18微米…

NUMA与英特尔Xeon处理器学习心得 转

作为一名工程师&#xff0c;一名做技术的工程师&#xff0c;NUMA也是我的近期工作重点之一。在工作时间&#xff0c;在茶余饭后&#xff0c;也看了些NUMA的资料&#xff0c;学习了英特尔下一代Xeon处理器。这里就是我的一点小结&#xff0c;一点心得&#xff0c;和感兴趣的朋友…

xeon e5-2400 系列处理器能做四路服务器吗?,英特尔Xeon E5系列双路处理器大阅兵

AMD新一代推土机架构处理器Opteron(皓龙)3200/4200/6200三大系列即将出击,而英特尔Sandy Bridge架构的Xeon E5系列也早已侯备多时,明年将陆续有两个新系列与之对决。 Xeon E5-2600 其一是LGA2011封装接口(又称为Socket R)的Xeon E5-2600系列,该系列型号多达17款,***八核心,…