http://blog.csdn.net/joylnwang/article/details/6793192
基于状态机的字符串匹配算法:AC,DFA, NFA -------- snort采用此方法
厂商:P-Cube,Sandvine,Allot, Procera, Arbor,华赛/南京信风/宽广电信/QQSG/金御/绿网/兆维晓通/阳光金网
DPI:Deep Packet Inspection 深度包检测,基于应用层的流量检测和控制技术
DFI:Deep/Dynamic Flow Inspection
DPI识别技术:
基于启发式的字符串匹配算法:BM算法、WM算法
- 单模式匹配算法:在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前相当有效又容易理解的一种,一般情况下,比KMP算法快3-5倍。
- 多模式匹配:Wu-Manber算法,AC算法
基于状态机的字符串匹配算法:AC,DFA, NFA -------- snort采用此方法
- 可以保证对于给定的长度为n的文本,和模式集合P{p1,p2,...pm},在O(n)时间复杂度内,找到文本中的所有目标模式,而与模式集合的规模m无关。AC算法去除了模式集合的规模对匹配算法速度的影响。
设计要点:
- 功能
- 业务识别:
- 特征识别,特征库,需要持续更新维护;
- 分类:
- 单包识别:首包识别。
- 多包识别:
- 多流识别:
- 关联识别:
- 快速匹配
- 深度解析识别:通过信令交互过程,协商得到其数据通道。
- FTP:获取数据流的ip和端口。
- RTSP:
- MEGACO/H.248
- MGCP
- H323协议族中的H245协议:
- SIP
- 在业务中,有一类的控制流和业务流是分离的,如与7号信令相关的业务,其业务流没有任何特征,应用层网管识别技术针对的对象就是此类业务,首先由应用层网管识别出控制流,并根据控制流协议选择特定的应用层网关对业务流进行解析,从而识别出相应的业务流。对于每一个协议,需要不同的应用层网关对其进行分析。例如:H.323、SIP等协议,就属于此类,其通过信令交互过程,协商得到其数据通道,一般是RTP格式封装的语音流,纯粹检测RTP流并不能确定这条RTP流是通过那种协议建立起来的,即判断其是何种业务,只有通过检测SIP或H232的协议交互,才能得到其完整的分析。
- 分类:
- 固定特征位置匹配:可能有亦或等处理
- 变动特征位置匹配:
- 状态特征字匹配
- 分类:
- 行为识别:如worm,ddos,垃圾邮件spam
- 一般头32个报文,且在报文应用层的头64字节和后64字节;
- 隧道:
- 去除VLAN,MPLS,L2TP,GRE
- 协议分类:
- 大类:IM, P2P, HTTP, FTP, VEDIO, AUDIO, VOIP
- 小类:
- 特征识别,特征库,需要持续更新维护;
- 业务控制:
- 转发:
- 阻塞:
- 丢弃 --- 直路部署
- 伪造tcp rst报文 --- 旁路部署
- 伪造icmp unreachable报文 --- 旁路部署
- 限制带宽:CAR
- 整形:CAR算法
- 修改报文:
- 重标记优先级,TOS字段,DSCP
- 伪造报文:
- 重定向:伪造3XX报文--- 用于绿色上网,计费
- 伪造2XX报文 --- 用于web推送
- 业务统计:
- 业务识别:
- 性能
- 可扩展性
- 可靠性
应用场景:
- 流量管理:使用阻塞、限制带宽方法;如限制p2p;VoIP业务监控;
- URL过滤:包括对应IP;支持自定义规则;注意放过DNS流量,否则有些url过滤会有问题。
- 绿色上网:URL过滤;时长控制;
- WEB推送:
- 内容计费:FUP功能,OCS,OFCS;
- 基于位置的服务!!!
- 用户行为分析:
- 安全:worm,ddos,spam;
- 共享接入监控:限制同一个账号内的用户数?
- 流量整形:流量整形通常使用缓冲区和令牌桶来完成。会增加延迟。
部署位置:(直路部署,旁路部署)
- BARS:旁路部署,由BARS转发流量给DPI设备;或者直路部署在BARS的上行出口方向。
- 旁路部署时可以和防火墙联动;
- GGSN:Gn口直路部署;
厂商:P-Cube,Sandvine,Allot, Procera, Arbor,华赛/南京信风/宽广电信/QQSG/金御/绿网/兆维晓通/阳光金网
关键技术:
Qos算法:采用CAR算法。
测试:
报文回放:
IXIA等测试仪:
设计方案: