虚拟网络通信的方法及装置制造方法及图纸

技术编号:12480252 阅读:55 留言:0更新日期:2015-12-10 17:01
本申请公开了虚拟网络通信链路建立的方法和装置。所述方法的一具体实施方式包括:确定未检测到流表;以及根据数据包信息确定数据包的发送。其具体地包括:根据数据包的目的IP与交换机是否位于同一网络中,将数据包信息发送到控制器或者提供用于将数据包发往网关的流表;根据数据包的目的IP对应的虚拟机是否存在,记录未匹配到流表并发送到控制器的数据包的个数,或者提供用于转发数据包的流表;当所记录的数据包的个数达到预定阈值时,添加一条具有预定的时效的、禁止当前虚拟机发送数据的流表。该实施方式实现了流表的自动修复,保证了虚拟网络的通信链路的SLA,提高了通信链路的容灾能力。

【技术实现步骤摘要】

本申请涉及通信领域,具体涉及通信链路建立

技术介绍
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目,由存储、镜像、网络等组件组成,而Neutron是OpenStack中管理虚拟网络的核心组件。目前Neutron的实现中,虚拟网络通信链路的建立是通过Neutron的组件之间的相互配合、以及在创建之后就预先配置好来加以实现的。创建请求发送到nova-api后,首先根据资源需求调度到一个计算节点上,然后计算节点上的nova-compute根据所接收的请求创建虚拟机实例和虚拟网络设备。在虚拟网络设备创建之后,Neutron可自动检测到所创建的虚拟网络设备,然后根据该虚拟网络设备的信息配置dhcp和安全组等信息,从而建立虚拟网络链路。根据目前的Neutron实现方式,在一个创建虚拟机的完成流程中,Neutron Server需要通知各个Agent网络状态的改变。然而,目前的Neutron实现方式严重依赖消息队列、对数据库压力比较大、并且上述通知没有重试机制,因而在消息丢失、网络瞬断等情况下无法自动地修复虚拟网络,从而出现虚拟机无法获取IP或访问外部网络的问题。因此,为了保证SLA(Service-Level Agreement,服务级别协议),有必要对具有自动修复功能的虚拟网络通信进行进一步研究。
技术实现思路
为了克服上述现有技术的不足,本专利技术提供了一种虚拟网络通信的方法及装置。本申请的一个方面提供一种虚拟网络通信的方法,所述方法包括:确定未检测到流表;以及根据数据包信息确定数据包的发送。本申请第一方面的一种示例性的实施方式中,数据包信息是数据包的目的IP。本申请第一方面的一种示例性的实施方式中,当数据包的目的IP与交换机位于同一网络中时,将数据包信息发送到控制器。本申请第一方面的一种示例性的实施方式中,当数据包的目的IP与交换机不位于同一网络中时,提供用于将数据包发往网关的流表。本申请第一方面的一种示例性的实施方式中,所述方法包括通过确定数据包的目的IP是否位于交换机的子网络的无类别域间路由中,确定数据包的目的IP与交换机是否位于同一网络中。本申请第一方面的一种示例性的实施方式中,当确定数据包的目的IP对应的虚拟机不存在时,记录未匹配到流表并发送到控制器的数据包的个数。本申请第一方面的一种示例性的实施方式中,当确定数据包的目的IP对应的虚拟机存在时,提供用于转发数据包的流表。本申请第一方面的一种示例性的实施方式中,当所记录的数据包的个数达到预定阈值时,添加一条禁止当前虚拟机发送数据的流表。本申请第一方面的一种示例性的实施方式中,预定阈值为每秒15次。本申请第一方面的一种示例性的实施方式中,禁止交换机发送数据的流表具有预定的时效。本申请的第二方面提供一种用于虚拟网络通信的交换机,所述交换机包括:接收模块,用于判断是否可从交换机的本地流表中检测到所接收的数据包的流表;以及发送模块,用于根据基于数据包信息所生成的流表发送数据包。本申请第二方面的一种示例性的实施方式中,接收模块还用于当确定未检测到流表时,判断数据包的目的IP与交换机是否位于同一网络。本申请第二方面的一种示例性的实施方式中,发送模块还用于根据控制器所下发的流表暂停与虚拟机之间的数据转发。本申请的第三方面提供一种用于虚拟网络的控制器,所述控制器包括:接收模块,用于接收交换机发来的未检测到流表的数据包信息;生成模块,用于根据控制器的转发规则或交换机的判断结果生成对应的流表;以及发送模块,用于将生成模块所生成的流表下发到交换机。本申请第三方面的一种示例性的实施方式中,控制器还包括判断模块,该判断模块用于判断与数据包的目的IP对应的虚拟机是否存在以及进行阈值判断和超时判断,从而确定转发规则。本申请第三方面的一种示例性的实施方式中,控制器还包括记录模块,该记录模块用于当判断模块确定数据包的目的IP对应的虚拟机不存在时,记录未检测到流表并发送到控制器的数据包的个数。本申请第三方面的一种示例性的实施方式中,生成模块还用于当判断模块确定所记录的未匹配到流表并发送到控制器的数据包的个数超过阈值时,生成禁止虚拟机转发数据的流表。本申请第三方面的一种示例性的实施方式中,生成模块生成的禁止虚拟机转发数据的流表具有预定的时效。与现有技术相比,本专利技术的有益效果在于:可以大大降低对消息队列的依赖,优化流表的结构,更重要的是可以自动修复流表,降低虚拟网络通信链路的修复时间,保证虚拟网络的通信链路的SLA,提高通信链路的容灾能力。此外,本专利技术可应用于各种基于OpenFlow实现虚拟机网络转发的虚拟网络实现中。【附图说明】通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本专利技术实施例中提供的一种通信系统的示意性架构图;图2为建立虚拟网络通信链路的方法的示意性流程图;图3为在未匹配到流表的情况中虚拟网络通信方法的实施例的流程图;图4示出了本专利技术在发送数据时发送端的流表匹配失败的实施例中的报文转发情况;图5示出了本专利技术在接收数据时发送端的流表匹配失败的实施例中的报文转发情况;图6为本专利技术实施例中所提供的交换机的逻辑结构图;以及图7为本专利技术实施例中所提供的控制器的逻辑结构图。【具体实施方式】下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。此外,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。图1为本专利技术实施例中提供的一种通信系统的示意性架构图,但是应理解的是,本专利技术实施例并不局限于图1所示的架构。在本实施例中,用于软件定义网络(Software Defined Network,SDN)的通信系统100包括:控制器102,例如控制服务器(Controller);交换机104、106,例如OpenFlow交换机;以及虚拟机(Virtual Machine,VM) 108、110、112和114。控制器102可以通过流表116与交换机104、106进行通信,从而构成用于管理路由的控制层118。交换机104与虚拟机108、110进行通信,同时交换机106与虚拟机112、114进行通信,从而构成用于转发数据包120的转发层122。此外,交换机104和交换机106之间可以转发数据。虽然本实施例给出特定数量的交换机和虚拟机,但是应理解的是,控制器可以与一个或一个以上的其他数量的交换机当前第1页1 2 3 本文档来自技高网...

【技术保护点】
一种虚拟网络通信的方法,包括:确定未检测到流表;以及根据数据包信息确定数据包的发送。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨毅王营彭涛
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1