发明名称 一种面向云数据中心的多租户策略驱动型软件定义网络方法
摘要 本发明属于云计算和新型网络技术领域,具体为一种面向云数据中心的多租户策略驱动型软件定义网络方法。具体步骤包括:租户策略定义,限定用户自定义策略的权限,策略冲突解决,策略文件解析与执行;本发明通过策略定义来配置网络,租户能够以直观的方式来定义自己的虚拟网络、虚拟防火墙等,而不必通过编写程序或者利用软件定义网络控制器所提供的编程接口;将云计算平台的管理和SDN控制器的管理统一起来;通过策略的解析来管理网络,能够获得更好的效率,节省软件定义网络控制器的CPU等计算资源,并减少控制器处理租户请求的时间。本发明在保证用户友好性的前提下,能够接近本地API调用的性能,同时大大优于RESTAPI调用的性能。
申请公布号 CN104092565A 申请公布日期 2014.10.08
申请号 CN201410286442.7 申请日期 2014.06.24
申请人 复旦大学 发明人 吕智慧;陈实;吴杰
分类号 H04L12/24(2006.01)I;H04L29/08(2006.01)I 主分类号 H04L12/24(2006.01)I
代理机构 上海正旦专利代理有限公司 31200 代理人 陆飞;盛志范
主权项 一种面向云数据中心的多租户策略驱动型软件定义网络方法,其特征在于具体步骤为:第一步: 租户策略自定义自定义租户策略,使SDN控制器和云管理器不从不同的数据库中读取租户相关的管理数据,只通过统一的接口解析租户的策略;通过租户自定义策略,自然地满足租户自定义、个性化策略的需求,并且将虚拟机放置策略、存储策略、网络策略整合到同一个策略文件中进行定义,以方便租户的统一管理;在自定义策略时通过“继承”,对原有Amazon的AWS声明进行扩展,发展出SIStatement;其中,新定义的SIStatement对于原有声明是一种继承关系,其中的子项“Condition”和“Effect”沿用与原有声明相同的定义;扩展的子项为“SIPrincipal”、“SIAction”、“SIResource”三项,分别定义如下:<b>SIPrincipal</b>: 对于原有Principal的扩展,其基本形式为:“SIPricipal”:{“SDN”:”TenantUserXXX”},其中的“SDN”关键字表明这项声明是一项与SDN有关的操作,以示与原有声明中存储等相关操作的区分,其后的租户账户名可沿用原有账户定义,以实现与原有策略的统一;<b>SIAction</b>: 对于原有可操作类型的扩展,代表与网络管理相关的可进行的操作,在创建虚拟网络时,定义为:“SIAction”:”CreateVirtualNetwork”;在创建虚拟防火墙访问控制列表ACL时,定义为:“SIAction”:”CreateFireWallACL”;<b>SIResource</b>:扩展了原声明中的“资源项”,此处资源项的值与”SIAction”操作项的值相关,需要根据操作项进行相应的修改;同时,SIResource项包含多个分段,即包含同一租户下的多个虚拟子网的定义;通过在SIResource资源项中定义防火墙ACL规则,实现用户自定义的访问控制策略;同样,在SIResource中定义的ACL规则项目也可以无限扩展,租户只需要添加更多的ACL规则项即可; 通过以上方式进行继承和扩展,构成了与SDN相关的完整的策略定义;第二步: 限定用户自定义策略的权限当策略被定义以后,需要限制用户自定义策略的权限,并且保证管理员拥有对网络的最终管理权;对各租户策略赋予不同的优先级,同时预设一些管理员策略,并保证管理员策略的优先级总是大于租户策略优先级,以限制租户策略的权限和使用范围;基于两段式优先级的定义与处理,并结合OpenFlow协议中优先级的取值范围,定义管理员策略的优先级取值为[128,255],定义租户策略的优先级取值范围为(0,127];其中管理员策略侧重于原子操作定义和默认策略描述;租户策略的优先级分为基本优先级加偏移量两部分; 当租户策略被解析时,其策略文件被分解成为原子操作来执行,实际最终优先级值为固定优先级值加上偏移量;偏移量定义为管理员原子操作优先级与基本值之差; 首先计算原子操作偏移量,再在处理租户策略的过程中,先判断其固定优先级,通过固定优先级加上偏移量,产生租户策略中每一项原子操作的最终优先级,这一优先级的值能确保属于(0,127],这个值必定比管理员所定义的策略的优先级值小;第三步: 策略冲突解决当租户之间策略发生冲突时,需要用管理员默认策略进行处理,处理租户策略冲突的算法如下: 当检测到策略冲突后,首先判断这个冲突是否是被管理员预定义策略所解决的;当租户所申请的保留带宽超过物理链路带宽时,管理员可定义将所有租户的实际带宽按申请带宽的比例分配,这样就解决了某一个冲突问题;而当有一些冲突没有办法被管理员策略所解决时,则直接应用管理员所定义的全局默认策略,即策略优先级的值范围在(255‑limit,255]之间的策略;最后,如果管理员也未定义相应的最终管理策略,则赋予某一项操作的优先级为0,在OpenFlow流表中优先级为0表示流表中最后被匹配的项,它能保证整体策略对网络的影响最低;第四步: 策略文件解析与执行设计一个策略模块,该策略模块包括策略文件读取、策略文件解析、策略文件执行3个子模块;策略文件被解析后,最终还是调用本地Java API在物理网络上执行相应的操作;策略模块中维护着一个策略文件系统,策略文件系统可以从云管理器中直接读取策略,也可以接受租户直接向策略文件系统中写入策略;策略模块的工作流程是,由策略文件维护系统维护整个策略文件系统,同时有策略文件监控模块对策略文件的变化进行监控;当监控到文件系统变化时,即意味着有相关操作需要执行,此时,策略文件解析模块读取发生变化的策略文件,对策略文件进行解析,将解析后的相关参数传到策略文件执行模块,由策略文件执行模块进行最终的执行;(1)系统总体处理流程首先,由策略文件监控系统循环监控文件变化情况,当策略文件未发生变化时,继续循环监控;当策略文件发生变化时,则通知策略文件解析与执行模块,并调用策略文件解析模块进行解析与执行;在策略文件解析模块中,判断操作类型,并执行相应的操作;策略解析模块的解析与执行操作完成后,返回监控流程,并进行下一次的监控循环;(2)策略文件解析与执行策略文件解析子模块开始工作时,首先读取发生变化的策略文件,再对其进行初步解析,将其中与SDN相关的操作提取出来,交由后续流程进行执行,再将其它原有AWS系统的操作交由原有的云管理器进行执行;在策略解析子模块提取出SDN操作后,再判断相关的操作,操作类型可以是“创建虚拟子网”或“创建虚拟防火墙ACL”,也可以是其它新增的自定义的操作类型;对于每一种操作,在线程池中开启一个新的线程来执行;在线程池中,有一个任务统一执行器对所有线程进行管理,任务统一执行器中定义了一个统一的任务执行接口,不管是“创建虚拟子网”,还是“创建虚拟防火墙ACL”,均实现这个接口;每个操作子模块通过实现任务统一执行器的执行接口来实现系统的良好扩展性;最后,各实际任务执行器再调用本地Java API,实现相关任务的最终执行。
地址 200433 上海市杨浦区邯郸路220号