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

文档序号:9420251阅读:271来源:国知局
虚拟网络通信的方法及装置的制造方法
【技术领域】
[0001]本申请涉及通信领域,具体涉及通信链路建立技术领域。
【背景技术】
[0002]OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目,由存储、镜像、网络等组件组成,而Neutron是OpenStack中管理虚拟网络的核心组件。
[0003]目前Neutron的实现中,虚拟网络通信链路的建立是通过Neutron的组件之间的相互配合、以及在创建之后就预先配置好来加以实现的。创建请求发送到nova-api后,首先根据资源需求调度到一个计算节点上,然后计算节点上的nova-compute根据所接收的请求创建虚拟机实例和虚拟网络设备。在虚拟网络设备创建之后,Neutron可自动检测到所创建的虚拟网络设备,然后根据该虚拟网络设备的信息配置dhcp和安全组等信息,从而建立虚拟网络链路。
[0004]根据目前的Neutron实现方式,在一个创建虚拟机的完成流程中,Neutron Server需要通知各个Agent网络状态的改变。然而,目前的Neutron实现方式严重依赖消息队列、对数据库压力比较大、并且上述通知没有重试机制,因而在消息丢失、网络瞬断等情况下无法自动地修复虚拟网络,从而出现虚拟机无法获取IP或访问外部网络的问题。
[0005]因此,为了保证SLA(Service-Level Agreement,服务级别协议),有必要对具有自动修复功能的虚拟网络通信进行进一步研究。

【发明内容】

[0006]为了克服上述现有技术的不足,本发明提供了一种虚拟网络通信的方法及装置。
[0007]本申请的一个方面提供一种虚拟网络通信的方法,所述方法包括:确定未检测到流表;以及根据数据包信息确定数据包的发送。
[0008]本申请第一方面的一种示例性的实施方式中,数据包信息是数据包的目的IP。
[0009]本申请第一方面的一种示例性的实施方式中,当数据包的目的IP与交换机位于同一网络中时,将数据包信息发送到控制器。
[0010]本申请第一方面的一种示例性的实施方式中,当数据包的目的IP与交换机不位于同一网络中时,提供用于将数据包发往网关的流表。
[0011]本申请第一方面的一种示例性的实施方式中,所述方法包括通过确定数据包的目的IP是否位于交换机的子网络的无类别域间路由中,确定数据包的目的IP与交换机是否位于同一网络中。
[0012]本申请第一方面的一种示例性的实施方式中,当确定数据包的目的IP对应的虚拟机不存在时,记录未匹配到流表并发送到控制器的数据包的个数。
[0013]本申请第一方面的一种示例性的实施方式中,当确定数据包的目的IP对应的虚拟机存在时,提供用于转发数据包的流表。
[0014]本申请第一方面的一种示例性的实施方式中,当所记录的数据包的个数达到预定阈值时,添加一条禁止当前虚拟机发送数据的流表。
[0015]本申请第一方面的一种示例性的实施方式中,预定阈值为每秒15次。
[0016]本申请第一方面的一种示例性的实施方式中,禁止交换机发送数据的流表具有预定的时效。
[0017]本申请的第二方面提供一种用于虚拟网络通信的交换机,所述交换机包括:接收模块,用于判断是否可从交换机的本地流表中检测到所接收的数据包的流表;以及发送模块,用于根据基于数据包信息所生成的流表发送数据包。
[0018]本申请第二方面的一种示例性的实施方式中,接收模块还用于当确定未检测到流表时,判断数据包的目的IP与交换机是否位于同一网络。
[0019]本申请第二方面的一种示例性的实施方式中,发送模块还用于根据控制器所下发的流表暂停与虚拟机之间的数据转发。
[0020]本申请的第三方面提供一种用于虚拟网络的控制器,所述控制器包括:接收模块,用于接收交换机发来的未检测到流表的数据包信息;生成模块,用于根据控制器的转发规则或交换机的判断结果生成对应的流表;以及发送模块,用于将生成模块所生成的流表下发到交换机。
[0021]本申请第三方面的一种示例性的实施方式中,控制器还包括判断模块,该判断模块用于判断与数据包的目的IP对应的虚拟机是否存在以及进行阈值判断和超时判断,从而确定转发规则。
[0022]本申请第三方面的一种示例性的实施方式中,控制器还包括记录模块,该记录模块用于当判断模块确定数据包的目的IP对应的虚拟机不存在时,记录未检测到流表并发送到控制器的数据包的个数。
[0023]本申请第三方面的一种示例性的实施方式中,生成模块还用于当判断模块确定所记录的未匹配到流表并发送到控制器的数据包的个数超过阈值时,生成禁止虚拟机转发数据的流表。
[0024]本申请第三方面的一种示例性的实施方式中,生成模块生成的禁止虚拟机转发数据的流表具有预定的时效。
[0025]与现有技术相比,本发明的有益效果在于:可以大大降低对消息队列的依赖,优化流表的结构,更重要的是可以自动修复流表,降低虚拟网络通信链路的修复时间,保证虚拟网络的通信链路的SLA,提高通信链路的容灾能力。此外,本发明可应用于各种基于OpenFlow实现虚拟机网络转发的虚拟网络实现中。
【附图说明】
[0026]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0027]图1为本发明实施例中提供的一种通信系统的示意性架构图;
[0028]图2为建立虚拟网络通信链路的方法的示意性流程图;
[0029]图3为在未匹配到流表的情况中虚拟网络通信方法的实施例的流程图;
[0030]图4示出了本发明在发送数据时发送端的流表匹配失败的实施例中的报文转发情况;
[0031]图5示出了本发明在接收数据时发送端的流表匹配失败的实施例中的报文转发情况;
[0032]图6为本发明实施例中所提供的交换机的逻辑结构图;以及
[0033]图7为本发明实施例中所提供的控制器的逻辑结构图。
【具体实施方式】
[0034]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
[0035]图1为本发明实施例中提供的一种通信系统的示意性架构图,但是应理解的是,本发明实施例并不局限于图1所示的架构。
[0036]在本实施例中,用于软件定义网络(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之间可以转发数据。
[0037]虽然本实施例给出特定数量的交换机和虚拟机,但是应理解的是,控制器可以与一个或一个以上的其他数量的交换机
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1