探究基于OpenFlow的终端系统设计与实现
2016-11-24李睿
李睿
摘要:SDN是一种新型的网络技术,OpenFlow是SDN协议之一,它能够将路由控制和数据传输进行分离,进而有效解决因为网络复杂问题导致的网络交换设备瘫痪问题,进而提升设备的性能。基于OpenFlow的终端系统,能实现终端的可编程性,有效对系统连接进行管理。就此,文章对基于OpenFlow的可编程终端设计与实现进行探究。
关键词:OpenFlow;可编程终端;终端设计;计算机网络
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)26-0100-02
骨干网络技术飞速发展,接入网技术也高速的发展,目前的网络环境中包括有线网络、无线网络等,多种不同网络同时存在增加了网络的复杂性,而传统终端通常是单一主机、单一网络接口、单一网络结构,这样往往不能满足大数据时代多种类业务对时延、带宽等网络性能的要求,它更不能灵活的根据用户需求接入网络。接入网技术和智能终端技术都在不断更新发展,可以实现利用不同的网络接口接入不同类型网络,同时建立多条不同类型链接,为用户提供高可用、可扩展优质服务。SDN技术的出现,它将传统网络的控制平面和转发平面进行分离,能够实现对接口的有效管理,减少一些操作上的限制。OpenFlow协议是实现上述功能协议之一,因OpenFlow协议灵活、兼容性高,基于OpenFlow设计实现的终端,能对不同类型的接口进行控制,通过编程对用户的不同业务需求进行分类管理,能有效控制网络传输。
1 原理与问题分析
1.1 Open Flow技术
1.1.1 OpenFlow技术概述
SDN技术起源于斯坦福大学和加州大学联盟,是为解决传统网络问题提出的一种新网络架构和模型,是未来网络技术发展趋势,也是一种非常重要的网络技术之一,而OpenFlow是SND技术协议之一。刚开始是这的情况,研究人员为了解决服务器直接访问交换机数据报文转发表,将以太网交换机作为定网络设备应用到大学的网络实验中,它只负责转发功能,至于怎么转发则由服务器来控制。这种模式能有效解决传统网络暴露的问题,后来OpenFlow协议被有计划地开发,最终形成一种开放的标准协议。OpenFlow是SDN控制平面和转发平面之间的协议标准之一,经过有关人员的不断研究和推广,在现阶段形成使用最为广泛的SDN南向接口。基于OpenFlow协议的网络架构由交换机和控制器两部分组成。交换机和控制器基于OpenFlow协议协同工作,共同完成对网络报文的控制与转发,实现了数据转发层面和路由控制层面之间的分离。其中,OpenFlow交换机就是一个执行者,主要听命于控制器,负责对数据报文的转发,它分为三个部分,分别是流表、安全通道和协议。数据报文的转发规则构成了流表项,多个流表项构成流表,流表交由交换机的处理单元处理,其中转发规则通常由匹配字段、计数器和操作来描述。
现阶段,OpenFlow交换机通常基于Linux系统来部署,它分为基于用户空间的版本系统和基于内核空间的版本系统两种,第一种部署方式容易操作、修改也简单,但是自身性能不高;第二种部署方式速度快、易于虚拟化,但是操作和修改较之第一种更为复杂。因而有关人员结合这两种版本的优点推出了一种OpenFlow技术的标准硬件交换机。在这种交换机中,控制器向交换机发送控制命令,交换机接收命令并实现具体操作。控制器基于网络拓扑图运作,实现对整个网络系统数据传输进行控制,通过OpenFlow操作交换机流表,从而实现对整个网络的有效管控。OpenFlow控制器最典型的架构是NOX,它由 C++ 和 python 语言实现,提供了一套标准接口,通过编程调用接口就能有效控制和调用组件。文章基于NOX控制器来进行分析和探究对可编程终端的实现以及连接管理。
1.1.2 OpenFlow技术的应用优势
首先,OpenFlow 技术能够将数据转发和路由控制进行分离,提升了交换机转发的速度和效率,提高了网络的性能。另外,在成本使用上,OpenFlow网络技术具有虚拟网络管理功能,在很大程度上降低了网络的构建和运维费用。其次,OpenFlow 技术具有应用和测试功能。OpenFlow网络管理员可以根据OpenFlow软件在现有的网络架构中增加新的功能,将这些功能实现在多平台的同时运作。另外,OpenFlow提供了一套开发的标准接口,为了发挥新系统的交换功能,研究人员能够根据自己的需要调用API,添加一些具有新功能的控制软件。再次,OpenFlow能够对数据和系统进行统一管理。OpenFlow控制器实际上是整个网络的中央控制器,它知晓整个网络的运行视图,能精准的对整个网络进行统一管理,能有效保障网络安全性。管理员在集中控制器下能够对全网的信息进行把握和掌控,进而对网络入侵的问题有效识别。最后,OpenFlow能够实现云计算。OpenFlow交换机能够对网络数据和计算资源进行有效的控制,实现对大数据的整理和优化,充分提升数据的交换速度。
1.2 多接口终端问题分析
当一个终端拥有多个接口,同时连接多种类型的网络后,一般会产生以下几个的问题:
1.2.1 关于终端可编程性的使用问题
终端系统通常由CPU、内存、存储单元、输入输出单元构成,其结构固定,如果要操作其中一个链接、或者删除一个链接、或者增加一个链接,都需要对其内核的驱动进行修改,通常修改内核都是非常复杂和困难的。在有业务需求的情况下,如何以一种模块化的形式来管理连接,需要有关人员进行研究和思考。
1.2.2 关于终端多个接口并行传输的业务问题
可编程终端设计操作系统不具有对各个接口建立相关连接的管理功能和业务传输能力,接入网络的每一个终端接口都需要对应的IP地址。由于每一个接口对于应用层的进程来说都是平等的,因此应用层进程就不知道应该选那一个接口来建立通信,只能随机选择一个接口,这样会大大降低管理效率。
1.2.3 关于不同业务如何在多条连接上进行分配的问题
可编程终端设计操作系统涉及的业务种类众多,包括HTTP、FTP等,在多种连接的使用下,这些业务之间的分配如何实现传输的优化和分配的优化还有待人们的思考和研究。
2 设计与实现
2.1 整体设计
在终端系统中引入OpenFlow技术就能有效解决可编程终端的链接问题,基于这一思想理论,通过对终端系统架构进行修改,嵌入OpenFlow技术,同时兼容目前广泛运行的TCP/IP协议,最终实现终端系统可编程控制网络。可以将OpenFlow设计为一个插件,能灵活的安装到终端系统上,这样便于终端系统升级。[1]同时,通过虚拟交换器和虚拟接口的配置,能够在现有的连接管理控制程序运作下,实现对终端多条连接的管控。
2.1.1 控制层
控制层的主要功能是向转发层下发控制策略,其使用的主要方法是增加、修改和删除流表,通过对流表的处理来实现具体的控制策略,处理完成后才下发给转发层。那么控制策略是如何在控制层与传输层之间传输的呢?转发层和控制层的OpenvSwitch在Loopback口处会建立一条通道,通过该通道对OpenFlow的有关控制信息进行传输。另外,转发层OpenvSwitch上面有缓存,用于存储来自控制器流表,流表由流表项构成,流表项一般是根据控制层的策略进行设定,上层的业务数据包能够和流表项进行匹配。
2.1.2 转发层
转发层主要是对业务数据报文的控制与转发,转发层由物接口和OpenvSwitch构成。其中接口又分为物理接口和虚拟接口,物理接口主要是指终端的多个无线接口和有线接口,虚拟接口主要指由软件虚拟出来的接口。OpenvSwitch是一种交换机控制软件,能够执行每条流的动态传输过程进行改变,并为OpenFlow提供接口,在控制层的作用下实现对控制器的集中管控。
2.2 可编程终端对多个接口连接管理设计
2.2.1 监测模块
监测模块主要负责监控接口状态,统计流表信息和流信息。通过监测模块实现对间隔时间段内信息的灵活配置,符合系统设计的实时性需求。
2.2.2 分析模块
分析模块主要负责对监控模块采集到的信息进行分析,比如接口带宽、异常错误、延迟等进行分析,它还包括对流表项的数量是否达到上限值进行分析,对表的老化时间进行正确处理,以及对业务的有关需求进行分析。
2.2.3 决策模块
根据分析模块分析结果,通过一定的策略算法,以及当前的连接状态做出决策,决策的结果可以是对不同种类的业务进行分流,并在不同接口情况下进行传输。
2.2.4 执行模块
数据包指定要从某连接进行发出时,需要有关人员对数据包进行翻译处理。当A和B进行通信时,二者之间会形成多条连接,通过通信的建立来实现对连接的执行。数据包在A从网络栈经过虚拟接口到达OpenvSwitch时,应用的源地址是IP_a0,应用的目的地址是IP_b0。在经过接口发出时,源地址会被修改为接口对应的地址,比如从port2出发,源地址就被改为IP_a2。[2]
3 测试与验证
文章提到的基于 OpenFlow 的可编程终端设计与实现是在Linux上进行的,并在多个有线接口的作用下进行试验。基于功能测试的对象是针对中端,因此网路的设置一般采用简单的一跳完成。两个终端使用的操作系统均是配有三个有线接口的Linux系统,具体测试的拓扑结构图如图1所示。[3]在试验中分别对视频流业务、FTP业务、HTTP访问业务和PING业务进行了测试,具体的连接管理策略为将视频业务流由连接1进行传输,将FTP业务流由连接2传输,将HTTP和PING由连接3进行传输。CLient和Server的通信系统采用的是IP_a1和IP_b1,三个不同的接口对应三种不同的IP地址,为了减少地址的数量,可以将一些配置默认为相同,具体安排如表1所示,功能试验如图2所示。
4 结束语
新网络技术的产生,尤其是OpenFlow技术的诞生,有效解决了网络管控问题,特别是多接口终端网络通信连接管控问题,通过嵌入OpenFlow插件,很方便的对多接口终端进行升级,实现多接口终端的可编程性。这种终端特别适用于网络资源类型多样化的环境,能够为接口的配置与调用带来便利,同时也为开发具有多连接管理需求的控制软件提供便利,能有效的为多种网络资源进行合理的开发和利用。除此之外,可编程终端的设计与实现研究,为有关研究人员提供了开发平台,并在对可编程终端拓展发展空间的同时,实现其与SDN网络的融合。
参考文献:
[1] 李文俊.基于OpenFlow的可编程终端设计与实现[J]. 软件,2013(11):27-30.
[2] 刘辉. OpenFlow无线路由器及组网技术研究[D].北京:北京邮电大学,2014.
[3] 代游. SDN控制架构及应用开发的研究和设计[D].杭州:浙江工商大学,2014.