本篇文章是继《基于SDN,NFV的服务感知网络架构上篇》对DPI进行进一步的深入解析,分析了在SDN中可能出现的三种部署情况,对第4-7层的业务需求以及业务感知网络架构作了一个深入的介绍。
在SDN网络中部署DPI
SDN架构包括四个或者更多的层次,包括业务流层,业务应用层,控制层和节点层。下图表示了DPI在用于流量整形、用户分析、QoE和网络安全时可能被嵌入的三个层,仅举几例。这些部署方案允许DPI信息在网络内共享,这样只要进行一次应用识别即可,从而节省了CPU和能耗。统一的DPI简化了管理,因为所有的设备对信息流会共享一个“相似的观点”。拥有提供DPI服务的基础设施最主要的好处是,应用程序开发者不再需要把DPI合并—没有必要推倒重来。
三种可能的部署情况:
业务应用层
DPI软件可以相对轻松地被嵌入到业务应用层。然而一些应用程序的重新设计可能需要尽可能减小由于漫长的通信路径造成潜在瓶颈的影响。比如,一些信息流必须通过由节点到SDN控制器再到运行DPI引擎的应用程序这样的路径。信息流被识别后,应用程序发送策略规则到节点引导信息流的流动,所以通常情况下只有一小部分的流量从节点发送到应用程序网络。考虑到可能有延迟,这种DPI部署最好用于时效性不强的应用程序,如分析功能。
控制层
DPI软件可以部署在SDN控制器中,它可以将网络智能应用于自己的控制服务,或者通过北向接口的API发送到网络应用层。节点(例如交换机,网络设备)处理流发送的第一个非空包到SDN控制器用于L4-L7分析,可能使用了OpenFlow协议的一些扩展功能,后文会继续讨论。把DPI放置在控制器中避免了节点带来的成本增长;但是,部分信息流(可能低于10%)必须被转发,从节点到控制器,这可能导致可扩展性和性能的一些问题。一个分布式控制器架构的设计可以最大限度地减少这些问题。
节点层
网络节点也可以运行DPI软件,识别应用程序ID和元数据后,它们还可以:
直接应用预先定义的策略
将此信息发送到SDN控制器或网络应用程序,然后接受策略或规则。
当SDN控制器作为提取信息的接受者,它可以在与网络应用以某种形式对话之后指示节点应用特定的策略。在这之后的所有同一类型的信息流就不需要再被DPI分析了。与其他选择相比,在节点层执行DPI最小化了等待时间,但这种方法也是最昂贵的,因为它需要最大量的DPI实例在网络中。将来,DPI的实例数量可以通过标记或者传送端至端信息的方式来减少,如在最近的IETF草案通过加入网络服务报头(NSH)建议的增强建议。另外还有一些解决方法设想使用标记/标签,配置通道等。
OpenFlow的扩展需要L4-L7设备
OpenFlow作为SDN南向协议,用以携带交换机和SDN控制器之间每条信息流中提取的元数据。这个附加的L4-L7智能将扩展到现有OpenFlow协议中,超越用户可配置的n元组的形式。这些新的“L4-L7的DPI”字段可能成为通用格式,被所有的交换机,控制器和应用程序运用。
这可以在OpenFlow协议中引入的类型—长度—值元素实现,用以支持可选信息的编码,如以下字段。
规则:识别协议、应用程序(App ID)和元数据
操作:诸如丢弃数据包,封装和转发数据包给控制器,或者转发数据包到端口
统计:其中包括计算的元数据,HTTP主机名,HTTP cookie,和供应商特定属性(VSA)
下图展示了应用程序ID、元数据字段和操作如何添加到OpenFlow协议中。
业务感知网络架构
运营商部署基于SDN和NFV的网络可以利用DPI实现的网络智能来提供新的服务并且可以更好地管理带宽。DPI通过帮助运营商识别和监管他们开展的广泛服务和应用,为运营商针对他们的网络提供更多的控制权。通过计算和DPI技术,这都是可以实现的。DPI将使控制器和应用程序做出更明智的决定,为网络运营商节省成本,增加创收机会。