PF_RING是Luca Deri发明的提高内核处理数据包效率,并兼顾应用程序的补丁,如Libpcap和TCPDUMP等,以及一些辅助性程序(如ntop查看并分析网络流量等)。PF_RING是一种新型的网络socket,它可以极大的改进包捕获的速度。并且有如下特征:
PF_RING针对libpcap的改进方法:将网卡接收到的数据包存储在一个环状缓存中,这个环状缓存有两个接口,一个供网卡向其中写数据,另一个为应用层程序提供读取数据包的接口,从而减少了内存的拷贝次数,若将收到的数据包分发给多个环形缓冲区则可以实现多线程应用程序的读取。
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。在使用PF_RING时根据为了提高效率我们可以采用对种方式对流量进行分区或分流从而实现负载均衡。 根据打开设备的方式不同我们可以将PF_RING分为标准的PF_RING,和PF_RING ZC两种模式,对于标准的PF_RING我们可以利用RSS多队列技术和PF_RING 内核实现的实现的名为内核集群的机制PF_RING Cluster (Kernel)这两种方法来实现负载均衡。对于PF_RING ZC模式同样可以使用基于硬件的RSS多队列技术实现负载均衡。同时还可以使用zbalance(在PF_RING / userland / examples_zc中)使用多线程或使用zbalance_ipc(在PF_RING / userland / examples_zc中)的多进程的方式来实现负载均衡。
随着企业内网的网络资产不断增加,对实时监控网络资产变化的要求不断提升。以 Nmap 为代表的一代端口扫描器的在扫描速率上已经无法满足日常需要。随之以 Zmap 为代表的全网级快速端口扫描器被大家所熟知并加以应用。本文主要通过分析 ZMap 的工作机制以及发包机制来探讨如何构造全网级快速端口扫描器。
目前大多需要进行高速流量处理的场景,基本都是使用DPDK进行数据包处理加速,DPDK虽然是开源免费的,但是DPDK提供的API很简单,进行开发十分复杂,耗时,应用困难,于是许多人开始寻找替代方案–虹科PF_RING ZC。
Zeek是一个开源网络流量分析器。许多用户将Zeek用作网络安全监视器(NSM),以支持对可疑或恶意活动的调查。Zeek还支持安全领域以外的各种流量分析任务,包括性能评估和故障排除。
PF_RING™ 是一个 Linux 内核模块和用户空间框架,允许您高速处理数据包,同时为数据包处理应用程序提供一致的 API, 基本上每个人每秒都必须处理许多数据包。 术语“许多many”根据您用于流量分析的硬件而变化。 它的范围可以从 1.2GHz ARM 上的 80k pkt/sec 到低端 2.5GHz Xeon 上每核心超过 20M pkt/sec。 PF_RING™ 不仅使您能够更快地捕获数据包,还可以更有效地捕获数据包,从而节省 CPU 周期, PF_RING 是一个高速数据包捕获库,可将商用 PC 转变为高效且廉价的网络测量盒,适用于数据包和主动流量分析和操作。 此外,PF_RING 开辟了全新的市场,因为它可以通过几行代码创建高效的应用程序,例如流量平衡器或数据包过滤器.
n2disk是ntop社区中很多人用来转储高达100 Gbit流量的应用程序。很少有人知道,n2disk不仅可以使用数据报头信息(即IP,端口,VLAN,MAC…)来索引数据,还可以使用nDPI来生成包含应用程序协议信息的索引。
使用单个流来处理来自网络适配器的流量需要单个CPU内核才能跟上入口速率。在高速率下,由于每个数据包可用的CPU周期数量有限,即使是轻量级的流量处理,这也成为瓶颈。只要我们的应用程序设计为可与多个线程或进程一起使用并在多个CPU内核上运行,则在一个流中将来自单个接口的流量平均分配到多个流(又称为通道或队列)中,同时保持流的连续性通常是扩展性能的最佳选择。
其次默认情况,suricata在编译时没有启用hyperscan, 我们需要显示的编译suricata时加入以下命令:
连续数据包记录器是一种捕捉原始流量到磁盘上的设备,提供了一个网络历史记录的窗口,当网络事件发生时,你可以回溯到过去,并分析流量到数据包级别,以找到导致问题的确切网络活动。
连续数据包记录器是捕获网络流量并将其保存到磁盘的设备。术语 “连续 “意味着这项活动是 “连续 “进行的,直到设备处于活动状态,而不仅仅是几分钟。在ntop,我们已经开发了两个用于数据包记录器的配套应用程序:
Zeek (Bro) 是一款大名鼎鼎的开源网络安全分析工具。通过 Zeek 可以监测网络流量中的可疑活动,通过 Zeek 的脚本可以实现灵活的分析功能,可是实现多种协议的开相机用的分析。本文主要是将 Zeek 结合被动扫描器的一些实践的介绍,以及 Zeek 部署的踩过的一些坑。
本文列举四个比较经典的 Linux 收包引擎,如果还有其他你觉得ok的可以留言。这四个分别是:
Zmap和Masscan都是号称能够快速扫描互联网的扫描器,十一因为无聊,看了下它们的代码实现,发现它们能够快速扫描,原理其实很简单,就是实现两种程序,一个发送程序,一个抓包程序,让发送和接收分隔开从而实现了速度的提升。但是它们识别的准确率还是比较低的,所以就想了解下为什么准确率这么低以及应该如何改善。
以前,电信行业一直认为监控移动网络流量是复杂,昂贵且专有的。不幸的是,这是开源运动未能广泛传播的少数领域之一,而供应商锁定仍然是标准。去年,我们参观了巴塞罗那的世界移动通信大会,以了解更多有关的信息,结论是,借助Android,移动终端已经相当开放,但是网络仍然很封闭。这一直是向nProbe添加分析移动流量能力的驱动力。
FastNetMon这是一个基于多种抓包引擎(NetFlow, IPFIX, sFLOW, netmap, PF_RING, PCAP)的DoS/DDoS攻击高效分析工具,可以探测和分析网络中的异常流量情况,同时可以通过外部脚本通知或阻断攻击。 特性 可处理入/出口流量 如果发现某个IP发出异常流量,可触发封禁脚本 可通过ExaBGP将封禁IP通知BGP路由器 可在1-2秒内发现DoS/DDoS 支持插件 测试最高支持10GE、5-6 Mpps(Intel i7 2600 & Intel Nic 825
在本系列的第一篇文章(第1部分)中,我们描述了如何使用n2disk和PF_RING构建2×10 Gbit连续数据包记录器,在第二篇文章(第2部分)中,我们描述了从10 Gbit扩展到100 Gbit所需的硬件。吉比特 现在已经过去了一年,我们在100 Gbit记录方面积累了更多的经验,现在该刷新以前的文章并分享有关新捕获和存储技术和配置的更多信息,以便构建能够转储100+ Gbit线速小数据包持续流量的记录器。
在复杂的网络环境中,技术人员会面临各种问题或故障需研究并解决,比如可能有系统或应用参数配置不当,也可能恶意软件感染等,都可能对正常应用造成影响。对数据包进行协议分析,能够详细的了解网络上正在或过去到底发生什么,是遇到疑难杂症时候最常用和最有效的方法。当需要对于历史网络事件进行追溯时,就要有可以在网络上捕获、存储原始数据包,后期能快速检索到所需历史数据包的工具。 我们研究了一种可以满足数据包捕获、存储以及快速查找的方法。它是利用HBASE来存储捕获到的原始数据包,并且它能够根据时间戳、IP、端口等信息快速的获
TCPCopy是一种重放TCP流的工具,使用真实环境来测试互联网服务器上的应用程序。
原文链接:https://blog.csdn.net/dog250/article/details/103301816
上次的陈老师在对PolarDB 的分享中,提到一个新名词,bypass,通过bypass 来提高整体的云原生数据库的性能。这在传统的数据库的技术中我未曾听过,当然上次的东西,最近比较懒,没有整理,后续我会把相关的录音转换成文字,把PolarDB到底打败了谁,之快问快答的东西整理出来。
TestCase评测,详见:https://www.aldeid.com/wiki/Suricata-vs-snort
作者博客:http://blog.csdn.net/wangbin579/article/details/8950282
OpenSOC是思科在BroCON大会上亮相了的一个安全大数据分析架构,它是一个针对网络包和流的大数据分析框架,是大数据分析与安全分析技术的结合, 能够实时的检测网络异常情况并且可以扩展很多节点,它的存储使用开源项目Hadoop,实时索引使用开源项目ElasticSearch,在线流分析使用著名的开源项目Storm。
本文介绍了 F-Stack 框架,它是一个基于 FreeBSD 内核的用户态协议栈实现,解决了传统内核协议栈在高性能、可扩展、兼容性、功能完备等方面的问题。F-Stack 提供了丰富的功能,包括零拷贝、无锁队列、内存池、红黑树等,支持多种调度算法,并提供了易用的接口。在性能测试中,F-Stack 的表现优异,最高达到了 2000 万 QPS,并支持多种网络协议,包括 HTTP、TCP、UDP、IPX 等。同时,F-Stack 也提供了丰富的开发文档和示例代码,方便开发者进行二次开发和功能扩展。
互联网服务提供商(ISP)面临着用户增长带来的极端带宽使用的问题。虽然这对商业来说是件好事,但挑战在于确保带宽的有效利用。很多时候,客户会抱怨“网络很慢”,实际上是因为他们在YouTube或在线备份等网站上使用了98%的带宽。
HTTP 协议因其易用性和普适性得到了大规模的普及,我们说HTTP协议是互联网的基石一点也不为过,当前提供HTTP服务的Server性能要求越来越高,如何提高 HTTP 服务器的性能变得非常重要。近年来网卡性能快速发展,给高性能HTTP服务提供了硬件支持,但是linux 内核却越来越成为高性能网络服务器的瓶颈。 HTTP 的传输层协议为 TCP ,TCP作为面向连接的协议能够提供可靠传输,但是在性能有非常大的短板,尤其在短连接网络业务服务中,受限于PCB表锁竞争等因素,系统内核大并发创建 T
我们现在已经搞定了 C10K并发连接问题 ,升级一下,如何支持千万级的并发连接?你可能说,这不可能。你说错了,现在的系统可以支持千万级的并发连接,只不过所使用的那些激进的技术,并不为人所熟悉。
通常,安全专家需使用渗透测试的网络安全工具来测试网络和应用程序中的漏洞。在与黑客的博弈中,“兵器”好坏将直接左右战果。
首先介绍一下自己的来路,我是一个纯粹的开发出身,比较熟悉的开发语言是Java和Python。之前的工作也基本上都是和开发相关,对于云计算仅仅懂得“调用调用API”。 和很多初入云计算和SDN的人一样,随着工作和“云计算”的关系越来越深入,特别是自己加入到电信之后发现对“网络”的要求越来越高。没有任何传统网络基础的我是一脸懵逼,凭借着大学时候学过《计算机网络》的一点基础知识通过很长时间的摸爬滚打有那么一点“感悟”。现在把自己的“感悟”分享出来,希望能对“在路上”的朋友有点帮助。 我先分享一下自己对SDN和做S
本文介绍了如何使用 F-Stack 实现高性能的 HTTP 服务器,通过实例测试验证了 F-Stack 的性能和优势。
Netz可以帮助我们轻松地运行互联网范围内的错误配置研究和其他的东西,它将基础结构作为代码包含在其中,因此您可以将自己的研究计划放入配置文件中,运行命令行接口,然后等待结果。它还包含一些更高级的特性,比如通过使用PF_RING ZC(Zero Copy)内核模块来快速扫描BLAZING等等。
My article will tell you how to accept 10 million packets per second without using such libraries as Netmap, PF_RING, DPDK and other. We are going to do this with Linux kernel version 3.16 and some code in C and C++. To begin with, I would like to say a fe
depmod命令可产生模块依赖的映射文件,在构建嵌入式系统时,需要由这个命令来生成相应的文件,由modprobe使用。
作者简介 陈莹,携程信息安全部安全开发工程师。2013年加入携程,主要负责各类安全工具的研发,包括线上日志异常分析,实时攻击检测, 漏洞扫描等。 一、背景 业务代码上线前,通常会在测试环境经过一系列的功能测试。那么,从安全层面来说,web应用常见的web漏洞,如sql注入,xss攻击,敏感信息泄漏等,我们如何保证在上线前就能够自动化发现这些业务的安全漏洞呢?本文将详细讲述携程安全测试的自动化之路。 二、技术选型 市面上也有很多各种各样的开源、商业扫描器。单就应用这一层来说,漏洞扫描器一般分为主动扫描和被动
千万级并发实现的秘密 先解释一下什么是10k问题: 什么是 10K 问题? 在 1999 年,Dan Kegel 向网络服务器提出了一个骇人听闻的难题: 是时候让网络服务器去同时应对 10000 个客户端了,你觉得呢?毕竟网络已经变得很普及了。 这就是著名的 C10K 问题。 通过改善操作系统内核和从像 Apache 那样的线程服务器迁移到像 Nginx, Node 这样的事件驱动服务器,工程师们解决了这个 C10K 问题。 但现在我们面临着一个更大的挑战,如果同时应对一千万个连接呢?要解决这个难题,需要些
所有工具和参考设计使用2021.2。编译和测试X86主机(Host)的操作系统是CentOS 7.9.2009。测试的单板是VCK190,测试的是CPM QDMA。 记录和脚本里的井号,或者第一行开始处的井号,由于和Markdown语法有冲突,替换成了星号。有些软件打印的记录非常长,于是把其中部分内容替换成了“......”。
用户空间直接访问 (UDA) 旨在以通用方式提供用户空间访问队列,但 E810 不支持此功能。 UDA 仅在内核中可用,并且仅限于 iWARP 连接设置和错误处理。 UDA 在用户空间中不可用
侦察是每个bug bounty或渗透测试中最为重要的阶段之一。侦察工作做得到不到位,可能会对最终的结果产生直接影响。侦察可以分为两类:即主动和被动侦察。在主动侦察中端口扫描是最常用的方法之一。通过端口扫描渗透测试人员或漏洞猎人可以确定在目标主机或网络上打开的端口,以及识别在这些端口上运行的服务。
最近使用tcpdump的时候突然想到这个问题。因为我之前只存在一些一知半解的认识:比如直接镜像了网卡的包、在数据包进入内核前就获取了。但这些认识真的正确么?针对这个问题,我进行了一番学习探究。
数据平面开发套件(DPDK [1] ,Data Plane Development Kit)是由6WIND,Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。
大多数设计者都熟悉基于Pierce(皮尔斯)栅拓扑结构的振荡器,但很少有人真正了解它是如何工 作的,更遑论如何正确的设计。我们经常看到,在振荡器工作不正常之前,多数人是不愿付出 太多精力来关注振荡器的设计的,而此时产品通常已经量产;许多系统或项目因为它们的晶振 无法正常工作而被推迟部署或运行。情况不应该是如此。在设计阶段,以及产品量产前的阶 段,振荡器应该得到适当的关注。
过去几十年互联网呈爆发式的增长,内容的丰富以及层出不穷的DDoS攻击等,对网络性能提出了极大的挑战,也同样促进了网络基础设施的快速发展。运营商的带宽越来越大,CPU/网卡等硬件的性能也会越来越强。但在很长时间内,软件的性能提升落后于硬件的性能提升,并严重限制了应用程序的性能,大部分时间不得不依靠堆机器来应对,造成了大量的资源浪费和成本提高。
多年来,Snort 一直是开源入侵检测/防御系统(IDS / IPS)的实际标准,但随着越来越多的服务器网卡带宽提升,Snort对线路上的数据包进行计算密集型的入侵检测越来越困难。这种情况下,可以考虑部署开源的IDS工具:Suricata。
过去几十年互联网呈爆发式的增长,内容的丰富以及层出不穷的DDoS攻击等,对网络性能提出了极大的挑战,也同样促进了网络基础设施的快速发展。运营商的带宽越来越大,CPU/网卡等硬件的性能也会越来越强。但在很长时间内,软件的性能提升落后于硬件的性能提升,并严重限制了应用程序的性能,大部分时间不得不依靠堆机器来应对,造成了大量的资源浪费和成本提高。 随着软件的不断发展,在新世纪的第一个10年时,通过多线程和事件驱动(kqueue/epoll等)解决了C10K的问题。但是在第二个10年却不堪重负,亟需新的解
领取专属 10元无门槛券
手把手带您无忧上云