CN106953848A - 一种基于ForCES的软件定义网络实现方法 - Google Patents
一种基于ForCES的软件定义网络实现方法 Download PDFInfo
- Publication number
- CN106953848A CN106953848A CN201710114858.4A CN201710114858A CN106953848A CN 106953848 A CN106953848 A CN 106953848A CN 201710114858 A CN201710114858 A CN 201710114858A CN 106953848 A CN106953848 A CN 106953848A
- Authority
- CN
- China
- Prior art keywords
- network
- logic function
- function block
- address
- forces
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000007667 floating Methods 0.000 claims description 41
- 230000009471 action Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 230000003068 static effect Effects 0.000 claims description 8
- 239000000203 mixture Substances 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1045—Proxies, e.g. for session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于ForCES的软件定义网络实现方法。本发明中以Neutron的SDN框架为基础提出了一种基于ForCES扩展插件的实现方案,ForCES扩展插件的基本架构包括插件和插件代理两部分。插件通过和Neutron的消息交互来创建三层路由,并将用户对逻辑功能块的属性操作转化为具体的对虚拟网、路由和网络接口的操作,插件代理位于网络节点和计算节点之上,是盛放逻辑功能块实体的容器,实现数据包的网络层处理;本发明还给出了相关IETF ForCES逻辑功能块的设计和建模方法,使得用户可以通过ForCES扩展插件所提供的北向接口方便地进行Openstack网络的重新定义。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种基于ForCES的软件定义网络实现方法。
背景技术
云计算是信息技术产业的一场新的革命,是继计算机革命和互联网革命后又一场重要的技术革命。云计算的出现,意味着人们可以使用互联网的虚拟资源,用户可以管理和控制所购买的服务,可以通过云计算在多租户的环境中得到按需分配的网络资源。由于网络只是业务部署的一部分。除了网络,还需要为业务分配计算资源、存储资源等。如果有一个平台,可以集中管理这些资源,且当虚拟机需要变更(增加,删除,迁移)的时候,只需要输入虚拟机所需的资源参数,然后该平台就可以根据资源参数自动计算并分配资源,这样的平台就是云计算平台。云计算在技术上需要实现虚拟化,并行计算,效用计算,负载均衡和网络存储等,虽然云计算是以前技术的整合,然而却能带来在生活生产方式和商业模式上的变化。OpenStack便具有这样的处理计算能力,通过OpenStack的各个组件多种模式的部署可以实现私有云,企业公有云和混合云的搭建。
OpenStack作为一个开源云操作***吸引了来自全球的的开发者和技术专家参与其中。OpenStack是开源技术产品的集合,它提供可扩展、安全、基于标准的云计算软件解决方案,可用于管理一些基础设施中的资源如计算资源、存储资源、网络资源等。OpenStack的网络服务功能由Neutron提供,Neutron是用于管理OpenStack中网络资源的组件,Neutron提供的可扩展架构允许用户部署和管理第三方插件及其他网络服务。Neutron作为当下OpenStack领域的研究热点,已经朝着网络的软件定义网络化方向发展。IETF ForCES(Forwarding and Control Element Separation,ForCES)作为实现软件定义网络网络架构的一种重要实现方式,目前在OpenStack的研究领域中涉及较少。
IETF ForCES是实现软件定义网络的重要技术手段,其核心思想是转发与控制分离。打破单一网络设备的“黑盒”现象作为ForCES的设计初衷,强调网络设备中的控制件与转发件的松耦合关系,并且能友好的支持开放可编程网络。由于以前IETF ForCES工作组一直将其技术定义在一个网络设备节点内,所以ForCES技术没有很好的被推广到类似云计算网络的应用中,限制了其在业界的受关注度和影响。本发明正是结合ForCES开放可编程、转发与控制分离的思想,以OpenStack与ForCES结合的方式实现控制平面与数据平面的分离,提高Neutron网络的伸缩性,以及对网络的集中控制。在多租户、大规模的云环境中,Neutron的性能会下降,为了减轻网络节点的三层流量集中的瓶颈。本发明通过引入ForCES来克服Neutron的缺陷,通过实现Neutron的三层服务接口为Neutron提供分布式的虚拟路由功能,减小了故障域,避免单点故障。本发明通过引入ForCES旨在提高OpenStackNeutron的可扩展性、性能和可靠性。
发明内容
本发明的目的是克服现有技术的不足,提供一种基于ForCES的软件定义网络实现方法,包括如下步骤:
步骤(1)控制件以Neutron插件的形态位于OpenStack控制节点之内,由数据库模块和远程过程调用模块组成,远程过程调用模块维护由ForCES格式消息组成的消息队列,所述OpenStack是一种常见的开源云操作***,Neutron是它实现网络功能的基本组件,ForCES是一种由互联网工程任务组所认定的网络控制协议;
步骤(2)转发件以Neutron插件代理的形态位于OpenStack计算节点和网络节点之内,负责具体网络层功能的实现,由转发件对象逻辑功能块、接口逻辑功能块、远程过程调用逻辑功能块、路由逻辑功能块、浮动IP逻辑功能块组成,具体包含如下步骤:
2-1.转发件对象逻辑功能块采用Linux操作***的命名空间来隔离数据包的转发,将一个物理的三层网络隔离成两个或以上的独立虚拟三层网络,并通过创建一个虚拟路由器来为这些虚拟三层网络提供路由服务,该逻辑功能块的属性有物理和虚拟网络设备信息和路由规则;
2-2.接口逻辑功能块为虚拟路由器创建端口,并将租户网络中的子网绑定到该新创端口,该逻辑功能块的属性有端口标识号、端口连接子网的标识号、端口的MAC地址、端口对应的IP地址;
2-3.远程过程调用逻辑功能块循环检测从控制件发送过来的远程过程调用请求,并这些请求进行处理,这些请求包括租户网络创建、更新路由、添加路由器接口和创建浮动IP,该逻辑功能块的属性有逻辑功能块的ID号、处理动作和返回动作;
2-4.路由逻辑功能块为已经创建好的虚拟路由器配置静态路由表,路由表属性内容包含无类目标地址、下一跳信息,以及路由器的ID;
2-5.浮动IP逻辑功能块为虚拟机分配浮动IP,并将该浮动IP与虚拟机内部IP一对一映射,使得外部网络可以通过访问该浮动IP来访问内部网络中的虚拟机,该逻辑功能块的属性有浮动IP编号、浮动IP、固定IP地址、网络标识号、虚拟路由器号;
步骤(3)用户通过控制件所提供的北向接口来实现网络的重新定义,这些北向接口包括:租户网络创建、对步骤(2)所述各逻辑功能块的属性的修改和查询操作,具体包含如下步骤:
3-1.用户通过调用北向接口发送网络重定义请求至控制件,请求类型包括:租户网络创建和逻辑功能块属性操作;
3-2.控制件中的数据库模块根据网络重定义请求中所包含的信息,执行数据库的写入或删除;
3-3.控制件中的远程过程调用模块根据网络重定义请求中所包含的信息构造ForCES格式消息,并放入步骤(1)所述的消息队列;
3-4.转发件中的远程过程调用逻辑功能块从消息队列中提取出请求类型和ForCES格式消息,如果请求类型为步骤3-1所述的租户网络创建,则进入3-5;如果请求类型为步骤3-1所述的逻辑功能块属性操作,则进入3-6;
3-5.转发件对象逻辑功能块创建步骤2-1所述的命名空间,进而为用户创建虚拟的三层网络;
3-6.转发件中的远程过程调用逻辑功能块根据步骤3-4所述的ForCES格式消息对步骤2所述的接口逻辑功能块、远程过程调用逻辑功能块、路由逻辑功能块组成、浮动IP逻辑功能块进行属性的修改和查询操作。
本发明以Neutron的SDN框架为基础提出了一种基于ForCES扩展插件的实现方案,ForCES扩展插件的基本架构包括插件和插件代理两部分,控制件作为插件即Neutron的扩展API,转发件作为插件代理即一个实现3层网络服务的代理嵌入到Neutron中,控制件与转发件的信息交互采用RPC的方式,北向接口采用标准的API接口即REST API。本发明可以实现控制平面与数据平面的分离,提高Neutron网络的伸缩性,以及对网络的集中控制;通过引入ForCES来克服Neutron在多租户、大规模的云环境中性能下降的缺陷,通过集中式的控制平面来管理自己的虚拟化资源和网络。
附图说明
图1 ForCES插件的逻辑架构图;
图2远程过程调用模型;
图3控制件插件所提供北向接口的调用示意图。
具体实施方式
本发明提供了一种基于ForCES的软件定义网络实现方法,包括如下步骤:
步骤(1)控制件以Neutron插件的形态位于OpenStack控制节点之内,由数据库模块和远程过程调用模块组成,远程过程调用模块维护由ForCES格式消息组成的消息队列,所述OpenStack是一种常见的开源云操作***,Neutron是它实现网络功能的基本组件,ForCES是一种由互联网工程任务组所认定的网络控制协议;
步骤(2)转发件以Neutron插件代理的形态位于OpenStack计算节点和网络节点之内,负责具体网络层功能的实现,由转发件对象逻辑功能块、接口逻辑功能块、远程过程调用逻辑功能块、路由逻辑功能块、浮动IP逻辑功能块组成,具体包含如下步骤:
2-1.转发件对象逻辑功能块采用Linux操作***的命名空间来隔离数据包的转发,将一个物理的三层网络隔离成两个或以上的独立虚拟三层网络,并通过创建一个虚拟路由器来为这些虚拟三层网络提供路由服务,该逻辑功能块的属性有物理和虚拟网络设备信息和路由规则;
2-2.接口逻辑功能块为虚拟路由器创建端口,并将租户网络中的子网绑定到该新创端口,该逻辑功能块的属性有端口标识号、端口连接子网的标识号、端口的MAC地址、端口对应的IP地址;
2-3.远程过程调用逻辑功能块循环检测从控制件发送过来的远程过程调用请求,并这些请求进行处理,这些请求包括租户网络创建、更新路由、添加路由器接口和创建浮动IP,该逻辑功能块的属性有逻辑功能块的ID号、处理动作和返回动作;
2-4.路由逻辑功能块为已经创建好的虚拟路由器配置静态路由表,路由表属性内容包含无类目标地址、下一跳信息,以及路由器的ID;
2-5.浮动IP逻辑功能块为虚拟机分配浮动IP,并将该浮动IP与虚拟机内部IP一对一映射,使得外部网络可以通过访问该浮动IP来访问内部网络中的虚拟机,该逻辑功能块的属性有浮动IP编号、浮动IP、固定IP地址、网络标识号、虚拟路由器号;
步骤(3)用户通过控制件所提供的北向接口来实现网络的重新定义,这些北向接口包括:租户网络创建、对步骤(2)所述各逻辑功能块的属性的修改和查询操作,具体包含如下步骤:
3-1.用户通过调用北向接口发送网络重定义请求至控制件,请求类型包括:租户网络创建和逻辑功能块属性操作;
3-2.控制件中的数据库模块根据网络重定义请求中所包含的信息,执行数据库的写入或删除;
3-3.控制件中的远程过程调用模块根据网络重定义请求中所包含的信息构造ForCES格式消息,并放入步骤(1)所述的消息队列;
3-4.转发件中的远程过程调用逻辑功能块从消息队列中提取出请求类型和ForCES格式消息,如果请求类型为步骤3-1所述的租户网络创建,则进入3-5;如果请求类型为步骤3-1所述的逻辑功能块属性操作,则进入3-6;
3-5.转发件对象逻辑功能块创建步骤2-1所述的命名空间,进而为用户创建虚拟的三层网络;
3-6.转发件中的远程过程调用逻辑功能块根据步骤3-4所述的ForCES格式消息对步骤2所述的接口逻辑功能块、远程过程调用逻辑功能块、路由逻辑功能块组成、浮动IP逻辑功能块进行属性的修改和查询操作。
实施例
为了便于本领域一般技术人员理解和实现本发明,现结合附图进一步说明本发明的技术方案,给出一种本发明所述方法的具体实施方式。
一)总体方案设计
本发明采用一个控制件和一个转发件来实现ForCES的扩展插件,并基于此ForCES插件来实现Neutron的三层转发功能,通过在每个计算节点部署插件代理来实现分布式路由功能,使OpenStack中只有南北流量走网络节点,而东西流量不用再走网络节点,直接由计算节点上的插件代理进行转发。如图1所示,控制件部署在控制节点,由数据库模块和远程过程调用模块组成;转发件部署在网络节点和计算节点,由转发件对象逻辑功能块、接口逻辑功能块、远程过程调用逻辑功能块、路由逻辑功能块、浮动IP逻辑功能块组成。
为了使Neutron支持可能出现的IP地址重叠,转发件对象逻辑功能块采用Linux操作***的命名空间来隔离数据包转发。在三层网络上命名空间可以将一个物理的三层网络分割成几个独立的虚拟三层网络。每一个路由器运行在一个命名空间中,由qrouter-命名,如果一个节点不支持命名空间的话,则只能支持一个虚拟路由器。转发件对象逻辑功能块主要为Neutron网络创建一个路由器,并通过对这个路由器的配置为OpenStack租户提供三层网络服务。接口逻辑功能块为虚拟路由器创建端口,并将租户网络中的子网绑定到该新创端口。循环检测从控制件发送过来的远程过程调用请求,如果有远程过程调用请求过来,比如需要更新路由、添加路由的接口、创建浮动IP等,当收到这些请求的时候,会去通知相应的逻辑功能块做进一步的处理。路由逻辑功能块为Neutron网络提供三层路由功能,为已经创建好的虚拟路由器配置其静态路由。浮动IP逻辑功能块的主要功能是为虚拟机分配浮动IP,并将该浮动IP与虚拟机内部IP一对一映射,使外部网络可以通过访问该浮动IP来访问内部网络的虚拟机。
二)控制件主要模块设计
1.数据库模块
数据库模块是控制件的核心模块,负责对用户发送过来的请求进行相应数据库的读写操作。如用户通过Horizon、CLI命令或自定义脚本,发送与路由器或浮动IP相关的操作时,这些API请求首先到达Neutron服务器,通过Neutron提供的API扩展相对应,如果是创建、更新、删除等操作,则由控制件和数据库来完成,控制件操作数据库对其进行相应请求数据的写入和删除,然后通过远程过程调用协议机制来通知网络节点或计算节点上的转发件进行相应的操作。如果用户只通过Horizon创建一个路由器,不进行任何操作的话,控制件只会操作数据库进行请求数据的写入,而不会通知转发件进行处理。图2是Neutron三层网络的数据模型。
2.远程过程调用模块
在Neutron中插件与代理通信采用的是一种远程过程调用(Remote ProcessCall,RPC)机制,在OpenStack中,RPC采用应用层标准高级消息队列协议(AdvancedMessage Queuing Protocol,AMQP)协议进行进程间的通信,如OpenStack采用了RabbitMQ和Qpid。
AMQP即高级消息队列协议是一种开放的应用层标准协议服务于基于消息的中间件。它能够有效的支持各种通信模型,它以实现开放的合作开发为目的。一个完整的AMQP包括***类型、进程间对称的异步通信协议、消息格式、一系列标准化但可扩展的“消息能力”。AMQP模型主要由发布者,中间件和订阅者三部分构成。中间件用来连接发布者和订阅者,实现消息的存储、交换和路由功能,发布者首先将消息发送给中间件,然后中间件将消息存储在消息队列中,最后订阅者从消息队列中获取消息。
在控制件插件与转发件代理中定义了两种RPC远程调用方式,即分别为rpc.call与rpc.cast。rpc.call方式是当RPC Client向RPC Server发送RPC调用的时候,需要获取到RPC Server的响应。而rpc.cast方式,是不需要获取服务器端的响应。rpc.call需要用到主题交换和直接交换这两种消息交换方式,主题交换是用于Client端发送RPC请求到Server端,而直接交换方式是Server端向Client端返回RPC调用结果。rpc.cast是初始化创建一个Publisher,然后将消息发送到消息交换器,消息被交换器分发到相应的消息队列,最后被consumer获取到。
RPC模块的主要功能是控制件插件向转发件代理发送RPC请求,当控制件插件接收到Neutron服务器发送过来的API请求(如Nova发送过来创建网络的请求)的时候,会去操纵数据库模块调用Neutron数据库对请求数据的写入,或者通过RPC通知转发件代理进行网络请求相应的处理操作。
如图2所示,Neutron服务器负责接收外来的API网络请求,如果是关于三层的网络请求者会通过RPC发送给控制件插件进行进一步的处理,然后控制件插件会将该网络请求通过RPC发送给转发件代理进行三层网络的创建。
3.控制件插件所提供北向接口的调用过程
包含了控制件插件的Neutron对外统一提供了北向的REST API,这其中分为标准的API和扩展API两组,定义了Neutron中二层网络资源的接口和其基本属性的是Neutron的核心API,允许用户对Neutron核心网络资源进行增、删、改、查等操作,这其中包括网络、端口、子网。对于Neutron的扩展API,对L2网络资源定义了其扩展的属性,同时网络的所有高级服务的API也都属于扩展的API,如负载均衡,虚拟专用网的API等。图3展示了NeutronAPI请求的处理过程。
当Neutron服务启动的时候会去启动一个Web服务器网关接口(Web ServerGateway Interface,WSGI)的服务,以及RPC-server的创建,RPC-client的创建,当Neutron启动了WSGI后,会去监听API请求,然后由Neutron的应用程序接口路由器(API Router)分发至Neutron的控制器,在API Router类中有一个factory方法,这个方法可以返回一个APIRouter的对象,API Router类做了两件事,一个是加载插件对象,一个是为Neutron的每一个资源注册相应的URL,在控制器中有已经实例化的插件来处理发来的API请求,然后调用该插件中具体的方法进行处理并返回结果。
三)相关逻辑功能块模型建模
1.转发件对象逻辑功能块
引入网络命名空间后,即使不采用VLAN等网络技术,也可以使在同一台物理设备上同时存在多个相同或不同的网络。网络命名空间可以对网络设备进行隔离,使属于不同的网络命名空间的网络设备互不影响。转发件对象逻辑功能块主要功能是为Neutron网络创建一个路由器即开启一个由qrouter-命名的网络命名空间,然后通过控制件下发ForCES协议控制其他逻辑功能块对该路由器进行配置,实现租户之间不同网段的子网的互相访问,以及租户内部网络对外网的访问。
(1)输入描述:
输入:普通IP数据包。
(2)输出描述:
输出1:输出服务请求包。
输出2:无。
(3)Metadata:
<RouterID,value>:Router的ID号。
<nsname,value>:namespace由qrouter-RouterID命名的名字。
(4)属性描述:
转发件对象逻辑功能块的主要属性包括一些物理或虚拟网络设备信息,以及一些路由规则信息。其中的路由规则属性可以进行配置,可以通过控制件下发ForCES协议消息控制路由逻辑功能块进行配置路由器的路由表信息,即为路由器添加一些静态路由。
2.接口逻辑功能块
接口逻辑功能块部署在转发件对象逻辑功能块之后,为通过转发件对象逻辑功能块创建好的路由器添加端口,并为此端口绑定一个子网,使该子网(虚拟交换机)能够连接到路由器上。当没有子网存在的时候,则会报错,并把错误信息上报给转发件。
(1)输入描述:
输入:无
(2)输出描述:
输出:无
(3)Metadata:
<IFID,Value>:Router的端口ID。
<SubnetID,Value>:该端口所连接的子网的ID号。
<MAC,Value>:该端口的MAC地址。
<IFIP,Value>:该端口的IP地址
(4)属性描述:
接口逻辑功能块的主要属性包括端口标识号、端口连接子网的标识号、端口的MAC地址、端口对应的IP地址等。
3.远程过程调用逻辑功能块
远程过程调用逻辑功能块的主要功能是循环检测控制件通过RPC发送过来的ForCES协议消息,比如创建路由,更新路由,创建路由器端口,或更新浮动IP等。当收到这个ForCES消息后,会去通知相应的LFB(逻辑功能块)进行处理,如转发件对象逻辑功能块、接口逻辑功能块等。
(1)输入描述:
输入1:ForCES协议消息
输入2:元数据输入
(2)输出描述:
输出:解析后的ForCES协议消息
(3)Metadata:
<RFID,Value>:传递过来的ForCES协议消息ID
(4)属性描述:
远程过程调用逻辑功能块的主要属性包括被调用LFB的ID号、处理动作、返回动作等。当用户通过调用北向REST API发送更新Neutron三层网络请求的时候,该请求会被发送到控制件,然后由控制件的远程过程调用模块进行处理,将该请求发送到转发件的远程过程调用逻辑功能块,最后由远程过程调用逻辑功能块通知相应的逻辑功能块进行进一步的处理。
4.路由逻辑功能块
路由逻辑功能块部署在接口逻辑功能块之后,其主要功能是为创建好的路由器添加静态路由。
(1)输入描述:
输入:无
(2)输出描述:
输出:无
(3)Metadata:
<RuleID,Value>Router的静态路由表条目ID
(4)属性描述:
路由逻辑功能块的主要属性包括静态路由表,路由表属性内容包含无类目标地址、下一跳信息,以及路由器的ID。
5.浮动IP逻辑功能块
当外网用户要访问租户网络的虚拟机的时候,需要配置一个防火墙允许访问的公网IP,然后将这个公网IP与虚拟机的内网IP进行映射,浮动IP逻辑功能块的主要功能就是创建这些能访问的公网IP,并把这些公网IP映射到虚拟机内网IP,然后将这些浮动IP绑定到虚拟机。如果虚拟机宕机了话,浮动IP不会消失,可以分配给其他虚拟机。
(1)输入描述:
输入:无
(2)输出描述:
输出:无
(3)Metadata:
<FTID>:分配浮动IP的ID号
(4)属性描述:
浮动IP逻辑功能块的主要属性包括浮动IP匹配表,浮动IP匹配表的主要内容包括浮动IP的ID号、浮动IP地址、固定IP地址、网络标识ID号、Router ID号等。
Claims (1)
1.一种基于ForCES的软件定义网络实现方法,其特征在于,包含如下步骤:
步骤(1)控制件以Neutron插件的形态位于OpenStack控制节点之内,由数据库模块和远程过程调用模块组成,远程过程调用模块维护由ForCES格式消息组成的消息队列;
步骤(2)转发件以Neutron插件代理的形态位于OpenStack计算节点和网络节点之内,负责具体网络层功能的实现,由转发件对象逻辑功能块、接口逻辑功能块、远程过程调用逻辑功能块、路由逻辑功能块、浮动IP逻辑功能块组成,具体包含如下步骤:
2-1.转发件对象逻辑功能块采用Linux操作***的命名空间来隔离数据包的转发,将一个物理的三层网络隔离成两个或以上的独立虚拟三层网络,并通过创建一个虚拟路由器来为这些虚拟三层网络提供路由服务,该逻辑功能块的属性有物理和虚拟网络设备信息和路由规则;
2-2.接口逻辑功能块为虚拟路由器创建端口,并将租户网络中的子网绑定到该新创端口,该逻辑功能块的属性有端口标识号、端口连接子网的标识号、端口的MAC地址、端口对应的IP地址;
2-3.远程过程调用逻辑功能块循环检测从控制件发送过来的远程过程调用请求,并对这些请求进行处理,这些请求包括租户网络创建、更新路由、添加路由器接口和创建浮动IP,该逻辑功能块的属性有逻辑功能块的ID号、处理动作和返回动作;
2-4.路由逻辑功能块为已经创建好的虚拟路由器配置静态路由表,路由表属性内容包含无类目标地址、下一跳信息,以及路由器的ID;
2-5.浮动IP逻辑功能块为虚拟机分配浮动IP,并将该浮动IP与虚拟机内部IP一对一映射,使得外部网络可以通过访问该浮动IP来访问内部网络中的虚拟机,该逻辑功能块的属性有浮动IP编号、浮动IP、固定IP地址、网络标识号、虚拟路由器号;
步骤(3)用户通过控制件所提供的北向接口来实现网络的重新定义,这些北向接口包括:租户网络创建、对步骤(2)所述各逻辑功能块的属性的修改和查询操作,具体包含如下步骤:
3-1.用户通过调用北向接口发送网络重定义请求至控制件,请求类型包括:租户网络创建和逻辑功能块属性操作;
3-2.控制件中的数据库模块根据网络重定义请求中所包含的信息,执行数据库的写入或删除;
3-3.控制件中的远程过程调用模块根据网络重定义请求中所包含的信息构造ForCES格式消息,并放入步骤(1)所述的消息队列;
3-4.转发件中的远程过程调用逻辑功能块从消息队列中提取出请求类型和ForCES格式消息,如果请求类型为步骤3-1所述的租户网络创建,则进入3-5;如果请求类型为步骤3-1所述的逻辑功能块属性操作,则进入3-6;
3-5.转发件对象逻辑功能块创建步骤2-1所述的命名空间,进而为用户创建虚拟的三层网络;
3-6.转发件中的远程过程调用逻辑功能块根据步骤3-4所述的ForCES格式消息对步骤2所述的接口逻辑功能块、远程过程调用逻辑功能块、路由逻辑功能块、浮动IP逻辑功能块进行属性的修改和查询操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710114858.4A CN106953848B (zh) | 2017-02-28 | 2017-02-28 | 一种基于ForCES的软件定义网络实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710114858.4A CN106953848B (zh) | 2017-02-28 | 2017-02-28 | 一种基于ForCES的软件定义网络实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106953848A true CN106953848A (zh) | 2017-07-14 |
CN106953848B CN106953848B (zh) | 2020-04-28 |
Family
ID=59466613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710114858.4A Expired - Fee Related CN106953848B (zh) | 2017-02-28 | 2017-02-28 | 一种基于ForCES的软件定义网络实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106953848B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107171899A (zh) * | 2017-07-18 | 2017-09-15 | 江南大学 | 一种基于云平台的高吞吐量路由仿真方法 |
CN107566181A (zh) * | 2017-09-12 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种网络管理方法及虚拟化管理平台 |
CN108540408A (zh) * | 2018-04-16 | 2018-09-14 | 广东亿迅科技有限公司 | 一种基于Openstack的分布式虚拟交换机的管理方法及*** |
CN108713309A (zh) * | 2018-03-21 | 2018-10-26 | 深圳前海达闼云端智能科技有限公司 | Sd-wan***、sd-wan***的使用方法及相关装置 |
CN108804238A (zh) * | 2018-03-29 | 2018-11-13 | 中国工程物理研究院计算机应用研究所 | 一种基于远程过程调用的软总线通信方法 |
CN110311803A (zh) * | 2019-05-20 | 2019-10-08 | 平安科技(深圳)有限公司 | 软件定义网络的实现方法、装置、计算机设备及存储介质 |
CN113821268A (zh) * | 2020-06-18 | 2021-12-21 | 复旦大学 | 一种与OpenStack Neutron融合的Kubernetes网络插件方法 |
CN114466011A (zh) * | 2022-01-29 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种元数据服务请求方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067287A (zh) * | 2013-01-18 | 2013-04-24 | 浙江工商大学 | 在转发和控制分离架构下实现虚拟可编程路由器的方法 |
WO2013104375A1 (en) * | 2012-01-09 | 2013-07-18 | Telefonaktiebolaget L M Ericsson (Publ) | Network device control in a software defined network |
CN106209677A (zh) * | 2016-07-15 | 2016-12-07 | 深圳市永达电子信息股份有限公司 | 基于Openstack的neutron实现网络QOS的方法 |
-
2017
- 2017-02-28 CN CN201710114858.4A patent/CN106953848B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013104375A1 (en) * | 2012-01-09 | 2013-07-18 | Telefonaktiebolaget L M Ericsson (Publ) | Network device control in a software defined network |
CN103067287A (zh) * | 2013-01-18 | 2013-04-24 | 浙江工商大学 | 在转发和控制分离架构下实现虚拟可编程路由器的方法 |
CN106209677A (zh) * | 2016-07-15 | 2016-12-07 | 深圳市永达电子信息股份有限公司 | 基于Openstack的neutron实现网络QOS的方法 |
Non-Patent Citations (3)
Title |
---|
XI, ZOU;MING, GAO;WANG, YINING;WU, CHUNMING: "The Implementation of Virtualization in Data Plane of ForCES", 《SEVENTH INTERNATIONAL SYMPOSIUM ON PARALLEL ARCHITECTURES, ALGORITHMS AND PROGRAMMING》 * |
周磊: "基于ForCES的SDN配置层中网络虚拟化关键技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
高明: "SDN的ForCES实现及服务部署研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107171899A (zh) * | 2017-07-18 | 2017-09-15 | 江南大学 | 一种基于云平台的高吞吐量路由仿真方法 |
CN107566181A (zh) * | 2017-09-12 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种网络管理方法及虚拟化管理平台 |
CN107566181B (zh) * | 2017-09-12 | 2021-05-04 | 郑州云海信息技术有限公司 | 一种网络管理方法及虚拟化管理平台 |
CN108713309B (zh) * | 2018-03-21 | 2021-04-16 | 达闼机器人有限公司 | Sd-wan***、sd-wan***的使用方法及相关装置 |
CN108713309A (zh) * | 2018-03-21 | 2018-10-26 | 深圳前海达闼云端智能科技有限公司 | Sd-wan***、sd-wan***的使用方法及相关装置 |
WO2019178756A1 (zh) * | 2018-03-21 | 2019-09-26 | 深圳前海达闼云端智能科技有限公司 | Sd-wan***、sd-wan***的使用方法及相关装置 |
CN108804238A (zh) * | 2018-03-29 | 2018-11-13 | 中国工程物理研究院计算机应用研究所 | 一种基于远程过程调用的软总线通信方法 |
CN108804238B (zh) * | 2018-03-29 | 2022-03-04 | 中国工程物理研究院计算机应用研究所 | 一种基于远程过程调用的软总线通信方法 |
CN108540408B (zh) * | 2018-04-16 | 2020-11-13 | 广东亿迅科技有限公司 | 一种基于Openstack的分布式虚拟交换机的管理方法及*** |
CN108540408A (zh) * | 2018-04-16 | 2018-09-14 | 广东亿迅科技有限公司 | 一种基于Openstack的分布式虚拟交换机的管理方法及*** |
CN110311803A (zh) * | 2019-05-20 | 2019-10-08 | 平安科技(深圳)有限公司 | 软件定义网络的实现方法、装置、计算机设备及存储介质 |
CN110311803B (zh) * | 2019-05-20 | 2022-08-26 | 平安科技(深圳)有限公司 | 软件定义网络的实现方法、装置、计算机设备及存储介质 |
CN113821268A (zh) * | 2020-06-18 | 2021-12-21 | 复旦大学 | 一种与OpenStack Neutron融合的Kubernetes网络插件方法 |
CN113821268B (zh) * | 2020-06-18 | 2024-06-04 | 复旦大学 | 一种与OpenStack Neutron融合的Kubernetes网络插件方法 |
CN114466011A (zh) * | 2022-01-29 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种元数据服务请求方法、装置、设备及介质 |
CN114466011B (zh) * | 2022-01-29 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 一种元数据服务请求方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106953848B (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106953848A (zh) | 一种基于ForCES的软件定义网络实现方法 | |
CN105577780B (zh) | 一种基于微服务的高校教学云平台 | |
CN103825954B (zh) | 一种OpenFlow控制方法及相应插件、平台和网络 | |
CN102710432B (zh) | 云计算数据中心中的虚拟网络管理***及方法 | |
CN103891209B (zh) | 网络控制***中的控制器 | |
CN107147509B (zh) | 虚拟专用网业务实现方法、装置及通信*** | |
CN103997513B (zh) | 一种可编程虚拟网络服务*** | |
CN105554015B (zh) | 多租户容器云计算***的管理网络及方法 | |
CN104038401B (zh) | 用于分布式覆盖虚拟环境的互操作性的方法和*** | |
CN103944768B (zh) | 为受管计算机网络提供逻辑联网功能 | |
CN103997414B (zh) | 生成配置信息的方法和网络控制单元 | |
CN105049361B (zh) | 针对虚拟网络分组流的物理路径确定 | |
CN105553849B (zh) | 一种传统ip网络与sptn网络互通方法与*** | |
CN109600768A (zh) | 网络切片的管理方法、设备及*** | |
CN107113219A (zh) | 虚拟环境中的vlan标记 | |
CN107819742A (zh) | 一种动态部署网络安全服务的***架构及其方法 | |
CN105282191B (zh) | 负载均衡***、控制器和方法 | |
CN103607430A (zh) | 一种网络处理的方法和***及网络控制中心 | |
CN103607432B (zh) | 一种网络创建的方法和***及网络控制中心 | |
CN109547349A (zh) | 基于虚拟路由的流量管理方法、装置、终端及存储介质 | |
CN108123818A (zh) | 一种虚实网络灵活可扩展融合的仿真方法 | |
CN110086640A (zh) | 业务使能的方法和装置 | |
CN109863726A (zh) | 分布式客户驻地装置 | |
CN108989071A (zh) | 虚拟服务提供方法、网关设备及存储介质 | |
CN109936505A (zh) | 以数据为中心的软件定义网络中的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200428 |