阿里防御超大规模DDOS攻击的流量清洗中心系统

随着互联网的普及,网络应用服务的重要性变得越来越重要,针对网络服务的各种攻击也日益频繁,而DDOS攻击作为最有效的攻击方法被经常使用;另一方面,随着网络基础设施的改善,网络带宽的增加,个人电脑处理能力的提升,DDOS攻击的规模越来越大。

为了保护我们提供的网络服务,即使在遭受攻击时也可以持续为我们的用户提供服务,我们需要一个高性能的,可以处理超大规模的,防御规则完善的流量清洗中心。而目前市场上的商用产品价格高,可控性差,因此阿里的技术团队选择了自主研发一套流量清洗中心系统。

阿里防御超大规模DDOS攻击的流量清洗中心系统

该系统要求使用普通服务器平台,具备高性能,横向扩展的能力,能够抵挡超大规模(小包250Gb )常见的风暴型DDOS攻击,单台服务器处理能力超过2000Wpps。

如何开发这样一套清洗系统对我们来说是一个巨大的技术挑战。一台双路的Linux服务器一秒钟完成最简单的转发功能,也仅仅能转发400万左右的小包,如果再加上在NetFilter的HOOK点上对数据包的处理逻辑,性能将会更低。也就意味着基于传统的Linux内核协议栈和NetFilter框架进行编写的技术方案是无论如何也达不到单台服务器2000Wpps的处理性能。

面对这个挑战,阿里的技术团队选择了一个全新的架构设计方案。抛弃了传统的网络软件设计模式,不再基于Linux网络协议栈,不再基于NetFilter。而是基于自主研发的网络处理平台NetFrame,实现了该流量清洗中心系统。在单台普通服务器上,对小包(64自己)的处理性能超过2000Wpps,而且可以做到无丢包转发。

我们的设计方案的关键技术点概括为以下几点:
1. 抛弃Linux协议栈
既然Linux协议栈性能无法满足需求,我们的唯一选择是自己实现了一套协议栈-NetFrame。该协议栈的转发性能达到了64字节包转发性能近4000Wpps(4个万兆网卡)。数据包的处理过程中,没有任何的网卡中断,没有任何的进程调度,没有任何的系统调用,也没有任何的内存拷贝。

2. 抛弃NetFilter框架
因为抛弃了Linux协议栈,NetFilter中对数据包进行HOOK点将无法使用,我们选择在NetFrame中实现的HOOK点,在这些HOOD点上加上对数据包的处理逻辑。

3. 充分利用X86硬件
充分发挥多核优势
结合万兆多队列,将请求包根据CPU个数进行分流,避免CPU和CPU之间同步开销,避免读写同一块内存带来的Cache Miss。
核心数据NUMA化
将频繁访问的核心数据结构分布在每个CPU节点的内存中,避免对这些数据的跨CPU节点访问,降低延时,提升系统性能。
使用大内存页
尽可能使用大内存页,防止内存交换,减少TLB Miss。
CPU绑定
CPU和处理线程绑定,避免操作系统进行线程切换所带来的上下文切换开销。
4. 支持集群化部署,具备横向扩展能力
整个清洗中心的处理能力可以通过扩容服务器的方式进行横向扩展,这种部署方式使得防御超大规模DDOS攻击成为现实
5. 完善的,灵活的防御策略组合
所有的防御策略可以灵活组合,以更有效的

在我们最近进行的防DDOS攻击演习中,我们的抗住了150Gb的synflood小包攻击。

阿里的技术团队在高性能,高并发的软件设计与开发中,投入了很大的研发力量,也积累了很多的经验。同时,将技术转化为产品,保障双11,为全国网民打造购物狂欢节提供了技术保障。
—阿里技术保障部高级专家:祝顺民

来源于:阿里技术保障部的新浪博客

DDoS高防IP更多介绍:https://www.aliyun.com/product/ddos/

该日志由 91aliyun 于2013年11月02日发表在 其他 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。

转载请注明:阿里防御超大规模DDOS攻击的流量清洗中心系统

关键词:DDOS
分享到:

阿里防御超大规模DDOS攻击的流量清洗中心系统:等您发表观点呢!

发表评论


快捷键:Ctrl+Enter