基于SDN的大规模校园网流量采集方案研究与实现

2018-11-08 10:05赵琼何海涛杨敏
中国教育网络 2018年10期
关键词:流表发给校园网

文/赵琼 何海涛 杨敏

网络流量作为整个网络复杂性的动态载体,是研究网络体系架构、实施网络管理及进行网络安全分析的最有效切入点。网络流量采集是指捕获网络上的数据包并对其进行分析的过程,对网络问题解决、协议调试、性能评估和安全分析等方面均有极大帮助。本文根据中山大学流量采集需求,以流量输出多样化为基本目标,通过引入SDN技术,提出了一种较为先进的大规模流量采集及分发方案,并在此基础之上搭建统一的系统平台。首先能够对校园网流量进行全方位的实时采集,制作流量副本,然后对其进行中转与过滤,进而按需分发给后端不同的业务分析系统。

需求分析与设计

需求分析

目前校园网需要基于流量分析的系统有两种:上网行为管理设备和Cloudera安全大数据分析平台,主要需求如下。

1.流量采集统一化需求

上述系统都需要采集校园网主要链路的完整数据包,因此选用镜像流量采集技术捕获网络流量。但现有镜像采集多数是基于目标分析设备的单一采集,对于存在多个后端分析系统的应用场景,就需要在网络各个层级或区域设备上部署多套采集点,这无疑增加了网络结构的复杂性和可维护性,无法实现集中管控。因此,需要一种集中化、集约化的管理手段,对网络实时流量的捕获和分发进行统一化的维护和管理,减少运维难度和网络结构复杂性,提升管理效率和运维水平。

2.流量输出多样化需求

对于不同的后端分析系统,对流量的需求并不完全一致。例如,上网行为管理设备作为校园网出口审计设备,需要对校内所有IP访问互联网和校内重要信息系统的流量日志进行审计;而安全大数据分析平台初期需要分析校外向校内访问的日志(即校园网教科网出口),从而发现安全隐患。因此就需要对所捕获的流量实施过滤,以满足流量多样化的输出要求。

3.流量输出负载均衡需求

随着以太网传输速率的不断增大,单个后端分析系统的能力很难适应高速发展的网络速度,然而,性能越高意味着价格越高,经济投入和产出效益往往不能达成一个很好的平衡。因此,并行部署多个后端分析设备,利用流量输出的负载均衡实现高速流量的平均分配,每个输出接口连接一个分析系统,用于接收流量,然后这些分析系统通过共享外置数据中心的方式将流量进行合并分析,从而达到对总体流量的分析目的。

架构设计

根据上述需求,在校园网总体架构基础之上,通过引入SDN技术,构建了流量采集系统平台,如图1所示。

图1 基于SDN的流量采集系统总体架构

1.捕获层

捕获层由高性能路由器构成,其功能是通过在校园网中设置捕获点对相关流量进行实时抓取,并线速度转发给NPB(网络数据包代理)层。本系统的捕获点是通过端口镜像采集技术实现的,根据应用场景的不同,可以在核心设备或关键链路上设置单一捕获点,也可以在网络各个层级设备或链路设置多个捕获点,以捕获不同代表性的网络流量。

2.NPB层

NPB层亦叫过滤层,是整个网络架构的关键,由OpenFlow交换机来承担。实现捕获点的统一接入管理和对捕获流量进行集中高速缓存,并通过执行流表策略来控制流量的输出方式和路径。本系统可实现基于网络Layer 2—Layer 4层的流量识别,以及任意端口流量的复制、汇聚等,同时能对输出流量进行多出站端口的负载分担,以满足流量输出多样化和流量输出负载均衡的需求。

3.分发层

分发层同样由高性能通用交换机构成。负责各种后端分析系统的接入,即对输出流量进行定向传送,提供1G/10G端口的输出能力,并保留40G端口的可扩展能力。

各层级间为紧耦合关系,其中NPB层必须支持OpenFlow 协议。每个层级都具备横向扩展能力,以满足流量持续增大的扩容升级需求。可以为每一个层级选取不同的设备进行功能分担,也可以通过功能集成化的单一设备承担。本采集平台的具体实施就选取了后者模式。

功能设计

1.大规模流量采集统一化

根据应用场景的不同,可以在核心设备或关键链路上设置单一捕获点,也可以在网络各个层级设备或链路设置多个捕获点,以捕获不同代表性的网络流量。但与传统分散采集不同,本平台提供对捕获点的统一接入管理,所有捕获点都通过光纤链路与NPB层设备互联,并通过SDN控制器的统一调度,实现流量采集的统一化和集中化管理。

2.全流量分发

指将捕获到的流量无损复制并进行流量输出。包括一对一(将一个入站端口的流量复制一份送往一个出站端口)、一对多、多对一、多对多等四种模式。下以一对一分发为例阐述其实现原理。例如:需要将E1/1/1端口所捕获的流量进行一对一输出给E1/1/3端口,其实现过程如下。

(1)构建OpenFlow流表

首先需要构建1条流表,并对流表中的3个流表项进行设定,即为匹配域(Match Fields)、优先级(Priority)和指令(Instructions)。

Match Fields:包含数据包头中的12个元组,定义如表1所示(未涉及的元组未在下表体现)

Priority:具备高优先级的流表优先被匹配和转发,由于此次构建的只有1条流表,因此在这里优先级设定可以默认,即置空处理。

Instructions:用于指示OpenFlow交换机在收到匹配数据包后的处理动作。需要对Apply-Action action(s)中Action的Output属性进行特殊定义,设定为E1/1/3。

(2)下发OpenFlow流表

构建好流表后,通过SDN控制器下发给交换机,交换机就会生成流表转发条目,根据查找流表实施流量的转发路径选择,从而实现一对一的全流量分发功能。

(3)流量过滤分发

指将捕获到的流量,通过一定的技术手段对其实施过滤后,在进行流量的输出。本方案实现了网络Layer 2—Layer 4层的过滤。例如:将E1/1/1端口捕获的流量中,目标地址为222.200.160.0/19,目标端口为80端口(TCP)的相关流量,输出给端口E/1/1/3,具体实现过程如下。

(1)构建OpenFlow流表

首先需要构建1条OpenFlow流表,并对流表中的3个流表项进行特殊设定。

Match Fields:与全流量分发不同的是,流量过滤分发需要对匹配域中更多的流表项进行特殊设定,根据此案例目标,匹配域中的定义如表2所示(未涉及的流表项未在下表体现)。

表2 过滤流量分发中的匹配域定义

Priority:由于此次构建的只有1条流表,置空处理即可。

Instructions:设定 Apply-Action action(s)中 Action的Output属性为E1/1/3。

(2)下发OpenFlow流表

构建好流表后,通过SDN控制器下发给OpenFlow交换机,OpenFlow交换机就会生成流表转发条目,根据查找流表实施流量转发路径选择,并实现流量的过滤分发功能。

4.输出流量负载均衡

指将捕获的流量通过负载均衡技术平均分配到多个输出接口,本方案是通过哈希算法,基于五元组方式实现流量的负载均衡。例如:将E1/1/1端口捕获的流量,通过流量负载均衡的方式分发给三个不同的出站端口:E/1/1/5、E/1/1/6、E/1/1/8,具体实现过程如下。

(1)创建组

在OpenFlow中,组表可以实现负载均衡,需对其4个组成项进行特殊设定,其中:

Group Identifier:定义为1,表示组号,用于区分其它组。

Group Type:选择select,表示调用交换机的哈希算法,基于五元组实现流量负载均衡。

Counters:默认置空。

Action Buckets:这里定义了动作集合。需要为每一个物理端口都单独定义,因此需要构建3个Buckets,都具备自己独立的Bucket-id,但都属于同一个组编号。具体定义见表3。

表3 Buckets的定义

(2)构建OpenFlow流表

构建方式和全流量分发、流量过滤分发的流表实现一致,但引入组表概念后,指令集中的Apply-Action action(s)中Action的属性选择就不能选用output,而需要对group属性进行特殊定义,由于此示例中建立了Group Identifier为1的组,因此也设定为1。

(3)下发OpenFlow流表

构建好流表后,与全流量分发和过滤分发不一样的是,这里执行的OpenFlow组表,当调用组表中Action Buckets时候,就会将流量送往组编号为1的组中,由于组中包含3个物理输出端口,因此就可以基于哈希的调度算法实现输出流量的负载均衡。

实施与效果展现

实施拓扑

根据校园网流量采集平台总体架构,结合现网资源条件和采集需求,实施的网络拓扑如图2所示。整个系统通过旁路方式部署于校园网中,不改变整体校园网架构。捕获层、NPB层和分发层由两台OpenFlow交换机承担,基于ODL的SDN控制器负责流表的下发。经过二次处理之后的流量,由交换机分发给后端的上网行为管理设备和安全大数据分析平台。

图2 网络流量采集平台实施拓扑

定义捕获点

在核心层的两台路由器上各设立了1个捕获点,并通过端口镜像技术实现流量的捕获。2台核心路由器的源端口各自选取 了 三 个(A为:Te5/4、Te9/2、Po3;B为:Te5/4、Te7/3、Po1;),分别代表着校内IP访问互联网、访问校内数据中心的流量,镜像方向为全向。通过对2个捕获点的流量数据进行统一接入和管理,就形成流量资源池,后端的分析系统可按需索取流量,并可重复、并行工作;而目的端口则分别采用1条10Gbps链路与OpenFlow交换机互联。

全流量分发策略

1.制定分发策略

图3 针对上网行为管理设备的一对一全流量分发

表4 上网行为管理设备的流表策略

OpenFlow交换机通过2条物理链路接受镜像流量,由于校园网部署的2台上网行为管理设备需要对校内用户实施互联网访问的行为分析,且通过共享外置数据中心实现日志审计功能,入站和出站流量并没有严格的对应关系,因此,本平台采用了一对一模式进行全流量分发,如图3所示:

(1)将E1/1/1端口流量通过一对一模式,输出给E1/1/3端口;

(2)将E1/1/2端口流量通过一对一模式,输出给E1/1/4端口。

2.制定流表策略

根据上述的一对一全流量分发策略,需要构建2条OpenFlow流表,分别用于对2台上网行为管理设备的一对一全流量分发,根据全流量分发实现原理,构建流表策略如表4所示。

3.流表下发和展现

根据上表中优先级为110的流表为例,SDN控制器下发流表策略,交换机执行效果展现如下。

图4 OpenFlow交换机入站端口流量图(7天)

图5 流表下发后OpenFlow交换机的出站端口流量图(7天)

过滤分发和负载均衡

1.制定分发策略

校园网部署的全大数据分析平台,初期主要对校内应用信息系统的访问安全进行分析和预警,并不需要全网流量,需要对其实施过滤分发。Cloudera安全分析平台采用了并行分析机制,与OpenFlow交换机采用了3条1Gbps链路互联。

两台核心路由器都包含了平台所需要的网段流量信息(其中A包含有222.200.160.0/19、211.66.128.0/20、202.116.64.0/18等3个网段;B包含有202.116.64.0/18、125.217.160.0/20、219.222.192.0/20等3个网段),为保证出站端口过载而导致的数据丢失问题,必须实施流量负载均衡。基于此,流量分发策略如图6所示。

图6 Cloudera安全分析平台过滤策略

(1)将E1/1/1中目标IP段为222.200.160.0/19的流量,通过负载均衡方式分发给3个出站端口;

(2)将E1/1/1中目标IP段为211.66.128.0/20的流量,通过负载均衡方式分发给3个出站端口;

(3)将E1/1/1中目标IP段为202.116.64.0/18的流量,通过负载均衡方式分发给3个出站端口;

(4)将E1/1/2中目标IP段为202.116.64.0/18的流量,通过负载均衡方式分发给3个出站端口;

(5)将E1/1/2中目标IP段为125.217.160.0/20的流量,通过负载均衡方式分发给3个出站端口;

(6)将E1/1/2中目标IP段为219.222.192.0/20的流量,通过负载均衡方式分发给3个出站端口。

2.制定流表策略

根据制定的策略,共需要构建6条流表,但与全流量分发不同的是,还需要引入OpenFlow中的组表,以解决出站流量负载均衡的问题。另一方面,由于分发给上网行为管理设备的流量,与分发给安全分析平台都来自于相同的捕获点,因此对于安全分析平台,必须具备更高的流表优先级,否则无法进行流量分发,流表策略如表5所示。

3.组的创建

组本身就是OpenFlow协议的一部分,根据2.3.3组表实现原理,将物理接口E1/1/5、E1/1/6和E1/1/8被定义为一个组(组号命名为1)。

表5 过滤分发策略

图7 流表下发后组成员接口流量图(负载均衡)

4.流表下发和展现

根据上表中优先级为170的流表为例,SDN控制器下发流表策略,交换机执行效果展现如下。可以看出,3个接口的流量曲线趋势一致,表明流量输出负载均衡已达到预期目标。

本文基于云服务模型,以池化流量,策略分发为核心思想,在校园网总体架构基础之上构建了统一的流量采集和分发平台,相互独立又互相融合。首先对校园网流量进行各层级和多方位的实时采集,形成完整的校园网流量副本池,再通过SDN技术实现基于数据报文的L2-L4层过滤,形成不同类型的多个副本,进而按需分发给后端不同的业务分析系统。基于SDN技术构建的校园网流量采集平台的建设与应用不仅能简化运维、降低成本和提高事件处理效率,又可作为一项基础服务,支撑学校的教学科研活动,对进行信息安全研究、大数据分析、用户行为分析等科研团队提供便捷、丰富的网络流量数据源,同时,也是校园网由传统架构向SDN架构演进的一个初步落地。

猜你喜欢
流表发给校园网
基于匹配动作表模型的可编程数据平面流表归并
中共中央文委发给郭沫器的特殊信件
好人卡别再发给我
数字化校园网建设及运行的几点思考
基于时序与集合的SDN流表更新策略
发给老公看看 他会对你更好
软件定义网络中OpenFlow流表空间优化技术研究进展
试论最大匹配算法在校园网信息提取中的应用
基于VRRP和MSTP协议实现校园网高可靠性
一种高效的OpenFlow流表拆分压缩算法