网络流量监测与估计技术:Network DVR与OpenTM
1. Network DVR:可编程的应用感知跟踪收集框架
1.1 系统基础架构
Network DVR是一个用于可编程内容感知数据包跟踪收集的系统。它采用了确定性有限自动机(DFA)进行匹配,有多个匹配索引,如MA1和MA2。相关符号定义如下:
- ө1 = http://
- Ӫ21 = \r
- ӫ1 = .edu
- Ӫ22 = \n
- ө2 = Del
- ӫ2 = ATT
- Ӫ11 = .org
- Ӫ12 = .com
其流状态表和设计触发规则包含一系列状态转换,从任意状态出发有不同的转移条件,例如遇到“h”“t”“p”等字符的转移。同时,针对不同的匹配情况(如Fid 1、Fid 5、Fid 108)有相应的操作规则,如设置变量、开始记录、重置变量、刷新记录、中止记录等。
1.2 常量时间内存分配结构
内存分配器初始时维护一个空闲内存单元的链表作为空闲列表,每个内存单元可容纳一个字节(字符)和一个指针。为了简化,假设每个内存单元容纳一个符号。记录模块将记录的字符串也存储为符号的链表。
当记录字符串需要更多内存时,内存分配器按顺序从空闲列表头部解开单元,并将其添加到记录字符串对应的链表尾部,这是常量时间的内存分配操作。通过在位图表项设置指针指向相应链表的头部,可将位图表项与记录字符串连接起来。
若记录字符串被确认为有效记录,内存分配器将链表头部放入输出队列以刷新到磁盘,并将流状态项指针重置为NULL。写入磁盘后,可将其重新链接到空闲列表尾部,实现内存单元的常量时间恢复。若记录中止,内存分配器直接将流状态项指针设置为NULL,并将链表链接到空闲列表尾部。
1.3 评估
1.3.1 模拟设置
收集了来自多个服务器一天的真实数据跟踪,使用Gigascope在大型企业互联网网关的四个1 - 千兆以太网链路上收集数据,并通过IP过滤选择感兴趣的IP组。将收集的跟踪数据按每60分钟收集的数据包划分为10个数据集,每个数据集约有3500个流。
对于每个数据集,根据应用特定的签名重放完整跟踪,计算Network DVR所需的内存复制次数,并与基本方法(在正则表达式的第一个字符匹配时开始记录)进行比较。采用了Becchi和Crowley提供的高效公共领域DFA变体作为匹配模块。
为了评估,选择了Snort 2007签名集中的一类签名(ftp签名,包含58个正则表达式),手动将每个签名分解为开始、中止和最终匹配规则。
1.3.2 系统性能比较
| 数据集 | 数据大小 | 基本方法内存复制次数 | netDVR内存复制次数 | 实际内存复制次数 | 减少因子 | 开销因子 |
|---|---|---|---|---|---|---|
| Set 1 | 7.00×10⁸ | 3.13×10⁷ | 7.06×10⁴ | 4.69×10⁴ | 444.04 | 1.51 |
| Set 2 | 6.50×10⁸ | 2.89×10⁷ | 6.39×10⁴ | 4.38×10⁴ | 451.64 | 1.46 |
| Set 3 | 6.60×10⁸ | 3.09×10⁷ | 7.22×10⁴ | 4.63×10⁴ | 427.74 | 1.56 |
| Set 4 | 6.30×10⁸ | 2.84×10⁷ | 6.96×10⁴ | 4.68×10⁴ | 407.39 | 1.49 |
| Set 5 | 6.10×10⁸ | 2.74×10⁷ | 6.83×10⁴ | 4.50×10⁴ | 401.05 | 1.52 |
| Set 6 | 7.90×10⁸ | 3.60×10⁷ | 5.07×10⁴ | 3.16×10⁴ | 709.49 | 1.60 |
| Set 7 | 7.60×10⁸ | 3.53×10⁷ | 7.77×10⁴ | 5.12×10⁴ | 453.73 | 1.52 |
| Set 8 | 7.60×10⁸ | 3.25×10⁷ | 8.24×10⁴ | 6.44×10⁴ | 394.35 | 1.28 |
| Set 9 | 8.20×10⁸ | 3.44×10⁷ | 5.66×10⁴ | 4.08×10⁴ | 607.21 | 1.39 |
| Set 10 | 9.00×10⁸ | 3.77×10⁷ | 4.66×10⁴ | 3.09×10⁴ | 808.92 | 1.51 |
| 平均 | - | - | - | - | 510.56 | 1.48 |
| 最大 | - | - | - | - | 808.92 | 1.60 |
从表中可以看出,Network - DVR方法在10个数据集中能实现超过500倍的内存复制减少因子,最佳情况下(Set 10)超过800倍。这是通过仅在开始规则匹配时激活记录实现的。不过,即使有开始规则集的预过滤,匹配仍可能最终失败,导致netDVR列与实际列结果存在差异,但平均开销因子仅为1.48倍,最坏情况为1.6倍。
1.4 相关工作
传统的数据包记录和流量分类方法包括IP头级别的数据包过滤、基于传输层主机行为模式识别的BLINC方法、基于签名数据库的深度数据包检测(DPI)方法等。这些方法在正则表达式的第一个符号匹配时就开始将符号复制到内存,而Network DVR通过触发式记录概念,在开始条件匹配后才开始记录,性能更优。
ProgME引入基于数据包头部的流集用于网络测量中的聚合定义,ATMEN是一种触发式测量基础设施,可通过明智地复用测量减少浪费的测量。还有一些方法用于应用特定的流采样,但都没有对给定监控应用进行内容状态感知的数据包内容过滤。
2. OpenTM:OpenFlow网络的流量矩阵估计器
2.1 引言
流量矩阵(TM)表示网络中源 - 目的(OD)对之间的流量体积。在大型IP网络中直接精确测量TM非常困难,因为OD对数量多、每个链路的流量大且缺乏测量基础设施。
之前的工作通过间接从链路负载推断、直接从采样流统计推断或两者结合的方式来估计TM。间接方法对模型中的统计假设敏感,误差较大;直接方法虽然精度高,但缺乏必要的测量基础设施且会给网络组件带来过高开销。
OpenFlow是一种开放标准,通过分离数据和控制平面,使网络控制平面的任何更改都变得容易。OpenFlow网络由OpenFlow交换机(数据平面)和逻辑集中的OpenFlow控制器(控制平面)组成,控制器具有全网视图。OpenFlow的独特功能消除了直接测量TM的高昂成本。
2.2 设计
2.2.1 基本逻辑
OpenTM是OpenFlow网络的TM估计器,其逻辑简单。它跟踪网络中的所有活动流,从OpenFlow控制器的路由应用获取路由信息,发现流路径,并定期从流路径上的交换机轮询流字节和数据包计数计数器。
利用路由信息,OpenTM通过累加来自相同源和目的的流统计信息来构建TM。根据OpenFlow控制器可用的信息,OpenTM可以创建不同聚合级别的不同类型TM。当前实现计算交换机的TM,也可轻松扩展以派生其他类型的TM。
2.2.2 查询策略
OpenTM在每个查询间隔生成的查询总数受网络中活动流数量的限制。通常认为大型企业IP网络中同时活动的流数量较少。目前系统为单个源 - 目的IP对生成单个查询,若IP地址可聚合,可改进为为共享相同路径的所有流生成单个查询。
由于数据包丢失,流路径上的不同交换机可能观察到不同的流量速率。考虑到接收方看到的情况,将流路径上的最后一个交换机作为参考点,查询该交换机可获得最准确的TM。但这种策略会给第一个/最后一个交换机带来不均匀且大量的负载,扩展性不佳。
由于企业网络中数据包丢失可忽略不计,查询流路径上的其他交换机也能获得相近的统计信息。因此,提出了不同的交换机查询策略:
1. 查询最后一个交换机。
2. 查询流路径上的交换机。
不同的查询策略在测量准确性和单个交换机的最大查询负载之间存在权衡,完美的查询分布有时会导致最差的估计,而最佳的估计可能导致交换机之间的查询分布最差。
2.2.3 性能表现
将OpenTM实现为NOX(开源OpenFlow控制器)的应用程序,并在小型OpenFlow交换机测试床上进行研究。结果表明,在流量矩阵稳定的系统中,OpenTM通常在10次查询内收敛到平均速率的3%以内,比传统IP网络的现有技术快得多。
2.3 总结
OpenTM的贡献有两方面:一是为OpenFlow网络设计并实现了OpenTM,证明了在交换机跟踪流统计信息的情况下,使用直接测量进行低开销准确的TM估计是可行的;二是探索了从交换机级测量构建TM的想法,可在运行时决定查询哪个交换机,与通常对所有入口/出口链路进行检测导致边界交换机或路由器测量负载不均的现有技术不同。
3. 技术比较与分析
3.1 Network DVR与传统方法对比
| 比较项 | Network DVR | 传统方法 |
|---|---|---|
| 内存复制 | 仅在开始规则匹配时激活记录,大幅减少不必要的内存复制,减少因子平均达510.56倍 | 在正则表达式第一个字符匹配时就开始复制,内存复制量大 |
| 过滤方式 | 采用内容状态感知的数据包内容过滤,根据应用特定签名进行过滤 | 多为IP头级别过滤、传输层行为模式识别或基于签名数据库的深度数据包检测,缺乏内容状态感知过滤 |
| 性能 | 能有效减少不必要的内存操作,性能更优 | 由于提前复制数据,可能导致大量无效操作,性能较差 |
3.2 OpenTM与传统TM估计方法对比
| 比较项 | OpenTM | 传统TM估计方法 |
|---|---|---|
| 测量方式 | 利用OpenFlow交换机内置功能直接测量,无复杂统计假设,准确性高,开销小 | 间接从链路负载推断或直接从采样流统计推断,间接方法对统计假设敏感,误差大;直接方法开销大 |
| 查询策略 | 可在运行时选择查询的交换机,有多种查询策略,能平衡准确性和负载 | 通常对所有入口/出口链路进行检测,导致边界交换机或路由器测量负载不均 |
| 收敛速度 | 在流量矩阵稳定的系统中,通常10次查询内收敛到平均速率的3%以内 | 收敛速度较慢 |
3.3 两种技术的联系与互补性
虽然Network DVR和OpenTM针对不同的网络监测和估计场景,但它们都致力于提高网络数据处理的效率和准确性。Network DVR通过优化内存使用和记录触发机制,减少了不必要的数据复制和处理;OpenTM则利用OpenFlow网络的特性,实现了低开销的流量矩阵估计。在一个综合的网络监测系统中,两者可以相互补充。例如,Network DVR可以用于对网络数据包进行初步的过滤和记录,而OpenTM可以在这些记录的基础上,对流量矩阵进行准确的估计,为网络的规划和管理提供更全面的信息。
4. 实际应用场景与案例分析
4.1 Network DVR的应用场景
- 入侵检测系统(IDS) :在IDS中,Network DVR可以通过触发式记录概念,只记录与特定入侵特征匹配的数据包,减少不必要的内存复制。例如,在检测FTP相关的入侵时,使用Snort 2007签名集中的ftp签名,通过分解签名为开始、中止和最终匹配规则,Network DVR可以准确记录相关的匹配结果,同时避免了传统IDS在正则表达式第一个符号匹配时就开始复制数据的问题,提高了系统的效率。
- 网络流量审计 :对于需要对网络流量进行详细审计的场景,Network DVR可以根据应用特定的签名,有针对性地记录相关的流量信息。例如,在企业网络中,对特定应用的流量进行审计时,通过设置相应的签名规则,Network DVR可以准确记录该应用的流量细节,为网络安全和合规性检查提供有力支持。
4.2 OpenTM的应用场景
- 网络容量规划 :在进行网络容量规划时,准确的流量矩阵估计是关键。OpenTM可以利用OpenFlow网络的特性,直接测量流量矩阵,为网络管理员提供准确的流量信息。例如,在一个大型企业网络中,通过OpenTM估计不同部门之间的流量矩阵,网络管理员可以合理规划网络带宽,避免资源浪费和拥塞。
- 路由协议配置 :路由协议的配置需要考虑网络中的流量分布。OpenTM可以实时提供准确的流量矩阵,帮助网络管理员优化路由协议的配置。例如,在一个多路径网络中,根据OpenTM估计的流量矩阵,选择最优的路由路径,提高网络的性能和可靠性。
4.3 案例分析
假设一个大型企业网络,采用了OpenFlow技术进行网络管理。在网络安全方面,使用Network DVR对网络数据包进行监测和记录,同时使用OpenTM对网络流量矩阵进行估计。
在某一天的网络监测中,Network DVR通过设置的Snort签名,检测到了一些可疑的FTP流量,并准确记录了相关的数据包。同时,OpenTM实时估计了网络中的流量矩阵,发现某个部门的流量突然增加。通过结合这两个系统的信息,网络管理员可以快速定位问题,判断是否存在网络攻击或异常流量,并及时采取相应的措施,如调整路由、限制流量等,保障网络的安全和稳定运行。
5. 未来发展趋势与展望
5.1 Network DVR的发展趋势
- 智能化规则生成 :未来,Network DVR可能会引入机器学习和人工智能技术,自动生成更准确、更智能的记录触发规则。例如,通过对大量网络流量数据的学习,自动识别不同应用的特征,生成相应的签名规则,提高记录的准确性和效率。
- 与其他安全技术的集成 :Network DVR可能会与其他网络安全技术,如防火墙、入侵防御系统等进行更紧密的集成。通过共享数据和信息,实现更全面的网络安全防护。例如,当Network DVR检测到可疑流量时,及时通知防火墙进行阻断,提高网络的安全性。
5.2 OpenTM的发展趋势
- 支持更多网络拓扑和协议 :随着网络技术的不断发展,网络拓扑和协议越来越复杂。OpenTM可能会扩展其功能,支持更多类型的网络拓扑和协议,如软件定义广域网(SD - WAN)、虚拟专用网络(VPN)等。例如,在SD - WAN网络中,OpenTM可以准确估计不同分支之间的流量矩阵,为网络的优化和管理提供支持。
- 实时流量预测 :除了估计当前的流量矩阵,OpenTM可能会引入实时流量预测功能。通过对历史流量数据的分析和机器学习算法的应用,预测未来一段时间内的流量变化,帮助网络管理员提前做好资源规划和调度。
5.3 综合网络监测系统的发展
未来,可能会出现更综合的网络监测系统,将Network DVR和OpenTM等技术集成在一起,实现对网络流量的全面监测、分析和管理。这种系统可以提供更丰富的功能,如流量可视化、异常检测、故障诊断等,为网络管理员提供更便捷、更高效的网络管理工具。
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(网络流量):::process --> B(Network DVR):::process
B --> C(数据包过滤与记录):::process
A --> D(OpenTM):::process
D --> E(流量矩阵估计):::process
C --> F(综合分析):::process
E --> F
F --> G(网络管理决策):::process
这个流程图展示了未来综合网络监测系统的工作流程。网络流量首先经过Network DVR进行数据包的过滤和记录,同时OpenTM对流量矩阵进行估计。然后,将这两部分的信息进行综合分析,最终为网络管理决策提供支持。
综上所述,Network DVR和OpenTM作为两种先进的网络监测和估计技术,在提高网络数据处理效率和准确性方面具有重要的作用。随着技术的不断发展,它们将不断完善和扩展,为网络的安全、稳定和高效运行提供更有力的支持。
超级会员免费看
5646

被折叠的 条评论
为什么被折叠?



