CN103067287A - 在转发和控制分离架构下实现虚拟可编程路由器的方法 - Google Patents

在转发和控制分离架构下实现虚拟可编程路由器的方法 Download PDF

Info

Publication number
CN103067287A
CN103067287A CN2013100205651A CN201310020565A CN103067287A CN 103067287 A CN103067287 A CN 103067287A CN 2013100205651 A CN2013100205651 A CN 2013100205651A CN 201310020565 A CN201310020565 A CN 201310020565A CN 103067287 A CN103067287 A CN 103067287A
Authority
CN
China
Prior art keywords
virtual
forwarding element
controlling part
router
control piece
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
Application number
CN2013100205651A
Other languages
English (en)
Other versions
CN103067287B (zh
Inventor
诸葛斌
王伟明
戴国伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN201310020565.1A priority Critical patent/CN103067287B/zh
Publication of CN103067287A publication Critical patent/CN103067287A/zh
Application granted granted Critical
Publication of CN103067287B publication Critical patent/CN103067287B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种在转发和控制分离架构下实现虚拟可编程路由器的方法。它包括如下步骤:1)控制件管理单元接收用户创建虚拟可编程路由器指令,计算所需创建虚拟控制件和虚拟转发件的数量、参数和它们之间的对应关系;2)控制件管理单元通知各个控制件创建所需的虚拟控制件,通过转发件管理单元通知各个转发件创建所需的虚拟转发件;3)将对应关系通知虚拟控制件和虚拟转发件;4)根据对应关系通过ForCES协议向虚拟控制件请求建链,实现把多个虚拟控制件和多个虚拟转发件组成单个虚拟可编程路由器;5)单元实现管理维护虚拟可编程路由器。本发明提高了物理路由器的灵活性、动态性、可扩展性、可管理性,通过负载均衡来改善路由器总体性能。

Description

在转发和控制分离架构下实现虚拟可编程路由器的方法
技术领域
本发明属于通信领域,具体涉及一种在转发和控制分离架构下的路由器实现虚拟可编程的方法。 
背景技术
众所周知,互联网长期以来所面临的地址紧缺、QoS、安全、IP组播等问题一直未能得到有效解决。根本原因在于互联网庞大的规模、复杂异质的管理体系使得诸如IPv6、DiffServ、安全路由、PIM-SM等技术难以大规模部署和应用,导致互联网在技术创新上面临僵化境地。网络虚拟化是解决目前互联网僵化问题的关键所在,其核心思想是在资源虚拟化的基础上,将网络的服务提供与基础设施提供两大功能分离开。在一个实际的物理网络上构建多个独立且互不干扰的虚拟网络平面,不同的虚拟网络平面可以采用不同的体系结构与协议栈,多个虚拟网络可以分别处理不同类型的业务流量,并根据业务的特性提供功能扩展服务。物理网络为虚拟网提供传输通道,虚拟网为用户提供特定价值的服务,通过将网络服务提供从基础设施提供中分离出来,网络虚拟化将二者间传统的紧耦合关系转变为松耦合关系,使得网络技术的创新变得更灵活,这种逻辑上的分离使得二者可以独立地演进,可以在支持现有服务的同时灵活地部署新的网络服务。为此作为互联网核心设备的路由器显得非常重要,必须具备虚拟化与隔离性,在一台物理路由器上可同时生成多个彼此隔离的虚拟路由器。每个虚拟路由器独立拥有带宽、处理器和缓存等资源,并实现相互隔离的配置管理。网络由处理节点和传输链路构成。传统网络节点功能固定、结构封闭。将虚拟化技术和灵活可编程机制引入网络处理节点后,网络节点就演变成开放式可编程虚拟化路由器系统,支持面向业务的功能植入与重组,从而支持新技术和应用的快速便捷部署。 
目前,在路由器虚拟化方面,N.Egi和A.Greenhalgh等于2007-2008年对XEN和OpenVZ网络虚拟化转发性能和公平性评估,验证x86体系结构上支撑虚拟路由器的可行性。2008年,Bhatia和Motiwala等提出一种基于vServer和NetNS的虚拟化控制面实现方法,允许用户定义内核态IP协议栈。E.Keller和E.Green于2008年提出一种轻量级的Click和vServer虚拟化方案[30]。G.Xie 和P.He等2011年提出基于LXC(Linux Container)的PEARL虚拟路由器平台,允许用户实现新的互联网协议等。在路由器可编程方面,日本工学院大学的Michihiro AOKI使用工业标准的硬件和软件模块以及Linux操作系统,基于ATCA架构实现了一个开放可编程的路由器。Cisco基于GSMP开发了新一代的支持多服务交换的开放可编程交换机MGX8000。北京交通大学的研究小组针对基于IXP2400和通用CPU的IPv4和IPv6路由器控制平面的实现展开了研究,在控制面和转发面间采用了ForCES(Forwarding and Control Element Separation,转发和控制件分离)协议进行通信,并实现了原型系统。西安理工大学的研究小组对基于ForCES协议的软件集群路由器模型作了相关研究。 
从以上研究现状可以看出,国内外研究人员在路由器虚拟化和可编程的实现上有着多种方式。本课题组从2003年开始即对ForCES技术的实现进行了多方面多层次的研究,和ForCES协议制定始终保持同步。在2004年开发了基于GRMP协议的开放可编程软件路由器原型系统,GRMP为自主设计的转发面与控制面间接口协议,后被IETF ForCES工作组选为ForCES候选协议。该系统的转发器基于通用PC上的Linux内核进行开发,主要采用内核模块机制实现网络功能的灵活扩展。从2005年开始,本课题组在Intel IXP2400/2851网络处理器的开发板上,以Intel IXA-SDK4.1为基础,基于系统集成方式开发了ForCES结构路由器的原型系统。随着互联网等计算机网络应用领域的迅速扩大,新特性、新需求不断出现并不断变化,采用ForCES技术实现的虚拟可编程路由器能够很好的满足新一代网络的需求,因为它具有足够的灵活性,能快速地对新业务、新需求做出相应;具有足够的开放可编程性,使用户可以根据所开放的资源灵活组合,以提供不同的网络需求服务。 
发明内容
本发明的目的是针对现有技术的不足,提供一种在转发和控制分离架构下的路由器实现虚拟可编程的方法。 
本发明解决其技术问题所采用的技术方案包括如下步骤: 
步骤(1)控制件管理单元接收用户创建虚拟可编程路由器的指令,根据转发和控制分离架构物理路由器的资源情况计算所需创建虚拟控制件和虚拟转发件的数量、参数以及虚拟控制件和虚拟转发件之间的对应关系; 
步骤(2)控制件管理单元通知各个控制件创建所需的虚拟控制件,同时,控制件管理单元通过转发件管理单元通知各个转发件创建所需的虚拟转发件; 
步骤(3)控制件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟控制件;转发件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟转发件; 
步骤(4)各个虚拟转发件根据对应关系通过ForCES协议向虚拟控制件请求建链,实现把多个虚拟控制件和多个虚拟转发件组成单个虚拟可编程路由器; 
步骤(5)控制件管理单元通过动态调整虚拟控制件和虚拟转发件的数量、参数和它们之间的对应关系实现管理维护虚拟可编程路由器; 
步骤(6)当虚拟可编程路由器需要拆除时,控制件管理单元通知该虚拟可编程路由器所对应的虚拟控制件,虚拟控制件通过ForCES协议通知虚拟转发件取消链接,控制件注销虚拟可编程路由器中的虚拟控制件,转发件注销虚拟可编程路由器中的虚拟转发件。 
所述步骤(1)中的控制件管理单元接收用户创建虚拟可编程路由器指令,根据转发和控制分离架构物理路由器的资源情况计算所需创建虚拟控制件和虚拟转发件的数量、每个虚拟控制件和虚拟转发件的性能参数,性能参数包括CPU能力、内存大小、网络数据包转发速度、网络接口类型数量以及多个虚拟控制件控制多个虚拟转发件建链的集合对应关系。 
所述的计算方式是指物理路由器根据创建虚拟可编程路由器指令中所要求的创建虚拟控制件和虚拟转发件的数量、每个虚拟控制件和虚拟转发件的性能参数,然后与物理路由器中的CPU能力、内存大小以及带宽进行匹配获得的。 
所述的步骤(2)中控制件管理单元通知各个控制件创建所需的虚拟控制件,各控制件根据所指定的性能参数在本机上创建满足需求的虚拟机,在虚拟机中运行ForCES中间件,再运行各第三方的网络服务模块得到该虚拟控制件,转发件根据从转发件管理单元得到的性能参数在本机上创建满足需求的虚拟机,在虚拟机中运行ForCES中间件,再建立满足需求的逻辑功能块拓扑得到该虚拟转发件。 
所述的步骤(3)中控制件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟控制件;转发件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟转发件,具体如下: 
控制件管理单元和转发件管理单元把对应关系和建链参数通过配置文件的方式通知虚拟控制件和虚拟转发件,对应关系是指虚拟转发件需要和哪个虚拟控制件建链,建链参数包括虚拟控制件ID、虚拟转发件ID、虚拟控制件IP地 址、虚拟转发件件IP地址和虚拟控制件SCTP端口。 
所述的步骤(4)中各个虚拟转发件根据对应关系通过ForCES协议向虚拟控制件请求建链,其中虚拟转发件和虚拟控制件可在单个或多个物理单元上,以单对单、单对多、多对多或多对单的形式进行建链; 
若以多对多形式建链,则多个虚拟控制件同时承担面向多个虚拟转发件的网络服务功能,多虚拟控制件不区分主从,实现网络服务的载均衡,由多个虚拟控制件和多个虚拟转发件集合组成单个虚拟可编程路由器。 
所述步骤(5)中控制件管理单元通过改变配置文件设置动态调整虚拟控制件和虚拟转发件的数量,各虚拟单位的CPU能力、内存大小、网络数据包转发速度,网络接口类型数量参数,同时改变各虚拟单位之间建链的对应关系,管理维护虚拟可编程路由器。 
所述的虚拟单位指的是单个虚拟控制件和单个或多个虚拟转发件建链的组合,各虚拟单位根据用户对虚拟可编程路由器带宽、处理器和缓存等的性能需求,或者网络服务的负载情况动态的调整各自的参数。 
本发明有益效果如下: 
本发明解决新一代网络实现过程中对路由设备所需特性的重要问题,即一种有效可实施的虚拟化可编程机制,并定义了虚拟控制平面和虚拟数据平面间生成虚拟路由器的方法。从虚拟化可编程路由器研究现状看,本发明具有可行的解决方案、可部署分布在新一代网络中。本发明显著优点有:1)满足了新一代网络对路由设备的需求;2)通过虚拟化技术,将网络服务提供从基础设施提供分离出来,使得网络技术的创新变得更灵活;3)通过开放可编程,用户可以根据自己的实际需求生成虚拟路由器;2)通过负载均衡机制,充分发挥了各个虚拟控制平面的性能,有利于虚拟数据平面对外提供的服务性能;3)本发明已经被实际系统使用证明是切实可行的。 
附图说明
图1是虚拟可编程路由器的结构示意图; 
图2为本发明的实施例的系统结构示意图; 
图3为本发明的实施例的结果示意图。 
具体实施方式
下面结合附图对本方面做进一步说明。 
如图1所示,在转发和控制分离架构下的路由器实现虚拟可编程的方法, 包括如下步骤: 
步骤(1)控制件管理单元接收用户创建虚拟可编程路由器的指令,根据转发和控制分离架构物理路由器的资源情况计算所需创建虚拟控制件和虚拟转发件的数量、参数以及虚拟控制件和虚拟转发件之间的对应关系; 
步骤(2)控制件管理单元通知各个控制件创建所需的虚拟控制件,同时,控制件管理单元通过转发件管理单元通知各个转发件创建所需的虚拟转发件; 
步骤(3)控制件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟控制件;转发件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟转发件; 
步骤(4)各个虚拟转发件根据对应关系通过ForCES协议向虚拟控制件请求建链,实现把多个虚拟控制件和多个虚拟转发件组成单个虚拟可编程路由器; 
虚拟转发件与虚拟控制件组成虚拟可编程路由器的过程,包括以下步骤: 
A、虚拟转发件读取配置文件,根据虚拟控制件建链参数中的ID、IP地址、SCTP端口,向所要链接的虚拟控制件发送链接请求消息,等待虚拟控制件的应答; 
B、虚拟控制件收到链接请求消息,读取配置文件核对虚拟转发件建链参数中的ID、IP地址,如果符合对应关系,则向虚拟控制件反馈同意链接消息,并与发送请求的虚拟转发件建立链接,然后查询该虚拟转发件的信息(如逻辑功能块拓扑),获取并控制虚拟控制件的当前状态; 
C、虚拟控制件继续等待其他虚拟转发件的链接请求,重复步骤B,直到没有请求,与已建链虚拟转发件组合成单个虚拟可编程路由器。 
步骤(5)控制件管理单元通过动态调整虚拟控制件和虚拟转发件的数量、参数和它们之间的对应关系实现管理维护虚拟可编程路由器; 
步骤(6)当虚拟可编程路由器需要拆除时,控制件管理单元通知该虚拟可编程路由器所对应的虚拟控制件,虚拟控制件通过ForCES协议通知虚拟转发件取消链接,控制件注销虚拟可编程路由器中的虚拟控制件,转发件注销虚拟可编程路由器中的虚拟转发件。 
所述的控制件管理单元接收用户创建虚拟可编程路由器指令,根据转发和控制分离架构物理路由器的资源情况计算所需创建虚拟控制件和虚拟转发件的数量、每个虚拟控制件和虚拟转发件的性能参数,性能参数包括CPU能力、内存大小、网络数据包转发速度、网络接口类型数量以及多个虚拟控制件控制多 个虚拟转发件建链的集合对应关系。 
所述的步骤(2)中控制件管理单元通知各个控制件创建所需的虚拟控制件,各控制件根据所指定的性能参数在本机上创建满足需求的虚拟机,在虚拟机中运行ForCES中间件,再运行各第三方的网络服务模块得到该虚拟控制件,转发件根据从转发件管理单元得到的性能参数在本机上创建满足需求的虚拟机,在虚拟机中运行ForCES中间件,再建立满足需求的逻辑功能块拓扑得到该虚拟转发件。 
逻辑功能块的拓扑结构是根据数据处理流程而定义的,用于描述虚拟控制件内部的数据通道。每个逻辑功能块动态加载到拓扑中,使得虚拟控制件在虚拟路由器运行时,根据用户的需求动态的更改虚拟路由器所提供的网络服务。 
所述的步骤(3)中控制件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟控制件;转发件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟转发件,具体如下: 
控制件管理单元和转发件管理单元把对应关系和建链参数通过配置文件的方式通知虚拟控制件和虚拟转发件,对应关系是指虚拟转发件需要和哪个虚拟控制件建链,建链参数包括虚拟控制件ID、虚拟转发件ID、虚拟控制件IP地址、虚拟转发件件IP地址和虚拟控制件SCTP端口。 
如图1所示,所述的步骤(4)中各个虚拟转发件根据对应关系通过ForCES协议向虚拟控制件请求建链,其中虚拟转发件和虚拟控制件可在单个或多个物理单元上,以单对单、单对多、多对多或多对单的形式进行建链; 
若以多对多形式建链,则多个虚拟控制件同时承担面向多个虚拟转发件的网络服务功能,多虚拟控制件不区分主从,实现网络服务的载均衡,由多个虚拟控制件和多个虚拟转发件集合组成单个虚拟可编程路由器。 
所述建链的对应关系可以是开发人员预先在配置文件中定义的,也可以是控制件管理单元根据网络服务的负载动态改变的。 
所述步骤(5)中控制件管理单元通过改变配置文件设置动态调整虚拟控制件和虚拟转发件的数量,各虚拟单位的CPU能力、内存大小、网络数据包转发速度,网络接口类型数量参数,同时改变各虚拟单位之间建链的对应关系,管理维护虚拟可编程路由器。 
所述的虚拟单位指的是单个虚拟控制件和单个或多个虚拟转发件建链的组合,各虚拟单位根据用户对虚拟可编程路由器带宽、处理器和缓存等的性能需 求,或者网络服务的负载情况动态的调整各自的参数。 
所述的控制件管理单元是一个逻辑上的模块,在ForCES协议中已有定义,可作为一个软件模块存在于控制件或转发件上,通过自己的协议进行互相信息交互,也可以仅仅是一个配置文件或是由网络件管理员手工设置。在本实施例中采用配置文件方式实现其功能,通过管理员手工编辑配置文件,在各个控制件上保存各个虚拟转发件信息的配置文件,而在转发件上保存各个虚拟控制件的配置文件。 
虚拟控制件包含ForCES中间件和各类第三方软件,ForCES中间件遵循ForCES协议,提供了与ForCES框架、协议、模型等相关的内容,为使用者提供了一套完整的开发平台,用户可以开发ForCES架构下的各种网络设备,如路由器、VPN等;各类第三方软件是研发人员根据实现不同的具体应用服务(如:路径发现服务、用户操作管理服务等)而选择相应第三方软件,如Zebra路由模块、SNMP网管模块等。 
虚拟转发件是基于ForCES中间件的软件结构,核心工作是通过对底层资源抽象,即ForCES资源注册系统,完成各种底层资源(各种类型的逻辑功能块LFB)的注册,以实现ForCES中间件对各种不同的LFB(如分类器、调度器、IPv4或IPv6转发器)进行直接管理。 
所述的控制件管理单元和转发件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系和相关的建链参数通知虚拟控制件和虚拟转发件:控制件管理单元和转发件管理单元把对应关系和相关的建链参数通过配置文件的方式通知虚拟控制件和虚拟转发件,对应关系是指虚拟转发件需要和哪个虚拟控制件建链,相关的建链参数包括虚拟控制件ID、虚拟转发件ID、虚拟控制件IP地址、虚拟转发件件IP地址和虚拟控制件SCTP端口。 
配置文件中控制件管理单元维护的参数包括各虚拟转发件的ID、IP地址,转发件管理单元维护的参数包括各虚拟控制件的ID、IP地址和SCTP端口,同时它们共同维护虚拟转发件和虚拟控制键之间的对应关系参数。 
实施例 
如图2、图3所示,本实施例中共有两个标号分别为1和2的控制件(各包含3个虚拟控制件)和三个标号分别为1、2和3的转发件(各包含3个虚拟转发件)组成一个ForCES物理路由器,其中控制件管理单元通过配置文件的形式存在于各个控制件中,而转发件管理单元通过通过把控制件中的配置文件复 制到转发件上而实现。转发件具有多个与外部网络连接的网络接口,转发件和控制件间通过以太网交换机相互连接实现相互通信。本实施例包含两个控制件,它们互相备份,并共同负担对转发件的控制。本实施例所采用的虚拟可编程机制主要体现在虚拟控制件和虚拟转发件,经过较小的修改后该模块可以运行在不同的操作系统和硬件平台上。在实施例中,转发件和控制件均使用计算机构成,虚拟转发件和虚拟控制件均使用虚拟机实现,采用Redhat Linux操作系统。 
下面对本实施例中创建虚拟可编程路由器的过程进行详细的说明: 
步骤a:在ForCES物理路由器启动之后,用户通过GUI对控制件管理单元发出创建3个虚拟可编程路由器的指令,同时指定3个虚拟可编程路由器的性能参数分别为低、中和高,则控制件管理单元计算出至少需要虚拟控制件和虚拟转发件各3个、每个虚拟控制件和转发件的CPU能力、内存大小、网络数据包转发速度、网络接口类型数量以及设定配置文件中虚拟控制件与虚拟转发件建链的集合对应关系。计算出个虚拟可编程路由器的参数以及虚拟单元之间的对应关系后,设置配置文件中参数的值,其中: 
虚拟可编程路由器1的控制面包含:虚拟控制件10和虚拟控制件20,两者间是备份关系,转发面包含虚拟转发件10和虚拟转发件21; 
虚拟可编程路由器2的控制面只有虚拟控制件11,转发面包含:虚拟转发件12、虚拟转发件30和虚拟转发件31; 
虚拟可编程路由器3的控制面包含:虚拟控制件21、虚拟控制件12和虚拟控制件22,三个虚拟控制件实现负载均衡,转发面包含:虚拟转发件11、虚拟转发件20、虚拟转发件22和虚拟转发件32。 
上述三个虚拟可编程路由器的转发面根据设定的参数通过ForCES协议和控制面进行建链,组成一台虚拟的ForCES路由器。 
步骤b:控制件管理单元通过步骤a设定的配置文件通知控制件1、2创建所需的虚拟控制件分别为3个,其中虚拟控制件11是自备份,控制件1和控制件2根据性能参数在本机上创建虚拟机,在虚拟机中运行ForCES中间件,再运行各第三方的网络服务模块得到虚拟控制件10、11、12和20、21、22,转发件1、2、3根据从转发件管理单元得到的性能参数在本机上创建虚拟机,在虚拟机中运行ForCES中间件,再建立满足需求的逻辑功能块拓扑得到虚拟转发件10、11、12、20、21、22和30、31、32。 
步骤c:控制件管理单元和转发件管理单元把步骤a设定的配置文件中的 对应关系和相关的建链参数通知给所有的虚拟控制件和虚拟转发件,以此所有的虚拟单元查找配置文件就可知道自己在哪个虚拟可编程路由器中以及所起的功能,例如在虚拟可编程路由器中,虚拟控制件10是控制件的功能,虚拟控制件20是备份的功能,虚拟转发件10和21都是转发件的功能。 
步骤d:虚拟转发件10、21根据对应关系通过ForCES协议向虚拟控制件10发送请求建链消息,同时虚拟控制件20作为虚拟控制件10的备份关系,弥补虚拟控制件10因故障而失效;虚拟转发件12、30、31根据对应关系向虚拟控制件11发送请求建链消息,同时虚拟控制件11作为自身的备份关系;虚拟转发件11、20根据对应关系向虚拟控制件21发送请求建链消息,虚拟转发件22、32根据对应关系向虚拟控制件22发送请求建链消息,同时虚拟控制件12作为虚拟控制件21、22之间的备份以及合作关系,三者之间形成负载均衡。虚拟可编程路由器中多个虚拟控制件科实现网络服务的负载均衡和高可用性,当所有虚拟控制件查询配置文件中的对应关系接受上述虚拟转发件的建链请求并完成建链后,它们就分别组成了虚拟可编程路由器1、2、3,如图3所示。 
步骤e:虚拟可编程路由器1、2、3的维护过程主要是满足对用户的需求,控制件管理单元根据虚拟控制件10、11、21和22的性能参数进行调整,比如改变虚拟可编程路由器之间虚拟转发件和虚拟控制件的数量。其策略分为静态和动态两种方式,静态方式由管理员对虚拟可编程路由器性能事先估算,然后根据各虚拟控制件的性能和个数进行分配;动态方式是在单个虚拟可编程运行过程中由虚拟控制件的服务质量模块,实时地对性能参数进行量化,一旦性能失真就采取参数重设置从而实现性能稳定。本系统中采用动态方式实现虚拟可编程路由器的维护,根据网络服务的负载情况动态调整性能参数。 
通过以上几个步骤,整个网络件开始正常工作,下面针对四类异常情况的处理流程来第一步说明本发明创建虚拟可编程路由器的机制: 
1、某个虚拟转发件加入虚拟可编程路由器 
当新的虚拟转发件需要加入某个虚拟可编程路由器,首先通过和转发件管理单元通信,从配置文件中读取与自己有对应关系的虚拟控制件的参数信息,包括虚拟控制件的ID、IP地址和SCTP端口。然后虚拟转发件通过ForCES协议向虚拟控制件发送请求建链消息。然后虚拟控制件核对配置文件中的建链接对应关系,如果包含此对应关系,则虚拟控制件向虚拟转发件发送同意建链接请求并建立链接,否则虚拟控制件回送拒绝建链消息,虚拟转发件停止请求。 
2、某个虚拟转发件退出虚拟可编程路由器 
当某个虚拟转发件退出某个虚拟可编程路由器,可能是为了维护升级,也可能是软硬件故障。虚拟转发件的退出首先通过所控制的虚拟控制件ForCES中间件发现,并告知网络管理模块,由网络管理模块模块广播负载变化,并清除备份虚拟控制件上的数据。之后虚拟控制件间相互协商进行负载均衡。 
3、某个虚拟控制件加入虚拟可编程路由器 
当新的虚拟控制件加入某个虚拟可编程路由器,有两大类可能:一种是为了对虚拟控制件进行升级维护后加入,也可以是在虚拟控制件运行出错后,排错恢复后加入。另一类是添加新的虚拟控制件实现冗余备份,并为了获得更好的系统性能。为了让虚拟控制件加入虚拟可编程路由器,首先需要配置控制件管理单元,修改配置文件中虚拟控制件与虚拟转发件之间的对应关系,发送给转发件管理单元通知各虚拟转发件,各虚拟转发件重新调整建链关系。 
4、某个虚拟控制件退出虚拟可编程路由器 
虚拟控制件退出虚拟可编程路由器,有两种可能:一种是为了对虚拟控制件进行升级维护,另一种是在虚拟控制件运行出错。对于第一种,管理员可以通过控制件管理单元修改配置文件中建链的对应关系,将此关系广播给所有的控制件和转发件。由该虚拟控制件所负责的虚拟转发件转移给备份虚拟控制件,对于虚拟转发件的转移,通过虚拟控制件删除消息触发该虚拟转发件按规定的备份恢复策略执行。对于第二种情况,虚拟控制件的出错通过控制件管理单元、其他虚拟控制件和虚拟转发件通过心跳监视发现,一旦发现某个虚拟控制件失效,则触发相应的备份恢复策略。 
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。 

Claims (1)

1. 在转发和控制分离架构下的路由器实现虚拟可编程的方法,其特征在于包括如下步骤:
步骤(1)控制件管理单元接收用户创建虚拟可编程路由器的指令,根据转发和控制分离架构物理路由器的资源情况计算所需创建虚拟控制件和虚拟转发件的数量、参数以及虚拟控制件和虚拟转发件之间的对应关系;
步骤(2)控制件管理单元通知各个控制件创建所需的虚拟控制件,同时,控制件管理单元通过转发件管理单元通知各个转发件创建所需的虚拟转发件;
步骤(3)控制件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟控制件;转发件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟转发件;
步骤(4)各个虚拟转发件根据对应关系通过ForCES协议向虚拟控制件请求建链,实现把多个虚拟控制件和多个虚拟转发件组成单个虚拟可编程路由器;
步骤(5)控制件管理单元通过动态调整虚拟控制件和虚拟转发件的数量、参数和它们之间的对应关系实现管理维护虚拟可编程路由器;
步骤(6)当虚拟可编程路由器需要拆除时,控制件管理单元通知该虚拟可编程路由器所对应的虚拟控制件,虚拟控制件通过ForCES协议通知虚拟转发件取消链接,控制件注销虚拟可编程路由器中的虚拟控制件,转发件注销虚拟可编程路由器中的虚拟转发件;
所述步骤(1)中的控制件管理单元接收用户创建虚拟可编程路由器指令,根据转发和控制分离架构物理路由器的资源情况计算所需创建虚拟控制件和虚拟转发件的数量、每个虚拟控制件和虚拟转发件的性能参数,性能参数包括CPU能力、内存大小、网络数据包转发速度、网络接口类型数量以及多个虚拟控制件控制多个虚拟转发件建链的集合对应关系;
所述的计算方式是指物理路由器根据创建虚拟可编程路由器指令中所要求的创建虚拟控制件和虚拟转发件的数量、每个虚拟控制件和虚拟转发件的性能参数,然后与物理路由器中的CPU能力、内存大小以及带宽进行匹配获得的;
所述的步骤(2)中控制件管理单元通知各个控制件创建所需的虚拟控制件,各控制件根据所指定的性能参数在本机上创建满足需求的虚拟机,在虚拟机中运行ForCES中间件,再运行各第三方的网络服务模块得到该虚拟控制件,转发件根据从转发件管理单元得到的性能参数在本机上创建满足需求的虚拟机,在虚拟机中运行ForCES中间件,再建立满足需求的逻辑功能块拓扑得到该虚拟转发件;
所述的步骤(3)中控制件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟控制件;转发件管理单元负责把各个虚拟控制件和虚拟转发件的对应关系通知虚拟转发件,具体如下:
控制件管理单元和转发件管理单元把对应关系和建链参数通过配置文件的方式通知虚拟控制件和虚拟转发件,对应关系是指虚拟转发件需要和哪个虚拟控制件建链,建链参数包括虚拟控制件ID、虚拟转发件ID、虚拟控制件IP地址、虚拟转发件件IP地址和虚拟控制件SCTP端口;
所述的步骤(4)中各个虚拟转发件根据对应关系通过ForCES协议向虚拟控制件请求建链,其中虚拟转发件和虚拟控制件可在单个或多个物理单元上,以单对单、单对多、多对多或多对单的形式进行建链;
若以多对多形式建链,则多个虚拟控制件同时承担面向多个虚拟转发件的网络服务功能,多虚拟控制件不区分主从,实现网络服务的载均衡,由多个虚拟控制件和多个虚拟转发件集合组成单个虚拟可编程路由器;
所述步骤(5)中控制件管理单元通过改变配置文件设置动态调整虚拟控制件和虚拟转发件的数量,各虚拟单位的CPU能力、内存大小、网络数据包转发速度,网络接口类型数量参数,同时改变各虚拟单位之间建链的对应关系,管理维护虚拟可编程路由器;
所述的虚拟单位指的是单个虚拟控制件和单个或多个虚拟转发件建链的组合,各虚拟单位根据用户对虚拟可编程路由器带宽、处理器和缓存等的性能需求,或者网络服务的负载情况动态的调整各自的参数。
CN201310020565.1A 2013-01-18 2013-01-18 在转发和控制分离架构下实现虚拟可编程路由器的方法 Active CN103067287B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310020565.1A CN103067287B (zh) 2013-01-18 2013-01-18 在转发和控制分离架构下实现虚拟可编程路由器的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310020565.1A CN103067287B (zh) 2013-01-18 2013-01-18 在转发和控制分离架构下实现虚拟可编程路由器的方法

Publications (2)

Publication Number Publication Date
CN103067287A true CN103067287A (zh) 2013-04-24
CN103067287B CN103067287B (zh) 2015-08-05

Family

ID=48109755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310020565.1A Active CN103067287B (zh) 2013-01-18 2013-01-18 在转发和控制分离架构下实现虚拟可编程路由器的方法

Country Status (1)

Country Link
CN (1) CN103067287B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104796466A (zh) * 2015-04-09 2015-07-22 南京华讯方舟通信设备有限公司 一种云计算平台网络调度方法及系统
CN104811361A (zh) * 2014-01-24 2015-07-29 杭州华三通信技术有限公司 一种生成虚拟化网络设备的方法和装置
CN105357142A (zh) * 2015-12-02 2016-02-24 浙江工商大学 一种基于ForCES的网络负载均衡器系统设计方法
CN106506311A (zh) * 2016-11-02 2017-03-15 合肥微梦软件技术有限公司 一种ForCES到ForCES的网络虚拟化方法
CN106549797A (zh) * 2016-09-30 2017-03-29 广东美的制冷设备有限公司 配网方法、配网装置和路由器
CN106953848A (zh) * 2017-02-28 2017-07-14 浙江工商大学 一种基于ForCES的软件定义网络实现方法
CN107171953A (zh) * 2017-05-22 2017-09-15 浙江工商大学 一种虚拟路由器实现方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1669280A (zh) * 2002-06-26 2005-09-14 诺基亚公司 Ip路由器的可编程调度
US20110283013A1 (en) * 2010-05-14 2011-11-17 Grosser Donald B Methods, systems, and computer readable media for stateless load balancing of network traffic flows

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1669280A (zh) * 2002-06-26 2005-09-14 诺基亚公司 Ip路由器的可编程调度
US20110283013A1 (en) * 2010-05-14 2011-11-17 Grosser Donald B Methods, systems, and computer readable media for stateless load balancing of network traffic flows

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811361A (zh) * 2014-01-24 2015-07-29 杭州华三通信技术有限公司 一种生成虚拟化网络设备的方法和装置
CN104811361B (zh) * 2014-01-24 2018-06-15 新华三技术有限公司 一种生成虚拟化网络设备的方法和装置
CN104796466A (zh) * 2015-04-09 2015-07-22 南京华讯方舟通信设备有限公司 一种云计算平台网络调度方法及系统
CN104796466B (zh) * 2015-04-09 2018-05-25 南京华讯方舟通信设备有限公司 一种云计算平台网络调度方法及系统
CN105357142A (zh) * 2015-12-02 2016-02-24 浙江工商大学 一种基于ForCES的网络负载均衡器系统设计方法
CN105357142B (zh) * 2015-12-02 2018-06-15 浙江工商大学 一种基于ForCES的网络负载均衡器系统设计方法
CN106549797A (zh) * 2016-09-30 2017-03-29 广东美的制冷设备有限公司 配网方法、配网装置和路由器
CN106506311A (zh) * 2016-11-02 2017-03-15 合肥微梦软件技术有限公司 一种ForCES到ForCES的网络虚拟化方法
CN106953848A (zh) * 2017-02-28 2017-07-14 浙江工商大学 一种基于ForCES的软件定义网络实现方法
CN106953848B (zh) * 2017-02-28 2020-04-28 浙江工商大学 一种基于ForCES的软件定义网络实现方法
CN107171953A (zh) * 2017-05-22 2017-09-15 浙江工商大学 一种虚拟路由器实现方法
CN107171953B (zh) * 2017-05-22 2020-04-28 浙江工商大学 一种虚拟路由器实现方法

Also Published As

Publication number Publication date
CN103067287B (zh) 2015-08-05

Similar Documents

Publication Publication Date Title
Balasubramanian et al. RIC: A RAN intelligent controller platform for AI-enabled cellular networks
CN103067287B (zh) 在转发和控制分离架构下实现虚拟可编程路由器的方法
Taleb et al. EASE: EPC as a service to ease mobile core network deployment over cloud
US9338097B2 (en) Method and system for load balancing at a data network
CN103763367A (zh) 一种云计算数据中心分布式虚拟网络设计方法及系统
Hoang et al. On software-defined networking and the design of SDN controllers
KR20180039465A (ko) 소프트웨어 정의 네트워크 기반 서비스 기능 체인의 서비스 기능 경로 설정 장치 및 방법
CN105052113A (zh) 针对网络设备的共同代理框架
CN105556929A (zh) 在云计算系统中运行应用的网络元件和方法
Velasco et al. Cross-stratum orchestration and flexgrid optical networks for data center federations
WO2021098727A1 (zh) 网络部署的方法及系统
Chen et al. An sdn-based fabric for flexible data-center networks
Huang et al. Realizing highly-available, scalable, and protocol-independent vSDN slicing with a distributed network hypervisor system
JP6887886B2 (ja) 多様な構成ユニットを支援可能なソフトウェア定義型ネットワークコントローラ
JP5904285B2 (ja) 通信システム、仮想ネットワーク管理装置、通信ノード、通信方法及びプログラム
Đerić et al. Coupling VNF orchestration and SDN virtual network reconfiguration
KR101478944B1 (ko) 복수의 컨트롤러를 구비한 소프트웨어 정의 네트워크에서 스위치 접속 변경 방법
Casellas et al. Orchestration of IT/cloud and networks: From inter-DC interconnection to SDN/NFV 5G services
CN104320322A (zh) 一种报文控制方法和设备
JP2013179494A (ja) 仮想化ネットワークインフラ制御システム及び方法
Elzain et al. Decentralizing software-defined wireless mesh networking (D-SDWMN) control plane
JP5063726B2 (ja) 仮想ノード装置のコンフィグ制御方法
Zhang et al. Design and implementation of the routing function in the nox controller for software-defined networks
CN116458204A (zh) 传输网络切片控制设备及用于基于时间敏感网络的传输网络的控制面实体
Wang et al. Combining neutron and OpenDaylight for management of networking

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant