域名解析的方法、虚拟交换机和分布式DNS系统与流程

文档序号:18000893发布日期:2019-06-25 22:50阅读:557来源:国知局
域名解析的方法、虚拟交换机和分布式DNS系统与流程

本申请涉及网络通信技术领域,并且更具体地,涉及一种域名解析的方法、虚拟交换机和分布式dns系统。



背景技术:

互联网中的计算机是通过互联网协议(internetprotocol,ip)地址进行计算机之间的通信。随着数据中心的规模越来越大,互联网中的计算机越来越多,使用域名(domainname)来代替ip地址作为计算机之间服务访问的入口已经成为主流的访问方式。域名解析服务器(domainnameserver,dns)是为了方便记忆而专门建立的一套地址转换系统,是域名和与之相对应的ip地址之间进行的转换的一种服务器,可以将域名重新转换为ip地址以解析消息的域名。

传统的域名解析方案中,虚拟化的dns服务通常集中部署在独立的物理主机上。主机上的虚拟机(virtualmachine,vm)需要通过该主机上的虚拟交换机以及物理交换机将dns请求报文发送至dns所在主机,并经过dns所在主机中的虚拟路由器、虚拟交换机将dns请求报文发送至dns服务所在的vm进行域名解析。

上述方案中由于dns与发送dns请求报文的vm之间的交互报文需要通过两个虚拟交换机和至少一个物理交换机。一方面,其路径较长,任意一点的故障都会导致dns的服务不可用,从而导致vm无法进行域名解析。另一方面,由于dns集中部署在一个主机上,所有vm的dns请求报文均发送至dns所在的主机。不仅会造成多个vm进行域名解析的高时延,而且如果dns所在的主机故障或者不可用,则会导致多个vm无法进行域名解析。

因此,如何可以提高域名解析的效率,降低域名解析的时延成为业界亟需要解决的问题。



技术实现要素:

本申请提供一种域名解析的方法、虚拟交换机和分布式dns系统,可以根据流表控制dns协议走向,使得虚拟机可以在本主机上实现域名解析服务。

第一方面,提供了一种域名解析的方法,该方法应用于第一虚拟交换机,第一虚拟交换机的第一虚拟端口与第一虚拟机连接,第一虚拟机记录有第一域名与第一ip地址之间的第一对应关系,第一虚拟交换机的第二虚拟端口与第二虚拟机连接,该方法包括:

第一虚拟交换机从该第二虚拟端口接收该第二虚拟机发送的携带有该第一域名的第一dns请求报文。

该第一虚拟交换机根据第一流表项将该第一dns请求报文从该第二虚拟端口转发至该第一虚拟端口,该第一流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到的类型为dns请求报文的报文转发至该第一虚拟端口。

该第一虚拟交换机从该第一虚拟端口获取该第一虚拟机发送的第一dns应答报文,将该第一dns应答报文发送至该第二虚拟端口,该第一dns应答报文携带该第一域名的第一ip地址。

上述技术方案中,各个主机上的vm均可以为其上运行的vm提供域名解析服务,多个主机之间可以并行运行,从而可以提高域名解析的效率,降低域名解析的时延。

在第一方面的第一种可能的实现方式中,该第一虚拟交换机根据第二流表项将该第一dns应答报文发送至该第二虚拟端口,该第二流表项用于指示该第一虚拟交换机将从该第一虚拟端口接收到的类型为dns应答报文的报文转发至该第二虚拟端口。

根据第一方面或第一方面的第一种可能的实现方式中,该方法还包括:

第一虚拟交换机从第二虚拟端口接收第二虚拟机发送的携带有第二域名的第二dns请求报文,第一虚拟交换机还记录有第三流表项和第六流表项,第三流表项用于指示第一虚拟交换机将从第二虚拟端口接收到的类型为dns请求报文的报文发送至第五虚拟端口,第六流表项用于指示第一虚拟交换机将从第五虚拟端口接收到的类型为dns应答报文的报文转发至第二虚拟端口。

该第一虚拟交换机将该第一流表项更新为该第三流表项。

该第一虚拟交换机根据该第三流表项将该第二dns请求报文发送至该第五虚拟端口,该第五虚拟端口与第二报文传输模块连接,该第二报文传输模块用于将第二dns请求报文封装到第一覆盖overlay报文,并将第一overlay报文从第五虚拟端口发送至第一报文传输模块。

上述技术方案中,在主机上的vm不能为该主机上运行的vm提供域名解析的情况下,本申请还可以通过其他主机上的vm为本主机上的vm提供域名解析服务,可以提高域名解析的效率。

在根据第一方面或第一方面的第一种可能的第一种实现方式中,该方法还包括:

该第一虚拟交换机从该第五虚拟端口接收该第二报文传输模块发送的第二overlay报文,该第二overlay报文中封装有携带该第二ip地址的第二dns应答报文,第二dns应答报文为第三虚拟机通过第三虚拟端口发送至第二报文传输模块,第三虚拟机记录有第二域名与第二ip地址之间的第二对应关系。

第一虚拟交换机从第二overlay报文解封装出第二dns应答报文,将第二dns应答报文发送至第五虚拟端口。

第一虚拟交换机根据第六流表项将第二dns应答报文从第五虚拟端口发送至第二虚拟端口。

在根据第一方面至在根据第一方面或第一方面的第一种可能的第一种实现方式中,在该第一虚拟交换机从该第二虚拟端口接收该第一dns请求报文之前,该方法还包括:

该第一虚拟交换机从该第二虚拟端口接收携带有该第一虚拟机的ip地址的地址解析arp请求报文,该arp请求报文用于请求该第一虚拟机的mac地址。

该第一虚拟交换机根据第七流表项将该arp请求报文从该第二虚拟端口转发至该第一虚拟端口,其中,该第七流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到类型为arp请求报文的报文发送至该第一虚拟端口。

该第一虚拟交换机从第一虚拟端口接收该第一虚拟机发送的arp应答报文,该arp应答报文携带有该第一虚拟机的mac地址。

该第一虚拟交换机根据第八流表项将从该第一虚拟端口接收到的该arp应答报文发送至该第二虚拟端口,其中,该第八流表项用于指示该第一虚拟交换机将从该第一虚拟端口接收到的类型为arp应答报文的报文发送至该第二虚拟端口。

第二方面,本申请提供一种第一虚拟交换机,该第一虚拟交换机的第一虚拟端口与第一虚拟机连接,该第一虚拟机记录有第一域名与第一ip地址之间的第一对应关系,该第一虚拟交换机的第二虚拟端口与第二虚拟机连接,该第一虚拟交换机包括:

接收模块,用于从该第二虚拟端口接收该第二虚拟机发送的携带有该第一域名的第一dns请求报文。

发送模块,用于根据第一流表项将该第一dns请求报文从该第二虚拟端口转发至该第一虚拟端口,该第一流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到的类型为dns请求报文的报文转发至该第一虚拟端口。

该接收模块,用于从该第一虚拟端口获取该第一虚拟机发送的第一dns应答报文,将该第一dns应答报文发送至该第二虚拟端口,该第一dns应答报文携带该第一域名的第一ip地址。

在第二方面的第一种可能的实现方式中,该发送模块用于根据第二流表项将该第一dns应答报文发送至该第二虚拟端口,该第二流表项用于指示该第一虚拟交换机将从该第一虚拟端口接收到的类型为dns应答报文的报文转发至该第二虚拟端口。

根据第二方面或第二方面的第一种可能的实现方式中,该第一虚拟交换机还包括更新模块,封装模块。

该接收模块,用于从第二虚拟端口接收第二虚拟机发送的携带有第二域名的第二dns请求报文,第一虚拟交换机还记录有第三流表项和第六流表项,第三流表项用于指示第一虚拟交换机将从第二虚拟端口接收到的类型为dns请求报文的报文发送至第五虚拟端口,第六流表项用于指示第一虚拟交换机将从第五虚拟端口接收到的类型为dns应答报文的报文转发至第二虚拟端口。

该更新模块,用于将该第一流表项更新为该第三流表项,该第三流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到的类型为dns请求报文的报文发送至该第五虚拟端口。

该发送模块,用于根据该第三流表项将该第二dns请求报文发送至该第五虚拟端口,该第五虚拟端口与第二报文传输模块连接,该第二报文传输模块用于将从该第五虚拟端口接收到的报文发送至第一报文传输模块。

在根据第二方面或第二方面的第一种可能的第一种实现方式中,第一虚拟交换机还包括解封装模块。

该接收模块用于从该第五虚拟端口接收该第二报文传输模块发送的第二overlay报文,第二overlay报文中封装有携带第二ip地址的第二dns应答报文,第二dns应答报文为第三虚拟机通过第三虚拟端口发送至第二报文传输模块,第三虚拟机记录有第二域名与第二ip地址之间的第二对应关系。

解封装模块用于从第二overlay报文解封装出第二dns应答报文。

发送模块用于将第二dns应答报文发送至第五虚拟端口。

发送模块用于根据第六流表项将该第二dns应答报文发送至该第二虚拟端口。

在根据第二方面至在根据第二方面或第一方面的第一种可能的第一种实现方式中,该接收模块,用于从该第二虚拟端口接收携带有该第一虚拟机的ip地址的地址解析arp请求报文,该arp请求报文用于请求该第一虚拟机的mac地址。

该发送模块,用于根据第七流表项将该arp请求报文从该第二虚拟端口转发至该第一虚拟端口,其中,该第七流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到类型为arp请求报文的报文发送至该第一虚拟端口。

该接收模块,用于从第一虚拟端口接收该第一虚拟机发送的arp应答报文,该arp应答报文携带有该第一虚拟机的mac地址。

该发送模块,用于根据第八流表项将从该第一虚拟端口接收到的该arp应答报文发送至该第二虚拟端口,其中,该第八流表项用于指示该第一虚拟交换机将从该第一虚拟端口接收到的类型为arp应答报文的报文发送至该第二虚拟端口。

第三方面,提供了一种第一虚拟交换机,其特征在于,包括处理器、存储器和通信接口,该存储器中用于存储计算机执行指令,该第一虚拟交换机运行时,该处理器运行该存储器中的计算机执行指令以执行如第一方面或第一方面任一种可能实现方式中该方法的操作步骤。

第四方面,提供了一种分布式域名解析服务器dns系统,包括:第一主机。

其中,第一主机,包括:第一虚拟机、第二虚拟机、第一虚拟交换机。

该第一虚拟机与第一虚拟交换机的第一虚拟端口连接,该第一虚拟机记录有第一域名与第一ip地址之间的第一对应关系。

该第二虚拟机与该第一虚拟交换机的第二虚拟端口连接,向该第二虚拟端口发送携带有该第一域名的第一dns请求报文。

该第一虚拟交换机用于根据第一流表项将该第一dns请求报文从该第二虚拟端口转发至该第一虚拟端口,该第一流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到的类型为dns请求报文的报文转发至该第一虚拟端口。

该第一虚拟机用于从该第一虚拟端口获取该第一dns请求报文,根据该第一dns请求报文携带的该第一域名从该第一对应关系获取该第一ip地址,发送携带该第一ip地址的第一dns应答报文至该第一虚拟端口。

该第一虚拟交换机从该第一虚拟端口获取该第一dns应答报文,将该第一dns应答报文发送至该第二虚拟端口。

在第三方面的第一种可能的实现方式中,该第一虚拟交换机,用于从该第一虚拟端口获取该第一dns应答报文,根据第二流表项将该第一dns应答报文发送至该第二虚拟端口,该第二流表项用于指示该第一虚拟交换机将从该第一虚拟端口接收到的类型为dns应答报文的报文转发至该第二虚拟端口。

根据第三方面或第三方面的第一种可能的实现方式中,该第一虚拟机记录有第二域名与第二ip地址之间的第二对应关系,该系统还包括:第二主机。

其中,第二主机包括:第三虚拟机、第二虚拟交换机、第一报文传输模块。

该第三虚拟机记录有该第二对应关系。

该第二虚拟交换机设置有第三虚拟端口,该第三虚拟机与该第三虚拟端口连接。

该第一报文传输模块与该第二虚拟交换机的第四虚拟端口连接。

该第一主机还包括:第二报文传输模块、控制平台。

第二报文传输模块,与第一虚拟交换机的第五虚拟端口连接。

控制平台,用于检测第一虚拟机发生故障,并发送第三流表项和第六流表项至第一虚拟交换机,发送第四流表项和第五流表项至第二虚拟交换机。

其中,第三流表项用于指示第一虚拟交换机将从第二虚拟端口接收到的类型为dns请求报文的报文发送至第五虚拟端口,第二报文传输模块用于将从第五虚拟端口接收到的报文发送至第一报文传输模块,第四流表项用于指示第二虚拟交换机将从第四虚拟端口接收到的类型为dns请求报文的报文发送至第三虚拟端口,第五流表项用于指示第二虚拟交换机将从第三虚拟端口接收到的类型为dns应答报文的报文转发至第四虚拟端口,第六流表项用于指示第一虚拟交换机将从第五虚拟端口接收到的类型为dns应答报文的报文转发至第二虚拟端口。

在根据第三方面或第三方面的第一种可能的第一种实现方式中,该第一虚拟交换机,用于将该第一流表项更新为该第三流表项,从该第二虚拟端口接收该第二虚拟机发送的携带有该第二域名的第二dns请求报文,根据该第三流表项将该第二dns请求报文发送至该第五虚拟端口。

该第二报文传输模块,用于从该第五虚拟端口获取该第二dns请求报文,将该第二dns请求报文封装到第一覆盖overlay报文,并发送第一overlay报文至该第一报文传输模块。

该第一报文传输模块,用于接收第一overlay报文,从第一overlay报文解封装第二dns请求报文,将该第二dns请求报文发送至该第四虚拟端口。

该第二虚拟交换机,用于根据该第四流表项将该第二dns请求报文发送至该第三虚拟端口。

该第三虚拟机,用于从该第三虚拟端口获取该第二dns请求报文,根据该第二dns请求报文携带的该第二域名从该第二对应关系获取该第二ip地址,产生携带该第二ip地址的第二dns应答报文。

在根据第三方面至在根据第三方面或第一方面的第一种可能的第一种实现方式中,该第三虚拟机,用于将该第二dns应答报文发送至该第三虚拟端口。

该第二虚拟交换机,用于根据第五流表项将该第二dns应答报文发送至该第四虚拟端口。

该第一报文传输模块,用于从该第四虚拟端口获取该第二dns应答报文,并将第二dns应答报文封装至第二overlay报文,并发送第二overlay报文至第二报文传输模块。

该第二报文传输模块,用于从第二overlay报文解封装出该第二dns应答报文,将该第二dns应答报文发送至该第五虚拟端口。

该第一虚拟交换机,用于从该第五虚拟端口接收该第二dns应答报文,根据第六流表项将该第二dns应答报文发送至该第二虚拟端口,该第六流表项用于指示该第一虚拟交换机将从该第五虚拟端口接收到的类型为dns应答报文的报文转发至该第二虚拟端口。

该第二虚拟机,用于从该第二虚拟端口接收该第二dns应答报文,并从该第二dns应答报文获取该第二ip地址。

在根据第三方面至在根据第三方面或第一方面的第一种可能的第一种实现方式中,该第二虚拟机在向该第二虚拟端口发送携带有该第一域名的第一dns请求报文之前,还用于发送携带有该第一虚拟机的ip地址的地址解析arp请求报文至该第二虚拟端口,该arp请求报文用于请求该第一虚拟机的mac地址。

该第一虚拟交换机,用于根据第七流表项将该arp请求报文从该第二虚拟端口转发至该第一虚拟端口,其中,该第七流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到类型为arp请求报文的报文发送至该第一虚拟端口。

该第一虚拟机,用于从该第一虚拟端口获取该apr请求报文,根据该arp请求报文产生携带有该第一虚拟机的mac地址的arp应答报文,并发送该arp应答报文至该第一虚拟端口。

该第一虚拟交换机,用于根据第八流表项将从该第一虚拟端口接收到的该arp应答报文发送至该第二虚拟端口,其中,该第八流表项用于指示该第一虚拟交换机将从该第一虚拟端口接收到的类型为arp应答报文的报文发送至该第二虚拟端口。

该第二虚拟机,用于从该第二虚拟端口接收该arp应答报文,获取该arp应答报文携带的该第一虚拟机的mac地址,根据该第一虚拟机的mac地址构造该第一dns请求报文。

第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面该的方法。

第六方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面该的方法。

本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。

附图说明

图1是本申请实施例的分布式域名解析服务器dns系统100的结构示意图。

图2是本申请实施例提供的一种域名解析方法的示意性流程图。

图3是本申请实施例提供的一种vm111上运行的dns服务故障情况下的域名解析方法的示意性流程图。

图4是本申请实施例提供的一种dns系统100的报文传输路径的示意图。

图5是本申请实施例提供的一种第一虚拟交换机500的结构性示意性图。

图6是本申请实施例提供的一种第一虚拟交换机600的结构性示意性图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

互联网中的计算机是通过互联网协议(internetprotocol,ip)地址进行计算机之间的通信。随着数据中心的规模越来越大,互联网中的计算机越来越多,使用域名(domainname)来代替ip地址作为计算机之间服务访问的入口已经成为主流的访问方式。但是,通过域名并不能直接找到要访问的主机,要访问一台互联网上的服务器,最终还需要通过ip地址来实现。域名解析服务器dns是为了方便记忆而专门建立的一套地址转换系统,可以将域名重新转换为ip地址。一个域名可以对应一个ip地址,一个ip地址可以对应多个域名。

dns是域名和与之相对应的ip地址之间进行的转换的一种服务器。dns中保存了域名和与其相对应的ip地址的映射关系,以解析消息的域名。

随着虚拟化,云计算技术的高速发展,物理的dns相应的也实现了虚拟化和自动化部署。下面结合图1,对适用于本申请实施例的数据中心的系统架构进行详细描述。

图1是本申请实施例的分布式域名解析服务器dns系统100的结构示意图。系统100中可以包括主机110、主机120、物理交换机130、控制平台140。

主机110和主机120与物理交换机130连接,从而实现与物理网络的连接。

需要说明的是,分布式域名解析服务器dns系统100中可以包括至少一个主机,为了便于描述,图1中以主机110以及主机120为例进行说明。

参见图1,主机110和主机120可以为其上运行的虚拟机提供域名解析服务。例如,主机110上运行有虚拟机vm111、vm112,其中,vm111上运行有dns服务,vm111可以为主机110中部署的vm111以及vm112提供域名解析服务。又如,主机120上运行有vm121、vm122,其中,vm121上运行有dns服务,vm121可以为主机110中部署的vm121以及vm122提供域名解析服务。

需要说明的是,在主机110中,dns服务可以运行在vm111中,也可以运行在vm112中。也就是说,可以是vm111为vm111、vm112提供域名解析服务,也可以是vm112为vm111、vm112提供域名解析服务。为了便于描述,下文中以主机110中的vm111为其上运行的虚拟机vm提供域名解析服务、主机120中的vm121为其上运行的虚拟机vm提供域名解析服务为例进行描述。

具体的,以主机110为例,对主机110上运行的vm111为vm111以及vm112提供域名解析服务的具体过程进行详细描述。

主机110中可以包括:vm111、vm112、虚拟交换机113、报文传输模块114,下面对主机110中包括的上述几种模块进行说明。

(1)vm111:

与虚拟交换机113的虚拟端口1连接。由于vm111上可以运行有dns服务,因此,该vm111记录有域名和与其相对应的ip地址之间的对应关系,并可以为vm111以及vm112提供域名解析服务。

vm111可以接收其自身或vm112发送的携带有域名的dns请求报文,根据记录的域名和与其相对应的ip地址之间的对应关系,确定该dns请求报文中携带的域名所对应的ip地址。并可以将携带ip地址的dns应答报文发送至vm111或vm112。

应理解,vm111上运行的dns服务是一个软件程序,本申请实施例对实现dns服务的方式不做具体限定。作为一个示例,可以通过dnsmasq实现,dnsmasq是一个小巧且方便地用于配置dns的工具。作为另一个示例,还可以通过伯克利因特网名称域(berkeleyinternetnamedomain,bind)实现,bind服务是一种域名解析服务程序。

(2)vm112:

与虚拟交换机113的虚拟端口2连接。vm112可以向vm111发送携带有域名的dns请求报文,还可以接收vm111反馈的dns应答报文,并从dns应答报文中获取携带的该域名相对应的ip地址。

可选的,在一些实施例中,在vm112向vm111发送携带有域名的dns请求报文之前,vm112还可以向vm111发送携带vm111的ip地址的地址解析协议(addressresolutionprotocol,arp)请求报文。该arp请求报文用于请求vm111的源媒体访问控制地址(mediaaccesscontroladdress,mac)地址。vm112可以在获取到vm111的mac地址之后,可以根据vm111的mac地址向vm111发送携带有域名的dns请求报文。

(3)虚拟交换机113:

包括虚拟端口1、虚拟端口2、虚拟端口5,其中,虚拟交换机113的虚拟端口1与vm111的虚拟网卡连接,虚拟端口2与vm112的虚拟网卡连接,虚拟端口5与报文传输模块114连接。

虚拟交换机113可以接收控制平台140发送的流表,该流表可以包括多个流表项。虚拟交换机113可以根据流表项实现vm112与vm111之间dns协议的交互。

具体的,虚拟交换机113可以根据流表项中的内容信息,将从虚拟端口2获取到的dns请求报文或arp请求报文转发至虚拟端口1。虚拟交换机113还可以通过流表项中的内容信息,将从第一虚拟端获取倒的dns应答报文或arp应答报文转发至虚拟端口2。下面会结合图2对上述流表项进行详细描述,此处不再赘述。

可选的,在一些实施例中,在vm111上运行的dns服务发生故障的情况下,虚拟交换机113还可以将从虚拟端口1或虚拟端口2发送的dns请求报文转发至虚拟端口5,并可以通过与虚拟端口5连接的报文传输模块114转发至其他主机,并由其他主机上部署的虚拟机vm提供域名解析服务。下面会结合图3对上述流表项进行详细描述,此处不再赘述。

(4)报文传输模块114:

与虚拟交换机113的虚拟端口5连接。在vm111不能为主机110上的vm111、vm112提供域名解析服务的情况下,报文传输模块114将vm111或vm112发送的dns请求报文发送至主机120上的报文传输模块124(假设主机120上的vm121可以代替vm111为主机110上的vm111、vm112提供域名解析服务)。

具体的,报文传输模块114可以从虚拟交换机113的虚拟端口5获取vm111或vm112发送的dns请求报文,并可以将vm111或vm112发送的dns请求报文封装到第一覆盖(overlay)报文。报文传输模块114可以将该第一overlay报文发送至报文传输模块124。

应理解,本申请实施例对第一overlay报文不作具体限定。作为一个示例,第一overlay报文可以是虚拟可扩展局域网(virtualextensiblelocalareanetwork,vxlan)报文。作为另一个示例,第一overlay报文还可以是通用路由封装(genericroutingencapsulation,gre)报文。作为另一个示例,第一overlay报文还可以是无状态运输隧道(statelesstransporttunneling,stt)报文。

报文传输模块114还可以接收到报文传输模块124发送的dns应答报文。具体的,报文传输模块114接收报文传输模块124发送的第二overlay报文,该第二overlay报文封装有第二dns应答报文。报文传输模块114从所述第二overlay报文解封装出第二dns应答报文,并将封装出的第二dns应答报文通过虚拟交换机113的虚拟端口5发送至vm111或vm112。

应理解,报文传输模块114可以是vxlan隧道端点(vxlantunnelendpoints,vtep),可以是vxlan隧道的起点和终点,vxlan报文的相关封装处理均在这上面进行。

下面对与主机110以及主机120连接的控制平台140进行描述。

控制平台140可以包括云管理平台141、dns管理器(dnsmanager)142、软件定义网络(softwaredefinednetwork,sdn)控制器143。

云管理平台141:用于统一管理云计算网络的虚拟机的平台,云计算网络的虚拟机分布设置于多个计算节点中,每个计算节点分别设置有云管理平台客户端,云管理平台客户端用于收集所在的计算节点上的虚拟机的状态信息,并上报至云管理平台141。云管理平台141设置有用户交互界面,用户可通过用户交互界面在主机上创建虚拟机vm,并获知虚拟机vm的状态。用户还可以通过用户交换界面配置针对虚拟机的管理操作,云管理平台141可发送与管理操作对应的命令至云管理平台客户端,云管理平台客户端可执行该命令以管理虚拟机。

dns管理器142:负责全局的域名管理。dns管理器142可以对其上层的部件或用户提供应用程序编程接口api,用于对域名进行设置。例如,用户可以通过api接口对域名进行修改、删除、查询等。dns管理器142还可以通过api接口将用户设置的域名设定到sdn控制器143,并由sdn控制器143下发至vm111中运行的dns服务器的运行文件中。

sdn控制器143:可以负责实现在主机110的vm111中创建dns服务。本申请实施例vm111中运行的dns服务可以为一个网络(network)内的vm提供域名解析服务,还可以为一个客户端的vm提供域名解析服务,还可以为一个虚拟私有云(virtualprivatecloud,vpc)内的vm提供域名解析服务,本申请实施例对此不作具体限定,可以根据实际的场景需求进行部署。

为了便于描述,下文中以dns服务为一个network内的vm提供域名解析服务为例进行说明。

sdn控制器143还可以根据dns管理器250下发的域名来配置vm111上dns服务的运行文件。具体的,sdn控制器143可以根据dns管理器250下发的域名与其相对应的ip地址之间的对应关系,将该对应关系写入vm111上dns服务的运行文件中。

sdn控制器143还可以生成流表,并可以将该流表发送至虚拟交换机113。虚拟交换机113可以根据流表实现vm112与vm111之间dns协议的交互,具体的请参考上文中对虚拟交换机113的描述,此处不再赘述。

需要说明的是,sdn控制器143可以是集中式的,也可以是分布式的,本申请实施例对此也不作具体限定。

本申请实施例提供的分布式域名解析服务器dns系统100,各个主机可以为其上运行的虚拟机提供域名解析服务,可以避免现有技术的集中式dns系统中所有vm的dns请求报文均发送至dns所在的主机所造成的域名解析的高实验,还可以避免现有技术的集中式dns系统中dns故障所造成的多个主机中的多个vm无法进行域名解析的问题。

下面以主机110为例,结合图2中的流程图,对主机110中的vm111为vm111以及vm112提供域名服务的具体实现过程进行详细描述。

应注意,图2的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的图2的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。

图2是本申请实施例提供的一种域名解析方法的示意性流程图。图2所示的方法可以包括步骤210-275,下面分别对步骤210-275进行详细描述。

步骤210:客户端通过控制平台140创建vm111。

客户端可以通过api接口向控制平台140中的云管理平台141下发请求信息,用于请求在主机110上为某个子网(例如,第一子网)创建vm111。

需要说明的是,本申请实施例对客户端不作具体限定,可以是手机、电脑,还可以是租户的可操作客户端。

应理解,云管理平台141在创建vm111时,vm111所在的主机110以及第一网络可以是客户端自己选择的,也可以是云管理平台141自己确定的,本申请实施例对此不作具体限定。

步骤215:控制平台140在主机110上创建vm111。

控制平台140中的云管理平台141可以根据客户端发送的请求信息,在主机110上创建vm111。云管理平台141还可以为该vm111分配ip地址。

步骤220:控制平台140在vm111上创建dns服务,并下发域名配置。

控制平台140中的sdn控制器142可以通过查询云管理平台141,判断创建的vm111是否为主机110上为第一子网部署的第一个vm。如果vm111为主机110上为第一子网部署的第一个vm,sdn控制器142需要在vm111上创建dns服务,并下发域名配置。

具体的,sdn控制器142可以通过上文中描述的dnsmasq或bind实现在vm111上创建dns服务。sdn控制器142还可以将dns管理器250下发的域名来配置vm111上dns服务的运行文件,以便于vm111可以为主机110上的vm111以及vm112提供域名解析服务。

步骤225:客户端通过控制平台140创建vm112。

与步骤210对应,具体的请参考步骤210中的描述,此处不再赘述。

步骤230:控制平台140在主机110上创建vm112。

与步骤215对应,具体的请参考步骤215中的描述,此处不再赘述。

步骤235:控制平台140下发流表至主机110中的虚拟交换机113。

控制平台140中的sdn控制器142生成流表,该流表中可以包括流表项1-流表项5。并可以将该流表下发至虚拟交换机113,以便于虚拟交换机113根据流表对报文的发送路径进行控制,从而可以实现在主机110内实现vm的域名解析。下面就结合步骤对流表项1-流表项5的内容进行详细描述,此处不再赘述。

步骤240:vm112向虚拟交换机113发送arp请求报文。

可选的,在一些实施例中,vm112在向虚拟交换机113发送携带域名的dns请求报文之前,可以向虚拟交换机113发送arp请求报文。

具体的,vm112通过虚拟交换机113向vm111发送dns请求报文之前,需要获取vm111的mac地址。vm112可以在arp请求报文中携带vm112的ip地址、vm112的源mac地址、vm111的ip地址,并通过虚拟端口2将arp请求报文广播至虚拟交换机113。

步骤245:虚拟交换机113根据流表项1将arp请求报文转发至虚拟端口1。

可选的,在一些实施例中,在目的vm111的ip地址和第一子网中的其他vm的ip地址相同的情况下,为了避免不同主机之间vm的ip地址冲突的问题,虚拟交换机113可以根据步骤235中接收到sdn控制器142下发的流表项1,将从虚拟端口2接收到的类型为arp请求报文的报文转发至虚拟端口1。

流表项1的一种可能的伪码如下所示:

dl-vlan=net1,arp,arp-tap=vdns,output:1

应理解,dl-vlan=net1可以理解为第一子网,arp可以理解为报文的类型为arp请求报文,output:1可以理解为将该arp请求报文转发至虚拟端口1。

虚拟交换机113可以根据上述流表项1中的内容,可以将从虚拟端口2接收到的vm112发送的用于请求vm111的mac地址的arp请求报文转发至虚拟端口1。

虚拟交换机113根据流表项1进行报文转发的路径请参考图4中的虚线部分。

可选的,在目的vm111的ip地址和第一子网中的其他vm的ip地址相同的情况下,虚拟交换机113还可以根据步骤235中接收到sdn控制器142下发的流表项2,避免将vm112发送的arp请求报文转发至其他主机上部署的vm上。

流表项2的一种可能的伪码如下所示:

in-port=5,arp-tap=vdns,action:drop

应理解,arp-tap=vdns,action:drop可以用于表示禁止虚拟交换机113将请求vm111的mac地址的arp请求报文丢弃,也就是说,流表项2禁止虚拟交换机113将请求vm111的mac地址的arp请求报文从虚拟端口5转发至其他主机上部署的vm上,从而可以保证vm112发送的请求vm111的mac地址的arp请求报文仅在主机110中转发,避免不同主机之间vm上运行的dns服务的ip地址冲突的问题。

步骤250:vm111向虚拟交换机113发送arp应答报文。

vm111可以从虚拟交换机113的虚拟端口1接收到vm112发送的arp请求报文之后,可以根据arp请求报文中携带的vm112的ip地址,确定该arp请求报文请求获取其自身的mac地址。vm111可以将携带有其mac地址的arp应答报文发送至虚拟交换机113的虚拟端口1。

步骤255:虚拟交换机113流表项3将arp应答报文发送至vm112。

虚拟交换机113可以在步骤235中接收到sdn控制器142下发的流表项3,该流表项3可以用于指示虚拟交换机113将从虚拟端口1接收到的类型为arp应答报文的报文转发至虚拟端口2。

需要说明的是,本申请实施例中虚拟交换机113可以通过流表项3将vm111发送的arp应答报文发送至vm112。也可以根据arp应答报文中携带的vm112的ip地址,将vm111发送的arp应答报文发送至vm112。

虚拟交换机113根据流表项2进行报文转发的路径请参考图4中的虚线部分。

步骤260:vm112向虚拟交换机113发送dns请求报文。

vm112可以通过虚拟交换机113上的虚拟端口1向虚拟交换机113发送dns请求报文。该dns请求报文可以携带域名,用于向vm111请求该域名相对应的第一ip地址。

vm112还可以在步骤255中获取到vm111发送的arp应答报文之后,可以将arp应答报文中携带的vm111的mac地址携带在上述dns请求报文中。

步骤265:虚拟交换机113根据流表项4将dns请求报文发送至vm111。

虚拟交换机113可以在步骤235中接收到sdn控制器142下发的流表项4,该流表项4可以用于指示虚拟交换机113将从虚拟端口2接收到的类型为dns请求报文的报文转发至虚拟端口1。

流表项4的一种可能的伪码如下所示:

in-port=2,ip,dst-port=53,output:1

应理解,in-port=2可以理解为虚拟交换机113从虚拟端口2接收报文。dst-port=53可以表示为该报文的发送目的是53端口,53端口是vm111中运行的dns服务的端口,因此,可以理解为从虚拟端口2接收到的报文的发送目的为53端口,即可以认为该报文的类型为dns请求报文。output:1可以理解为虚拟交换机113将从虚拟端口2接收到的类型为dns请求报文的报文转发至虚拟端口1。

虚拟交换机113可以根据流表项4,将vm112从虚拟端口2发送的dns请求报文转发至虚拟端口1。

虚拟交换机113根据流表项4进行报文转发的路径请参考图4中的虚线部分。

需要说明的是,本申请实施例中虚拟交换机113可以通过上述流表项4将vm112发送的dns请求报文转发至vm111,也可以通过vm112发送的dns请求报文中携带的vm111的mac地址,将vm112发送的dns请求报文转发至vm111。

步骤270:vm111向虚拟交换机113发送dns应答报文。

vm111可以从虚拟交换机113的虚拟端口1接收到vm112发送的dns请求报文之后,可以根据dns请求报文携带的域名,从保存的对应关系中获取到该域名相对应的ip地址。并可以将携带该ip地址的dns应答报文发送至虚拟交换机113的虚拟端口1。

步骤275:虚拟交换机113根据流表项5将dns应答报文发送至vm112。

虚拟交换机113可以在步骤235中接收到sdn控制器142下发的流表项5,该流表项5可以用于指示虚拟交换机113将从虚拟端口1接收到的类型为dns应答报文的报文转发至虚拟端口2。

流表项5的一种可能的伪码如下所示:

in-port=1,ip,udp-dst-port=53,output:2

流表项5与流表项4的内容相对应,具体的请参考流表项4中的描述,此处不再赘述。

虚拟交换机113可以根据流表项5,将vm111从虚拟端口1发送的dns应答报文转发至虚拟端口2。

虚拟交换机113根据流表项5进行报文转发的路径请参考图4中的虚线部分。

需要说明的是,本申请实施例中虚拟交换机113可以通过上述流表项5将vm111发送的dns应答报文转发至vm111,也可以通过vm111发送的dns应答报文中携带的vm112的mac地址,将vm111发送的dns应答报文转发至vm112。

可以理解的,本申请实施例中,各个步骤可以按照本申请实施例呈现的不同的顺序来执行,并且有可能并非要执行本申请实施例中的全部操作。

本申请实施例中,各个主机上的vm均可以为其上运行的vm提供域名解析服务,多个主机之间可以并行运行,从而可以提高域名解析的效率,降低域名解析的时延。

可选的,在一些实施例中,当在主机中创建的vm需要被删除时,可以将vm所占用的存储空间释放。如果需要删除的是子网(例如,第一网络)中的最后一个vm,还需要将vm中运行的dns服务的域名配置信息所占用的存储空间释放。最后还需要释放dns服务所占用的存储空间。

需要说明的是,删除主机中的vm的请求可以是操作系统根据运维人员指示生成,也可以是控制平台140向主机发送该请求。

可选的,在一些实施例中,在vm上运行的dns服务故障,不能为其所在主机上的vm提供域名解析服务的情况下,本申请实施例中控制平台140可以为vm查找到其他主机上正常运行的dns服务,并可以通过流表实现其他主机上的vm为本主机上的vm提供域名解析服务。

下面结合图3,以图1中的vm111上运行的dns服务故障为例进行详细描述。

应注意,图3的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的图3的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。

图3是本申请实施例提供的一种vm111上运行的dns服务故障情况下的域名解析方法的示意性流程图。图3所示的方法可以包括步骤310-365,下面分别对步骤310-365进行详细描述。

步骤310:控制平台140确定vm111上运行的dns服务故障。

控制平台140中的sdn控制器142刷新主机中提供域名解析服务的vm的状态。作为一个示例,sdn控制器142检测到vm111上运行的dns服务故障。作为另一个示例,sdn控制器142检测到vm111上运行的dns服务需要进行升级。作为另一个示例,sdn控制器142接收到上层发送的禁止使用vm111上运行的dns服务的指令。

需要说明的是,本申请实施例中提及的vm111上运行的dns服务故障不包括主机210发生故障或下电等情况。

步骤315:控制平台140确定代替vm111提供域名解析服务的vm。

控制平台140中的sdn控制器142可以在vm111不能为主机110中的虚拟机vm提供域名解析服务的情况下,可以通过查询控制平台140中的云管理平台411,在其他主机上查找代替vm111为主机110中的虚拟机vm提供域名解析服务的vm。

为了便于描述,下文以主机120中的vm121代替vm111提供域名解析服务为例进行描述。

步骤320:控制平台140下发第一流表至主机110中的虚拟交换机113。

控制平台140中的sdn控制器142生成第一流表,并可以将该第一流表下发至虚拟交换机113,以便于虚拟交换机113根据第一流表对报文的发送路径进行控制,从而可以实现在vm111不能为vm111或vm112提供域名解析服务的情况下,可以将vm111或vm112发送的携带域名的dns请求报文转发至vm121进行域名解析。sdn控制器142生成的流表还可以控制虚拟交换机123将vm121发送的携带该域名对应的ip地址的dns应答报文转发至vm111或vm112,使得vm111或vm112可以获取到vm121发送的携带该域名对应的ip地址的dns应答报文。

具体的,控制平台140下发至虚拟交换机113的第一流表可以包括流表项6、流表项10、流表项11。其中,流表项6可以用于指示虚拟交换机113将从虚拟端口2接收到的类型为dns请求报文的报文转发至虚拟端口5。流表项11可以用于指示虚拟交换机113将从虚拟端口5接收到的类型为dns应答报文的报文转发至虚拟端口2。流表项10可以用于指示虚拟交换机113从虚拟端口5接收报文传输模块114发送的类型为dns应答报文的报文。

步骤325:控制平台140下发第二流表至主机120中的虚拟交换机123。

控制平台140中的sdn控制器142生成流表,并可以将该流表下发至虚拟交换机123,以便于虚拟交换机123根据流表获取主机110中vm111或vm112发送的携带域名的dns请求报文,从而实现vm121为vm111或vm112提供域名解析服务。sdn控制器142生成的流表还可以控制虚拟交换机123将携带该域名对应的ip地址的dns应答报文转发至vm111或vm112,使得vm111或vm112可以获取到vm121发送的携带该域名对应的ip地址的dns应答报文。下面对流表的内容进行详细描述,此处不再赘述。

具体的,控制平台140下发至虚拟交换机123的第二流表可以包括流表项7、流表项8和流表项9。其中,流表项7可以用于指示虚拟交换机123从虚拟端口4接收报文传输模块124发送的类型为dns请求报文的报文。流表项8可以用于指示虚拟交换机123将从虚拟端口4接收到的类型为dns请求报文的报文转发至虚拟端口3。流表项9可以用于指示虚拟交换机123将从虚拟端口3接收到的类型为dns请求报文的报文转发至虚拟端口4。

步骤330:vm112向虚拟交换机113发送dns请求报文。

vm112可以通过虚拟交换机113上的虚拟端口1向虚拟交换机113发送dns请求报文。该dns请求报文可以携带域名,用于向vm111请求该域名相对应的第一ip地址。

步骤335:虚拟交换机113根据流表项6将dns请求报文发送至报文传输模块114。

虚拟交换机113可以根据步骤320中控制平台140下发的流表项6将从虚拟端口2获取到的vm112发送的类型为dns请求报文的报文转发至虚拟端口5。

虚拟交换机113根据流表项6进行报文转发的路径请参考图4中实线部分。

步骤336:报文传输模块114将dns请求报文封装成第一overlay报文。

报文传输模块114可以通过虚拟交换机113的虚拟端口5接收dns请求报文,并可以将dns请求报文封装成第一overlay报文

步骤337:报文传输模块114第一overlay报文传输至报文传输模块124。

报文传输模块114可以将第一overlay报文发送至报文传输模块124。

步骤338:报文传输模块124解封装第一overlay报文。

报文传输模块124从报文传输模块114获取到第一overlay报文,并可以从第一overlay报文中解封装出dns请求报文。

步骤340:虚拟交换机123根据流表项7从报文传输模块124处接收dns请求报文。

虚拟交换机123可以根据步骤325中接收到sdn控制器142下发的流表项7,从虚拟端口4获取报文传输模块124解封装的dns请求报文。

虚拟交换机123根据流表项7进行报文转发的路径请参考图4中实线部分。

步骤345:虚拟交换机123根据流表项8将vm112发送的dns请求报文转发至vm121。

虚拟交换机113可以根据步骤325中sdn控制器142下发的流表项8将从虚拟端口4接收到的类型为dns请求报文的报文转发至虚拟端口3。

虚拟交换机123根据流表项8进行报文转发的路径请参考图4中实线部分。

步骤350:vm121向虚拟交换机123发送dns应答报文。

vm121可以从虚拟交换机123的虚拟端口3接收到vm112发送的dns请求报文之后,可以根据dns请求报文携带的域名,从保存的对应关系中获取到该域名相对应的ip地址。并可以将携带该ip地址的dns应答报文发送至虚拟交换机123的虚拟端口3。

步骤355:虚拟交换机123根据流表项9将dns应答报文发送至报文传输模块124。

虚拟交换机123可以根据步骤325中sdn控制器142下发的流表项9将从虚拟端口3接收到的类型为dns应答报文的报文转发至虚拟端口4。

虚拟交换机113根据流表项9进行报文转发的路径请参考图4中实线部分。

步骤356:报文传输模块124将dns应答报文封装成第二overlay报文。

报文传输模块124可以通过虚拟交换机123的虚拟端口4接收dns应答报文,并可以将dns应答报文封装成第二overlay报文。

步骤357:报文传输模块124转发第二overlay报文至报文传输模块114。

报文传输模块124将第二overlay报文之后转发至报文传输模块114。

步骤358:报文传输模块114解封装第二overlay报文中的dns应答报文

与虚拟交换机113的虚拟端口5连接的报文传输模块114从报文传输模块114获取到报文传输模块124转发的第二overlay报文之后,可以从第二overlay报文中解封装出dns应答报文。

步骤360:虚拟交换机113根据流表项10接收vm121发送的dns应答报文。

虚拟交换机113可以根据步骤320中接收到sdn控制器142下发的流表项10,从虚拟端口5接收报文传输模块114解封装出的dns应答报文。

虚拟交换机113根据流表项10进行报文转发的路径请参考图4中实线部分。

步骤365:虚拟交换机113根据流表项11将dns应答报文转发至vm112。

虚拟交换机113可以根据步骤320中sdn控制器142下发的流表项11将从虚拟端口5接收到的类型为dns应答报文的报文转发至虚拟端口2。也就是说,虚拟交换机113可以根据流表项11将dns应答报文转发至vm112。vm112可以获取dns应答报文中携带的与ip地址,从而为vm112提供域名解析服务。

虚拟交换机113根据流表项11进行报文转发的路径请参考图4中实线部分。

可以理解的,本申请实施例中,各个步骤可以按照本申请实施例呈现的不同的顺序来执行,并且有可能并非要执行本申请实施例中的全部操作。

本申请实施例中,在主机上的vm不能为该主机上运行的vm提供域名解析的情况下,本申请实施例还可以通过其他主机上的vm为本主机上的vm提供域名解析服务,可以提高域名解析的效率。

上文结合图1至图4,详细描述了本申请实施例提供的域名解析方法,下面将结合图5-图6,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。

图5是本申请实施例提供的一种第一虚拟交换机500的结构性示意性图。该第一虚拟交换机500的第一虚拟端口与第一虚拟机连接,该第一虚拟机记录有第一域名与第一ip地址之间的第一对应关系,该第一虚拟交换机的第二虚拟端口与第二虚拟机连接。

参见图5,第一虚拟交换机500包括:

接收模块510:用于从该第二虚拟端口接收该第二虚拟机发送的携带有该第一域名的第一dns请求报文。

发送模块520,用于根据第一流表项将该第一dns请求报文从该第二虚拟端口转发至该第一虚拟端口,该第一流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到的类型为dns请求报文的报文转发至该第一虚拟端口。

该接收模块510,用于从该第一虚拟端口获取该第一虚拟机发送的第一dns应答报文,将该第一dns应答报文发送至该第二虚拟端口,该第一dns应答报文携带该第一域名的第一ip地址。

应理解的是,本申请实施例的第一虚拟交换机500可以通过专用集成电路(application-specificintegratedcircuit,asic)实现,或可编程逻辑器件(programmablelogicdevice,pld)实现,上述pld可以是复杂程序逻辑器件(complexprogrammablelogicaldevice,cpld),现场可编程门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。也可以通过软件实现图2至图3所示的域名解析方法时,第一虚拟交换机500及其各个模块也可以为软件模块。

各功能模块的具体功能,在上述图1至图3所示实施例中亦有相关描述,在此不再赘述。

图6是本申请实施例提供的一种第一虚拟交换机600的结构性示意性图。第一虚拟交换机600包括处理单元611和通信接口612,处理单元611用于执行各种软件程序所定义的功能,例如,用于实现虚拟交换机的功能。通信接口612用于与其他计算节点进行通信交互,其他设备可以是其它物理服务器,具体地,通信接口612可以是网络适配卡。

可选地,该第一虚拟交换机600还可以包括输入/输出接口613,输入/输出接口613连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出接口613可以为鼠标、键盘、显示器、或者光驱等。可选地,该第一虚拟交换机600还可以包括辅助存储器614,一般也称为外存,辅助存储器614的存储介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘)等。

可选的,第一虚拟交换机600还可以包括总线615。其中,处理单元611、通信接口612、输入/输出接口613、辅助存储器614可以通过总线615连接。总线615可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线615可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。

处理单元611可以有多种具体实现形式,例如处理单元611可以包括处理器6112和存储器6111,处理器6112根据存储器6111中存储的程序指令执行图1至图3所示的实施例的相关操作。处理器6112可以为中央处理单元(centralprocessingunit,cpu)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器610采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。

第一虚拟交换机600中的各个单元的上述和其它操作和/或功能分别为了实现图2至图3中的方法的相应流程,为了简洁,在此不再赘述。

上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘(solidstatedrive,ssd)。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1