APP下载

基于OpenFlow的网络管理系统设计与实现

2015-09-27周鹏王宏国防科技大学长沙410000

现代计算机 2015年24期
关键词:交换机代理组件

周鹏,王宏(国防科技大学,长沙 410000)

基于OpenFlow的网络管理系统设计与实现

周鹏,王宏
(国防科技大学,长沙410000)

0 引言

随着大数据、云计算等技术的迅速发展和各种新兴业务的应用,网络规模越来越大,异构性和复杂性的与日俱增,相应的网络管理需求和难度也日益增加,并且网络中存在的多种互不相关的协议,主要被用来在不同拓扑结构和连接速度的主机间建立连接,由于各个协议主要是针对具体问题设计而缺少共性抽象,会进一步导致网络脆弱性增加,因此根据需要设计高效合理的网络管理系统保证网络稳定和健壮的运行显得尤为重要。

正是在这一背景下,以OpenFlow为代表的SDN(软件定义网络)提出的解耦数据平面和控制平面、通过灵活的软件编程能力简化网络管理的概念给我们指明了一条新的思路[1]。OpenFlow网络的数据流由控制器作出转发决定,也使得网络管理技术在OpenFlow网络中更易于实现。

1 系统功能模块设计

1.1总体结构

网络管理的终极目标是保障网络顺畅又稳定运行。所以及时了解网络设备参数和网络运行状况显得至关重要。但是随着网络结构的复杂和规模的增加,网络底层的具体参数信息和各项指标很难得到准确和直观的反映。因此,我们希望有一种能够可视化和量化网络的方式对网络进行整体管控,结合具体业务进行网络综合规划和部署[2]。

针对传统基于SNMP的管理机制导致分散在网络各节点的设备配置复杂且不容易快速部署,以及随着规模增大产生的集中控制能力欠缺,很难对网络资源作出及时的应对,更加的灵活管理手段就显得势在必行。本文设计的OpenFlow网络模式下的集中式网络管理系统,自上而下分为管理层和控制层。其中,管理层和控制层部署在控制器端,而控制层的下面则是以OpenFlow软交换机(OpenFlow vSwitch)组成的数据平面,整个管理系统框架如图1所示。

1.2管理层应用组件

以组件化的形式开发系统的好处在于增加模块的二次重用,而不用设计一个功能完善的聚核,根据需求设计自定义功能模块,在减小开发难度的同时实现了应用的灵活调用[3]。本文在管理层主要设计并实现了网络策略自动部署的应用组件。

网络策略自动部署结构包含了诸如拓扑管理、策略决策、策略分解、策略派发、控制代理、策略验证等功能模块,模块间尽量遵循了高内聚低耦合的思想[4],在增加模块重用的同时开发新的功能,减少模块间通信对其他模块造成的依赖[5]。其整体结构如图2所示。

图1 系统整体设计框架

图2 策略自动部署结构

拓扑管理模块通过主动与底层交换设备通信,从返回的反馈报文获得设备间的链接关系,进一步形成网络拓扑,通过不断更新和整合后返回给上层数据库供策略决策模块调用;策略决策模块通过访问数据库实现对数据平面网络资源的获取,根据业务需求和当前网络运行状况,对网络进行统一规划,站在全局的高度制定配置策略,包括转发策略、设备问控制策略等;策略分解模块接收策略决策模块传输的具体配置要求,将针对全网的配置管理要求分解为一条条配置命令序列,并通告策略派发模块;策略派发模块有点类似一个缓冲栈,它将自策略分解模块下发的配置命令序列进行整理排队,并发往相应的控制代理模块,控制代理模块将接收到的配置命令序列远程下发给数据平面相应OpenFlow软交换机;策略验证模块通过对网络状态的监视,将各个区域的策略执行结果进行汇总,验证当前实际策略是否与预先规划的策略保持一致,最后将验证结果返回给数据库供策略决策模块调用。

管理系统具有一定的自适应性,控制器能够对数据平面返回的报文作出相应处理。不过这是建立在系统初始化配置的基础上,当业务流到达时,应用管理层通过调用底层网络资源结合具体业务需求制定全局策略,并将策略下发给控制代理并完成相应配置,整个策略部署机制的时序图如图3所示。

图3 网络策略部署时序图

1.3控制层控制代理组件

应用组件实现对网络资源的提取并结合具体需求分析形成全局综合方案下发后,控制代理组件对网络进行统一配置,它是业务需求得以实现的执行实体。控制代理组件主要模块结构如图4所示。

图4 控制代理组件模块结构

其中,实体线形框架为控制代理组件模块。管理实体模块负责接收应用层下发的策略执行请求。它主要描述了被管网络资源以及网络管理信息的实体。

OpenFlow网络配置协议OF-CONFIG主要利用NETCONF作为传输协议;RPC执行模块对应者NETCONF操作协议中的RPC层功能,负责具体管理应用RPC操作的请求和响应功能;协议操作模块主要包括会话操作和抽象的NETCONF操作。NETCONF操作对应协议的操作层功能。该模块收到应用操作请求时,首先访问RPC执行模块生成请求消息,然后通过封装在面向连接的TCP协议的会话操作应用层协议发送给被管对象,并等待响应;会话操作模块采用能够满足NETCONF协议需求的任何应用层协议来建立管理被管对象和管理实体之间的会话,并且为了在管理实体和被管对象间建立可靠连接。

NETCONF可以利用任何实现协议功能的应用协议创建管理实体和被管对象的会话。本系统选择SSL作为应用层协议建立连接关系。NcSession类是所有实现会话的基类。其中,NcSessionMgr是NetConf类根据特定的应用协议创建的一个对象。该对象主要用来对管理实体和被管对象之间建立的会话进行管理,并根据协议具体操作请求来创建NcSession对象,管理实体对底层被管对象的具体操作过程如图5所示。

图5 管理操作时序图

控制代理模块通过把各个等待执行的配置操压入队列,并分配每个配置操作一个对应的标识ID,相应地,也有一个和已经完成每项配置消息相匹配的标识ID组成的已执行操作表。被管对象收到配置应用请求时:先给配置消息分配一个标识放入可执行操作队列,等待操作;配置操作通过可执行操作队列分配的标识ID调用RPC类的RPCElement()方法来生成由<rpc>元素封装的请求消息,协议rpc请求通过时,进行相应配置操作;事务进入completing状态;将对应的配置操作标识写入已执行操作表;将可执行操作表中已完的配置操作标识删除,事务进入completed状态,整个配置过程完成。

2 功能测试

基于目前用OpenFlow交换机进行实验环境搭建较为困难,本文设计的基于OpenFlow的网络管理系统,主要实验环境搭建在主机和主机上安装的Linux虚拟机系统上,硬件主体是一台能够满足实验需求的装有XP系统,内存6G的主机,软件主体部分是安装在虚拟机Oracle VM Virtualbox上的Ubuntu 2.6.38-8-generic虚拟机系统,系统集成了mininet工具来模拟网络的连接和拓扑关系。实验安装了一个在XP系统上运行X window System的Xming软件,它与Putty一起完成Linux X11在主机上的显示。Putty作为TCP串行接口主要和Xming结合一起实现虚拟机到主机端的通信和显示。

首先通过搭建一个基于OpenFlow的网络环境,来验证本文设计的管理系统功能。拓扑环境如图6所示主要包括主机端的管理系统和虚拟机系统部署的OpenFlow软交换机,其中,实线表示虚拟机系统里的OpenFlow软交换机间数据流交互,虚线表示主机端通过Putty/Xming和虚拟机系统的控制流交互。

实验首先通过“openflow”账户和口令进入Oracle VM VirtualBox Ubuntu系统,运行Xming服务器,通过图7所示命令获来取虚拟机的两个网口地址。

虚拟机的两个网口分别采用NAT interface连接网络以及host-only interface连接主机。虚拟机用来连接网络的eth2网口地址为10.0.2.15,用来连接主机并进行控制流交互的eth3网口地址为192.168.56.101,如图8所示。

图6 实验拓扑环境图

图7 虚拟机网口地址获取命令

图8 虚拟机网口地址

在系统功能的实现上,处理实现拓扑获取的pktin消息需要在startUp方法中进行记录,同时通过get-Name()为pkt-in报文监听者提供一个标识,返回的pkt-in报文被提取链接关系后采用采用层次化的方式展示网络拓扑结构,最后管理系统通过对OpenFlow软交换机进行配置,控制平面通过OF-Config协议对数据平面进行配置,配置操作通过可执行操作队列分配的标识ID调用RPC类的RPCE lement()方法,来生成由<rpc>元素封装的请求消息,进行相应配置操作,直到最后整个配置过程完成,返回拓扑连接状态如图9所示:

图9 配置后拓扑图显示

通过上面的测试可以看出,通过整体实验平台的搭建,主机端的管理系统和虚拟极端mininet模拟的OVS数据平面能够进行OpenFlow信息的交互,探测报文和下发的配置策略能够得到正确执行,基本完成了控制和数据信息的传输,也即基于OpenFlow的网络管理系统能够有效地实现其指定功能。

3 结语

本文针对SNMP协议对网络设置的有限支持,以及使用SNMP协议的网络管理系统在实现网络配置功能时存在的不足,提出了一种基于OpenFlow的集中式网络管理系统,通过管理层和控制层各组件和模块的设计,结合具体业务进行网络综合规划和部署。实现了以可视化和量化网络的方式对网络的整体管控。

但是文本设计的集中式管理架构比较适合对小型网络环境的管理,随着网络复杂度的增加和规模的扩大,分布式的网络架构是一种必然。并且相较于控制器提供的Java接口对模块进行二次开发和创新,通过北向接口实现灵活、开放的应用开发对于今后云计算和大数据等新兴业务的发展更是大势所趋。

[1]左青云.基于OpenFlow的SDN技术[N].软件学报,2013-03-29(3).

[2]Sharafat AR,Das S,Parulkar G,McKeown N.MPLS-TE and MPLS VPNs with OpenFlow.[J]SIGCOMM,2011(3):25-34.

[3]Heller B,Sherwood R,McKeown N.The controller placement problem.[J]SIGCOMM,2012(6):7-12.

[4]Martin Casado,TeemuKoponen.Onix:A distributed control platform for large-scale production network[J].OSDI,2010,(3):07~13.

[5]Gibb G,Underhill D,Covington A,Yabe T,McKeown N.OpenPipes:Prototyping high-speed networking systems.[J].SIGCOMM 2009,(3):07~13.

OpenFlow;OF-CONFIG;OpenFlow vSwitch;Management System

Design and Implementation of Network Management System Based on OpenFlow

ZHOU Peng,WANG Hong
(National University of Defence Technology,Changsha Hunan 410000)

1007-1423(2015)24-0043-05

10.3969/j.issn.1007-1423.2015.24.011

周鹏(1990-),男,四川达州人,硕士研究生,研究方向为计算机网络、网络软件开发

2015-06-04

2015-07-28

由于SNMP协议对网络设置的支持有限,使用SNMP协议的网络管理系统在实现网络配置功能时存在不足。基于OpenFlow的集中式网络管理系统,利用数据转发与控制分离的网络架构,结合管理应用层的业务需求,进行自顶向下的管理层的应用组件和控制层的服务组件与控制代理组建设计,实现控制器对底层网络资源的调用以及通过可视化的方式对网络进行整体管控;对原型系统进行功能测试和场景验证,证实管理系统实现预定功能的正确性。

OpenFlow;OF-CONFIG;OpenFlow软交换机;管理系统

王宏(1964-),男,湖南益阳人,博士,研究员,研究方向为计算机网络、网络安全和网络组网

Due to the limited support of SNMP protocol for network settings,network management system using SNMP implementing the function of network configuration meets problems,based on the network architecture of separation of data forwarding and control,the centralized network management system based on OpenFlow combined with the management application layer service requirements,designs service component of application layer and sevice,control agent component of control layer with top-down module design,realizes controller calling to the underlying and cyber source through the visual way of network;finally,the prototype system is tested and confirmed to be correct of the pre management system function.

猜你喜欢

交换机代理组件
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
代理圣诞老人
缔造工业级的强悍——评测三旺通信IPS7110-2GC-8PoE工业交换机
风起新一代光伏组件膜层:SSG纳米自清洁膜层
108名特困生有了“代理妈妈”
胜似妈妈的代理家长