APP下载

资源池中CLI模板化网络配置管理设计方案*

2016-03-28刘益朱晓民北京邮电大学网络与交换技术国家重点实验室北京100876东信北邮信息技术有限公司北京100191

电信工程技术与标准化 2016年1期
关键词:配置管理网络设备

刘益,朱晓民(1 北京邮电大学网络与交换技术国家重点实验室,北京 100876;2 东信北邮信息技术有限公司,北京 100191)



资源池中CLI模板化网络配置管理设计方案*

刘益1,2,朱晓民1,2
(1 北京邮电大学网络与交换技术国家重点实验室,北京 100876;2 东信北邮信息技术有限公司,北京 100191)

摘 要本文以浙江移动私有云资源池管理系统为研究对象,分析了原有设备驱动模块的缺陷,提出CLI(命令行界面)模板化配置管理方案。该方案主要涉及模板化配置文件和解析引擎。配置文件以XML作为数据的编码方式,封装CLI命令和业务流程;解析引擎使用DOM(文档对象模型)解析配置文件,根据预设规则调用相应的接口实现对设备的操作。该方案使设备驱动和系统解耦和,有利于设备驱动的维护和升级,并增加了系统的扩展性,实现灵活、高效的网络设备配置管理。

关键词网络设备;配置管理;CLI模板化

网络配置管理即对网络设备驱动的管理。资源池中大部分网络资源的调度都需要在硬件设备上进行配置,资源池管理平台根据服务请求选取正确的网络设备,调用相应的驱动程序,对该设备发送CLI命令进行配置,从而使服务生效[1]。如VLAN(虚拟局域网)服务需要在交换机上进行配置,NAT(Network Address Translation,网络地址转换)服务需要在防火墙上进行配置。在浙江移动私有云资源池管理平台早期版本的设计中,网络配置靠设备驱动模块完成,即CLI命令封装在驱动模块的代码中,由于不同硬件设备的CLI命令集和不同服务的业务流程各不相同,因此对每个型号的硬件设备都需要开发驱动模块。随着资源池平台的扩大,底层设备增多,每增加一类设备就得增加一个设备驱动模块,并且需要暂停现有服务来进行软件升级。资源池管理平台亟需一种灵活、高效的网络设备配置管理方案。

1 资源池管理系统

1.1总体设计

资源池管理系统总体设计如图1所示。

IaaS(基础架构即服务)云管理平台理论上分为3层,由下到上分别是资产层、资源层和服务层。

(1)资产层:包括了IaaS中的所有硬件设备,有防火墙、交换机、负载均衡器等网络设备,块存储、日志详单存储等存储设备,以及支持虚拟机化技术的硬件和软件资产,例如支持x86虚拟化的VMware、KVM等[2]。

图1 浙江移动私有云资源池管理系统整体设计

1.2原配置管理方案

如图2所示,在资源池管理平台早期版本中,每一类设备都对应一个设备驱动模块,各驱动模块直接将CLI命令和代码耦合在一起,调用CLI控制模块的接口完成资源服务在设备上的配置。这种设计非常不利于软件架构的扩展,每增加一套设备,就得增加一套对应的驱动模块,即使修改一条命令,都得将软件重新打包升级服务,过程繁琐。随着资源池平台的扩大,底层设备增多,维护将愈加不便。

(2)资源层:实现了IaaS所有资产设备的资源化,能够动态在资产上申请、使用和释放资源,实现了对资源的统一管理和调度。

(3)服务层:调用资源池管理接口,将细粒度的资源操作以任意形式组装,最终以服务的形式向用户提供。服务层不关心资源和资产层的具体实现细节,以标准API与资源层通信,可以同时对接多个资源池管理平台[3]。

用户通过资源池管理门户申请网络资源,资源池管理平台接收到请求消息,调用相应的资源模型模块选取可用资源,并调用资源驱动模块在各类硬件设备上完成实际的配置,最后将资源返回给用户,展现在门户上。

图2 原网络资源配置管理模块

2 CLI模板化配置管理方案

2.1模块设计

CLI模板化是一种用XML作为数据的编码方式,来封装CLI命令,并通过DOM引擎解析XML,调用CLI接口实现操作设备的方法。CLI模板化将每个功能操作定义为标签,建立一个完备的功能集,支持建立SSH(Secure Shell,安全外壳协议)连接、执行命令、断开连接、反馈结果等功能。如图3所示,CLI模板化模块解析配置文件,完成设备操作。CLI命令和业务的代码逻辑分开,有利于底层驱动的维护,如果需要更换CLI命令,只需在XML配置文件中进行修改,不必修改代码重新升级系统[4]。

图3 CLI模板化网络配置管理模块

2.2配置文件规范设计

CLI模板化引擎的核心是一个基于DOM的XML解析器,DOM解析器是通过将XML文档解析成树状模型并将其放入内存来完成解析工作的,而后对文档的操作都是在这个树状模型上完成的。每次遇到一个标签时,就会调用这个特定标签的事件处理程序,来执行特定动作。配置文件组合了各种基本标签,完成整个业务操作。

模板化配置文件采用了XML的编码方式。

(1)其根节点是root,子节点主要包含Jar包导入(import)和业务方法(method)两个部分。import指导入模块外部Jar包的方法,旨在处理解析器处理不了的复杂逻辑;method包含了设备执行一个业务请求所需的设备命令及业务逻辑,是模板化配置文件的逻辑主体,模板化配置文件可以由多个标签组成,每个标签体就是一个完整的业务操作[5]。

(2)method标签包括参数列表(paralist)和业务逻辑(body)两部分。参数相当于变量,可以把body中出现此参数的地方替换为参数的真实值。body描述整个业务请求的实际操作过程,是完成一个业务请求所需的基础标签的集合。后面的标签都是基础标签。所有的XML模板化配置文件都应是如下结构:

将配置文件的结构定义之后,剩余的工作就是定义功能标签,每个标签都是一个功能的实现。功能标签可在业务逻辑体(body)中自由组合,实现各类业务逻辑[6]。

目前设计了8种核心功能标签:

(1):该标签用于需要在设备上执行的命令的基本单元。一个标签完成一条命令的完整的执行过程,包含了执行命令的环境(执行命令前后是否在命令提示符下)、要发送的指令内容、预期匹配等。

(2):该标签用于条件判断的逻辑,类似if语句。如果执行到此处时的条件满足该标签的属性,则可进入该标签内解析子标签,如果条件不满足,则跳过该标签,即不解析该标签内的子标。

(3):该标签用于建立Telnet连接,标签内容包括目标主机的IP地址、端口、命令提示符。

(4):该标签用于建立SSH连接,标签内容包括目标主机的IP地址、端口、用户名、密码、命令提示符。

(5):该标签用于调用方法,有两种情况:调用同一配置文件中的其它方法和调用外部jar包中的类方法,使用条件是业务逻辑超出仅靠标签就能处理的范围,仍需代码执行,且都是定制化的开发,不应集成在作为工具使用的CLI模板化模块中,所以写在外部jar分组中,通过标签导入jar分组及类地址,再通过标签调用。

(6) :该标签用于关闭CLIClient的连接。

(7) :该标签用于停止解析,抛出异常,并把标签的内容作为异常消息。

(8) :该标签用于立即结束配置文件的解析,关闭连接并返回值。此标签应放在一段逻辑的末尾,因为不会继续解析后面的标签了。

以上标签组合成一套完备的语法。各标签在语法规范下自由搭配,装配成业务流程。资源池管理平台实现DOM解析引擎,就能够解析CLI模板化文件,操作设备完成业务配置。

2.3关键技术

2.3.1XML解析器

一般XML文件的解析有两种模式,SAX(Simple API for XML,一种XML解析接口)和DOM。DOM是基于文档驱动的,需要读入整个的XML文档,在内存中创建DOM树,并生成 DOM树上的每个节点对象。优点是易于处理复杂对象,并且可以随意操作节点对象;缺点是当文档较大时,对DOM树的创建和处理会消耗大量内存。SAX基于事件驱动,不需要读入整个文档,而是依序读入并产生相对于的事件,优点是处理速度快,适用于大型文件的处理;缺点是不支持对文档的随意存取,不能修改文档[7]。对于本文研究的模板化的网络配置管理,其配置文件基本不超过50 kB,两种模式都不会消耗太多内存,由于DOM建立了节点树,可以随意读取节点,更适合处理复杂逻辑。因此本文选择DOM作为解析XML的工具。

2.3.2动态加载

业务逻辑过于复杂时,可以将这部分逻辑写在代码里,由于这部分代码是定制化的开发,不应集成在作为工具使用的CLI模板化模块中,因此可以单独打成一个jar分组。定义标签导入jar分组及其内的类名称,再通过标签调用,实际上是通过Java的反射机制加载这个jar分组中的类。在运行外部Jar分组的类时,可以将一些运行时的变量当做参数传入,这样被调用的Jar分组中的方法也能获取当前变量[8]。

动态加载Jar包时,需要定义类加载URLClassLoader,通过Jar分组的URL路径加载Jar分组,再通过类路径找到指定类,用getMethod()及方法名得到指定方法,最后用invoke()反射调用目标方法。

3 结束语

CLI模板化网络配置管理方案已经应用在部署于滨江数据中心的浙江移动私有云资源池管理系统上,VLAN申请、VLAN删除、NAT申请、NAT删除服务的内外防火墙驱动模块已经被CLI模板化配置文件替代了。

参考文献

[1] 郗卓宁. 云计算在IT支撑系统中的应用前景分析[J]. 电信工程技术与标准化, 2009, 22(11):34-35.

[2] Thiago Cordeiro, Douglas Damalio, Nadilma Pereira, Patricia Endo, Andre Palhares, Glauco Goncalves, Djamel Sadok, Judith Kelner. Open Source Cloud Computing Platforms. 2010 Ninth International Conference on Grid and Cloud Computing.

[3] Wind, Stefan. Open source cloud computing management platforms: Introduction, comparison, and recommendations for implementation. IEEE Conference on Open Systems (ICOS 2011) 2011.

[4] 李小康, 廖建新, 沈奇威, 曹予飞. IaaS云资源池中VLAN划分及IP池管理[J]. 电信工程技术与标准化, 2013,(8):83-84.

[5] Byung-Joon Lee, Taesang Choi and Taesoo Jeong. X-CLI: CLI based Policy Enforcement and Monitoring Architecure using XML[J], APNOMS 2002.18-20.

[6] Byung-Joon Lee, Taesang Choi and Taesoo Jeong. X-CLI CLI-BASED MANAGEMENT ARCHITECTURE USING XML[J]. Technical Report 2002.134-138.

[7] M.J.Choi,J.W.Hong,and H.T.Ju.XML-Based Network Management for Ip Networks[J]. VOI.25, number.6, December 2003:445-463.

[8] 张涛. 基于XML的网络管理技术研究与实现[D]. 哈尔滨: 哈尔滨工业大学, 2008.

中国移动设计院无线所“音迹”团队成功参加 “中国移动2015年自主开发大赛”路演

创新才能转型、创新需要实践!在移动互联网时代,中国移动高度重视培育创新文化,践行创新精神,为此,面向全体员工举办“中国移动2015年自主开发大赛”,鼓励创新开发移动互联网产品。作为中国移动的创新年度大戏,大赛共分为海选、初赛、复赛、路演展示、现场决赛等环节。中国移动设计院无线所徐佳祥、宋静川、汪况伦积极响应大赛号召,以旅游过程中“乱写乱画”的不文明行为作为切入点,用手机APP电子留音为主的方式来替代“到此一游”的行为,并融合社交元素,策划了“音迹”产品方案。产品创意和方案是大赛评选的重点,然而团队三个人在三个不同的省常驻,无法面对面讨论,大家只能利用社交工具交流,头脑风暴之余却有意外收获,“音迹”崭新的社交功能一跃成为产品亮点。功夫不负有心人,产品方案最终经过设计院所内评选、院内评选,成为设计院参与中国移动评审10个方案之一。9月,“音迹”在报送中国移动的42个单位386个创意中脱颖而出,更是成为设计院唯一进入复赛阶段的团队。“音迹”团队成员终于在北京顺利会师,4人迎难而上,从零开始,拿起开发书籍和资料埋头苦学。往往翻遍了书籍,找遍了网络就为了实现一个看似简单的功能。在连续的20多天里,团队成员牺牲晚上,周末等时间,一笔一画地制作图形素材,不断地讨论、调试、改进,将地图模块、语音模块、数据存储、UI界面等功能模块一一攻克,在大赛规定的时间内完成了产品Demo版本的开发。12月8日,关键的时刻到了,音迹团队来到南京参加产品路演展示。本次路演邀请了各省公司技术主管和专业风投人士作为嘉宾进行观摩。团队成员准备充分,分工协作,在轻松自如的氛围中向嘉宾阐述了音迹产品的价值,并现场演示Demo版本的功能。演示完毕后,在场嘉宾饶有兴趣地纷纷提问,并给予真诚建议。

(摘自:中国移动通信集团设计院有限公司网站)

Design scheme of network configuration management of CLI template in resource pool

LIU Yi1,2, ZHU Xiao-min1,2
(1 State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China; 2 EBUPT Information Technology Co., Ltd., Beijing 100191, China)

AbstractBased on private cloud resource pool system of Zhejiang CMCC, this article analysis the defect of preivous device driver module, and propose a design scheme of network confi gure management of CLI template. The scheme includes template confi guration fi le and parsing engine. Template confi guration fi le uses XML as data coding method, encapsulate the CLI commands and business process. Parsing engine use DOM(Document Object Model) to parse fi le, and call interfaces to operate the devices. The scheme decouples device driver and the system, and is advantageous to maintain and update device driver. It increases the system's extensibility, and implements fl exible and effi cient network device confi guration management.

Keywordsnetwork device; confi guration management; CLI template

* 基金项目:国家973计划项目(编号:2013CB329102);国家自然科学基金资助项目(No. 61471063, 61372120, 61271019, 61101119, 61121001);长江学者和创新团队发展计划资助(编号:IRT1049);教育部科学技术研究重点(重大)项目资助(编号:MCM20130310);北京高等学校青年英才计划项目(编号:YETP0473)。

收稿日期:2015-10-31

中图分类号TN929.5

文献标识码A

文章编号1008-5599(2015)11-0044-05

猜你喜欢

配置管理网络设备
汽车委托外加工零件自动化配置管理
网络设备的安装与调试课程思政整体设计
一种基于C# 的网络设备自动化登录工具的研制
无线通信网络设备性能监控系统的研究与开发
配置管理数据库运用与实现
防范加固SNMP团体名漏洞
论ISO20000体系量化指标梳理
建设CMDB任重道远
配置管理在软件测试中的应用
可信云平台服务运行管理模式初探