- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
基于DPDK的
AnalysisandImplementationofDDoSAttackDefenseTechnologyBasedonDPDK
DDoS攻击防御技术分析与实现
0前言
互联网技术的快速发展,运营商4G技术的广泛使用以及5G技术的快速演进给人们带来便捷的同时,也使网络攻击等违法行为的规模及数量迅速增长,分布式拒绝服务攻击(DDoS)是最主要的威胁之一。其中网络层SYNFlood和UDPFlood是流量最大的2种攻击类型,并且SYNFlood大流量攻击数量从2018年1月以来显著增加。
防御DDoS攻击的主流技术是流量清洗,其核心
——————————
收稿日期:2019-10-24
是采集流量并分析,传统基于Linux内核的流量清洗技术由于较大的网络开销和系统资源消耗导致其难以满足当前需求。针对这一趋势,本文提出一种基于IntelDPDK的DDoS攻击防御方案,旨在当前Linux内核流量清洗技术的基础上,达到更高的流量清洗能力,为DPDK技术应用领域拓展以及DDoS攻击防御性能提升提供新的思路。
1流量清洗技术性能研究
流量清洗系统主要由检测模块、清洗模块和管理模块组成,主要架构如图1所示。首先由检测模块进行数据包捕获和识别,并将相应日志上报管理模块,
70 2020/01/DTPT
然后管理模块根据清洗策略将相应的清洗命令下发到清洗模块设备,清洗模块收到清洗指令后将流量引流到清洗设备进行清洗,最后将清洗后的正常流量回注到网络中。其中影响流量清洗系统效率的一个重要因素是检测模块的数据包捕获和识别速度。
用户应用程序DPDKLibraryEAL(环境抽象层)
用户空间
管理模块
检测模块 清洗模块
EAL
KNI
PlatformHardware
IGBUIO
内核空间
硬件平台
(网络设备)
图1流量清洗系统架构 图2DPDK的基本架构
目前主流的数据包捕获方式是基于Libpcap
(PacketCaptureLibrary)技术开发的数据包捕获机制。
Libpcap最初是由劳伦斯伯克利实验室网络研究小组
的tcpdump开发人员开发,是在Unix/Linux平台中提供
的网络数据包捕获函数包。其主要工作流程如下:首
先设置为混杂模式的网卡根据配置进行DMA(DirectMemoryAccess)操作并发送中断指令到处理器,处理器被唤醒后调用指令填充读写缓冲区数据结构,即复制数据到内核缓冲区,然后在内核协议栈中进行过滤处理,最后复制数据到用户空间。在这种方式下每个数据包都会触发1个中断和2次拷贝,并且造成缓冲区资源和系统资源消耗。所以在大流量攻击下会导致系统负载过大,造成时延过大、丢包率过高甚至系统瘫痪。
IntelDPDK简介
相比Libpcap,IntelDPDK出色的数据包加速处理性能以及充分的用户空间灵活性,使其成为更好的解决方案。下面简要介绍DPDK的原理及实现。
DPDK架构
IntelDPDK(DataPlaneDevelopmentKit)是由英特尔公司开发的一款数据平台开发套件,是一个基于x86平台用C语言编写的用于快速数据包处理的函数库和驱动的集合。DPDK的基本架构如图2所示,其中最底层硬件平台使用网卡接收数据包,内核空间的3个模块分别为KNI、UIO和EAL。DPDK利用UIO模块将网卡硬件寄存器映射到用户空间,从而跳过Linux内核网络协议栈,在用户空间直接运行驱动从网卡上读取数据并进行处理。EAL模块是DPDK核心模块之一,主要进行资源分配及初始化,并为底层资源访问
提供用户层入口。
DPDK核心技术DPDK实现快速数据包处理主要依赖以下技术。a)轮询模式驱动(PMD——PollModeDriver):该
驱动不同于Linux内核的中断模式驱动,而是收到数
据包后直接通过DMA方式传送到预分配内存并直接
处理,避免了中断上下文切换开销。
b)用户态驱动:用户态驱动可减少不必要的内存拷贝和系统调用,基本可在用户空间实现驱动,并且用户态驱动可以根据不同场景进行更新和优化。
c)大页内存(Hugepage):对于物理地址转换虚拟地址,L
文档评论(0)